OSDN Git Service

2006-02-26 Roger Sayle <roger@eyesopen.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-02-26  Roger Sayle  <roger@eyesopen.com>
2             James A. Morrison  <phython@gcc.gnu.org>
3
4         PR middle-end/21137
5         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold ((X>>C1)&C2) eq/ne 0,
6         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
7         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
8         signedness of the shift operation.
9
10 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
11
12         PR tree-optimization/26359
13         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
14
15 2006-02-25  Roger Sayle  <roger@eyesopen.com>
16
17         * simplify-rtx.c (simplify_relational_operation_1):  Simplify
18         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
19         as X == 0, and some symmetry related transformations.
20         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
21
22 2006-02-25  Roger Sayle  <roger@eyesopen.com>
23
24         PR middle-end/23673
25         * fold-const.c (fold_binary) <EQ_EXPR>:  Fold (X^Y) == 0 as X == Y
26         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
27         symmetry related transformations.  Fold (X^C1) == C2 as
28         X == (C1^C2).
29
30 2006-02-25  Juergen Weigert  <jw@suse.de>
31         Richard Guenther  <rguenther@suse.de>
32
33         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
34
35 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
36
37         * combine.c (gen_lowpart_or_truncate): Call
38         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
39
40 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
41
42         * doc/invoke.texi: Move -fopenmp description to "Options for
43         Code Generation".
44         Remove reference to -lgomp.
45
46 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
47
48         * doc/install.texi: Require GNU tar version 1.14.
49
50 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
51
52         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
53         * doc/invoke.texi (C++ Dialect Options): Document 
54         -fno-use-cxa-get-exception-ptr.
55         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
56         * configure: Regenerate.
57         * c.opt (fuse-cxa-get-exception-ptr): New.
58         * c-opts.c (c_common_handle_option): Handle
59         OPT_fuse_cxa_get_exception_ptr.
60         * c-common.c (flag_use_cxa_atexit): Update documentation.
61         (flag_use_cxa_get_exception_ptr): New.
62         * c-common.h (flag_use_cxa_get_exception_ptr): New.
63         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
64         documentation.
65         (C_COMMON_OVERRIDE_OPTIONS): New.
66
67 2006-02-24  Roger Sayle  <roger@eyesopen.com>
68
69         PR middle-end/24952
70         * combine.c (try_combine): Explicitly check whether GET_CODE is
71         a SET or a CLOBBER, instead on checking that it isn't a USE.
72
73 2006-02-24  Roger Sayle  <roger@eyesopen.com>
74
75         * fold-const.c (fold_comparison): New subroutine of fold_binary
76         containing transformations common to both the equality and
77         ordering relational operators, factored out of fold_binary.
78         (fold_binary): Separate out the equality operators (EQ_EXPR
79         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
80         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
81         transformations common to both.
82         (fold_div_compare): Fix latent bugs in the previously unreachable 
83         LT_EXPR and GE_EXPR cases.
84
85 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
86
87         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
88         decl libname for clog to __clog on AIX.
89
90         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
91
92 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
93
94         PR target/26453
95         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
96         output traceback table for thunks.  Localise rs6000_stack_info call.
97
98 2006-02-23  Roger Sayle  <roger@eyesopen.com>
99             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
100
101         * gthr-posix.h (__gthrw): Fix typo in comment.
102
103 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
104
105         * doc/cpp.texi (Character sets): Document that we do support
106         input files to be in any character set.
107
108 2006-02-23  Jeff Law  <law@redhat.com>
109
110         * tree.h (PHI_ARG_NONZERO): Remove.
111         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
112         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
113         node to the new node.
114
115         PR tree-optimization/26425
116         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
117         min/max, then assume its varying.
118
119 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
120
121         PR rtl-optimization/26316
122         * rtlanal.c (enum may_trap_p_flags): New.
123         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
124         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
125         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
126         (may_trap_after_code_motion_p): New function.
127         * loop-invariant.c (find_identical_invariants): Fix dump formating.
128         (find_invariant_insn): Use may_trap_after_code_motion_p.
129         * rtl.h (may_trap_after_code_motion_p): Declare.
130
131 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
132
133         * emit-rtl.c (immed_double_const): Cleanup.
134
135 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
136         
137         Fix PR tree-optimization/26376
138         * tree-ssa-structalias.c (find_func_aliases):  Use get_id_for_tree,
139         remove assert.
140
141 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
142
143         PR middle-end/26412
144         * gimplify.c (omp_add_variable): Guard variable size decl test with
145         DECL_SIZE (decl) check.
146
147 2006-02-23  Richard Guenther  <rguenther@suse.de>
148
149         PR middle-end/26439
150         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
151         like aggregate types.
152
153 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
154
155         * configure.ac: Add --with{,out}-long-double-128 configure option.
156         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
157         * configure: Rebuilt.
158         * config.in: Rebuilt.
159         * doc/install.texi (Options specification): Document
160         --with-long-double-128.
161
162         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
163         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
164         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
165         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
166
167 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
168
169         * config/s390/s390.c (override_options): Handle
170         TARGET_DEFAULT_LONG_DOUBLE_128.
171
172         * config/alpha/alpha.c (override_options): Handle
173         TARGET_DEFAULT_LONG_DOUBLE_128.
174
175         * config/sparc/sparc.c (sparc_override_options): Handle
176         TARGET_DEFAULT_LONG_DOUBLE_128.
177
178 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
179
180         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
181         (real-install-headers-tar, real-install-headers-cpio)
182         (real-install-headers-cp): New targets.
183
184 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
185
186         * tree.h (variable_section): Delete.
187         * varasm.c (variable_section): Delete.
188
189 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
190
191         * install.texi: Add notes on install.texi2html.
192         (Building in parallel): Do not use footnotes.
193
194 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
195
196         PR libgomp/26234
197         * doc/install.texi (Configuration): Document --disable-libgomp.
198
199 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
200
201         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
202
203 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
204
205         * config/i386/sse.md (vec_extractv2df_1_sse): New.
206         (vec_extractv2df_0_sse): New.
207
208 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
209
210         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
211         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
212         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
213         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
214         to the result of the expression.
215         (def_cfa_1): Adjust.
216         (frame_pointer_cfa_offset): Rename to...
217         (frame_pointer_fb_offset): ... this.  Adjust all uses.
218         (convert_cfa_to_loc_list): Rename to...
219         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
220         Pass it on to build_cfa_loc.
221         (compute_frame_pointer_to_cfa_displacement): Rename to...
222         (compute_frame_pointer_to_fb_displacement): ... this.  New
223         offset parameter.  Use it in computation.
224         (gen_subprogram_die): Compute cfa_fb_offset with the new
225         macro, and use it to compute the fb loc list and the
226         displacement.
227
228 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
229
230         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
231         replaced with register_operand.
232         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
233         non-DREG is expensive.
234         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
235         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
236         involving memory.
237
238 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
239
240         * doc/install.texi2html: Use set -e.
241
242 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
243
244         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
245         (ASM_OUTPUT_SHARED_LOCAL): Delete.
246         * doc/invoke.texi (-fshared-data): Delete.
247         * common.opt (fshared-data): Delete.
248         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
249         (assemble_static_space): Remove #if 0 code.
250         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
251         (ASM_OUTPUT_SHARED_LOCAL): Poison.
252         * config/cris/cris.h: Remove FIXME.
253
254 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
255
256         * doc/sourcebuild.texi (Front End Directory): No more double-colon
257         hooks.
258
259 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
260
261         PR middle-end/26379
262         * combine.c (simplify_shift_const_1): Disable nested shifts
263         optimization for vector shifts.
264
265 2006-02-20  Roger Sayle  <roger@eyesopen.com>
266
267         PR tree-optimization/26361
268         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
269         of unsigned integer types.
270
271 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
272
273         * tree-chrec.c (eq_evolutions_p): New.
274         * tree-chrec.h (eq_evolutions_p): Declared.
275         * tree-data-ref.c: Fix formatting.
276         (datadep_stats, dependence_stats): New.
277         (gcd): Moved...
278         (print_direction_vector): New.
279         (dump_data_dependence_relation): Use print_direction_vector.
280         (object_analysis, create_data_ref): Handle COMPONENT_REF.
281         (compute_subscript_distance): Static.
282         (initialize_data_dependence_relation): Static.  Get the number
283         of loops surrounding the references from the callers, and initialize
284         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
285         base_object_differ_p analyzers.
286         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, 
287         compute_overlap_steps_for_affine_1_2,
288         analyze_subscript_affine_affine): Count the classified dependences.
289         Print a message when a test failed.
290         (can_use_analyze_subscript_affine_affine): New. 
291         (analyze_siv_subscript): Compute the data dependences on symbolic
292         scevs that verify can_use_analyze_subscript_affine_affine.
293         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
294         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
295         Handle symbolic scevs.
296         (analyze_overlapping_iterations): Let symbolic affine scevs to be
297         analyzed.
298         (subscript_dependence_tester): Moved...
299         (build_classic_dist_vector, build_classic_dir_vector): Don't use 
300         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
301         DDR_SIZE_VECT instead of getting it in parameter.
302         (subscript_dependence_tester): ... here.  Take as a parameter 
303         loop_nest_depth.  Call build_classic_dist_vector and
304         build_classic_dir_vector.
305         (compute_affine_dependence): Update subscript_dependence_tester 
306         parameters.  Update datadep_stats counters.  Call 
307         compute_subscript_distance.
308         (compute_self_dependence): Save the dist and dir vectors.  Call 
309         compute_subscript_distance.
310         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
311         (compute_all_dependences): Reorder parameters as they were before
312         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
313         compute_subscript_distance.  Update the use of 
314         compute_affine_dependence and initialize_data_dependence_relation.
315         (find_data_references_in_loop): Handle COMPONENT_REF.
316         (compute_data_dependences_for_loop): Initialize dependence_stats.
317         Don't call build_classic_dist_vector and build_classic_dir_vector.
318         Update the parameters of initialize_data_dependence_relation and 
319         compute_all_dependences.  Print the statistics from datadep_stats.
320         (analyze_all_data_dependences): Static.  Not used until the pass for
321         checking the data dependences is contributed.
322         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
323         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
324         (initialize_data_dependence_relation, compute_affine_dependence, 
325         analyze_all_data_dependences, compute_subscript_distance): Removed.
326         (print_direction_vector): New.
327         * lambda.h (gcd): ... here.
328         (lambda_vector_gcd): Moved here from gcd_vector.
329         * lambda-code.c (gcd, gcd_vector): Removed.
330         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
331         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
332
333 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
334
335         * ipa-type-escape.c: Tidy some comments and white space.
336         * tree-ssa-operands.c: Likewise.
337
338 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
339
340         PR tree-opt/25879
341         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
342         (dump_decl_name): Do not walk the decl tree chains.
343         * tree-pass.h (TDF_CHAIN): Remove.
344
345 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
346
347         * Makefile.in (C): Remove
348         (PROTO): Remove
349         (.PHONY): Remove C and PROTO
350
351 2006-02-20  Roger Sayle  <roger@eyesopen.com>
352
353         PR middle-end/26236
354         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
355         deprecated CHAR_TYPE tree code.
356
357 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
358
359         * configure.ac (target_list): Add install-info, dvi, html.
360         * configure: Regenerate.
361
362         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
363         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
364         treelang/Make-lang.in: Do not use double-colon rules.
365
366 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
367
368         * tree.h (struct tree_memory_tag): Add is_used_alone member.
369         (TMT_USED_ALONE): New macro.
370         * tree-pass.h (PROP_tmt_usage): New property.
371         (TODO_update_tmt_usage): New todo.
372         * tree-ssa-alias.c (updating_used_alone): New variable.
373         (recalculate_used_alone): New function.   
374         (compute_may_aliases): Set updating_used_alone, call
375         recalculate_used_alone. 
376         * tree-sra.c (pass_sra): Note that this pass destroys
377         PROP_tmt_usage, and add TODO_update_tmt_usage.
378         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
379         * tree-flow.h (updating_used_alone): Prototype.
380         (recalculate_used_alone): Ditto.
381         * passes.c (execute_todo): Add code to set updating_used_alone,
382         and call recalculate.
383         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
384         for clobber if used alone, and add assert to verify used_alone
385         status.
386         
387 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
388
389         * config/s390/s390.c (legitimize_pic_address): Assertions checking
390         for non tls symbols added.
391         (legitimize_address): Do nothing for PLUS expressions if one of the
392         addends is a tls symbol reference.
393
394 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
395
396         PR bootstrap/25476
397
398         * Makefile.in (LDFLAGS): Define from autoconf substitution.
399
400         * Makefile.in (BOOTSTRAPPING): New.
401         (quickstrap): New definition if BOOTSTRAPPING=yes.
402
403         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
404         * configure.ac: Substitute all_selected_languages with the languages
405         that were configured.  For all the other variables except
406         lang_specs_files, include all the languages in the tree.
407         * configure: Regenerate.
408         
409         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
410         if there is one.  Run the commands to run fixincludes in the same
411         subshell.
412
413         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
414         * doc/install.texi: Document exact conventions for searching target tools.
415         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
416         something more about building an Ada cross-compiler.  Don't list GNU Make
417         requirements which affect all platforms.
418
419 2006-02-19  Roger Sayle  <roger@eyesopen.com>
420
421         PR middle-end/19543
422         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
423         only equivalent if the have both the same mode and precision.
424
425 2006-02-20  Ben Elliston  <bje@au.ibm.com>
426
427         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
428
429 2006-02-19  Roger Sayle  <roger@eyesopen.com>
430             Steven Bosscher  <stevenb.gcc@gmail.com>
431
432         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
433         constant pool references to identify stack mode constants.
434         * rtlanal.c (constant_pool_constant_p): New predicate to check
435         whether operand is a floating point constant in the pool.
436         * rtl.h (constant_pool_constant_p): Prototype here.
437         * loop.c (scan_loop): Avoid hoisting constants from the constant
438         pool on STACK_REGS targets.
439         (load_mems): Likewise.
440         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
441         loads into x87 registers expensive in terms of register pressure.
442
443 2006-02-19  Roger Sayle  <roger@eyesopen.com>
444
445         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
446         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
447
448 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
449
450         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
451         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
452
453 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
454
455         * doc/invoke.texi: Document -fipa-pta.
456         * common.opt: Add ipa-pta option.
457         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
458         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
459         (do_ds_constraint): Ditto.
460         (get_constraint_for): Only add to referenced_vars if
461         referenced_vars exists.
462         (insert_into_field_list): Rewrite to do this unsorted.
463         (insert_into_field_list_sorted): Rename old insert_into_field_list
464         to this.
465         (create_function_info_for): Use insert_into_field_list_sorted.
466         (create_variable_info_for): Rewrite so it uses unsorted version,
467         since the field list is sorted.
468         (intra_create_variable_infos): Only add to referenced_vars if
469         referenced_vars exists.
470         (ipa_pta_execute): Init heapvars, and delete when done.
471         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
472
473 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
474
475         * doc/install.texi: Add missing `@samp'.
476
477 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
478
479         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
480         Use the arguments.
481
482 2006-02-18  Mark Wielaard  <mark@klomp.org>
483
484         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
485         who added new 4.1 features, bug fixes and integration support.
486
487 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
488
489         PR target/26350
490         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
491         MEM for ABI_V4 pic.
492
493 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
494
495         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
496         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
497         (copy_insn_1): Likewise.  Don't copy each field individually.
498         Reindent.
499         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
500         of RTX_SIZE.
501         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
502         * rtl.c (rtx_size): Rename variable to...
503         (rtx_code_size): ...this.
504         (rtx_size): New function.
505         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
506         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
507         Reindent.
508         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
509         * rtl.h (rtx_code_size): New variable.
510         (rtx_size): Change from a variable to a function.
511         (RTX_SIZE): Rename to...
512         (RTX_CODE_SIZE): ...this.
513
514         PR target/9703
515         PR tree-optimization/17106
516         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
517         (Anchored Addresses): New section.
518         * doc/invoke.texi (-fsection-anchors): Document.
519         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
520         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
521         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
522         * hooks.c (hook_bool_mode_rtx_false): New function.
523         * hooks.h (hook_bool_mode_rtx_false): Declare.
524         * gengtype.c (create_optional_field): New function.
525         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
526         SYMBOL_REF_IN_BLOCK_P is true.
527         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
528         (min_anchor_offset, max_anchor_offset): Likewise.
529         (use_anchors_for_symbol_p): New hook.
530         * toplev.c (compile_file): Call output_object_blocks.
531         (target_supports_section_anchors_p): New function.
532         (process_options): Check that -fsection-anchors is only used on
533         targets that support it and when -funit-at-a-time is in effect.
534         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
535         if the decl doesn't have one.
536         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
537         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
538         of force_const_mem through use_anchored_address.
539         (expand_expr_constant): New function.
540         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
541         calling expand_expr for INDIRECT_REF.
542         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
543         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
544         * expr.h (use_anchored_address): Declare.
545         * loop-unroll.c: Don't declare rtx vectors here.
546         * explow.c: Include output.h.
547         (validize_mem): Call use_anchored_address.
548         (use_anchored_address): New function.
549         * common.opt (-fsection-anchors): New switch.
550         * varasm.c (object_block_htab, anchor_labelno): New variables.
551         (hash_section, object_block_entry_eq, object_block_entry_hash)
552         (use_object_blocks_p, get_block_for_section, create_block_symbol)
553         (use_blocks_for_decl_p, change_symbol_section): New functions.
554         (get_variable_section): New function, split out from assemble_variable.
555         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
556         use_blocks_for_decl_p say so.  Use change_symbol_section if the
557         symbol has already been created.
558         (assemble_variable_contents): New function, split out from...
559         (assemble_variable): ...here.  Don't output any code for
560         block symbols; just pass them to place_block_symbol.
561         Use get_variable_section and assemble_variable_contents.
562         (get_constant_alignment, get_constant_section, get_constant_size): New
563         functions, split from output_constant_def_contents.
564         (build_constant_desc): Create a block symbol if use_object_blocks_p
565         says so.  Or into SYMBOL_REF_FLAGS.
566         (assemble_constant_contents): New function, split from...
567         (output_constant_def_contents): ...here.  Don't output any code
568         for block symbols; just pass them to place_section_symbol.
569         Use get_constant_section and get_constant_alignment.
570         (force_const_mem): Create a block symbol if use_object_blocks_p and
571         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
572         (output_constant_pool_1): Add an explicit alignment argument.
573         Don't switch sections here.
574         (output_constant_pool): Adjust call to output_constant_pool_1.
575         Switch sections here instead.  Don't output anything for block symbols;
576         just pass them to place_block_symbol.
577         (init_varasm_once): Initialize object_block_htab.
578         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
579         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
580         (place_block_symbol, get_section_anchor, output_object_block)
581         (output_object_block_htab, output_object_blocks): New functions.
582         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
583         (TARGET_ASM_OUT): Include it.
584         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
585         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
586         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
587         (TARGET_INITIALIZER): Include them.
588         * rtl.c (rtl_check_failed_block_symbol): New function.
589         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
590         (block_symbol, object_block): New structures.
591         (rtx_def): Add a block_symbol field to the union.
592         (BLOCK_SYMBOL_CHECK): New macro.
593         (rtl_check_failed_block_symbol): Declare.
594         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
595         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
596         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
597         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
598         * output.h (output_section_symbols): Declare.
599         (object_block): Name structure.
600         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
601         (default_use_anchors_for_symbol_p): Declare.
602         * Makefile.in (RTL_BASE_H): Add vec.h.
603         (explow.o): Depend on output.h.
604         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
605         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
606         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
607         (rs6000_use_blocks_for_constant_p): New function.
608
609 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
610
611         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
612
613 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
614
615         PR tree-opt/25680
616         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
617         IMAGPART_EXPR.
618
619 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
620
621         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
622         is_aliased.
623         Update all users.
624
625 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
626
627         PR middle-end/26334
628         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
629         instead of DECL_REGISTER.
630
631 2006-02-18  Olivier Hainque  <hainque@adacore.com>
632
633         PR ada/13408
634         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
635
636 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
637
638         PR target/24837
639         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
640         * opth-gen.awk: Handle Var and InverseMask together.
641         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
642         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
643         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
644         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
645         used together.
646         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
647         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
648         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
649         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
650         LINUX_DYNAMIC_LINKER): Define.
651         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
652         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
653         TARGET_GLIBC.
654         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
655         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
656         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
657         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
658         (TARGET_C99_FUNCTIONS): Don't define.
659         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
660         GLIBC_DYNAMIC_LINKER.
661         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
662         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
663         GLIBC_DYNAMIC_LINKER64): Define.
664         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
665         LINUX_DYNAMIC_LINKER64.
666         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
667         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
668         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
669         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
670         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
671         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
672         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
673         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
674         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
675         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
676         and LINUX_DYNAMIC_LINKER32.
677         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
678         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
679         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
680         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
681         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
682         TARGET_GLIBC.
683         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
684         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
685         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
686         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
687         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
688         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
689         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
690         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
691         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
692         LINUX_DYNAMIC_LINKER): Define.
693         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
694         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
695         GLIBC_DYNAMIC_LINKER64): Define.
696         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
697         LINUX_DYNAMIC_LINKER64.
698         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
699         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
700         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
701         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
702         LINUX_DYNAMIC_LINKER): Define.
703         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
704         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
705         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
706         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
707         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
708         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
709         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
710         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
711         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
712         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
713         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
714         * doc/invoke.texi (-muclibc): Remove caveat about supported
715         targets.
716
717 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
718
719         * doc/cpp.texi (__TIMESTAMP__): Document.
720
721 2006-02-17  Roger Sayle  <roger@eyesopen.com>
722
723         PR middle-end/25600
724         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
725         C is one less than the width of X (and related transformations).
726         * simplify_rtx.c (simplify_unary_operation_1): Transform 
727         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
728         depending on STORE_FLAG_VALUE, were C is one less then the
729         width of X.
730
731 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
732
733         Fix PR tree-optimization/26341
734         * tree-ssa-operands.c (add_virtual_operand): Remove assert 
735         about NAME_MEMORY_TAG's.
736
737 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
738
739         PR target/26255
740         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
741         with hardware float support, and software float support.  Add fcpy
742         alternative to hardware patterns.  Add alternatives to copy between
743         general and floating-point registers to the 32-bit pattern.
744         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
745         secondary reload to load a QI or HI mode constant into a floating
746         point register. 
747         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
748         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
749
750 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
751
752         PR target/26272
753         * config/rs6000/darwin.md (load_macho_picbase_si): Add
754         pc to the pattern.
755         (load_macho_picbase_di): Likewise.
756
757 2006-02-16  Jeff Law  <law@redhat.com>
758
759         * tree-vrp.c (set_value_range_to_nonnegative): New function.
760         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
761         (ssa_name_nonzero_p): Likewise.
762         (get_value_range): Return NULL if VRP is not running.
763         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
764         VRP routines do not discover a range.
765         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
766         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
767         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
768         (tree_expr_nonnegative_p): Similarly.
769         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
770         (restore_nonzero_vars_to_original_value): Remove.
771         (unsafe_associative_fp_binop): Remove.
772         (tree_ssa_dominator_optimize): Remove initialization and
773         finalization of nonzero_vars and nonzero_vars_stack.
774         (dom_opt_initialize_block): No longer push marker on
775         nonzero_vars_stack.
776         (dom_opt_finalize_block): No longer call
777         restore_nonzero_vars_to_original_value.
778         (record_equivalences_from_phis): No longer look for
779         nonzero PHI arguments.
780         (cprop_into_successor_phis): No longer propagate nonzero
781         property into PHI arguments.  Lose unused argument.  Caller
782         updated.
783         (record_equivalences_from_stmt): No longer record nonzero
784         values for SSA_NAMEs.
785         (lookup_avail_expr): No longer use nonzero_vars.
786
787         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
788         for sizetype when sizetype is unsigned.
789
790 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
791
792         PR rtl-optimization/25603
793         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
794         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
795         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p 
796         with new meaning of SETS.
797
798 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
799
800         PR target/20353
801         PR target/24578
802         PR target/24837
803         * config/linux.opt: New file.
804         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
805         LINUX_DYNAMIC_LINKER): Define.
806         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
807         * config.gcc (*-*-linux*): Define extra_options.
808         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
809         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
810         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
811         GLIBC_DYNAMIC_LINKER.
812         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
813         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
814         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
815         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
816         * doc/invoke.texi (GNU/Linux Options): New section.
817
818 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
819
820         * config/sparc/sparc.md (setjmp): Rewrite.
821         (setjmp_32): Delete.
822         (setjmp_64): Likewise.
823
824 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
825
826         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
827          previous change.
828
829 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
830
831         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
832         read-write uses.
833
834 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
835
836         PR rtl-optimization/26296
837         * Makefile.in (loop-invariant.c): Add except.h dependency.
838         * loop-invariant.c: Include except.h.
839         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
840
841 2005-02-16  Paul Brook  <paul@codesourcery.com>
842
843         * reload1.c (emit_reload_insns): Invalidate dead input registers used
844         for reloads.
845
846 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
847
848         PR rtl-optimization/25636
849         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
850         when deciding whether an insn is an initializing insn.
851
852 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
853
854         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
855         (tree_code_size): Ditto.
856         * tree.h (struct tree_memory_tag): Remove parent_var.
857         (struct tree_struct_field_tag): New.
858         (SFT_OFFSET): New.
859         (SFT_SIZE): New.
860         (union tree_node): Add sft member.
861         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
862         specially here.
863         (create_sft): Add size and offset argument, set SFT_OFFSET and
864         SFT_SIZE.
865         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
866         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
867         * tree-flow-inline.h (get_subvar_at): Update for
868         SFT_OFFSET/SFT_SIZE.
869         (var_can_have_subvars): Ditto.
870         (overlap_subvar): Ditto.
871         * print-tree.c (print_node): Print out interesting things for
872         SFT's.
873         * tree-flow.h (struct subvar): Remove offset and size members.
874         * tree-ssa-operands.c (get_expr_operands): Update for
875         get_indirect_ref_operands changes.
876         (get_indirect_ref_operands): Call add_virtual_operand instead of
877         add_stmt_operand.  Only recurse on base var if requested.
878         (access_can_touch_variable): New function.
879         (add_stmt_operand): Split virtual operand handling into ...
880         (add_virtual_operand): Here.  Add offset, size, and for_clobber
881         arguments.  Prune alias sets.
882         (add_call_clobber_ops): Call add_virtual_operand.
883         
884 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
885
886         PR middle-end/26300
887         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
888
889         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
890         than TREE_CODE as index into omp_clause_num_ops array.
891
892 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
893
894         PR rtl-optimization/26184
895         * modulo-sched.c (generate_reg_moves): Free bitmap vector
896         uses_of_defs.
897         * modulo-sched.c (sms_schedule): Free g_arr pointer.
898         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
899         must_precede, must_follow and tobe_scheduled.
900
901         PR other/26147
902         * opts.c (common_handle_option): Free new_option pointer.
903         * df-core.c (df_analyze): Free postorder pointer.
904
905 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
906
907         * Makefile.in: Fix the examples about the use of stamps
908
909 2006-02-15  Michael Matz  <matz@suse.de>
910
911         PR middle-end/22275
912
913         * stor-layout.c (layout_decl): Zero-width bitfields aren't
914         influenced by maximum_field_alignment or DECL_PACKED.
915         (update_alignment_for_field): Ditto.
916         (place_field): Ditto.
917         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
918         this behaviour.
919
920 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
921
922         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
923         (debug_flow_info): Pass it.
924         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
925         * bb-reorder.c (reorder_basic_blocks): Likewise.
926         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
927         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
928         * flow.c (life_analysis, recompute_reg_usage): Likewise.
929         * gcse.c (gcse_main, bypass_jumps): Likewise.
930         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
931         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
932         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
933         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
934         * rtl.h (dump_flow_info): Adjust prototype.
935         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
936         * var-tracking.c (variable_tracking_main): Likewise.
937         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
938         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
939         options.
940
941 2006-02-15  Marcin Dalecki <martin@dalecki.de>
942
943         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
944         construction.
945
946 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
947
948         PR tree-optimization/26209
949         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
950         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
951         eh edges.
952         * tree-cfg.c (replace_uses_by): Do not alter cfg.
953
954 2006-02-14  Roger Sayle  <roger@eyesopen.com>
955
956         PR middle-end/23670
957         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
958         (X,Y) and the corresponding symmetry related transformations.
959         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
960         (X,Y) and its symmetry related transformations.
961
962 2006-02-14  Roger Sayle  <roger@eyesopen.com>
963
964         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
965         and GEU.
966
967 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
968
969         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
970
971 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
972
973         PR bootstrap/26053
974         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
975         support COMDAT group.
976         * configure: Regenerate.
977
978 2006-02-14  Roger Sayle  <roger@eyesopen.com>
979
980         PR middle-end/26279
981         PR middle-end/26280
982         PR middle-end/26283
983         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
984
985 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
986
987         Fix PR tree-optimization/26260
988
989         * doc/invoke.texi (max-fields-for-field-sensitive): Document
990         param.
991         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
992         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
993         * tree-ssa-structalias.c (create_variable_info_for): Use
994         MAX_FIELDS_FOR_FIELD_SENSITIVE.
995         
996 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
997
998         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
999         Document.
1000         * tree-ssa-loop-niter.c (number_of_iterations_ne,
1001         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
1002         of the ending condition.
1003         * tree-ssa-loop-manip.c: Include params.h.
1004         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
1005         tree_unroll_loop): New functions.
1006         * tree-pass.h (pass_loop_prefetch): Declare.
1007         * loop.c (rest_of_handle_loop_optimize): Test for
1008         -fprefetch-loop-arrays-rtl.
1009         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
1010         * timevar.def (TV_TREE_PREFETCH): New timevar.
1011         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
1012         pass_loop_prefetch): New.
1013         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
1014         (cleanup_tree_cfg_loop): Call scev_reset.
1015         * common.opt (fprefetch-loop-arrays-rtl): Add.
1016         * tree-ssa-loop-prefetch.c: New file.
1017         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
1018         (new_temp_expr_table): Initialize expr_vars.
1019         (free_temp_expr_table): Cleanup expr_vars.
1020         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
1021         expressions from being merged into one.
1022         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
1023         (struct tree_niter_desc): Add control, bound and cmp fields.
1024         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
1025         Declare.
1026         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
1027         (tree-cfgcleanup.o): Add SCEV_H dependency.
1028         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
1029         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
1030
1031 2006-02-14  Richard Guenther  <rguenther@suse.de>
1032
1033         PR tree-optimization/26258
1034         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
1035         in PHI argument processing.
1036
1037 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
1038
1039         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
1040         new expression in the requested machine mode.
1041
1042 2006-02-13  Roger Sayle  <roger@eyesopen.com>
1043
1044         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
1045         directly, instead let do_compare_rtx_and_jump handle this for us.
1046         * expr.c (expand_expr_real_1): Likewise.
1047         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
1048         before do_jump_by_parts_greater.
1049         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
1050         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
1051
1052 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1053
1054         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
1055
1056 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
1057
1058         PR rtl-optimization/26235
1059         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
1060         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
1061         format.
1062
1063 2006-02-13  Jeff Law  <law@redhat.com>
1064
1065         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
1066         TRUTH_XOR_EPR.
1067
1068 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
1069
1070         PR middle-end/26092
1071         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
1072         twice if decl is a builtin.  When trying again, call get_callee_fndecl
1073         first to verify it is still a builtin.
1074
1075 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
1076
1077         * dwarf2out.c (base_type_die): Don't add AT_name here.
1078         (subrange_type_die): Don't add AT_name here.
1079         (modified_type_die): Rearrange code flow.  Do add AT_name here.
1080
1081 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
1082
1083         PR rtl-optimization/26247
1084         PR rtl-optimization/26248
1085         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
1086
1087 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
1088
1089         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
1090         * config/fixtfdi.c: Likewise.
1091         * config/fixunstfdi.c: Likewise.
1092         * config/floatditf.c: Likewise.
1093
1094 2006-02-13  Roger Sayle  <roger@eyesopen.com>
1095
1096         PR middle-end/24427
1097         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
1098         into (X,C2) if C1 is a subset of the bits of C2.  Transform
1099         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
1100         (X&(C1&~C2))|C2.
1101         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
1102
1103 2006-02-13  Josh Conner  <jconner@apple.com>
1104
1105         PR target/25376
1106         * varasm.c (function_section): Check for section name before
1107         calling select_section on targets that define
1108         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
1109         unlikely_text_section instead of hot_function_section if
1110         first_function_block_is_cold.
1111
1112 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
1113
1114         PR middle-end/25335
1115         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
1116
1117 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
1118
1119         PR rtl-optimization/26222
1120         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
1121         after tree->rtl expansion.
1122         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
1123         before passing it to emit_move_insn.
1124
1125 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1126
1127         * doc/invoke.texi (-Write-strings): Document that it is enabled by
1128         default. 
1129         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
1130         Clarify documentation.
1131         * c-common.h (warn_write_strings): Remove.
1132         * c-common.c (warn_write_strings): Likewise.
1133         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
1134         default for C++.
1135
1136 2006-02-12  Roger Sayle  <roger@eyesopen.com>
1137
1138         PR middle-end/25724
1139         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
1140         (do_jump_parts_zero_rtx): New function renamed from
1141         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
1142         (do_jump_parts_equality_rtx): New function split out from
1143         do_jump_parts_equality.  Old implementation renamed as above.
1144         Call do_jump_parts_zero_rtx if either operand is zero.
1145         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
1146         do all of the heavy lifting.
1147         (do_compare_rtx_and_jump): Handle multi-word comparisons by
1148         calling either do_jump_by_parts_greater_rtx or
1149         do_jump_by_parts_equality_rtx.
1150         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
1151         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
1152         moved to do_compare_rtx_and_jump, call it directly.
1153         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
1154         mode argument.  Call do_compare_rtx_and_jump.
1155         (emit_case_nodes): Update calls to do_jump_if_equal.
1156
1157 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
1158
1159         PR rtl-optimization/26225
1160         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
1161
1162 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
1163
1164         PR rtl-optimization/26232
1165         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
1166
1167 2006-02-11  Jason Merrill  <jason@redhat.com>
1168
1169         PR tree-opt/24365
1170         * tree-inline.c (declare_return_variable): Just don't use the
1171         modify target if it's a gimple complex reg and the return slot
1172         isn't.
1173
1174 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1175
1176         * doc/contrib.texi: Update my entry.
1177
1178 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
1179
1180         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
1181
1182 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
1183
1184         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
1185         expensive.
1186
1187 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
1188
1189         * doc/invoke.texi (-floop-optimize2): Removed.
1190         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
1191         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
1192         Test flag_branch_on_count_reg only if HAVE_doloop_end.
1193         * common.opt (floop-optimize2): Removed.
1194         (fmove-loop-invariants): Enabled by default.
1195
1196 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
1197
1198         * tree-if-conv.c (combine_blocks): Free the result of
1199         get_loop_exit_edges.
1200
1201 2006-02-10  Jeff Law  <law@redhat.com>
1202
1203         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
1204
1205         PR tree-optimization/26213
1206         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
1207         loop trying to follow SSA_NAME_VALUE chains.
1208
1209 2006-02-10  Richard Guenther  <rguenther@suse.de>
1210
1211         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
1212         deal with structures that end in implicitly variable sized arrays.
1213
1214 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
1215
1216         PR rtl-optimization/24762
1217         * df-scan.c (df_bb_refs_record): Record correct registers defined on
1218         eh edges.
1219
1220 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
1221
1222         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
1223         (struct ivopts_data): Add regs_used field.
1224         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
1225         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
1226         instead of loop_data->regs_used;
1227         (free_loop_data): Do not free aux fields for loops.
1228         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
1229         and tree_ssa_iv_optimize_finalize.
1230
1231 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1232
1233         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
1234
1235 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
1236
1237         PR target/26141
1238         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
1239         computing the effective result type.
1240
1241 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
1242
1243         PR inline-asm/16194
1244         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
1245         (tree_overlaps_hard_reg_set): Declare.
1246         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
1247         type and signature to match function type expected by walk_tree.
1248         (tree_overlaps_hard_reg_set): New function.
1249         (decl_conflicts_with_clobbers_p): Rename to:
1250         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
1251         Use tree_overlaps_hard_reg_set.  Changed caller.
1252         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
1253         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
1254         * cris.c (cris_md_asm_clobbers): Likewise.
1255
1256 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1257
1258         * reload1.c (emit_input_reload_insns): Delete code that tries to
1259         inherit using find_equiv_reg.
1260
1261 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1262
1263         * c-common.h (flag_const_strings): Don't declare.
1264         * c-common.c (flag_const_strings): Remove.
1265         * c.opt (fconst_strings): Remove.
1266         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
1267         <OPT_Wwrite_strings>: Don't set flag_const_strings.
1268         (c_common_init_options): Don't set flag_const_strings.
1269         * doc/invoke.texi (-fno-const-strings): Remove documentation.
1270
1271 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
1272
1273         * arm.md (tlobits_cbranch): New pattern.
1274         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
1275         testing a single bit.
1276
1277 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
1278
1279         PR tree-opt/26179
1280         * tree-ssa-pre.c (create_component_ref_by_pieces):
1281         Handle RETURN_DECL like VAR_DECL.
1282
1283 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
1284
1285         PR middle-end/26134
1286         * fold-const.c (fold_indirect_ref_1): Fold 
1287         "*(foo *)&complexfoo" to "__real__ complexfoo"
1288         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
1289
1290 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
1291
1292         * tree-flow-inline.h (var_can_have_subvars): 
1293         Volatile variables should not have subvariables.
1294
1295 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
1296
1297         PR 26180
1298         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
1299         multiplying unsigned values.
1300         Tidy comments.
1301
1302 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1303
1304         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
1305
1306 2006-02-08  Jason Merrill  <jason@redhat.com>
1307
1308         PR c++/25979
1309         * tree.def: Elaborate on difference from MODIFY_EXPR.
1310         * doc/c-tree.texi (INIT_EXPR): Likewise.
1311         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
1312         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
1313         (gimplify_target_expr): Likewise.
1314         (gimplify_cond_expr): Remove target handling.
1315         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
1316         (gimplify_expr): Clobber it here.
1317         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
1318         Do return slot optimization if we have an INIT_EXPR.
1319
1320         PR tree-opt/24365
1321         * tree-inline.c (declare_return_variable): Also clear 
1322         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
1323
1324         PR c++/16405
1325         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
1326
1327         PR middle-end/22439
1328         * gimplify.c (gimplify_one_sizepos): Fix typo.
1329
1330 2006-02-08  Jeff Law  <law@redhat.com>
1331
1332         PR tree-optimization/21417
1333         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
1334         across a backedge if the control statement at the end of the
1335         block is data dependent on other statements in the same block.
1336         (record_temporary_equivalences_from_stmts): Remove over-conservative
1337         test for threading across backedges.
1338
1339         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
1340         control statement, handle all three special cases in the same
1341         manner as they all have the same desired solution.  No longer
1342         special case edge flag updating when the post dominator is
1343         the exit block.
1344
1345 2006-02-08  Roger Sayle  <roger@eyesopen.com>
1346
1347         * tree.def (CHAR_TYPE): Remove.
1348         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
1349         * dwarf2out.c (base_type_die, is_base_type): Likewise.
1350         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
1351         (gen_string_type_die): Delete unreachable function.
1352
1353         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
1354         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
1355         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
1356         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
1357         * builtins.c (type_to_class): Likewise.
1358         * fold-const.c (fold_convert, build_range_check,
1359         merge_ranges): Likewise.
1360         * expr.c (count_type_elements): Likewise.
1361         * c-pretty-print.c (pp_c_type_specifier): Likewise.
1362         * stor-layout.c (layout_type): Likewise.
1363         * ipa-type-escape.c (type_to_consider): Likewise.
1364         * gimplify.c (omp_firstprivatize_type_sizes,
1365         gimplify_type_sizes): Likewise.
1366         * explow.c (promote_mode): Likewise.
1367         * tree-sra.c (is_sra_scalar_type): Likewise.
1368         * varasm.c (output_constant): Likewise.
1369         * tree-inline.c (remap_type_1): Likewise.
1370         * convert.c (convert_to_pointer, convert_to_real,
1371         convert_to_integer, convert_to_complex): Likewise.
1372
1373 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
1374
1375         * df-scan.c (df_def_record_1): A set destination may
1376         be a parallel regardless of mode.
1377
1378 2006-02-08  Roger Sayle  <roger@eyesopen.com>
1379
1380         PR target/22209
1381         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
1382         * config/mips/_tilib.c: Remove.
1383         * config/fixtfdi.c: New libgcc source file.
1384         * config/fixunstfdi.c: New source file.
1385         * config/floatditf.c: New source file.
1386         * config/floatunditf.c: New souce file.
1387         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
1388         files above instead of config/mips/_tilib.c.
1389         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
1390
1391 2006-02-08  Jeff Law  <law@redhat.com>
1392
1393         PR tree-optimization/26169
1394         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
1395         threading jumps.
1396
1397 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
1398
1399         * df.h (DF_REG_SIZE): Return the length of the initialized
1400         part of the array.
1401
1402 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
1403
1404         * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
1405         __muldf3): Return a correctly signed zero.
1406
1407 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
1408
1409         * passes.c (register_one_dump_file): Accept the current properties
1410         instead of pass number.  Adjust call to dump_register.  Remove
1411         duplicated code.
1412         (register_dump_files): Now a wrapper around...
1413         (register_dump_files_1): ... this one.  Do not modify the pass
1414         structure.
1415         (next_pass_1): Cosmetic fix.
1416         (execute_todo): Keep second parameter only.  Use curr_properties
1417         instead of fetching it from the pass structure.  Check and set
1418         last_verified.
1419         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
1420         instead of fetching it from the pass structure.  Fix calls to
1421         execute_todo.  Update curr_properties and initialize .vcg RTL dump
1422         after running the pass.  Reset last_verified.
1423         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
1424         at the beginning.
1425         (FIRST_AUTO_NUMBERED_DUMP): New.
1426         (dump_register): Remove "num" parameter, assign it within the
1427         function.
1428         (get_dump_file_name): Modify template for dumps.
1429         * tree-dump.h (dump_register): Adjust prototype.
1430         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
1431         (PROP_trees): Add PROP_gimple_lomp.
1432         (TODO_set_props): New.
1433         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
1434         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
1435         * cfgexpand.c (pass_expand): Destroy PROP_trees.
1436
1437 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
1438
1439         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
1440         (sparc64-*-linux*): Likewise.
1441         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
1442         * config/sparc/t-linux: New file.
1443         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
1444         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
1445         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
1446         -m32 -mlong-double-128.
1447
1448         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
1449         * config/alpha/t-linux: New file.
1450         * config/alpha/libgcc-alpha-ldbl.ver: New file.
1451
1452         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
1453         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
1454         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
1455         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
1456         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
1457         (CPP_ARCH32_SPEC): Remove.
1458
1459 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
1460
1461         PR tree-optimization/26145
1462         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
1463         bbs pointer.
1464
1465 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1466
1467         PR target/26109
1468         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
1469         >= 240000 when generating code for SOM runtime.
1470         (output_indirect_call): Don't use "b,l" instruction for indirect calls
1471         to $$dyncall when generating code for SOM runtime..
1472
1473 2006-02-07  Dirk Mueller  <dmueller@suse.com>
1474
1475         PR c++/18150
1476         * doc/invoke.texi (-Wsequence-point): Update documentation
1477         that -Wsequence-point is implemented for C++ as well.
1478
1479 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1480
1481         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
1482         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
1483         (LIB_SPEC): Likewise.
1484         * doc/invoke.texi (SPARC options): Document -pthread.
1485
1486 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
1487
1488         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
1489         PIC addresses.
1490
1491 2006-02-07  Roger Sayle  <roger@eyesopen.com>
1492
1493         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
1494         Correct comment describing BOOLEAN_TYPE.
1495
1496 2006-02-07  Dirk Mueller  <dmueller@suse.com>
1497
1498         * c.opt: C++ frontend supports -Wdiv-by-zero.
1499         * c-opts.c (c_common_handle_option): Remove dead case.
1500
1501 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1502
1503         * configure.ac (TLS assembler check): Do not enable TLS by
1504         default on SPARC/Solaris before version 10.
1505         * configure: Regenerate.
1506
1507 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
1508
1509         * doc/invoke.texi (xl-compat): Document conversion and support
1510         routine names.
1511
1512 2006-02-07  Jeff Law  <law@redhat.com>
1513
1514         * tree-vrp.c (find_conditional_asserts): Update comments.
1515         (simplify_stmt_for_jump_threading): New.
1516         (identify_jump_threads, finalize_jump_threads): New.
1517         (vrp_finalize): Call identify_jump_threads.
1518         (execute_vrp): Call finalize_jump_threads.
1519         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
1520         (vrp_element, vrp_data, vrp_element_p): Remove.
1521         (vrp_hash_elt, vrp_variables_stack): Remove.
1522         (vrp_hash, vrp_eq, record_range): Remove.
1523         (simplify_cond_and_lookup_avail_expr): Remove.
1524         (extract_range_from_cond): Remove.
1525         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
1526         (simplify_stmt_for_jump_threading): New.
1527         (dom_thread_across_edge): New wrapper.
1528         (tree_ssa_dominator_optimize): No longer initialize or
1529         finalize any of the VRP datastructures.  Remove iteration
1530         step and simplify as a result of removal of iteration step.
1531         (pass_dominator): Perform a cfg cleanup after DOM.
1532         (dom_opt_finalize_block): Use the new common routines
1533         for threading jumps.  Simplify stack management slightly.
1534         No longer need to unwind VRP state.
1535         (record_equivalences_from_incoming_edge): No longer record
1536         VRP information.
1537         (eliminate_redundant_computations): No longer call
1538         simplify_cond_and_lookup_avail_expr.
1539         * tree-flow.h (potentially_threadable_block): Prototype.
1540         (thread_across_edge): Likewise.
1541         * Makefile.in (OBJS-common):  Add tree-ssa-threadedge.o
1542         (tree-ssa-threadedge.o): Add dependencies.
1543         * tree-ssa-threadedge.c: New file.
1544         * passes.c (init_optimization_passes): Merge PHIs before
1545         calling VRP.  Run VRP again late in the SSA optimization pipeline.
1546
1547 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1548
1549         * df-core.c (df_set_blocks): Do not dereference function pointers.
1550         (df_finish1): Likewise.
1551         (df_hybrid_search_forward): Likewise.
1552         (df_hybrid_search_backward): Likewise.
1553         (df_iterative_dataflow): Likewise.
1554         (df_analyze_problem): Likewise.
1555         (df_compact_blocks): Likewise.
1556         (df_dump): Likewise.
1557         * df-scan.c (df_rescan_blocks): Likewise.
1558         (df_record_entry_block_defs): Likewise.
1559
1560         * genconditions.c (write_conditions): Guard the definition of
1561         'insn_conditions' with the check on GCC version.
1562         (write_writer): Guard the traversal 'insn_conditions' with
1563         the check on GCC version.
1564
1565 2006-02-07  Richard Guenther  <rguenther@suse.de>
1566
1567         PR c++/26140
1568         Revert
1569         2006-01-30  Richard Guenther  <rguenther@suse.de>
1570         PR c++/23372
1571         * gimplify.c (gimplify_target_expr): Handle easy cases
1572         without creating a temporary.
1573
1574 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
1575
1576         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
1577         use of float in probability computations.  Use edge probabilities
1578         in place of statically computed probabilities.
1579         (min_spec_prob): New static variable.
1580         (schedule_insns): Initialize it.
1581         (GET_SRC_PROB): Removed.
1582         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
1583
1584 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
1585
1586         PR debug/24444
1587         * config/ia64/unwind-ia64.c: Revert last change.
1588         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
1589         (INCOMING_FRAME_SP_OFFSET): Define.
1590
1591 2006-02-06  Roger Sayle  <roger@eyesopen.com>
1592
1593         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
1594
1595 2006-02-07  Ben Elliston  <bje@au.ibm.com>
1596
1597         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
1598         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
1599         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
1600         (ix86_return_in_memory): Handle TDmode.
1601         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
1602         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
1603
1604 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
1605
1606         * reorg.c (dbr_schedule): Use dump_file instead of file.
1607
1608 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
1609
1610         PR target/25917
1611         * config/ia64/predicates.md (extr_len_operand): New predicate.
1612         * config/ia64/ia64.md (extv): Tighten constraints.
1613         (extzv): Ditto.
1614         (*tbit_and_2): Ditto.
1615         (*tbit_and_3): Ditto.
1616         (*tbit_or_2): Ditto.
1617         (*tbit_or_3): Ditto.
1618         (*bit_zero): Ditto.
1619         (*bit_one): Ditto.
1620
1621 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
1622
1623         PR target/23359
1624         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
1625
1626 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
1627
1628         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
1629         loop_optimizer_init and loop_optimizer_finalize
1630         * tree-ssa-sink.c (execute_sink_code): Ditto.
1631         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
1632         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
1633         tree_ssa_loop_done): Ditto.
1634         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
1635         * sched-ebb.c: Include output.h.
1636         (schedule_ebbs): Do not use dump argument.
1637         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
1638         * loop.c (loop_dump_stream): Removed.
1639         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
1640         argument.
1641         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
1642         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
1643         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
1644         loop_iterations, strength_reduce, record_biv, record_giv,
1645         final_giv_value, check_final_value, check_ext_dependent_givs,
1646         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
1647         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
1648         dump_file instead of loop_dump_stream.
1649         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
1650         argument dump_file.
1651         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
1652         dump argument.
1653         * flow.c (life_analysis, rest_of_handle_life): Ditto.
1654         * haifa-sched.c: Include output.h
1655         (schedule_insns, sched_init): Do not use dump argument.
1656         * mode-switching.c (optimize_mode_switching): Ditto.
1657         * modulo-sched.c (stats_file): Removed.
1658         (print_node_sched_params): Do not call argument dump_file.
1659         (sms_schedule_by_order, loop_canon_p, sms_schedule,
1660         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
1661         of stats_file.
1662         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
1663         use dump argument.
1664         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
1665         rtl_loop_init, rtl_loop_done): Ditto.
1666         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
1667         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
1668         Ditto.
1669         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
1670         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
1671         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
1672         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
1673         * emit-rtl.c (renumber_insns): Ditto.
1674         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
1675         expand_gimple_basic_block, tree_expand_cfg): Ditto.
1676         * regclass.c (regclass): Ditto.
1677         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
1678         remove_ssa_form, rewrite_out_of_ssa): Ditto.
1679         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
1680         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
1681         Ditto.
1682         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
1683         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
1684         to regclass.
1685         * gcse.c (gcse_file, debug_stderr): Removed.
1686         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
1687         rest_of_handle_gcse): Do not use dump argument.
1688         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
1689         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
1690         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
1691         compute_code_hoist_vbeinout, compute_code_hoist_data,
1692         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
1693         compute_store_table, build_store_vectors, insert_insn_start_bb,
1694         insert_store, remove_reachable_equiv_notes, replace_store_insn,
1695         store_motion): Use dump_file instead of gcse_file.
1696         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
1697         * profile.c (profile_dump_file): Removed.
1698         (branch_prob): Use dump_file instead of profile_dump_file.
1699         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
1700         dump_file.
1701         * tree-ssa-copy.c (dump_copy_of): Ditto.
1702         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
1703         dump file to life_analysis.
1704         * bt-load.c (branch_target_load_optimize): Ditto.
1705         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
1706         renumber_insns.
1707         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
1708         regclass, dbr_schedule): Declaration changed.
1709         * sched-int.h (sched_init): Declaration changed.
1710         * tree-profile.c (tree_profile_dump_file): Removed.
1711         (tree_profile_hooks): Removed profile_dump_file hook.
1712         * rtl-profile (rtl_profile_dump_file): Removed.
1713         (rtl_profile_hooks): emoved profile_dump_file hook.
1714         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
1715         changed.
1716         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
1717         * tree-cfg.c (build_tree_cfg): Ditto.
1718         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
1719         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
1720         Declaration changed.
1721         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
1722         life_analysis and schedule_insns.
1723         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
1724         life_analysis.
1725         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
1726         dbr_schedule.
1727         * config/mips/mips.c (mips_reorg): Ditto.
1728         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
1729         schedule_ebbs.
1730
1731 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
1732
1733         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1734         (s390_mangle_fundamental_type): New.
1735         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1736         Define.
1737
1738         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1739         (alpha_mangle_fundamental_type): New.
1740         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1741         Define.
1742
1743         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1744         Define.
1745         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
1746         Define.
1747         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1748         (sparc_mangle_fundamental_type): New.
1749
1750 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
1751
1752         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
1753         (s390x-*-linux*): Likewise.
1754         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
1755         * config/s390/t-linux: New file.
1756
1757 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
1758
1759         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
1760         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
1761
1762 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
1763
1764         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
1765         (ANTIC_SAFE_LOADS): New macro.
1766         (find_or_generate_expression): Add prototype.
1767         (set_contains_value): Allow null set for sake of not always having
1768         to allocate ANTIC_SAFE_LOADS.
1769         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
1770         Allow COMPONENT_REF too.
1771         (valid_in_set): Allow COMPONENT_REF.
1772         Check ANTIC_SAFE_LOADS too.
1773         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
1774         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
1775         rename.
1776         (can_PRE_operation): Add COMPONENT_REF.
1777         (create_component_ref_by_pieces): New function.
1778         (create_expression_by_pieces): Use create_component_ref_by_pieces.
1779         (insert_aux): Move AGGREGATE_TYPE_P check here.
1780         (compute_avail): Set bb local stmt uids.
1781         (pass_pre): Use TODO_update_ssa_only_virtuals.
1782         
1783 2006-02-06  Ben Elliston  <bje@au.ibm.com>
1784
1785         * configure.ac: Unconditionally disable decimal float by default.
1786         * configure: Regenerate.
1787
1788 2006-02-06  Ben Elliston  <bje@au.ibm.com>
1789
1790         * read-rtl.c (read_name): Terminate reading on EOF.
1791
1792 2006-02-06  Ben Elliston  <bje@au.ibm.com>
1793
1794         * dfp.c (decimal_real_arithmetic): Change second argument type
1795         from int to enum tree_code. Do not always return true, but now
1796         return result of any call to decimal_do helper functions.
1797         * dfp.h (decimal_real_arithmetic): Update prototype.
1798
1799 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1800
1801         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
1802
1803 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
1804
1805         PR tree-opt/25251
1806         * tree-cfg.c (cleanup_dead_labels): Also don't remove
1807         forced labels.
1808
1809 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
1810
1811         * tree-vrp.c (cfg_loops): Removed.
1812         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
1813         Use current_loops instead of cfg_loops.  Pass flags to
1814         loop_optimizer_init.
1815         * cfgloopmanip.c (fix_loop_structure): Update only available
1816         information.
1817         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
1818         loop_optimizer_init.
1819         * modulo-sched.c (build_loops_structure): Removed.
1820         (sms_schedule): Use loop_optimizer_init.
1821         * loop-init.c (loop_optimizer_init): Use flags to determine
1822         which properties of loops to prepare.
1823         (rtl_loop_init): Pass flags to loop_optimizer_init.
1824         * tree-ssa-sink.c (execute_sink_code): Ditto.
1825         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
1826         * tree-ssa-pre.c (init_pre): Ditto.
1827         * cfgloop.h (LOOPS_NORMAL): New.
1828         (loop_optimizer_init): Declaration changed.
1829
1830 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1831
1832         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
1833         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
1834         pa/t-pa.
1835         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
1836         pa/t-pa.
1837         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
1838         pa/x-ada.
1839         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
1840         * pa/t-pa64: Delete quadlib.c rule.
1841         * pa/x-ada: Revert last change.
1842         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
1843
1844 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
1845
1846         PR rtl-optimization/26087
1847         * rtlanal.c (canonicalize_condition): Do not cross basic block
1848         boundaries.
1849
1850 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
1851
1852         PR debug/24444
1853         * config/ia64/ia64.c: Include debug.h.
1854         (MAX_ARTIFICIAL_LABEL_BYTES): New.
1855         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
1856         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
1857         (process_epilogue, process_set, process_for_unwind_directive):
1858         Output unwind info only if requested.  Add CFA info if requested.
1859         Add new arguments as needed.  Adjust callers.
1860         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
1861         incorrect default.
1862         (DWARF2_FRAME_INFO): Define to zero.
1863         * config/ia64/unwind-ia64.c: Remove code that compensated for
1864         the CFA offset error fixed above.
1865         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
1866         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
1867         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
1868         -funwind-tables and -fexceptions to enable frame info.
1869         (dwarf2out_frame_init): Define initial CFA even if
1870         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
1871         DWARF2_UNWIND_INFO is nonzero, not just defined.
1872         (dwarf2out_frame_finish): Output non-EH call frame info only
1873         if DWARF2_FRAME_INFO is nonzero.
1874         (convert_cfa_to_loc_list,
1875         compute_frame_pointer_to_cfa_displacement): Define even if
1876         unwind info is not supported.
1877         (gen_subprogram_die): Use the above unconditionally.  Remove
1878         legacy alternate code.
1879         * toplev.c (compile_file): Compile in call to
1880         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
1881         (lang_dependent_init): Ditto for dwarf2out_frame_init.
1882
1883 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
1884             Jakub Jelinek  <jakub@redhat.com>
1885
1886         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
1887         IBM extended float format long double as "g" on powerpc*-linux.
1888
1889 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1890
1891         PR target/25926
1892         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
1893         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
1894
1895 2006-02-03  Jason Merrill  <jason@redhat.com>
1896
1897         PR c++/25979
1898         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
1899
1900         PR middle-end/25977
1901         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
1902         on the return slot if it's an NRV.
1903
1904 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
1905
1906         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
1907         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
1908         rewrite_use): Do not handle USE_OUTER.
1909         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
1910         add_iv_outer_candidates, may_replace_final_value,
1911         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
1912         (find_interesting_uses_op): Functionality of
1913         find_interesting_uses_outer_or_nonlin moved here.
1914         (find_interesting_uses_outside): Use find_interesting_uses_op.
1915
1916 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
1917
1918         PR target/25960
1919         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
1920
1921 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
1922             Ulrich Weigand  <uweigand@de.ibm.com>
1923
1924         PR target/25864
1925         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
1926         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
1927         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
1928         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr 
1929         and dxr fields.
1930         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
1931         (s390_rtx_costs): Use the new fields to calculate rtx costs.
1932         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
1933         Define secondary reloads for TFmode moves.
1934         (constant_modes): Add TFmode.
1935         (NR_C_MODES): Set to 8.
1936         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
1937         builtin define.
1938         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
1939         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
1940         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, 
1941         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
1942         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf, 
1943         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
1944         (FPR mode macro): Add TFmode.
1945         (DSF mode macro): New.
1946         (<de>, <dee> mode attributes): Removed.
1947         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
1948         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs", 
1949         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee", 
1950         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3", 
1951         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm", 
1952         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly", 
1953         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
1954         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc", 
1955         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm", 
1956         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
1957         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly", 
1958         "*negabs<mode>2", "sqrt<mode>2"):
1959         Changed <de> to <xde>. R constraint replaced by <Rf>.
1960         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by 
1961         <Rf>.
1962         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
1963         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
1964         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5 
1965         splitters.
1966         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2", 
1967         "extenddftf2", "extendsftf2"): New expanders.
1968         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", 
1969         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
1970         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
1971         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
1972         New options.
1973         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
1974         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2, 
1975         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
1976         __floatditf): Add a GCC_4.1.0 symbol version tag.
1977         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
1978         the new options.
1979
1980 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
1981
1982         PR target/25377
1983         * config/i386/i386.c (ix86_function_ok_for_sibcall):
1984         Use targetm.binds_local_p instead of TREE_PUBLIC.
1985
1986 2006-02-02  Roger Sayle  <roger@eyesopen.com>
1987
1988         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
1989         on INTEGER_TYPEs to indicate that it denotes a character type.
1990         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
1991         signed_char_type_node, unsigned_char_type_node and char_type_node.
1992         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
1993         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
1994         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
1995
1996 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
1997             Daniel Berlin  <dberlin@dberlin.org>
1998
1999         * tree-tailcall.c (arg_needs_copy_p): New function.
2000         (eliminate_tail_call): Use arg_needs_copy_p.
2001         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
2002         (add_virtual_phis): New function.
2003
2004 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
2005
2006         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
2007         #ignore instead of #scratch for %g7 .register directive.
2008
2009 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
2010
2011         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
2012         object files.
2013
2014 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
2015
2016         * flow.c (calculate_global_regs_live): Assert that there aren't any
2017         EDGE_FAKE edges.
2018
2019 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
2020
2021         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
2022         what its name says.
2023         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
2024         bsi_after_labels iterator.
2025         * tree-if-conv.c (find_phi_replacement_condition,
2026         replace_phi_with_cond_modify_expr): Likewise.
2027         * tree-scalar-evolution.c (scev_const_prop): Likewise.
2028         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
2029
2030 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
2031
2032         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
2033
2034 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
2035
2036         PR 25990
2037         * tree-cfg.c (move_block_to_fn): Clear out the basic block
2038         array after growing it.
2039
2040 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
2041
2042         PR middle-end/24901
2043         * fold-const.c (fold_checksum_tree): Change type of buf.
2044
2045 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
2046
2047         * reload.c (push_secondary_reload): Initialize t_icode.
2048
2049 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
2050
2051         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
2052         -msoft-float -mlong-double-128 only issue a warning, but don't
2053         swich to DFmode long double.
2054
2055 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
2056
2057         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
2058         has a constant equivalent, iterate over equivalents for arg0,
2059         calling simplify_relational_operation and if there's a result
2060         cheaper than X, apply fold_rtx and return the result.
2061
2062 2006-02-01  Jan Hubicka  <jh@suse.cz>
2063
2064         * opts.c (no_unit_at_a_time_default): New global variable.
2065         (decode_options): Use it.
2066         * opts.h (no_unit_at_a_time_default): Declare.
2067
2068 2006-02-01  Paul Brook  <paul@codesourcery.com>
2069
2070         * function.c (assign_parm_setup_reg): Use function argument promotion
2071         rules.
2072         * expr.c (expand_expr_real_1): Use function argument promotion rules
2073         for PARM_DECLs.
2074
2075 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
2076
2077         * gcc.c (process_command): Change j to 'unsigned int'.
2078
2079 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
2080
2081         PR middle-end/26001
2082         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
2083         Use the corrected index for the character
2084         out of the string constant.
2085
2086 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
2087
2088         * mode-switching.c (optimize_mode_switching): Fix size
2089         allocated for bb_info[n_entities].
2090
2091 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
2092
2093         * gcc.c (main): Correct type that is allocated for
2094         explicit_link_files.
2095
2096 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
2097
2098         * config/s390/s390.c (init_alignment_context): Set
2099         ALIAS_SET_MEMORY_BARRIER on the MEM.
2100         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
2101
2102 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
2103
2104         PR middle-end/25933
2105         * loop-unroll.c (unroll_loop_runtime_iterations): Free
2106         dom_bbs pointer.
2107         * tree-ssa-live.c (type_var_init): Allocate bitmap after
2108         call to tpa_init.
2109
2110 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
2111
2112         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
2113         * regrename.c: Ditto.
2114         * tree-ssa-loop-im.c: Ditto.
2115         * tree-dump.c: Ditto.
2116         * tree-complex.c: Ditto.
2117         * genrecog.c: Ditto.
2118         * tree-ssa-threadupdate.c: Ditto.
2119         * tracer.c: Ditto.
2120         * java/class.c: Ditto.
2121         * java/jcf-parse.c: Ditto.
2122         * java/resource.c: Ditto.
2123         * java/except.c: Ditto.
2124         * java/jvspec.c: Ditto.
2125         * java/jcf-write.c: Ditto.
2126         * java/jcf-path.c: Ditto.
2127         * java/gjavah.c: Ditto.
2128         * java/zextract.c: Ditto.
2129         * java/jcf-io.c: Ditto.
2130         * java/jcf.h: Ditto.
2131         * java/buffer.c: Ditto.
2132         * java/lang.c: Ditto.
2133         * java/parse-scan.y: Ditto.
2134         * java/lex.c: Ditto.
2135         * java/lex.h: Ditto.
2136         * cfgloopmanip.c: Ditto.
2137         * postreload-gcse.c: Ditto.
2138         * tree-ssa-loop-manip.c: Ditto.
2139         * postreload.c: Ditto.
2140         * tree-ssa-loop-ch.c: Ditto.
2141         * loop.c: Ditto.
2142         * ipa-cp.c: Ditto.
2143         * cppspec.c: Ditto.
2144         * diagnostic.c: Ditto.
2145         * final.c: Ditto.
2146         * genoutput.c: Ditto.
2147         * gcc.c: Ditto.
2148         * cfghooks.c: Ditto.
2149         * cfgloopanal.c: Ditto.
2150         * objc/objc-act.c: Ditto.
2151         * gcov.c: Ditto.
2152         * genextract.c: Ditto.
2153         * genautomata.c: Ditto.
2154         * pretty-print.c: Ditto.
2155         * genemit.c: Ditto.
2156         * cgraphunit.c: Ditto.
2157         * flow.c: Ditto.
2158         * df-scan.c: Ditto.
2159         * haifa-sched.c: Ditto.
2160         * dominance.c: Ditto.
2161         * dbxout.c: Ditto.
2162         * tree-ssa-loop-ivopts.c: Ditto.
2163         * df-core.c: Ditto.
2164         * mode-switching.c: Ditto.
2165         * modulo-sched.c: Ditto.
2166         * graph.c: Ditto.
2167         * ipa-pure-const.c: Ditto.
2168         * cse.c: Ditto.
2169         * fix-header.c: Ditto.
2170         * web.c: Ditto.
2171         * tree-stdarg.c: Ditto.
2172         * ipa-utils.c: Ditto.
2173         * loop-init.c: Ditto.
2174         * ipa-inline.c: Ditto.
2175         * cfganal.c: Ditto.
2176         * global.c: Ditto.
2177         * alloc-pool.c: Ditto.
2178         * dwarf2out.c: Ditto.
2179         * opts.c: Ditto.
2180         * genattrtab.c: Ditto.
2181         * tree-ssa-loop-ivcanon.c: Ditto.
2182         * predict.c: Ditto.
2183         * timevar.c: Ditto.
2184         * lcm.c: Ditto.
2185         * fortran/gfortranspec.c: Ditto.
2186         * regmove.c: Ditto.
2187         * local-alloc.c: Ditto.
2188         * langhooks.c: Ditto.
2189         * function.c: Ditto.
2190         * tree-vectorizer.c: Ditto.
2191         * gcse.c: Ditto.
2192         * ipa-type-escape.c: Ditto.
2193         * alias.c: Ditto.
2194         * tree-if-conv.c: Ditto.
2195         * profile.c: Ditto.
2196         * ipa.c: Ditto.
2197         * tree-data-ref.c: Ditto.
2198         * loop-unroll.c: Ditto.
2199         * treelang/treetree.c: Ditto.
2200         * calls.c: Ditto.
2201         * bt-load.c: Ditto.
2202         * ggc-common.c: Ditto.
2203         * except.c: Ditto.
2204         * coverage.c: Ditto.
2205         * cselib.c: Ditto.
2206         * tree-cfgcleanup.c: Ditto.
2207         * tree-ssa-pre.c: Ditto.
2208         * cfgcleanup.c: Ditto.
2209         * loop-invariant.c: Ditto.
2210         * loop-iv.c: Ditto.
2211         * ipa-prop.c: Ditto.
2212         * print-tree.c: Ditto.
2213         * conflict.c: Ditto.
2214         * ggc-page.c: Ditto.
2215         * sched-deps.c: Ditto.
2216         * regclass.c: Ditto.
2217         * tree-object-size.c: Ditto.
2218         * combine.c: Ditto.
2219         * bb-reorder.c: Ditto.
2220         * resource.c: Ditto.
2221         * var-tracking.c: Ditto.
2222         * cfgloop.c: Ditto.
2223         * df-problems.c: Ditto.
2224         * reg-stack.c: Ditto.
2225         * tlink.c: Ditto.
2226         * gccspec.c: Ditto.
2227         * sched-rgn.c: Ditto.
2228         * tree-ssa-structalias.c: Ditto.
2229         * tree-ssa-reassoc.c: Ditto.
2230         * config/darwin-c.c: Ditto.
2231         * config/darwin.c: Ditto.
2232         * config/arm/arm.c: Ditto.
2233         * cfgrtl.c: Ditto.
2234         * collect2.c: Ditto.
2235         * reload1.c: Ditto.
2236
2237 2006-01-31  Nicolas Pitre  <nico@cam.org>
2238
2239         * arm.md (smaxsi3): Make aware of smax_m1.
2240         (smax_m1): New.
2241
2242 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
2243
2244         * gcc/config/m68k/lb1sf68.asm: Use moveq to load small constants.
2245
2246 2006-01-31  Richard Guenther  <rguenther@suse.de>
2247
2248         * doc/invoke.texi (-msselibm): Document.
2249         * target.h (expand_library_builtin): New target hook.
2250         * builtins.c (expand_builtin): Use expand_library_builtin.
2251         (default_expand_library_builtin): New function.
2252         * gcc.c (LINK_GCC_MATH_SPEC): Define.
2253         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
2254         (link_gcc_math_spec): Declare.
2255         (static_specs): Add link_gcc_math_spec.
2256         * expr.h (default_expand_library_builtin): Declare.
2257         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
2258         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
2259         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
2260         * config/i386/i386.opt (msselibm): New target option.
2261         * config/i386/i386.c (ix86_builtin_function_variants): New array.
2262         (ix86_init_sse_abi_builtins): New function.
2263         (ix86_expand_library_builtin): Likewise.
2264         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
2265         (override_options): Handle error conditions wrt -msselibm.
2266         (ix86_builtins): Add function codes for SSE2 ABI builtins.
2267         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
2268         * doc/extend.texi (__builtin_sse2_*): Document new target specific
2269         builtins.
2270
2271 2006-01-31  Richard Guenther  <rguenther@suse.de>
2272         Paolo Bonzini  <bonzini@gnu.org>
2273
2274         * doc/install.texi (--disable-libgcc-math): Document.
2275
2276 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
2277
2278         * expr.h (expand_normal): new inline function.
2279         * builtins.c: use it, use EXPAND_NORMAL explicitely.
2280         * dojump.c: use it.
2281         * dwarf2out.c: use it.
2282         * expr.c: use it.
2283         * calls.c: use it.
2284         * expmed.c: use it.
2285         * except.c: use it.
2286         * config/sparc/sparc.c: use it.
2287         * config/i386/i386.c: use it.
2288         * config/rs6000/rs6000.c: use it.
2289         * config/arm/arm.c: use it.
2290         * config/mips/mips.c: use it.
2291         * stmt.c: use it, use EXPAND_NORMAL explicitely.
2292
2293 2006-01-30  Roger Sayle  <roger@eyesopen.com>
2294
2295         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
2296         argv to the appropriate type.
2297
2298 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
2299
2300         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
2301         unreachable code.
2302
2303 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
2304
2305         PR target/26018
2306         * config/s390/s390.c (struct machine_function): New flag
2307         decomposed_literal_pool_addresses_ok_p.
2308         (s390_reorg): Set it before final stage of literal pool transforms.
2309         (s390_decompose_address): Only accept displacements of the form
2310         (minus (label_ref ...) (label_ref ...)) if that flag is set.
2311
2312 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
2313
2314         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
2315         the comparison routine return.
2316
2317 2006-01-30  Michael Matz  <matz@suse.de>
2318
2319         * global.c (find_reg): Only evict for global regs.
2320         Take n_refs into account and dump more info.
2321
2322 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
2323
2324         PR target/14798:
2325         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
2326         (pragma_trap, pragma_nosave_low_regs): Likewise.
2327         (current_function_anonymous_args): Likewise.
2328         (sh_deferred_function_attributes): New variable.
2329         (sh_deferred_function_attributes_tail): Likewise.
2330         (print_operand): For '@', look up trap_exit attribute.
2331         (calc_live_regs): Look up trapa_handler attribute.  For trapa
2332         handlers, save/restore fpscr, but don't do any other
2333         interrupt-specific saves.
2334         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
2335         Fix check for partially saved registers to check for SHmedia.
2336         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
2337         (sh_output_function_epilogue): Don't clear any of the removed
2338         variables.
2339         (sh_insert_attributes): Don't check pragma_interrupt.
2340         Insert deferred attributes.  Check that interrupt attribute is
2341         present for other attributes that require its presence.
2342         (sh_attribute_table): Add new attributes trapa_handler and
2343         nosave_low_regs.
2344         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
2345         Don't check for pragma_interrupt.  Don't store argument.
2346         * sh.h (pragma_interrupt, sp_switch): Don't declare.
2347         (sh_deferred_function_attributes): Declare.
2348         (sh_deferred_function_attributes_tail): Likewise.
2349         * sh.md (sp_switch_1): Add operand.  Change generator caller.
2350         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
2351         (*return_i): Don't use when trap_exit attribute is in effect.
2352         (*return_trapa): New insn pattern.
2353         * sh-c.c: New file.
2354         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
2355         setting c_target_objs and cxx_target_objs.
2356         * t-sh: Add rule for sh-c.o.
2357
2358 2006-01-30  Richard Guenther  <rguenther@suse.de>
2359
2360         PR c++/23372
2361         * gimplify.c (gimplify_target_expr): Handle easy cases
2362         without creating a temporary.
2363
2364 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
2365
2366         * vec.h (safe_grow): Remove duplicated line.
2367
2368 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
2369
2370         PR 25874
2371         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
2372         (expand_omp): ... here.
2373         (expand_omp_parallel): Only remove barriers for combined
2374         parallel+workshare constructs.
2375
2376 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
2377
2378         Revert
2379
2380         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2381         * tree.c (build_qualified_type): Chain the new type to the original
2382         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
2383         a POINTER_TYPE or a REFERENCE_TYPE respectively.
2384         (build_pointer_type_for_mode): Only return unqualified types.
2385         (build_reference_type_for_mode): Likewise.
2386
2387 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
2388
2389         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
2390         * Makefile.in (CXX_COMPAT_WARN): Define.
2391         * configure: Regenerate.
2392
2393 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
2394
2395         PR tree-opt/25911
2396         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
2397         to an if check.
2398
2399 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2400
2401         * toplev.c: Fix thinko.
2402
2403 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2404             Marcin Dalecki  <martin@dalecki.de>
2405
2406         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
2407         (push_srcloc): Use XNEW.
2408         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
2409
2410 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
2411
2412         * df-core.c (df_set_blocks): Deleted all variable.
2413
2414 2006-01-28  Ian Lance Taylor  <ian@airs.com>
2415
2416         * cgraphunit.c (cgraph_assemble_pending_functions): Call
2417         cgraph_output_pending_asms.
2418
2419 2006-01-28  Zack Weinberg  <zackw@panix.com>
2420
2421         * c.opt: Add -W(no-)overlength-strings.
2422         * doc/invoke.texi: Document it.
2423         * c-opts.c (c_common_handle_option): -pedantic implies
2424         -Woverlength-strings, if not explicitly disabled already.
2425         (c_common_post_options): -Woverlength-strings defaults to off, and
2426         is always off for C++.
2427         * c-common.c (fix_string_type): Issue warning about strings longer
2428         than is portable only if warn_overlength_strings.  Rearrange code
2429         a little for clarity.
2430         * configure.in: Check for -Wno-overlength-strings as well before
2431         enabling -pedantic in stage 1.
2432         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
2433         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
2434
2435         * genconditions.c (write_header, write_one_condition)
2436         (write_conditions, write_writer): Consolidate very long strings
2437         that were broken up to fit in C89 portable limit.  Don't use
2438         printf when fputs will do.
2439
2440 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
2441
2442         * combine.c (simplify_comparison <AND>): Check
2443         TRULY_NOOP_TRUNCATION before start using a subreg.
2444
2445         * config/mips/mips.md (*branch_zero<mode>,
2446         *branch_zero<mode>_inverted, *branch_equality<mode>,
2447         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
2448         Remove mode check from comparisons.
2449
2450 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
2451
2452         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
2453
2454 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
2455
2456         * expmed.c (const_mult_add_overflow_p): Remove.
2457         * expr.h: Remove the prototype for const_mult_add_overflow_p.
2458
2459         * recog.c (validate_replace_rtx_subexp): Remove.
2460         * recog.h: Remove the prototype for
2461         validate_replace_rtx_subexp.
2462
2463         * integrate.h: Remove the prototype for
2464         copy_decl_for_inlining.
2465         * rtl.h: Remove the prototype for mark_constant_function.
2466         * tree-vectorizer.h: Remove the prototype for
2467         vect_strip_conversion.
2468
2469         * modulo-sched.c (create_partial_schedule,
2470         free_partial_schedule, reset_partial_schedule): Make them
2471         static.
2472
2473         * hooks.c (hook_bool_rtx_int_false): Remove.
2474         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
2475
2476 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
2477
2478         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
2479         and -mlong-double-128 are incompatible.
2480         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
2481         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
2482         (TARGET_LIBGCC2_CFLAGS): Define.
2483         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
2484         (TARGET_LIBGCC2_CFLAGS): Same.
2485         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
2486
2487 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
2488
2489         PR c/19606.
2490         * c-typeck.c (build_binary_op): Perform implicit casts of
2491         operands before shortening them.
2492
2493         * cfgloopmanip.c (split_loop_bb): Remove.
2494         * cfgloop.h: Remove the prototype for split_loop_bb.
2495
2496         * cfgloop.c (flow_loop_outside_edge_p): Remove.
2497         * cfgloop.h: Remove the prototype for
2498         flow_loop_outside_edge_p.
2499
2500         * emit-rtl.c (init_virtual_regs): Make it static.
2501         * function.h: Remove the prototype for init_virtual_regs.
2502
2503         * recog.c (peephole2_optimize): Make it static.
2504         * recog.h: Remove the prototype for peephole2_optimize.
2505
2506 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
2507
2508         * df-scan.c (df_record_entry_block_defs): Check if
2509         INCOMING_RETURN_ADDR_RTX is defined.
2510
2511 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
2512             Kenneth Zadeck <zadeck@naturalbridge.com>
2513
2514         PR rtl-optimization/24762
2515         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
2516         * targhooks.c (hook_void_bitmap): New hook prototype.
2517         * targhoohs.h (hook_void_bitmap): Ditto.
2518         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
2519         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
2520         * target.h (live_on_entry): New function pointer.
2521         * df-scan.c (df_all_hard_regs): Removed.
2522         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
2523         (df_scan_free_internal): Added df->entry_block_defs.
2524         (df_scan_alloc): Ditto.
2525         (df_scan_dump): Ditto.
2526         (df_uses_record): Plumbed flag field properly thru calls.
2527         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
2528         This part fixes PR24762.
2529         (df_bb_refs_record): Added code to make the frame and arg
2530         pointers live in EH blocks.
2531         (df_refs_record): Added call to df_record_entry_block_defs.
2532         (df_record_entry_block_defs): New function.
2533         * df-core.c: Added comments to describe new artifical defs.
2534         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
2535         (entry_block_defs): New field in struct df.
2536         (df_all_hard_regs): Deleted.
2537         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
2538         * df-problems.c (df_ru_bb_local_compute_process_def):
2539         Added code to handle artifical defs in the entry to a function.
2540         (df_ru_bb_local_compute): Ditto.
2541         (df_rd_bb_local_compute_process_def):  Ditto.
2542         (df_rd_bb_local_compute): Ditto.
2543         (df_lr_bb_local_compute): Ditto.
2544         (df_ur_bb_local_compute): Ditto.
2545         (df_urec_bb_local_compute):  Ditto.
2546         (df_chain_create_bb):  Ditto.
2547         (df_ur_local_finalize): Removed entry.
2548         (df_urec_init): Ditto.
2549         (df_urec_local_finalize): Ditto.
2550         (df_ri_bb_compute): Added detection of last use of pseudos.
2551         * Makefile.in (df-scan.o): Updated dependencies.
2552         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
2553         * config/mips/mips.c (mips_set_live_on_entry): Added.
2554         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
2555         for target hook.
2556         * dce.c (marked_insn_p): Added code to handle artifical defs.
2557
2558 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
2559
2560         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
2561         intrinsic.
2562         (_mm_cvtsi128_si64): Likewise.
2563         (_mm_cvtsd_si64): Likewise.
2564         (_mm_cvttsd_si64): Likewise.
2565         (_mm_cvtsi64_sd): Likewise.
2566         (_mm_cvtsi64_si128): Likewise.
2567         * config/i386/mmintrin.h (_m_from_int64): Likewise.
2568         (_mm_cvtsi64_m64): Likewise.
2569         (_m_to_int64): Likewise.
2570         (_mm_cvtm64_si64): Likewise.
2571         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
2572         (_mm_cvttss_si64): Likewise.
2573         (_mm_cvtsi64_ss): Likewise.
2574         (_mm_cvtss_f32): Likewise.
2575
2576 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
2577
2578         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
2579         for pragma redefine_extname.
2580
2581 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
2582
2583         PR target/25864
2584         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
2585         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
2586         -mno-minimal-toc to previous content.
2587         (bispecs): Remove goal.
2588         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
2589         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
2590         compatibility aliases on powerpc-*-*gnu*.
2591         * config/rs6000/libgcc-ppc-glibc.ver: New file.
2592         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
2593         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
2594         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
2595         (ldblspecs): New goal.
2596         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
2597         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
2598         _df_to_tf.
2599         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
2600         L_sf_to_tf or L_df_to_tf is defined.
2601
2602 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
2603             Alan Modra  <amodra@bigpond.net.au>
2604
2605         PR target/25864
2606         * config/rs6000/linux.h (POWERPC_LINUX): Define.
2607         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
2608         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
2609         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
2610         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
2611         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
2612         (rs6000_override_options): Initialize rs6000_ieeequad.
2613         Initialize TFmode format to ibm_extended_format if not
2614         TARGET_IEEEQUAD.
2615         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
2616         ieeelongdouble.
2617         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
2618         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
2619         (function_arg_advance): IBM long double passed in two FPRs, not
2620         split.
2621         (function_arg): IBM long double passed in FPRs.
2622         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
2623         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
2624         Only multireg GPR aligned.
2625         (rs6000_init_libfuncs): Enable IBM long double functions if not
2626         IEEEQUAD.
2627         (rs6000_generate_compare): Use IBM long double compare if not
2628         TARGET_IEEEQUAD.
2629         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
2630         (TARGET_IEEEQUAD): Define.
2631         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
2632         not TARGET_IEEEQUAD.
2633         * config/rs6000/rs6000.md: Enable TFmode patterns if
2634         !TARGET_IEEEQUAD.
2635         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
2636         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
2637         and -mlong-double-128 are incompatible.
2638         * doc/invoke.texi (-mabi): Collect options together.  Add
2639         ibmlongdouble and ieeelongdouble.
2640
2641 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
2642
2643         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
2644         opaque type.
2645         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
2646         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
2647         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
2648         * rtl.h (rtunion_def): Remove rt_ptr.
2649         (X0PTR): Delete.
2650         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
2651         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
2652         * config/i386/winnt.c (i386_pe_mark_dllexport)
2653         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
2654
2655 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
2656
2657         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
2658
2659 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
2660
2661         PR other/24829
2662         PR target/24831
2663         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
2664         pthread_key_delete.  From John David Anglin.  gthrw-ify
2665         pthread_getunique_np only if it it's not a macro.  Delete
2666         UNUSED macro.
2667         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
2668         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
2669         __gthread_objc_condition_signal, __gthread_key_delete): Add
2670         "__attribute__ ((__unused__))" to unused arguments.
2671         (__gthread_recursive_mutex_init_function): Add missing return.
2672         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
2673         gthr-posix95.h: Use macro-based approach for name redirection
2674         on targets missing weakref.
2675
2676 2006-01-26  Zack Weinberg  <zackw@panix.com>
2677
2678         * genconditions.c (write_header): In generated code, #ifdef out
2679         all includes and fake declarations, except includes of bconfig.h
2680         and system.h, unless GCC_VERSION >= 3001.  Do not include
2681         gensupport.h in any case.
2682         (write_conditions): Generate a definition of struct c_test.  Add
2683         a comment to the generated #endif.
2684         (write_one_condition): Escape backslashes in string too.
2685         (write_writer): Generated code must escape backslashes and quote
2686         marks (but not newlines) in the strings it writes.
2687         * Makefile.in (build/gencondmd.o): Update dependencies.
2688
2689 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
2690
2691         PR target/25961
2692         * Makefile.in (insn-automata.o): Add header file dependencies.
2693         * genautomata.c: Add includes.
2694
2695 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
2696
2697         PR target/25961
2698         * Makefile.in (insn-automata.o): Add -Wno-error flag.
2699
2700 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
2701
2702         * configure.ac: Expect target tools paths to be passed from the toplevel
2703         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
2704         AS_SET_VAR_IF.
2705         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
2706
2707 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
2708
2709         PR c/25892
2710         * c.opt (Wpointer-sign): Init to -1.
2711         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
2712         OPT_pedantic, to 0 otherwise.
2713         * doc/invoke.texi: Update.
2714
2715 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
2716
2717         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
2718         constants provided by 80387 instructions in the destination mode.
2719
2720 2006-01-26  Richard Guenther  <rguenther@suse.de>
2721             Andrew Pinski  <pinskia@physics.uc.edu>
2722
2723         PR tree-opt/21470
2724         partial PR tree-opt/17064
2725         * tree-ssa-structalias.c (intra_create_variable_infos):
2726         Create heap variables for incoming parameters if
2727         flag_argument_noalias > 1.
2728         (find_what_p_points_to): Look through default defs of
2729         parameter decls.
2730
2731 2006-01-26  Jeff Law  <law@redhat.com>
2732
2733         PR ada/25900
2734         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
2735         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
2736         within the VR_RANGE, use the VR_RANGE as the result, not the
2737         VR_ANTI_RANGE.
2738         (adjust_range_with_scev): Reject ranges from SCEV which are out of
2739         bounds for the type.
2740
2741 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
2742
2743         * tree-ssa-alias.c (maybe_create_global_var): Change
2744         subvar walking to an assertion that we don't have subvar'd variables.
2745
2746 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
2747
2748         PR C/25861
2749         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
2750         Use a new variable, inner.  PARM_DECLs are always non-weak.
2751
2752 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
2753
2754         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
2755         --disable-checking.
2756
2757 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
2758
2759         * config/mips/mips.md (*clear_upper32): New combiner pattern.
2760
2761 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
2762
2763         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
2764         (smax_insn, smin_insn, smax_0, smin_0): New.
2765
2766 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
2767
2768         PR target/25947
2769         * config/cris/cris.c (cris_order_for_addsi3): New function.
2770         * config/cris/cris-protos.h: Prototype it.
2771         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
2772         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
2773         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
2774         (split for "op.S1 [rx=rx+i],ry (swapped)")
2775         (split for "op(s|u).S1 [rx=rx+i],ry")
2776         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
2777         Apply cris_order_for_addsi3 when generating addsi3 insns.
2778
2779 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
2780
2781         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
2782         (TREE_BLOCK): Add call to EXPR_CHECK.
2783
2784 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
2785
2786         PR 25886
2787         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
2788         * tree-pretty-print.c (dump_omp_clause): Extract from ...
2789         (dump_omp_clauses): ... here.
2790         (dump_generic_node): Handle OMP_CLAUSE.
2791         * tree.c (omp_clause_num_ops): New.
2792         (omp_clause_code_name): New.
2793         (tree_code_size): Handle OMP_CLAUSE.
2794         (tree_size): Likewise.
2795         (make_node): Document handling of OMP_CLAUSE.
2796         (tree_node_structure): Handle OMP_CLAUSE.
2797         (omp_clause_check_failed): New.
2798         (omp_clause_range_check_failed): New.
2799         (omp_clause_operand_check_failed): New.
2800         (build_omp_clause): New.
2801         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
2802         * tree.h (enum omp_clause_code): Declare.
2803         (OMP_CLAUSE_SUBCODE_CHECK): Define.
2804         (OMP_CLAUSE_RANGE_CHECK): Define.
2805         (OMP_CLAUSE_ELT_CHECK): Define.
2806         (omp_clause_check_failed): Declare.
2807         (omp_clause_operand_check_failed): Declare.
2808         (omp_clause_range_check_failed): Declare.
2809         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
2810         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
2811         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
2812         (OMP_CLAUSE_LASTPRIVATE): Likewise.
2813         (OMP_CLAUSE_IF_EXPR): Likewise.
2814         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
2815         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
2816         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
2817         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
2818         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
2819         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
2820         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
2821         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
2822         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
2823         (OMP_CLAUSE_CODE): Define.
2824         (OMP_CLAUSE_SET_CODE): Define.
2825         (OMP_CLAUSE_CODE): Define.
2826         (OMP_CLAUSE_OPERAND): Define.
2827         (struct tree_omp_clause): Declare.
2828         (union tree_node): Add field 'omp_clause'.
2829         * treestruct.def (TS_OMP_CLAUSE): Define.
2830         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
2831         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
2832         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
2833         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
2834         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
2835         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
2836         (OMP_CLAUSE): Define.
2837         * print-tree.c (print_node): Handle OMP_CLAUSE.
2838         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
2839         * c-typeck.c: Likewise.
2840         * gimplify.c: Likewise.
2841         * c-omp.c: Likewise.
2842         * tree-nested.c: Likewise.
2843         * tree-inline.c: Likewise.
2844         * c-parser.c: Likewise.
2845         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
2846         clauses.
2847
2848 2006-01-25  Roger Sayle  <roger@eyesopen.com>
2849
2850         PR rtl-optimization/25703
2851         * combine.c (try_combine): Handle zero_extract and strict_low_part
2852         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
2853
2854 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
2855
2856         * global.c: Fix comment typos.
2857
2858 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
2859
2860         PR target/25758
2861         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
2862         Use output_addr_const instead of assemble_name.
2863
2864 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
2865
2866         * Makefile.in (sched-vis.o): Update dependencies.
2867         * haifa-sched.c (sched_finish): Clear current_sched_info.
2868         * cfg.c (dump_bb_info): New, split from dump_flow_info.
2869         (dump_flow_info): Call it.
2870         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
2871         a slim RTL dump.
2872         * basic-block.h (dump_bb_info): Declare.
2873         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
2874         option, and apply options only for dump files whose TDF_RTL,
2875         TDF_TREE, or TDF_IPA bits match.
2876         * rtl.h: Declare new functions exported from sched-vis.c.
2877         * sched-vis.c: Enable also if scheduling is not used.
2878         (print_value): Print the mode of registers if not inside scheduling.
2879         (print_insn): Make it work outside the scheduler.  Beautify the output
2880         a bit.
2881         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
2882
2883 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
2884
2885         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
2886         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
2887         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
2888         depending on the value of CONSTANT_POOL_ADDRESS_P.
2889         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
2890         SYMBOL_REF_DECL.
2891         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
2892         rather than SYMBOL_REF_DECL.
2893         (rtx_constant_pool): Remove const_rtx_sym_htab.
2894         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
2895         (init_varasm_status): Don't initialize const_rtx_sym_htab.
2896         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
2897         Remove handling of const_rtx_sym_htab.
2898         (find_pool_constant): Delete.
2899         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
2900         rather than find_pool_constant.
2901         (get_pool_constant_for_function): Delete.
2902         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
2903         find_pool_constant.
2904         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
2905         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
2906         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
2907         (SYMBOL_REF_CONSTANT): New macro.
2908         (get_pool_constant_for_function): Delete.
2909         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
2910         rather than SYMBOL_REF_DECL.
2911         (i386_pe_mark_dllimport): Likewise.
2912         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
2913         rather than SYMBOL_REF_DECL.
2914         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2915         (machopic_indirect_call_target): Likewise.
2916
2917 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
2918
2919         * flow.c (delete_noop_moves): Add missing EOL to dump message.
2920
2921 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
2922
2923         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
2924
2925 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2926
2927         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
2928
2929 2006-01-24  David Daney  <ddaney@avtrex.com>
2930
2931         PR java/25816
2932         * configure.ac (enable_tls): New enable option.
2933         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
2934         * configure: Regenerate.
2935         * doc/install.texi (--enable-tls): Document new option.
2936         (--disable-tls): Ditto.
2937
2938 2006-01-24  Richard Henderson  <rth@redehat.com>
2939
2940         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
2941         * alias.c (true_dependence): Respect it.
2942         (canon_true_dependence, write_dependence_p): Likewise.
2943         * builtins.c (get_builtin_sync_mem): Set it.
2944
2945 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
2946
2947         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
2948         efficient way.
2949
2950 2006-01-24  DJ Delorie  <dj@redhat.com>
2951
2952         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
2953         for storing constants in single-bit bitfields.
2954
2955 2006-01-25  Ben Elliston  <bje@au.ibm.com>
2956
2957         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
2958
2959 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
2960
2961         PR tree-opt/25860
2962         * tree-ssa-pre.c (phi_translate): Return NULL
2963         for AGGREGATE_TYPE's.
2964
2965 2006-01-24  Zack Weinberg  <zackw@panix.com>
2966
2967         * genautomata.c (process_state_for_insn_equiv_partition):
2968         Use xcalloc for insn_arcs_array.
2969         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
2970         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
2971
2972 2006-01-24  Richard Henderson  <rth@redhat.com>
2973
2974         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
2975         update all callers.
2976
2977 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
2978
2979         PR rtl-optimization/25890
2980         PR rtl-optimization/25905
2981         * combine.c (expand_compound_operation, expand_field_assignment):
2982         Fail if the bitfield's final position is out of bounds.
2983
2984 2006-01-24  Ian Lance Taylor  <ian@airs.com>
2985
2986         PR middle-end/25930
2987         * cgraphunit.c (cgraph_output_in_order): Don't clear
2988         cgraph_asm_nodes until after asm strings have been output.
2989
2990 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
2991
2992         * fix-header.c (read_scan_file): Add new parameter imultilib when
2993         calling register_include_chains.
2994
2995 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
2996
2997         * omp-low.c: Update documentation.
2998
2999 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
3000             Daniel Berlin  <dberlin@dberlin.org>
3001
3002         PR tree-opt/25315
3003         PR tree-opt/25857
3004         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
3005         return from the function.
3006
3007 2006-01-22  Zack Weinberg  <zackw@panix.com>
3008
3009         * rtl.def (match_code): Add second argument.
3010         * genpreds.c (write_extract_subexp): New function.
3011         (write_match_code): Add path argument.  Use write_extract_subexp.
3012         (write_predicate_expr): Pass path to write_match_code.
3013         (mark_mode_tests): MATCH_CODE applied to a subexpression does
3014         not perform a mode test.
3015         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
3016         a subexpression does not constrain the top-level code set.
3017         * read-rtl.c (read_rtx_variadic): New function.
3018         (read_rtx_1): Use it; allow AND and IOR to be variadic.
3019         * doc/md.texi: Document new notation.
3020         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
3021         (cmpsi_operand): ... here, using new notation.
3022
3023 2006-01-22  Zack Weinberg  <zackw@panix.com>
3024
3025         * varray.c: Remove GENERATOR_FILE #ifdefs.
3026
3027 2006-01-22  Zack Weinberg  <zackw@panix.com>
3028
3029         * genautomata.c (output_reserved_units_table): Emit nothing if
3030         description->query_units_num is zero.  Remove extra blank line.
3031         (output_cpu_unit_reservation_p): Short circuit
3032         if description->query_units_num is zero.
3033
3034 2006-01-22  Zack Weinberg  <zackw@panix.com>
3035
3036         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
3037         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
3038         nor any of the random handful of variables that used to be necessary
3039         when this program was linked with rtlanal.o.  Prune set of forward
3040         function declarations.
3041         (struct attr_desc): Remove static_p field.
3042         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
3043         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
3044         (attr_string): Do not read the character one past the length of
3045         the string.
3046         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
3047         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
3048         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
3049         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
3050         (make_automaton_attrs): New.
3051         (main): Do not call into genautomata.  Call local gen_bypass
3052         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
3053         Remove special case for insn_alts.
3054         * genautomata.c: Include gensupport.h; not genattrtab.h nor
3055         varray.h (leftover from previous change).  Prune set of forward
3056         function declarations.  Remove state_alts fields from all
3057         structures.  Remove state_alts_table from struct automaton.
3058         Make everything except main static.  Do not maintain num_dfa_decls.
3059         Do not maintain state_alts fields of various structures.
3060         (process_decls): Don't validate condexp for dm_insn_reserv decls.
3061         (add_arc): Remove state_alts argument.  All callers updated.
3062         (output_reserved_units_table): Emit #ifdef here...
3063         (output_tables): ...not here.  Don't generate state_alts tables.
3064         (expand_automata): Don't generate attributes.
3065         (write_automata): Don't generate state_alts functions.
3066         (main): New function.
3067         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
3068         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
3069         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
3070         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
3071         (BYPASS_P_FUNC_NAME, output_state_alts_table)
3072         (output_automata_list_state_alts_code, output_internal_state_alts_func)
3073         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
3074         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
3075         Delete.
3076         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
3077         * genattrtab.h: Delete file.
3078         * Makefile.in (OBJS-common): Add insn-automata.o.
3079         (insn-automata.o): New rule.
3080         (simple_generated_c): Add insn-automata.c.
3081         (build/genattrtab.o, build/genautomata.o): Update dependencies.
3082         (genprogmd): Add automata.
3083         (build/genattrtab): Needs no extra objects nor libraries.
3084         (build/genautomata): Needs build/vec.o and -lm.
3085
3086 2006-01-22  Zack Weinberg  <zackw@panix.com>
3087
3088         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
3089         (output_dfa_max_issue_rate, locked_states_num): Delete.
3090         (struct automaton): Add locked_states field.
3091         (output_dead_lock_vect): Save number of locked states in
3092         automaton->locked_states.  If it is zero, don't print anything.
3093         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
3094         (output_internal_dead_lock_func): Only test the dead_lock_vect
3095         for automata that have locked states.
3096         (output_statistics): Always print the number of locked states for
3097         each automaton.  Calculate total number of locked states here.
3098         (write_automata): Don't call output_dfa_max_issue_rate.
3099         * genattrtab.c: Define length_unit_log as a const variable.
3100         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
3101         max_insn_queue_index const.
3102         * final.c (length_unit_log): Declare const.
3103         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
3104
3105 2006-01-22  Zack Weinberg  <zackw@panix.com>
3106
3107         * genautomata.c:  Include vec.h, not varray.h.
3108         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
3109         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
3110         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
3111         VEC_* macros operating on appropriately typed vectors, or to
3112         malloced arrays when the size is known in advance.  Const-ify
3113         many char* variables and function arguments.  No functional changes.
3114         * Makefile.in (build/varray.o): Delete rule.
3115         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
3116         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
3117
3118 2006-01-22  Zack Weinberg  <zackw@panix.com>
3119
3120         * gensupport.c: Define get_insn_name and record_insn_name here.
3121         (read_md_rtx): Call record_insn_name as appropriate.
3122         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
3123         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
3124         * genpreds.c, genrecog.c: Don't define get_insn_name nor
3125         record_insn_name.
3126         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
3127         (BUILD_VARRAY): Delete.
3128         (genprognormal): Rename genprogmd.  Fold in all programs from
3129         genprognoprint; also attrtab.
3130         (build/genattrtab): Just mention genautomata.o and varray.o.
3131         Reorganize a bit, add comments to make the categories clearer.
3132
3133 2006-01-22  Zack Weinberg  <zackw@panix.com>
3134
3135         * genconditions.c (condition_table, add_condition): Delete.
3136         (write_conditions): Don't emit n_insn_conditions nor
3137         insn_elision_unavailable.  Issue the gcc version #ifdef here,
3138         inside the table, with no #else clause ...
3139         (write_header): ...not here.
3140         (write_writer): New function.
3141         (main): Don't initialize condition_table.  Use add_c_test.
3142         Call write_writer.
3143         * gensupport.c (init_md_reader_args_cb): Handle multiple input
3144         files on the command line.
3145         (maybe_eval_c_test): Don't check insn_elision_unavailable.
3146         Return -1 if there is no entry in the table, don't abort.
3147         (add_c_test, traverse_c_tests): New functions.
3148         * gensupport.h (insn_elision_unavailable, insn_conditions)
3149         (n_insn_conditions): Delete declarations.
3150         (add_c_test, traverse_c_tests): Declare.
3151         * read-rtl.c: Include gensupport.h.
3152         (read_conditions): New function.
3153         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
3154         (read_rtx_1): If we get EOF when we were looking for an initial
3155         open paren, return 0.  Call read_conditions when appropriate.
3156         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
3157         dummy-conditions.o.  Eliminate references to insn-conditions.o,
3158         or change them to build/gencondmd.o, as appropriate.  Remove
3159         insn-constants.h from $(simple_generated_h) and insn-conditions.c
3160         from $(simple_generated_c).  For all files remaining in those
3161         two lists, add insn-conditions.md to the generator command line.
3162         Give insn-constants.h/s-constants their own rules.  Add rules
3163         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
3164         (build/read-rtl.o): Depend on gensupport.h.
3165         (genprognormal): Include preds.
3166         (genprogearly): Rename genprognoprint; only difference is now that
3167         they don't link with $(BUILD_PRINT).
3168         * dummy-conditions.c: Delete.
3169
3170 2006-01-22  Zack Weinberg  <zackw@panix.com>
3171
3172         * genextract.c: Don't include insn-config.h.  Do include vec.h.
3173         Declare vectors of int, char, and locstr.
3174         (locstr): New typedef.
3175         (struct extraction): Make all array fields into bare pointers.
3176         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
3177         (insn_code_number): Delete.
3178         (accum_extract): New struct.
3179         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
3180         (gen_insn): Take insn_code_number as an argument.  Use an
3181         accum_extract structure instead of loading data directly into
3182         a struct extraction, and having to know how big it might get.
3183         (walk_rtx): Operate entirely on an accum_extract structure.
3184         (print_path): Avoid unnecessary use of printf.
3185         (print_header): New function, split out of main.  Distinguish
3186         more carefully between an unrecognizable insn and an insn that
3187         has the code number of a define_expand.
3188         (main): Pass insn_code_number to gen_insn.  Call print_header
3189         only after parsing.  Avoid unnecessary use of printf.
3190         * Makefile.in (build/vec.o): New rule.
3191         (build/genextract): Depend on build/vec.o.
3192         (build/genextract.o): Don't depend on insn-config.h.
3193
3194 2006-01-22  Zack Weinberg  <zackw@panix.com>
3195
3196         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
3197         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
3198         practical.  Eliminate per-generator-program link rules.
3199
3200 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
3201
3202         PR middle-end/24437
3203         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
3204         with a call expr to ...
3205         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
3206
3207 2006-01-23  Richard Guenther  <rguenther@suse.de>
3208
3209         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
3210         before make_edge with conditional EDGE_TRUE_VALUE.
3211
3212 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
3213         Jan Hubicka  <jh@suse.cz>
3214         Richard Guenther  <rguenther@suse.de>
3215
3216         PR rtl-optimization/25654
3217         * cfgexpand.c (aggregate_contains_union_type): New function.
3218         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
3219         for structure variables that contain a union type.
3220
3221 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
3222
3223         * gengtype.c (new_structure): Return the structure.
3224         (create_option): Add an extra "next" argument.
3225         (create_field): New function.
3226         (adjust_field_rtx_def): Use create_option and create_field.
3227         Remove a now-unnecessary call to find_structure.
3228         (adjust_field_tree_def): Likewise.
3229         (note_yacc_type): Remove an unnecessary call to find_structure.
3230         * gengtype.h (new_structure): Return the structure.
3231         (create_option): Add an extra argument.
3232         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
3233         (option): Adjust calls to create_option.
3234
3235 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
3236
3237         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
3238
3239 2006-01-22  Paul Brook  <paul@codesourcery.com>
3240         Peter Barada  <peter@the-baradas.com>
3241
3242         * config/m68k/m68k.md: Add Coldfire FPU support.
3243         Define FP mode macro and associated attributes.
3244         Use it for float mode patterns.
3245         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
3246         (LIBCALL_VALUE): Use m68k_libcall_value.
3247         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
3248         (m68k_function_value): Ditto.
3249         (emit_move_sequence): Ditto.
3250         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
3251         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
3252         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
3253         (MULTILIB_EXCEPTIONS): Ditto.
3254         * config/m68k/m68k.opt: Add mcfv4e.
3255         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
3256         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
3257         (m68k_output_function_prologue): Save ColdFire FPU registers.
3258         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
3259         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
3260         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
3261         ColdFire FPU registers.
3262         (m68k_libcall_value, m68k_function_value): New functions.
3263         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
3264         (LIBCALL_VALUE): Use m68k_libcall_value.
3265         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
3266         (MASK_COLDFIRE): Add MASK_CFV4E.
3267         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
3268         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
3269         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
3270         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
3271         (GO_IF_LEGITIMATE_ADDRESS): Use it.
3272         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
3273         * doc/invoke.tex: Document -mcfv4e on m68k.
3274
3275 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
3276
3277         * doc/contribute.texi: Change CVS to SVN and update the corresponding
3278         URL.
3279
3280 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3281
3282         PR c++/16190
3283         * c-opts.c (c_common_handle_option): Don't include
3284         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
3285         * doc/invoke.texi (C++ Dialect Options): Document that
3286         -Wnon-virtual-dtor is no longer included in -Wall.
3287
3288 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
3289
3290         * gcov.c (print_version), gcov-dump.c (print_version),
3291         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
3292         dates.
3293
3294 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
3295
3296         * df-scan.c (problem_SCAN): Added NULL reset function.
3297         (df_scan_reset_blocks): Added code to call reset block function
3298         (df_bb_refs_delete) Fixed comment.
3299         (df_insn_refs_delete): Made tolerant of deleting non existent info
3300         for dataflow problems that need to be reset.
3301         * df-core.c (df_set_blocks): Ditto.
3302         * df.h (struct df_problem): Added reset_fun.
3303         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
3304         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
3305         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
3306         functions to clear out all references to def-use or use-def chains.
3307
3308 2006-01-21  Ben Elliston  <bje@au.ibm.com>
3309
3310         * varasm.c (assemble_real): Initialise data array.
3311
3312 2006-01-20  Paul Brook  <paul@codesourcery.com>
3313
3314         Merge from csl-arm-branch.
3315         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
3316         * config/arm/arm.md (movdi): Force operands[1] to a register
3317         if we have a non-register source.
3318         (*arm_movdi, *movdf_soft_insn): Require that one of the
3319         operands be a register.
3320         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
3321         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
3322
3323 2006-01-20  DJ Delorie  <dj@redhat.com>
3324
3325         * varasm.c (initialize_constant_valid_p): Allow pointers
3326         initialized from integer constants of lesser precision.
3327         (output_constant): Allow non-int-sized pointer modes to be
3328         initialized from integer constants.
3329
3330 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
3331
3332         PR libstdc++/25524
3333         * cppdefault.h (struct default_include): Add multilib flag.
3334         * cppdefault.c (cpp_include_defaults): Set it.
3335         * c.opt (-imultilib): New option.
3336         * c-opts.c (imultilib): New.
3337         (c_common_handle_option): Handle -imultilib.
3338         (c_common_post_options): Likewise.
3339         * c-incpath.c (add_standard_paths, register_include_chains):
3340         Likewise.
3341         * c-incpath.h (register_include_chains): Add extra parameter.
3342         * gcc.c (do_spec_1): Generate -imultilib option.
3343         (The Specs Language): Update %I description.
3344         (process_command): Update copyright notice.
3345         * doc/cppopts.texi (-imultilib): Document.
3346         * doc/invoke.texi (-imultilib): Include in option summary.
3347         (%I): Update specs documentation.
3348
3349 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
3350
3351         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
3352
3353 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
3354
3355         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
3356         label numbers.
3357
3358 2006-01-20  Richard Guenther  <rguenther@suse.de>
3359         Steven Bosscher <stevenb.gcc@gmail.com>
3360
3361         PR rtl-optimization/24626
3362         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
3363         EDGE_TRUE_VALUE if in RTL mode.
3364
3365         Revert
3366         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
3367         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
3368
3369 2006-01-20  Dirk Mueller  <dmueller@suse.com>
3370
3371         PR c++/5520
3372         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
3373         instead of a special NOP marker.
3374         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
3375         NOP marker handling.
3376         * c-common.h (empty_body_warning): Add forward declaration.
3377         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
3378         Now uses IS_EMPTY_STMT() instead of special NOP markers.
3379
3380 2006-01-20  Paul Brook  <paul@codesourcery.com>
3381
3382         * Makefile.in (lang_checks): Keep going if mkdir fails.
3383
3384 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3385
3386         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
3387         be able to clean out basic block when not necessary.
3388         (df_scan_free): Fixed to properly delete information if df is
3389         unused before calling df_finish.
3390         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
3391         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
3392         or comment typos.
3393         (df_bb_refs_delete): New function.
3394         (df_refs_delete): Moved per block code to df_bb_refs_delete.
3395         * df-core.c (df_set_blocks): Added code to properly clean out
3396         unused blocks if they are not part of the blocks to consider.
3397         Added additional null check.
3398         (df_compact_blocks): Added basic block parameter to free_bb_fun to
3399         be able to clean out basic block when not necessary
3400         * df.h (df_free_bb_function): Ditto.
3401         (df_bb_refs_delete): New function.
3402         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
3403         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
3404         basic block parameter to be able to clean out basic block when not
3405         necessary.
3406         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
3407         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):