OSDN Git Service

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