OSDN Git Service

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