OSDN Git Service

9d30cd3246779e2dfdf150cbd6d790f66c47463b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
2
3         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
4         nlabel == JUMP_LABEL (jump).
5
6 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7
8         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
9         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
10         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
11         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
12
13 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
14
15         PR c/14411
16         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
17         * c-common.c (handle_returns_twice): New function.
18         (c_common_attribute_table): Declare eturns_twice' attribute.
19         * doc/extend.texi: Document eturns_twice' attribute.
20         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
21         (struct tree_decl): Add returns_twice_flag.
22
23 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
24
25         * tree-ssa-phiopt.c: Fix a comment typo.
26
27         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
28         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
29         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
30         copyright.
31
32 2005-03-08  Richard Henderson  <rth@redhat.com>
33
34         * config/alpha/alpha.c (code_for_builtin): Replace special-case
35         builtin codes with ctzdi2, clzdi2, popcountdi2.
36         (struct alpha_builtin_def): Add is_const.
37         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
38         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
39         (alpha_init_builtins): Init them.  Set nothrow and const attributes
40         on builtins.
41         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, 
42         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, 
43         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, 
44         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
45         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
46         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
47         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
48         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
49         (TARGET_FOLD_BUILTIN): New.
50         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
51         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
52         (ffsdi2): Use ctz.
53         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
54
55 2005-03-08  Ira Rosen  <irar@il.ibm.com>
56
57         PR tree-optimization/20122
58         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
59         condition of access function instead of base.
60
61 2005-03-07  Jeff Law  <law@redhat.com>
62             Steven Bosscher  <stevenb@suse.de>
63
64         * tree-cfg.c (find_taken_edge_computed_goto): New function.
65         (find_taken_edge): Call find_taken_edge_computed_goto as
66         appropriate.  Allow any gimple invariant rather than just
67         INTEGER_CST for VAL.
68         (cleanup_control_flow): Cleanup a computed goto which has turned
69         into a simple goto.
70         (tree_merge_blocks): If block B has any forced labels, move
71         them to the start of block A.
72         * tree-ssa-dom.c (thread_across_edge): Allow threading across
73         computed gotos as well.
74         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
75         removal of unnecessary computed gotos too.
76         (lookup_redirection_data): Fix type of INSERT argument.  Callers
77         updated.
78
79 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
80
81         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
82         Remove trailing spaces.
83
84         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
85         unshare_all_trees): Make them static.
86         * tree-gimple.h: Remove the corresponding prototypes.
87
88         * diagnostic.h: Remove unused prototype
89         debug_output_buffer.
90         * modulo-sched.c: Remove unused prototype
91         set_row_column_for_ps.
92
93         * tree-ssa-phiopt.c (tree_ssa_phiopt,
94         replace_phi_edge_with_variable): Remove unused variable i.
95
96 2005-03-07  Per Bothner  <per@bothner.com>
97
98         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
99
100 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
101         
102         PR tree-opt/17671
103         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
104         bbs on the COND_EXPR instead of the PHI_NODEs.
105         (candidate_bb_for_phi_optimization): Remove.
106         (replace_phi_with_stmt): Rename to ...
107         (replace_phi_edge_with_variable): this and change so that we
108         replace the phi argument instead of removing the PHI.
109         (conditional_replacement): Change so we deal with PHI with more
110         than two arguments.
111         (value_replacement): Likewise.
112         (abs_replacement): Likewise.
113
114 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
115
116         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
117         output_e500_flip_gt_bit.
118
119         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
120         as bit 31.
121         (rs6000_generate_compare): Fix logic to look at the correct bits.
122         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
123         Look at GT bit.
124         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
125         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
126         gen_move_from_CR_gt_bit.
127
128         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
129         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
130         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
131
132         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
133         (E500_CR_IOR_COMPARE): New constant.
134
135 2005-03-08  Earl Chew <earl_chew@agilent.com>
136             David Billinghurst <David.Billinghurst@riotinto.com>
137
138         * config/i386/host-cygwin.c: New file to support precompiled
139         headers on cygwin
140         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
141         * config.host: Use above files for cygwin host.
142
143 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
144
145         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
146         ordering ops from earlier change.
147
148 2005-03-07  Per Bothner  <per@bothner.com>
149
150         Various fixes to allow us to again build if --enable-mapped-location:
151         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
152         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
153         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
154         local variable loc. Change logic appropriately.
155         * tree-vect-transform.c (vect_finish_stmt_generation): Use
156         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.    
157         * c-parser.c (c_parser_for_statement): Initialize loc variable.
158         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
159         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
160
161 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
162
163         PR rtl-optimization/19683
164         * reload1.c (choose_reload_regs): Pass the number of bits, not the
165         number of bytes, to smallest_int_for_mode.  Fix arguments to
166         REG_CANNOT_CHANGE_MODE_P.
167
168 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
169
170         * reorg.c (relax_delay_slots): Check that the jump is
171         conditional before trying to invert it.
172
173 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
174
175         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
176         Make them static.
177
178         * calls (stack_arg_under_construction): Make it static.
179
180         * flow.c (regs_live_at_setjmp): Make it static.
181         * flow.h: Remove the corresponding prototype.
182
183         * reload1.c (reload_startobj, reload_firstobj,
184         something_needs_operands_changed, reload_inherited,
185         reload_inheritance_insn, reload_override_in,
186         reload_spill_index): Make them static.
187
188         * recog.c (verify_changes): Make it static.
189         * recog.h: Remove the corresponding prototype.
190
191         * cfgbuild.c (find_sub_basic_blocks): Remove.
192         * basic-block.h: Remove the corresponding prototype.
193         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
194         in comments.
195         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
196
197         * tree-ssa-operands.c (check_build_stmt): Remove.
198
199         * stor-layout.c (set_alignment): Remove.
200         * tree.h: Remove the corresponding prototype.
201
202         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
203
204         * tree-ssa-dce.c (control_dependence_map,
205         visited_control_parents): Make them static.
206
207         * cfghooks.c (verify_flow_info): Remove local variable
208         num_bb_notes.
209
210         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
211         last_bb_seen.
212
213         * loop-unswitch.c (unswitch_loop): Remove local variable src.
214
215 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
216
217         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
218
219 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
220
221         * config/ia64/hpux.h (LINK_SPEC): Add -z.
222         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
223         PARALLEL for an empty structure.
224
225 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
226
227         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
228
229         * fold-const.c (fold_binary): Unroll the very first "for"
230         loop.
231
232 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
233
234         * config/rs6000/predicates.md (branch_comparison_operator): Remove
235         redundant match_code test.
236         (scc_comparison_operator): Swap match_operand and match_code
237         tests.
238         (branch_positive_comparison_operator): Same.
239         (trap_comparison_operator): Use comparison_operator and swap with
240         match_code test.
241
242 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
243
244         PR target/20288
245         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
246         (out_movhi_r_mr): Read low byte of volatile MEM first.
247         (out_movhi_mr_r): Write high byte of volatile MEM first.
248
249 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
250
251         * cselib.c (reg_values, reg_values_size): Make them static.
252
253         * cse.c (cse_reg_info_table): Make it static.
254
255         * fold-const.c (fold_unary): Use build1 instead of copy_node.
256
257 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
258
259         * cse.c (find_best_addr): Use canon_for_address.
260
261 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
262
263         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
264         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
265         SUBREG and MEM, respectively.
266
267         * fold-const.c (fold_binary): Use code instead of t.
268
269         * fold-const.c (optimize_minmax_comparison): Take decomposed
270         arguments code, type, op0, and op1 instead of t.
271         (fold_binary): Update a call to optimize_minmax_comparison.
272
273         * fold-const.c (fold_range_test): Take decomposed arguments
274         code, type, op0, and op1 instead of t.
275         (fold_binary): Update a call to fold_range_test.
276
277         * fold-const.c (fold_binary_op_with_conditional_arg): Take
278         decomposed arguments code, type, op0, and op1 instead of t.
279         (fold_binary): Update a call to fold_range_test.
280
281 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
282
283         * fold-const.c (fold_binary): Avoid directly using the original
284         expression t as much as possible.
285
286 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
287
288         * c-semantics.c (build_stmt): Use TYPE_P instead of
289         IS_NON_TYPE_CODE_CLASS.
290         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
291         (NON_TYPE_CHECK): Use TYPE_P instead of
292         IS_NON_TYPE_CODE_CLASS.
293
294         * fold-const.c (fold): Remove handling of binary expressions.
295
296 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
297
298         * doc/c-tree.texi: Wrap comments in @r{}.
299         * doc/cpp.texi: Likewise.
300         * doc/cppinternals.texi: Likewise.
301         * doc/extend.texi: Likewise.
302         * doc/md.texi: Likewise.
303         * doc/objc.texi: Likewise.
304         * doc/sourcebuild.texi: Likewise.
305         * doc/tm.texi: Likewise.
306         * doc/tree-ssa.texi
307
308 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
309
310         * predict.c (apply_return_prediction): Standardize PHI chain
311         walking.
312         * tree-ssa.c (ssa_redirect_edge): Likewise.
313
314         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
315         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
316         Update copyright.
317
318         * tree-phinodes.c (remove_phi_node): Drop the last argument.
319         * tree-flow.h: Adjust the prototype for remove_phi_node.
320         * lambda-code.c (perfect_nestify): Adjust a call to
321         remove_phi_node.
322         * tree-cfg.c
323         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
324         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
325         Likewise.
326         * tree-ssa-dce.c (remove_dead_phis): Likewise.
327         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
328         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
329         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
330
331         * combine.c (simplify_and_const_int): Use gen_int_mode instead
332         of GEN_INT (trunc_int_for_mode (...)).
333         * loop-iv.c (iv_number_of_iterations): Likewise.
334         * postreload.c (reload_cse_move2add): Likewise.
335         * simplify-rtx.c (simplify_const_unary_operation,
336         simplify_const_binary_operation): Likewise.
337         * stor-layout.c (get_mode_bounds): Likewise.
338
339         * fold-const.c (fold_binary): New.
340         (fold): Call fold_binary on binary expressions.
341
342 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
343
344         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
345         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
346         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
347         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
348         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
349
350 2005-03-04  Devang Patel  <dpatel@apple.com>
351         
352         PR tree-optimization/18815
353         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
354         loops with zero exit edges.
355
356 2005-03-04  Devang Patel  <dpatel@apple.com>
357
358         * doc/invoke.texi: Remove reference to webpage that does not exist.
359         
360 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
361             Joseph S. Myers  <joseph@codesourcery.com>
362
363         PR c++/19797
364         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
365         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
366         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
367         * pa.c (get_plabel): Change argument to symbol_ref.  Call
368         maybe_get_identifier instead of get_identifier.
369         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
370         (struct deferred_plabel): Replace name field with symbol field.
371         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
372         ASM_OUTPUT_EXTERNAL_REAL is defined.
373         (output_global_address): Use output_addr_const for output of all
374         symbol_refs.
375         (output_deferred_plabels): Use symbol_ref instead of name for address
376         output.
377         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
378         ASM_OUTPUT_SYMBOL_REF): New macros.
379         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
380         comment.
381         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
382         label.
383
384 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
385
386         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
387         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
388
389 2005-03-04  Jeff Law  <law@redhat.com>
390
391         * basic-block.h (rediscover_loops_after_threading): Declare.
392         * tree-ssa-dom.c: Include cfgloop.h.
393         (tree_ssa_dominator_optimize): Discover loops and some basic
394         properties.  Remove forwarder blocks recreated by loop header
395         canonicalization.  Also mark backedges in the CFG.
396         * tree-ssa-threadupdate.c: Include cfgloop.h
397         (rediscover_loops_after_threading): Define.
398         (struct local_info): New field, JUMP_THREADED.
399         (prune_undesirable_thread_requests): New function.
400         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
401         then record that fact for the callers of redirct_edges.
402         (thread_block): If BB has incoming backedges, then call
403         prune_undesirable_thraed_requests.    Note when we are
404         going to have to rediscover loop information.  Return a
405         boolean indicating if any jumps were threaded.
406         (thread_through_all_blocks): Bubble up boolean indicating
407         if any jumps were threaded.
408         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
409         (tree-ssa-threadupdate.o): Similarly.
410
411 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
412
413         * fold-const.c (fold_ternary): Unroll the "for" loop to
414         extract operands.  
415
416 2005-03-04  Andrew Haley  <aph@redhat.com>
417
418         * unwind-dw2-fde-glibc.c (struct
419         unw_eh_callback_data.check_cache): New field.
420         (frame_hdr_cache): New.
421         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
422         Cache frame header info.
423
424 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
425
426         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
427         (print_c_condition): Declare.
428         * read-rtl.c (ptr_loc): New structure.
429         (ptr_locs, ptr_loc_obstack, joined_conditions)
430         (joined_conditions_obstack): New variables.
431         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
432         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
433         (join_c_conditions, print_c_condition): New functions.
434         (apply_macro_to_string): Associate the new string with the same
435         source location as the old one.
436         (add_condition_to_string): Use join_c_conditions.
437         (read_string): Use set_rtx_ptr_loc to record a filename and line
438         number for the string.
439         (read_rtx): Initialize the new variables above.
440         * genattrtab.c (write_test_expr, write_attr_value): Use
441         print_c_condition.
442         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
443         comment above the GCC_VERSION check.
444         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
445         Inline the definition of MAYBE_EVAL.
446         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
447         * genoutput.c (process_template): Likewise.
448         * genpreds.c (write_predicate_subfunction): Likewise.
449         (write_predicate_expr): Use print_c_condition.
450         * genrecog.c (write_cond): Likewise.
451         * gensupport.c (process_rtx): Use join_c_conditions to join the
452         conditions of a define_insn_and_split.  Record a source location
453         for the string after the "&&".
454         (alter_test_for_insn): Use join_c_conditions.
455
456 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
457
458         Revert for now:
459         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
460         PR tree-optimization/15784
461         * fold-const.c (fold): Fold ~A + 1 to -1.  Fold -A - 1
462         and -1 - A to ~A.
463
464 2005-03-04  Ben Elliston  <bje@au.ibm.com>
465
466         * gcc.c (option_map): Add --coverage.
467         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
468         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
469         * config/darwin.h: Pass -lgcov for `coverage'.
470         * doc/invoke.texi (Debugging Options): Document --coverage.
471
472 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
473
474         * gcse.c (bypass_block): Use find_edge wherever possible.
475
476 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
477
478         Fix PR debug/20253
479         
480         * c-opts.c (c_common_parse_file): Call start_source_file
481         and end_source_file at the approriate times.
482
483         * dwarf2out.c (dwarf2out_finish): Don't auto-end
484         the main file, it will be done for us now.
485         
486 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
487
488         * fold-const.c (fold_ternary): New.
489         (fold): Call fold_ternary on ternary expressions.  Remove
490         handling of ternary expressions.
491
492 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
493
494         PR tree-optimization/15784
495         * fold-const.c (fold): Fold ~A + 1 to -1.  Fold -A - 1
496         and -1 - A to ~A.
497
498 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
499
500         * config/rs6000/predicates.md (branch_comparison_operator):
501         Convert from C block to conditional format.
502
503 2005-03-03  Jan Hubicka  <jh@suse.cz>
504
505         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
506         and non-constant public variables.
507
508 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
509
510         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
511         with LABEL_EXPR.
512
513         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
514         EDGE_I.
515
516         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
517         calls to release_ssa_name and release_phi_node.
518
519         * fold-const.c (fold): Remove handling of unary expressions.
520
521         * fold-const.c (fold_unary): Avoid directly using the original
522         expression t as much as possible.
523
524 2005-03-03  Roger Sayle  <roger@eyesopen.com>
525             Andrew Pinski  <pinskia@physics.uc.edu>
526
527         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
528         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
529
530 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
531
532         Describe special registers SRP and MOF as allocatable registers.
533         * config/cris/cris.c (cris_md_asm_clobbers): New function.
534         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
535         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
536         TARGET_HAS_MUL_INSNS.
537         (cris_print_operand) <case 'd'>: New case.
538         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
539         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
540         define.
541         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
542         (REG_ALLOC_ORDER): Update for MOF.
543         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
544         SPECIAL_REGS.
545         (GENERAL_REGS): No longer a define of ALL_REGS.
546         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
547         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
548         Adjust accordingly.
549         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
550         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
551         (SECONDARY_RELOAD_CLASS): Define.
552         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
553         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
554         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
555         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
556         (REGISTER_MOVE_COST): Define.
557         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
558         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
559         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
560         (CRIS_MOF_REGNUM): New define_constants.
561         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
562         special registers.
563         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
564         New patterns.
565         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
566         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
567         Adjust for MOF being properly described as a register.
568         (indir_to_reg_split): Name this split.  Conditionalize on the
569         destination register being a general register.
570         (movei): Conditionalize on on operands 0 and 1 having the same
571         register class.
572
573 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
574
575         PR target/20277
576         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
577         -mcpu to override any other explicitly given flags.
578
579 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
580
581         * recog.c (verify_changes, confirm_change_group): New functions,
582         broken out of apply_change_group.
583         (apply_change_group): Use them.
584         * recog.h (verify_change, confirm_change_group): Declare.
585         * rtl.h (redirect_jump_2): Declare.
586         * jump.c (redirect_exp, invert_exp): Delete.
587         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
588         (redirect_jump_2): New function, broken out of redirect_jump.
589         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
590         (invert_jump): Use invert_jump_1 and redirect_jump_2.
591         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
592
593 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
594
595         * varasm.c (named_section): Use xstrdup rather than doing it by
596         hand.
597
598         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
599
600 2005-03-02  Devang Patel  <dpatel@apple.com>
601         
602         Undo PR tree-optimization/18815 fix.
603         
604 2005-03-02  Devang Patel  <dpatel@apple.com>
605
606         PR tree-optimization/18815
607         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
608         loops with zero exit edges.
609         
610 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
611
612         * cfg.c (connect_src, connect_dest, disconnect_src,
613         disconnct_dest): New.
614         (unchecked_make_edge, remove_edge, redirect_edge_succ,
615         redirect_edge_pred): Use the new functions.
616
617         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
618         free_dominance_info only when needed.
619
620 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
621
622         PR target/20276
623         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
624         (reg_or_sub_cint64_operand): Same.
625
626 2005-03-02  Jeff Law  <law@redhat.com>
627
628         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
629         CFG_ALTERED in the main DOM iteration loop.
630
631 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
632
633         PR c++/19916
634         * varasm.c (initializer_constant_valid_p): Allow conversions
635         between OFFSET_TYPEs.  Tidy.
636
637 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
638
639         * config/cris/cris.md ("return"): Remove epilogue delay list
640         sanity check.
641
642 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
643
644         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
645         for Thumb.
646         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
647
648 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
649
650         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
651         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
652         config/m68k/m68k.c, config/mips/mips.h,
653         config/rs6000/rs6000-protos.h, doc/contrib.texi,
654         doc/include/gcc-common.texi: Update copyright.
655
656         PR middle-end/18029 and PR middle-end/18030
657         * expr.c (optimize_bitfield_assignment_op): Add a special case
658         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
659
660         * fold-const.c (fold_unary): New.
661         (fold): Call fold_unary on unary expressions.
662
663 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
664
665         * cgraph.h (struct cgraph_edge): Add prev_caller and
666         prev_callee fields.
667         (cgraph_node_remove_callees): Export.
668         * cgraph.c (cgraph_create_edge): Initialize prev_caller
669         and prev_callee.
670         (cgraph_edge_remove_callee): New function.
671         (cgraph_edge_remove_caller): Likewise.
672         (cgraph_remove_edge): Use.
673         (cgraph_redirect_edge_callee): Likewise.
674         (cgraph_node_remove_callees): New function.
675         (cgraph_node_remove_callers): Likewise.
676         (cgraph_remove_node): Use.
677         * tree-optimize.c (tree_rest_of_compilation): Use
678         cgraph_node_remove_callees instead of manual loop.
679         * cgraphunit.c (cgraph_finalize_function): Likewise.
680         (cgraph_expand_function): Likewise.
681         (cgraph_remove_unreachable_nodes): Likewise.
682
683 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
684
685         PR c/8927
686         * c-tree.h (undeclared_variable, build_external_ref): Add extra
687         argument.
688         * c-decl.c (undeclared_variable): Take location as argument.
689         * c-typeck.c (build_external_ref): Likewise.
690         * c-parser.c (c_parser_postfix_expression): Pass location of
691         identifier to build_external_ref.
692
693 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
694
695         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
696         CCEQ mode for branch_positive_comparison_operator test.
697         * config/rs6000/predicates (branch_comparison_operator): Revert to
698         define_predicate.
699         (scc_comparison_operator): Same.
700         (branch_positive_comparison_operator): Same.
701
702 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
703
704         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
705         (cris_delay_slots_for_epilogue): Remove.
706         (save_last): Move into cris_target_asm_function_epilogue.
707         (cris_target_asm_function_epilogue): Remove tests for file being
708         NULL.
709         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
710         (cris_delay_slots_for_epilogue): Remove prototypes.
711         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
712         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
713
714 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
715
716         * config/rs6000/predicates.md (branch_comparison_operator): Change
717         to define_special_predicate.
718         (scc_comparison_operator): Same.
719         (branch_positive_comparison_operator): Same.
720
721 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
722
723         * Makefile.in (tree-ssa-sink.o): New.
724         (OBJS-common): Add tree-ssa-sink.o.
725         * common.opt: Add -ftree-sink
726         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
727         * timevar.def (TV_TREE_SINK): new timevar.
728         * tree-flow.h (is_hidden_global_store): Prototype.
729         * tree-optimize.c (init_tree_optimization_passes): Add
730         pass_sink_code.
731         * tree-pass.h (pass_sink_code): New.
732         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
733         for non-obvious global store store to is_hidden_global_store, and
734         call that new function.
735         * tree-ssa-sink.c: New file.
736         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
737         * doc/passes.texi: Document forward store motion.
738         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
739         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
740         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
741         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
742
743 2005-03-01  Per Bothner  <per@bothner.com>
744
745         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
746         and we have a non-zero column-number, add it to the message.
747         Also factor out the diagnostic_kind_text.
748
749 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
750
751         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
752         flow_loop_pre_header_scan, flow_loop_pre_header_find,
753         flow_loop_scan): Removed.
754         (flow_loop_dump): Do not dump removed fields.
755         (flow_loop_free): Do not free removed fields.
756         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
757         (loop_exit_edge_p): New function.
758         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
759         num_pre_header_edges, entry_edges, num_entries, exit_edges,
760         num_exits, exits_doms.
761         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
762         LOOP_EDGES, LOOP_ALL): Removed.
763         (flow_loop_scan): Declaration removed.
764         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
765         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
766         flow_loops_find.
767         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
768         (if_convert): Call flow_loops_find and flow_loops_free
769         when calling mark_loop_exit_edges.
770         * cfgloopanal.c (mark_loop_exit_edges): Moved from
771         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
772         free_dominance_info calls.
773         * loop-init.c (flow_loops_find): Ditto.
774         * passes.c (rest_of_handle_branch_prob): Ditto.
775         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
776         * loop-unroll.c (analyze_insns_in_loop): Do not use
777         EDGE_LOOP_EXIT.
778         * predict.c (predict_loops): Do not call flow_loop_scan.
779         Use get_loop_exit_edges.
780         (tree_estimate_probability): Do not pass flags to flow_loops_find.
781         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
782         Do not use EDGE_LOOP_EXIT.
783         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
784         to bb_with_exit_edge_p.
785         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
786         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
787         to bb_with_exit_edge_p.
788         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
789         EDGE_LOOP_EXIT.
790         * tree-loop-linear.c (linear_transform_loops): Do not call
791         flow_loop_scan.  Use loop->single_exit.
792         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
793         (vect_analyze_loop_form): Do not call flow_loop_scan.
794         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
795         loop->single_exit.
796         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
797         loop->single_exit.
798         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
799         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
800         slpeel_tree_duplicate_loop_to_edge_cfg,
801         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
802         Use loop_preheader_edge and loop->single_exit.  Do not call
803         flow_loop_scan.
804
805 2005-03-01  Nick Clifton  <nickc@redhat.com>
806
807         * config/arm/arm.c (thumb_find_work_register): Check all of the
808         argument registers to see if they are free, and a couple of
809         special cases where the last argument register but can be proved
810         to be available during the function's prologue.
811         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
812         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
813         thumb_unexpanded_epilogue): Use unsigned long as the type for the
814         register bit-mask.
815         (thumb_compute_save_reg_mask): Likewise.  Also use
816         thumb_find_work_register() to ensure that there is agreement about
817         which work register is going to be used in the prologue.
818         (thumb_output_function_prologue): Use unsigned long as the type
819         for the register bit-mask.  Also delay pushing the link register if
820         other high registers are going to be pushed.
821         (thumb_compute_save_reg_mask, emit_multi_reg_push,
822         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
823         redundant prototypes.
824
825 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
826
827         PR target/19819
828         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
829         and after reload in REG+REG indexed addresses without REG_POINTER
830         set in the base and not set in the index.
831
832 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
833
834         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
835         Don't undefine here.
836         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
837         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
838         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
839         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
840         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
841         Delete.
842         * config.gcc (sh*-*-linux*): Use config/linux.h.
843
844 2005-02-28  Dale Johannesen  <dalej@apple.com>
845             Stan Shebs  <shebs@apple.com>
846
847         Rewrite of 64-bit Darwin structure-by-value pass/return.
848         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
849         intoffset, use_stack, named.
850         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
851         (rs6000_darwin64_record_arg_advance_flush):  New.
852         (rs6000_darwin64_record_arg_advance_recurse): New.
853         (rs6000_darwin64_record_arg_flush):  New.
854         (rs6000_darwin64_record_arg_recurse):  New.
855         (rs6000_darwin64_record_arg):  New.
856         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
857         (function_arg_boundary):  Handle 128-bit aligned structs.
858         (function_arg_advance):  Rewrite darwin64 struct handling.
859         (function_arg):  Call rs6000_darwin64_record_arg.
860         (function_arg_partial_nregs):  Handle darwin64 structs.
861         (rs6000_darwin64_function_value):  Remove.
862         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
863
864 2005-02-28  Roger Sayle  <roger@eyesopen.com>
865
866         PR tree-optimization/20216
867         * tree-chrec.c (tree_fold_factorial): Delete.
868         (tree_fold_binomial): Change argument list to take a return type
869         and change the type of K to unsigned int.  Rewrite to avoid explicit
870         evaluation of factorials, and (recursively) calling fold to perform
871         compile-time arithmetic.  Return NULL on (internal) overflow.
872         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
873         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
874         if any intermediate calculation overflows.
875         (chrec_apply): Update call to chrec_evaluate.
876
877 2005-02-28  James E Wilson  <wilson@specifixinc.com>
878
879         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
880
881 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
882
883         PR c/20245
884         * c-parser.c (c_parser_compound_statement): Return error_mark_node
885         instead of NULL_TREE on error.
886
887 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
888
889         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
890         (EASY_VECTOR_15_ADD_SELF): Remove.
891         (num_insns_constant_wide): Not static.
892         (validate_condition_mode): Not static.
893         (toc_relative_expr_p): Not static.
894         (legitimate_indirect_address_p): Not static.
895         (macho_lo_sum_memory_operand): Not static.
896         (invalid_e500_subreg): Not static.
897         (easy_vector_same): Not static.
898         (easy_vector_splat_const): Not static.
899         (RS6000_SYMBOL_REF_TLS_P): Remove.
900         (any_operand): Delete.
901         (any_parallel_operand): Delete.
902         (count_register_operand): Delete.
903         (altivec_register_operand): Delete.
904         (xer_operand): Delete.
905         (s8bit_cint_operand): Delete.
906         (short_cint_operand): Delete.
907         (u_short_cint_operand): Delete.
908         (non_short_cint_operand): Delete.
909         (exact_log2_cint_operand): Delete.
910         (gpc_reg_operand): Delete.
911         (cc_reg_operand): Delete.
912         (cc_reg_not_cr0_operand): Delete.
913         (reg_or_short_operand): Delete.
914         (reg_or_neg_short_operand): Delete.
915         (reg_or_aligned_short_operand): Delete.
916         (reg_or_u_short_operand): Delete.
917         (reg_or_cint_operand): Delete.
918         (reg_or_arith_cint_operand): Delete.
919         (reg_or_add_cint64_operand): Delete.
920         (reg_or_sub_cint64_operand): Delete.
921         (reg_or_logical_cint_operand): Delete.
922         (got_operand): Delete.
923         (got_no_const_operand): Delete.
924         (easy_fp_constant): Delete.
925         (easy_vector_constant): Delete.
926         (easy_vector_constant_add_self): Delete.
927         (zero_constant): Delete.
928         (zero_fp_constant): Delete.
929         (volatile_mem_operand): Delete.
930         (offsettable_mem_operand): Delete.
931         (mem_or_easy_const_operand): Delete.
932         (add_operand): Delete.
933         (non_add_cint_operand): Delete.
934         (logical_operand): Delete.
935         (non_logical_cint_operand): Delete.
936         (mask_operand): Delete.
937         (mask_operand_wrap): Delete.
938         (mask64_operand): Delete.
939         (mask64_2_operand): Delete.
940         (and64_operand): Delete.
941         (and64_2_operand): Delete.
942         (and_operand): Delete.
943         (reg_or_mem_operand): Delete.
944         (lwa_operand): Delete.
945         (symbol_ref_operand): Delete.
946         (call_operand): Delete.
947         (current_file_function_operand): Delete.
948         (input_operand): Delete.
949         (rs6000_nonimmediate_operand): Delete.
950         (rs6000_tls_symbol_ref): Delete.
951         (save_world_operation): Delete.
952         (restore_world_operation): Delete.
953         (load_multiple_operation): Delete.
954         (store_multiple_operation): Delete.
955         (vrsave_operation): Delete.
956         (mfcr_operation): Delete.
957         (mtcrf_operation): Delete.
958         (lmw_operation): Delete.
959         (stmw_operation): Delete.
960         (branch_comparison_operator): Delete.
961         (branch_positive_comparison_operator): Delete.
962         (scc_comparison_operator): Delete.
963         (trap_comparison_operator): Delete.
964         (boolean_operator): Delete.
965         (boolean_or_operator): Delete.
966         (min_max_operator): Delete.
967         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
968         (EASY_VECTOR_15): Moved to here.
969         (EASY_VECTOR_15_ADD_SELF): Move to here.
970         (PREDICATE_CODES): Delete.
971         * config/rs6000/rs6000-protos.h: Delete predicate functions.
972         Declare functions no longer static.
973         * config/rs6000/predicates.md: New.
974         * config/rs6000/rs6000.md: Include predicates.md
975
976 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
977
978         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
979         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
980         REG_ALWAYS_RETURN.
981         * cfgrtl.c (need_fake_edge_p): Likewise.
982         * combine.c (distribute_notes): Likewise.
983         * emit-rtl.c (try_split): Likewise.
984         * recog.c (peephole2_opimize): Likewise.
985         * reg-notes.def (ALWAYS_RETURN): Remove.
986         * rtl.h (LCT_ALWAYS_RETURN): Remove.
987         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
988         * tree.h (ECF_ALWAYS_RETURN): Remove.
989
990 2005-02-28  Roger Sayle  <roger@eyesopen.com>
991
992         PR middle-end/19874
993         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
994         between different machine modes is never a "useless" conversion.
995
996 2005-02-28  Geert Bosch  <bosch@gnat.com>
997
998         PR ada/15977
999         * doc/contrib.texi: List contributors for Ada front end
1000
1001 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
1002
1003         * simplify-rtx.c (simplify_unary_operation_1,
1004         simplify_const_unary_operation): New, extracted from...
1005         (simplify_unary_operation): ... this one.
1006         (simplify_binary_operation_1,
1007         simplify_const_binary_operation): New, extracted from...
1008         (simplify_binary_operation): ... this one.
1009         * rtl.h (simplify_const_unary_operation,
1010         simplify_const_binary_operation): Add prototypes.
1011
1012 2005-02-28  Julian Brown  <julian@codesourcery.com>
1013
1014         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
1015         building libjava and caused PR regression/20228.
1016
1017 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
1018
1019         PR bootstrap/17383
1020         * Makefile.in (host_subdir): New.
1021         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
1022         * configure: Regenerate.
1023
1024 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
1025
1026         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
1027         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
1028         installation directory first.
1029
1030 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
1031
1032         PR target/19065.
1033         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
1034         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
1035         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
1036         * config/cris/cris.md: Tweak comments referring to Q.
1037         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
1038         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
1039         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
1040         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
1041         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
1042         Insert spaces in constraints to align alternatives vertically for
1043         readability.
1044         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
1045         operand 1: "M".
1046
1047 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1048
1049         PR rtl-optimization/17728
1050         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
1051         operand 0 from general_operand to move_dest_operand.
1052
1053 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1054
1055         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
1056         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
1057         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
1058         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
1059
1060 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1061
1062         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
1063         * configure: Regenerate.
1064         * libada-mk.in: Remove CC; rename
1065         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
1066
1067 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
1068
1069         PR tree-opt/20188
1070         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
1071         for the lhs, also walk over the tree.  Likewise for rhs.
1072
1073 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
1074
1075         * tree-ssa-dom.c (simple_iv_increment_p): New function.
1076         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
1077         Do not propagate value of iv before increment over the increment.
1078
1079 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
1080
1081         * c-parser.c: New file.
1082         * c-parse.in: Remove.
1083         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
1084         Remove.
1085         (c-parser.o): Add dependencies.
1086         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
1087         maintainer-clean, TAGS): Update.
1088         * c-config-lang.in (gtfiles): Update.
1089         * gengtype-lex.l: Don't handle "@@".
1090         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
1091         objc_build_synchronized, objc_begin_try_stmt,
1092         objc_begin_catch_clause, objc_finish_catch_clause,
1093         objc_build_finally_clause, objc_finish_try_stmt): New.
1094         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
1095         type_seen_p.
1096         (c_parse_init): Update comment.
1097         * c-decl.c (c_init_decl_processing): Update comment.
1098         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1099         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
1100         new c_declspecs members.
1101
1102 2005-02-25  Julian Brown  <julian@codesourcery.com>
1103
1104         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
1105         from being used for symbols with vague linkage when
1106         HAVE_GAS_COMDAT_GROUP is true.
1107
1108 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1109
1110         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
1111
1112 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
1113
1114         PR target/19930
1115         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
1116         (LIBGCC2_HAS_DF_MODE): New.
1117         (LIBGCC2_HAS_XF_MODE): New.
1118         (LIBGCC2_HAS_TF_MODE): New.
1119         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1120         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1121         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1122         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1123         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
1124         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
1125         and add _fixtfdi, _fixunstfdi, _floatditf
1126         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
1127         L_fixunstfdi, L_floatditf.
1128         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
1129         (LIBGCC2_HAS_TF_MODE): Define.
1130
1131 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
1132
1133         PR tree-optimization/20204
1134         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
1135         REWRITE_THIS_STMT markers on PHI nodes.
1136         (rewrite_initialize_block): Likewise.
1137
1138 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1139
1140         * version.c (version_string): Update to 4.1.
1141
1142 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
1143
1144         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
1145         Clarify that the alternative way doesn't work in GNU C++.
1146
1147 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
1148
1149         PR tree-optimization/19937
1150         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
1151         to the type of the induction variable.
1152
1153 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1154
1155         PR rtl-optimization/20117
1156         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
1157         the block including noncopyable insn.
1158
1159 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1160
1161         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
1162         calls to find_reg_note.
1163
1164 2005-02-24  Richard Henderson  <rth@redhat.com>
1165
1166         PR tree-opt/20127
1167         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
1168         the type.
1169
1170 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
1171
1172         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
1173         vector types if to use base reg for misaligned non-word ld/std.
1174
1175 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1176
1177         PR target/14619
1178         * config/cris/cris.c (cris_target_asm_function_prologue): Create
1179         dwarf2 label manually and put it after, not before the prologue.
1180
1181 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
1182
1183         PR target/19019
1184         * reload.c (operands_match_p): Only increment register number for
1185         SCALAR_INT_MODE_P modes in multiple hard registers.
1186
1187         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
1188         Fix formatting.
1189
1190 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1191
1192         * ChangeLog.5: Fix log message typo(s).
1193         * ChangeLog.7: Likewise.
1194         * ChangeLog.tree-ssa: Likewise.
1195         * cfgexpand.c: Fix comment typo(s).
1196         * conflict.c: Likewise.
1197         * defaults.h: Likewise.
1198         * dwarf2out.c: Likewise.
1199         * gcse.c: Likewise.
1200         * ggc-page.c: Likewise.
1201         * tree-eh.c: Likewise.
1202         * tree-ssa-dom.c: Likewise.
1203
1204 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
1205
1206         PR target/19019
1207         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
1208         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
1209         if SHARED is defined.
1210
1211         PR target/20196
1212         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
1213         allow splitting only if operands 0 and 3 don't overlap.
1214
1215 2005-02-24  Richard Henderson  <rth@redhat.com>
1216
1217         PR middle-end/19953
1218         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
1219         (fold_builtin_1): Call them.
1220         * fold-const.c (fold_complex_mult_parts): Split out from ...
1221         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
1222         (fold_complex_div_parts, fold_complex_div): New.
1223         (fold): Use them.
1224         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
1225
1226 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1227
1228         * tree-ssa-ccp.c (visit_assignment): Verify that result of
1229         VIEW_CONVERT_EXPR is_gimple_min_invariant.
1230
1231         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
1232         (print_node): Likewise.
1233         Print TYPE_SIZES_GIMPLIFIED.
1234
1235 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1236
1237         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
1238         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
1239         operands as commutative in constraints.
1240
1241 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
1242
1243         * tree-into-ssa.c: Re-organize internal functions.
1244
1245 2005-02-24  Richard Henderson  <rth@redhat.com>
1246
1247         PR middle-end/18902
1248         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
1249         for c99.
1250         * common.opt (fcx-limited-range): New.
1251         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
1252         * toplev.c (flag_complex_method): Initialize to 1.
1253         (process_options): Set flag_complex_method to 0 if
1254         flag_cx_limited_range.
1255         * doc/invoke.texi (-fcx-limited-range): New.
1256
1257 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1258
1259         * cse.c (delete_trivially_dead_insns): Speed up by using
1260         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
1261         prev_real_insn.
1262
1263 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
1264
1265         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
1266         functions when -mid-shared-library is being used.
1267
1268 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
1269
1270         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
1271         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
1272         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
1273         * system.h: Poison LINK_LIBGCC_SPECIAL.
1274
1275 2005-02-23  James E Wilson  <wilson@specifixinc.com>
1276
1277         * gengtype.c (note_insn_name): Make 1 element larger.
1278
1279 2005-02-23  Roger Sayle  <roger@eyesopen.com>
1280
1281         PR target/20018
1282         PR rtl-optimization/20097
1283         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1284         BImode SUBREGs of SImode registers which confuse the ia64 backend.
1285
1286 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
1287
1288         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
1289         * t-aix52 (SHLIB_INSTALL): Same.
1290
1291 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
1292
1293         * genpreds.c: Update copyright.
1294
1295 2005-02-23  Michael Beach  <michaelb@ieee.org>
1296
1297         PR target/20159
1298         * config/sparc/t-elf (startup files): Assemble with CPP.
1299
1300 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
1301
1302         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
1303         (write_predicate_expr): Likewise.
1304
1305 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1306
1307         PR tree-optimization/20100
1308         PR tree-optimization/20115
1309         * tree-optimize.c (init_tree_optimization_passes): Remove
1310         pass_maybe_create_global_var.
1311         * tree-pass.h (pass_maybe_create_global_var): Remove.
1312         * tree-ssa-alias.c (aliases_computed_p): Declare.
1313         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
1314         (count_calls_and_maybe_create_global_var): Remove.
1315         (pass_maybe_create_global_var): Remove.
1316         (init_alias_info): Do not declare aliases_computed_p.
1317         (maybe_create_global_var): If the function contains no
1318         call-clobbered variables and a mix of pure/const and regular
1319         function calls, create .GLOBAL_VAR.
1320         Mark all call-clobbered variables for renaming.
1321         (merge_pointed_to_info): Update comment.
1322         (add_pointed_to_var): Likewise.
1323         (is_escape_site): Likewise.
1324         Accept struct alias_info * instead of size_t *.
1325         Update all users.
1326         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
1327         as necessary.
1328         * tree-ssa-operands.c (get_call_expr_operands): If
1329         ALIASES_COMPUTED_P is false, do not add call-clobbering
1330         operands.
1331         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
1332         (delete_tree_ssa): Likewise.
1333
1334 2005-02-22  James E Wilson  <wilson@specifixinc.com>
1335
1336         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
1337         (do_compile): Do call it here.
1338
1339 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1340
1341         PR rtl-optimization/20017.
1342         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
1343         rest_of_handle_cse2, rest_of_handle_gcse): Call
1344         delete_dead_jumptables immediately before calling cleanup_cfg.
1345
1346 2005-02-22  Devang Patel  <dpatel@apple.com>
1347
1348         PR 19952
1349         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
1350         all labels
1351
1352 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
1353
1354         * config/rs6000/aix.h (WINT_TYPE): Define.
1355
1356 2005-02-22  Stan Shebs  <shebs@apple.com>
1357
1358         * config/rs6000/rs6000.c (rs6000_override_options): Default to
1359         natural alignment for 64-bit Darwin.
1360         (rs6000_parse_alignment_option): Warn about uses of -malign-power
1361         on 64-bit Darwin.
1362         * doc/invoke.texi: Document this.
1363
1364 2005-02-22  DJ Delorie  <dj@redhat.com>
1365
1366         * c-common.c (c_common_type_for_mode): Pass the mode's precision
1367         to make_[un]signed_type, not the mode itself.
1368
1369 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1370
1371         * cfg.c (cached_make_edge): Call make_edge if edge cache is
1372         not available.  Use tail calls wherever possible.
1373         (make_edge): Call unchecked_make_edge to create an edge.
1374
1375         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
1376         (coalesce_ssa_name): Don't check for
1377         SSANORM_USE_COALESCE_LIST.
1378         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
1379
1380 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1381
1382         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
1383         (rewrite_into_ssa): ... here.
1384
1385 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
1386
1387         PR tree-optimization/19786
1388         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
1389         tag to another's may-alias bitmap when adding to the other's list.
1390
1391 2005-02-21  DJ Delorie  <dj@redhat.com>
1392
1393         * tree-ssa-loop-ivopts.c (computation_cost): Start register
1394         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
1395         registers in unsupported ways.
1396         * expmed.c (init_expmed): Likewise.
1397
1398 2005-02-21  Stan Cox  <scox@redhat.com>
1399
1400         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
1401
1402 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1403
1404         * tree-cfg.c (fold_cond_expr_cond): New.
1405         (make_edges): Call fold_cond_expr_cond.
1406         (find_taken_edge): Accept nothing but INTEGER_CST.
1407         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
1408         and 1.
1409         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
1410
1411         * flow.c (delete_dead_jumptables): Speed up by scanning insns
1412         that do not belong to any basic block.
1413
1414 2005-02-21  Jeff Law  <law@redhat.com>
1415
1416         * cfganal.c (find_unreachable_blocks): Manually CSE load of
1417         e->dest.
1418
1419 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1420
1421         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
1422         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
1423         Adjust their definitions.
1424         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
1425         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
1426
1427         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
1428         genautomata.c, langhooks.c, langhooks.h, system.h,
1429         config/arm/lib1funcs.asm: Update copyright.
1430
1431 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
1432
1433         * dbxout.c (dbxout_function_end): Emit Lscope label always.
1434
1435 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
1436
1437         PR bootstrap/13770
1438         * doc/install.texi: Document --with-gc.
1439
1440 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
1441
1442         * simplify-rtx.c (simplify_unary_operation): Add a missing
1443         "break" statement.
1444
1445 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1446
1447         PR tree-optimization/18663
1448         * tree-ssa-dom.c (extract_range_from_cond): Return 0
1449         if the type has variable bounds.
1450
1451 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
1452
1453         * gcse.c: Remove an obsolete comment.
1454
1455         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
1456
1457 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
1458
1459         * doc/extend.texi (Function Attributes) <Attribute const>: The
1460         attribute "pure" is below this text, not above.
1461
1462 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1463
1464         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
1465         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
1466         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
1467
1468 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
1469
1470         PR 18785
1471         * langhooks.h (struct lang_hooks): Add to_target_charset.
1472         * langhooks.c (lhd_to_target_charset): New function.
1473         * langhooks-def.h: Declare lhd_to_target_charset.
1474         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
1475         (LANG_HOOKS_INITIALIZER): Update.
1476         * c-common.c (c_common_to_target_charset): New function.
1477         * c-common.h: Declare it.
1478         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
1479         c_common_to_target_charset.
1480
1481         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
1482         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
1483         Delete definitions.
1484         * system.h: Poison them.
1485         * doc/tm.texi: Don't discuss them.
1486         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
1487         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
1488         (pp_c_char): Do not attempt to generate letter escapes for
1489         newline, tab, etc.
1490         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
1491         * config/mips/mips.c (mips_output_ascii): Likewise.
1492
1493 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
1494
1495         PR tree-optimization/19951
1496         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
1497         is abnormal.
1498
1499 2005-02-19  Steven Bosscher  <stevenb@suse.de>
1500
1501         PR middle-end/19698
1502         * function.h (struct function): New field `max_loop_depth'.
1503         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
1504         (flow_loops_find): Reset the max loop depth count before finding loops.
1505         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
1506         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
1507         (calculate_global_regs_live): Make sure the loop will terminate
1508         when the initial sets are not empty.
1509
1510 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
1511
1512         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
1513         object inside.
1514         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
1515
1516 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
1517
1518         PR other/19525
1519         * doc/invoke.texi: Remove documentation of %M spec.
1520         * gcc.c: Likewise.
1521         (init_spec): Remove %M suffix from -lgcc_s.
1522         (do_spec_1): Remove 'M' case.
1523         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
1524         to put shared libraries in the multilib directory.  Remove the
1525         shlib_so_soname substitution variable.  Don't add a multilib encoding
1526         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
1527         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
1528         SHLIB_INSTALL as well as SHLIB_LINK.
1529         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
1530         (SHLIB_NAME): Delete.
1531         (SHLIB_DIR): New macro.
1532         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
1533         (SHLIB_INSTALL): Adjust accordingly.
1534         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
1535         * config/t-slibgcc-sld: Likewise.
1536         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
1537         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
1538         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
1539         in $(SHLIB_DIR).
1540         (SHLIBUNWIND_INSTALL): Adjust accordingly.
1541         * config/i386/t-nwld (SHLIB_SONAME): Delete.
1542         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
1543         Use @shlib_base_name@ instead of @shlib_so_name@.
1544         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
1545         and @shlib_base_name@.so in @multilib_dir@.
1546         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
1547         to the install path.
1548         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
1549         (SHLIB_LINK): Remove previous workaround.
1550         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
1551         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
1552         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
1553         the install path.
1554         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
1555         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
1556         (SHLIB_INSTALL): Adjust accordingly.
1557         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
1558         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
1559         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
1560         config/t-slibgcc-elf-ver.
1561
1562 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
1563             Jakub Jelinek  <jakub@redhat.com>
1564
1565         PR tree-optimization/19828
1566         * tree-ssa-loop-im.c: Add a TODO comment.
1567         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
1568         without side-effects.
1569
1570 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
1571
1572         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
1573         call fold_convert.
1574
1575 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
1576
1577         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
1578         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
1579         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
1580         functions.
1581         (ia64_reorg): Delete fixup_errata call.
1582         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
1583         (TARGET_SWITCHES): Delete -mb-step entry.
1584
1585 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
1586
1587         PR c/20043
1588         * c-typeck.c (composite_type): Handle quals in transparent unions.
1589         (type_lists_compatible_p): Likewise.
1590
1591 2005-02-18  Stan Shebs  <shebs@apple.com>
1592
1593         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
1594         expressions in the .literal8 section.
1595
1596 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
1597
1598         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
1599
1600 2005-02-18  Roger Sayle  <roger@eyesopen.com>
1601
1602         * fold-const.c (constant_boolean_node): Always create values of the
1603         specified type, don't bother calling truthvalue_conversion.
1604
1605 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1606
1607         * except.c (output_function_exception_table): Call
1608         assemble_external_libcall (eh_personality_libfunc).
1609
1610 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1611
1612         PR target/19886
1613         * config/ia64/ia64.h (struct machine_function): Add state_num.
1614         * config/ia64/ia64.c (process_epilogue,
1615         process_for_unwind_directive): Use new unwind state numbers each
1616         time rather than state 1.
1617
1618 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
1619
1620         PR target/20054
1621         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
1622         before the "*llgt_didi" pattern.
1623
1624 2005-02-18  Jason Merrill  <jason@redhat.com>
1625
1626         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
1627
1628 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
1629
1630         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
1631         (div0): Use it in place of ARM_FUNC_ALIAS.
1632         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
1633
1634 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
1635
1636         PR middle-end/20030
1637         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
1638         access, the lower bound of the array type if it exists.
1639
1640 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
1641
1642         PR c++/20008
1643         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
1644         cases that are out-of-range for the index type.
1645
1646 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
1647
1648         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
1649         (estimate_case_costs): Don't call convert.
1650         * expmed.c (expand_shift): Likewise.
1651         (make_tree): Call fold_convert instead of convert.
1652
1653 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
1654
1655         PR c++/19813
1656         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
1657         that ref to be marked MEM_READONLY_P doesn't have base that needs
1658         constructing.
1659
1660 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1661
1662         * genautomata.c (output_get_cpu_unit_code_func,
1663         output_cpu_unit_reservation_p): Don't generate old-style function
1664         definitions.
1665
1666 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
1667
1668         PR c++/20023
1669         PR tree-optimization/20009
1670         * convert.c (convert_to_integer): Revert 2005-02-16 change.
1671
1672         PR tree-optimization/18947
1673         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
1674         inline, remove all nodes that are inlined into the extern inline
1675         being redefined.
1676
1677 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
1678
1679         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
1680         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
1681         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
1682         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
1683         Update copyright.
1684
1685 2005-02-17  Roger Sayle  <roger@eyesopen.com>
1686
1687         PR tree-optimization/19917
1688         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
1689         to be potentially trapping.
1690
1691 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
1692
1693         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
1694
1695 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1696
1697         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
1698         tem becomes a local variable which is set to the value of the
1699         back end defined INITIAL_FRAME_ADDRESS macro.
1700         (expand_builtin_frame_address): Omit the base parameter to
1701         expand_builtin_return_addr.
1702         (expand_builtin_profile_func): Likewise.
1703         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
1704         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
1705         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
1706
1707 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
1708
1709         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
1710         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
1711         * config/frv/frv.c (frv_function_epilogue): Likewise.
1712
1713 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
1714
1715         * lambda-code (perfect_nestify): Remove mark/unmark
1716         for rewriting hack.
1717         * tree-loop-linear.c (linear_transform_loops): Add
1718         rewrite_into_ssa call so that ssa is correct for
1719         rewriting into loop closed.
1720
1721 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
1722
1723         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
1724         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
1725         BITMAP_FREE.
1726         * bt-load.c (btr_def_live_range, combine_btr_defs,
1727         migrate_btr_def, migrate_btr_defs): Likewise.
1728         * cfgcleanup.c (thread_jump): Likewise.
1729         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1730         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
1731         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
1732         df_rd_local_compute, df_reg_info_compute): Likewise.
1733         * dominance.c (init_dom_info, free_dom_info): Likewise.
1734         * flow.c (init_propagate_block_info,
1735         free_propagate_block_info): Likewise.
1736         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
1737         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
1738         modify_reg_pav): Likewise.
1739         * loop-invariant.c (find_defs, find_invariant_insn,
1740         find_invariants, free_inv_motion_data): Likewise.
1741         * predict.c (tree_predict_by_opcode,
1742         estimate_bb_frequencies): Likewise.
1743         * stmt.c (expand_case): Likewise.
1744         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
1745         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
1746         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
1747         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
1748         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
1749         rewrite_ssa_into_ssa): Likewise.
1750         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1751         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
1752         analyze_edges_for_bb, perform_edge_inserts): Likewise.
1753         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
1754         * tree-sra.c (tree_sra): Likewise.
1755         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
1756         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1757         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
1758         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1759         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
1760         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
1761         Likewise.
1762         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
1763         calculate_live_on_entry, calculate_live_on_exit,
1764         build_tree_conflict_graph): Likewise.
1765         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
1766         record_important_candidates, set_use_iv_cost, find_depends,
1767         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
1768         tree_ssa_iv_optimize_finalize): Likewise.
1769         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
1770         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
1771         tree_duplicate_loop_to_header_edge): Likewise.
1772         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
1773         * tree-ssa.c (verify_flow_insensitive_alias_info,
1774         verify_name_tags, verify_ssa, init_tree_ssa,
1775         delete_tree_ssa): Likewise.
1776         * tree-ssanames.c (marked_ssa_names, init_ssanames,
1777         fini_ssanames): Likewise.
1778         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
1779
1780 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
1781
1782         * config/rs6000/t-rtems: Completely reworked.
1783
1784 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1785
1786         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
1787
1788 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1789
1790         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
1791         POINTER_TYPE_P when checking that type is a pointer.
1792         (vect_get_memtag): Remove.
1793         (vect_address_analysis): Use POINTER_TYPE_P. Call
1794         vect_object_analysis with dummy parameter for memtag.
1795         (vect_object_analysis): Extract memtag (functionality that
1796         used to be in vect_get_memtag and moved here). Fix printings.
1797         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
1798         with correct parameters. Remove call to vect_get_memtag.
1799
1800 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
1801
1802         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
1803         (tree-vectorizer.o): Added missing dependencies.
1804
1805         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
1806         decleration.
1807         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
1808         declaration in tree-vectorizer.c, now has an extern declaration in
1809         tree-vectorizer.h).
1810         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1811         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1812         get_vectype_for_scalar_type, vect_is_simple_use,
1813         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1814         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
1815         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
1816         vectorizable_store, vectorizable_operation, vectorizable_assignment,
1817         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
1818         find_loop_location): Likewise.
1819
1820         * tree-vectorizer.c (langhooks.h): #include removed.
1821         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
1822         moved to tree-vectorized.h.
1823         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1824         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1825         get_vectype_for_scalar_type, vect_is_simple_use,
1826         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1827         vect_supportable_dr_alignment, new_loop_vec_info,
1828         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
1829         vect_set_verbosity_level, find_loop_location): Likewise.
1830
1831         (vect_analyze_loop): Function externalized. Declaration moved to
1832         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
1833         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
1834         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
1835         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
1836         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
1837         vect_enhance_data_refs_alignment, vect_analyze_operations,
1838         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
1839         vect_stmt_relevant_p, vect_get_loop_niters,
1840         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
1841         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
1842         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
1843         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
1844         vect_get_memtag): Likewise.
1845
1846         (vectorizable_load): Function externalized. Declaration moved to
1847         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
1848         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
1849         vect_transform_loop): Likewise.
1850         (vect_transform_stmt): Moved to tree-vect-transform.c.
1851         (vect_align_data_ref, vect_create_destination_var,
1852         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
1853         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
1854         vect_get_vec_def_for_operand, vect_init_vector,
1855         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
1856         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
1857         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
1858         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
1859         vect_do_peeling_for_loop_bound): Likewise.
1860
1861         * tree-vect-analyze.c: New file.
1862         * tree-vect-transform.c: New file.
1863
1864 2005-02-17  Jason Merrill  <jason@redhat.com>
1865
1866         PR mudflap/19319, c++/19317
1867         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
1868         slot explicit.
1869
1870 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
1871
1872         * doc/install.texi (Specific): Update link for Darwin-specific
1873         tool binary site.
1874
1875 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
1876
1877         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
1878         constant_boolean_node.
1879
1880 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
1881
1882         PR target/19019
1883         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
1884         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
1885
1886 2005-02-16  Richard Henderson  <rth@redhat.com>
1887
1888         PR 19920
1889         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
1890         with W_TYPE_SIZE.
1891         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
1892         replace uses with Wtype_MAXp1_F.
1893         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
1894         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
1895         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
1896         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
1897         and HAVE_TFMODE as appropriate.
1898         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
1899         (__floatdisf): Likewise.
1900         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
1901         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
1902         (Wtype_MAXp1_F): New.
1903         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
1904         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
1905
1906 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
1907
1908         * PR target/19162
1909         * arm.c (arm_apply_result_size): New function.
1910         * arm.h (APPLY_RESULT_SIZE): Define.
1911         * arm-protos.h (arm_apply_result_size): Add prototype.
1912         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
1913         (movxf): New expand.
1914         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
1915         (call_value_symbol): Remove predicate for operand 0.
1916         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
1917         (untyped_call): Rework to correclty return values for any type.
1918         (untyped_return): New expand.
1919         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
1920
1921 2005-02-16  Stan Shebs  <shebs@apple.com>
1922
1923         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
1924         * config/rs6000/t-darwin8: New, for 64-bit multilib.
1925
1926 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1927
1928         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
1929         configure settings on Solaris 7 and later.
1930
1931 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
1932
1933         PR tree-optimization/19865
1934         * tree-optimize.c (init_tree_optimization_passes): Run
1935         pass_may_alias after pass_sra.
1936
1937 2005-02-16  Richard Henderson  <rth@redhat.com>
1938             Stuart Hastings  <stuart@apple.com>
1939
1940         PR debug/19521
1941         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
1942         Do nothing if debug info suppressed for this function.
1943         (dbxout_begin_function): Early exit if debug info suppressed for
1944         this function.
1945
1946 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
1947
1948         PR target/20007
1949         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
1950         find_basic_blocks.
1951         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1952
1953         PR tree-optimization/19967
1954         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
1955         expand_builtin_strchr, expand_builtin_strrchr): Take a new
1956         argument TYPE.  Adjust calls to fold_builtin_XXX.
1957         (expand_builtin, fold_builtin_1): Adjust calls to
1958         expand_builtin_XXX.
1959         (fold_builtin_strchr, fold_builtin_strpbrk,
1960         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
1961         result to a requested type TYPE.
1962
1963 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
1964
1965         PR middle-end/19857
1966         * fold-const.c (fold): Don't optimize (T)(x & cst) to
1967         (T)x & (T)cst if (T)cst overflows.
1968         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
1969         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
1970
1971 2005-02-15  Jeff Law  <law@redhat.com>
1972
1973         * gcse.c (blocks_with_calls): New bitmap.
1974         (alloc_gcse_mem): Allocate it.
1975         (free_gcse_mem): Free it.
1976         (clear_modifY_mem_tables): Clear it.
1977         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
1978         when we encounter CALL_INSNs.
1979         (compute_transp, case MEM): Handle blocks with calls separate
1980         from blocks without calls.  Use bitmap iterators rather than
1981         FOR_EACH_BB.
1982
1983 2005-02-15  Peter O'Gorman  <peter@pogma.com>
1984
1985         PR bootstrap/18810
1986         * mklibgcc.in (vis_hide): Use a temporary object file, not
1987         -o /dev/null.
1988
1989 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
1990
1991         PR target/19924
1992         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
1993         access optimization.
1994
1995 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
1996             Alan Modra  <amodra@bigpond.net.au>
1997
1998         PR target/19019
1999         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
2000         (_xlqsub): Rename to __gcc_qsub.
2001         (_xlqmul): Rename to __gcc_qmul.
2002         (_xlqdiv): Rename to __gcc_qdiv.
2003         Provide versioned symbol aliases with old names.
2004         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
2005         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
2006         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
2007         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
2008         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
2009
2010 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2011
2012         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
2013         Fold ~(A - 1) and ~(A + -1) to -A.
2014
2015 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2016
2017         PR pch/14940
2018         PR target/19300
2019         * config/host-linux.c (linux_gt_pch_use_address): Copy from
2020         config/pa/pa-host.c:pa_gt_pch_use_address.
2021
2022 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
2023
2024         * tree-vn.c (get_value_handle): Make sure that given an
2025         is_gimple_min_invariant expression, we always return it.
2026
2027 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2028
2029         * passes.c (rest_of_handle_gcse): Fix a comment.
2030
2031 2005-02-15  Jeff Law  <law@redhat.com>
2032
2033         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
2034         bitmap.
2035         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
2036         (canon_list_insert, record_last_mem_set_info): Similarly.
2037         (clear_modify_mem_tables): Similarly.
2038
2039 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2040
2041         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
2042         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
2043         config/mips/mips.md, config/rs6000/aix.h,
2044         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
2045
2046 2005-02-15  Richard Henderson  <rth@redhat.com>
2047
2048         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
2049         call to be best_edge.
2050
2051 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2052
2053         * basic-block.h: Adjust the prototype for find_basic_blocks.
2054         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
2055         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
2056         find_basic_blocks.
2057
2058         * flow.c (recompute_reg_usage): Remove all arguments.
2059         * passes.c (rest_of_compilation): Adjust the call to
2060         recompute_reg_usage.
2061         * rtl.h: Adjust the prototype for recompute_reg_usage.
2062
2063 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
2064
2065         * tree-dump.c (dump_files): Update to reflect new member
2066         of dump_file_info.
2067         (dump_register): Add new argument.
2068         Set glob name.
2069         (dump_switch_p_1): Check against glob name if doglob was passed.
2070         (dump_switch_p): Check against regular first, then glob if
2071         we didn't have any hits on the dump name.
2072         * tree-optimize.c (register_one_dump_file):
2073         Pass in glob name as well.
2074         * tree-pass.h (struct dump_file_info): Add glob
2075         member.
2076
2077 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
2078
2079         PR preprocessor/16323
2080         * doc/invoke.texi: Document that -Wendif-labels is on by default.
2081
2082 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
2083
2084         PR target/19019
2085         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
2086         (trunctfdf2_internal1): New.
2087         (trunctfdf2_internal2): Renamed from trunctfdf2.
2088
2089 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
2090
2091         PR tree-optimization/19853
2092         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
2093
2094 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2095
2096         * passes.c (rest_of_handle_loop_optimize): Remove calls to
2097         delete_dead_jumptables and cleanup_cfg.
2098
2099 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
2100
2101         * reload.c (find_reloads): Swap address_reloaded flags when
2102         swapping commutative operands.
2103
2104 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
2105
2106         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
2107         Use standard_iv_increment_position for computing the bsi position
2108         for create_iv.
2109         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
2110         the bsi position.
2111
2112 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
2113
2114         PR target/17428
2115         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
2116         life range of hard registers.
2117         * value-prof.c (insn_prefetch_values_to_profile): Only
2118         scan normal insns.
2119
2120         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
2121         profile in libcalls.
2122
2123 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
2124
2125         * bitmap.h (bitmap_and_compl_into): Return bool.
2126         * bitmap.c (bitmap_and_compl_into): Return changed flag.
2127
2128 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2129
2130         PR tree-optimization/19944
2131         * fold-const.c (fold): Re-add ABS_EXPR folding.
2132
2133 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
2134
2135         PR target/19019
2136         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
2137         {TARGET,MASK}_XL_COMPAT.
2138         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
2139         MASK_XL_COMPAT.
2140         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
2141         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
2142         TARGET_XL_COMPAT.
2143         (rs6000_arg_partial_bytes): Same.
2144         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
2145         and XL compatibility enabled.
2146         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
2147         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
2148         test to final condition.
2149         (cmptf_internal2): New.
2150         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
2151         xl-compat.  Add TFmode information to description.
2152
2153 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
2154
2155         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
2156
2157 2005-02-13  Jason Merrill  <jason@redhat.com>
2158
2159         PR c++/16405
2160         * fold-const.c (fold_indirect_ref_1): Split out from...
2161         (build_fold_indirect_ref): Here.
2162         (fold_indirect_ref): New fn.
2163         * tree.h: Declare it.
2164         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
2165         (gimplify_modify_expr_rhs): Likewise.
2166         (gimplify_expr): Likewise.
2167
2168 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2169
2170         PR tree-optimization/14303
2171         PR tree-optimization/15784
2172         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
2173         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
2174         ABS_EXPR<x> != 0 to x != 0.
2175
2176 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
2177
2178         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
2179         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
2180         spelling conventions.
2181
2182         * passes.c (rest_of_handle_gcse): Don't run cse_main and
2183         delete_trivially_dead_insns too many times.
2184
2185         * passes.c (rest_of_handle_gcse): Remove dead assignments to
2186         tem and tem2.
2187
2188 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2189
2190         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
2191         (vect_is_simple_iv_evolution): Remove redundant parameter
2192         and step check.
2193         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
2194         without last parameter.
2195         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
2196         Return pointer step. Call vect_is_simple_iv_evolution without
2197         last parameter. Check only that the step is multiple of size
2198         type. Remove stmt_vinfo updates.
2199         (vect_get_memtag_and_dr): Remove.
2200         (vect_get_memtag): New function.
2201         (vect_address_analysis): New function.
2202         (vect_object_analysis): New function.
2203         (vect_analyze_data_refs): Call vect_object_analysis and
2204         vect_get_memtag. Update stmt_vinfo fields.
2205
2206 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2207
2208         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
2209         exist and are objects. Remove checks for pointer.
2210         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
2211         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
2212         (vect_create_data_ref_ptr): Likewise.
2213         (vect_base_addr_differ_p): New function.
2214         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
2215         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
2216         Don't set the DR_BASE_NAME field of data-ref.
2217         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
2218
2219 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
2220
2221         * optabs.h (enum optab_index): Add new OTI_ldexp.
2222         (ldexp_optab): Define corresponding macro.
2223         * optabs.c (init_optabs): Initialize ldexp_optab.
2224         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
2225         patterns.
2226         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
2227         using ldexp_optab.
2228         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
2229         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
2230
2231         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
2232         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
2233         intrinsics.
2234
2235 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2236
2237         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
2238         to base_address.
2239         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
2240         stmt_vec_info.
2241         (vect_get_base_and_offset): Always return an address.
2242         (vect_create_addr_base_for_vector_ref): Remove treatment for
2243         different data reference types.
2244         (vect_compute_data_ref_alignment): Rename base to base_address in
2245         stmt_vec_info. Get the object in order to force its alignment.
2246         (vect_get_memtag_and_dr): Rename base to base_address in
2247         stmt_vec_info. Extract the object for memtag analysis.
2248
2249 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
2250
2251         PR regression/19898.
2252         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
2253         changes cc_status, use apply modified_in_p to part of cc_status
2254         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
2255         body.
2256
2257 2005-02-11  Richard Henderson  <rth@redhat.com>
2258
2259         * tree-complex.c (expand_complex_libcall): New.
2260         (expand_complex_multiplication): Use it for c99 compliance.
2261         (expand_complex_division): Likewise.
2262         * fold-const.c (fold_complex_add, fold_complex_mult): New.
2263         (fold): Call them.
2264         * builtins.c (built_in_names): Remove const.
2265         * tree.c (build_common_builtin_nodes): Build complex arithmetic
2266         builtins.
2267         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
2268         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
2269         (built_in_names): Remove const.
2270         * c-common.c (c_common_type_for_mode): Handle complex modes.
2271         * flags.h, toplev.c (flag_complex_method): Rename from
2272         flag_complex_divide_method.
2273         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
2274         __mulsc3, __muldc3, __mulxc3, __multc3): New.
2275         * libgcc2.h: Declare them.
2276         * libgcc-std.ver: Export them.
2277         * mklibgcc.in (lib2funcs): Build them.
2278
2279 2005-02-11  Steven Bosscher  <stevenb@suse.de>
2280
2281         PR tree-optimization/19876
2282         Partially revert my change from 2005-01-14
2283         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
2284         (compute_antic): ...and remove the loop here.
2285
2286 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
2287
2288         PR middle-end/19858
2289         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
2290         is number of inner's bits, avoid creating a BIT_FIELD_REF.
2291
2292         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
2293         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
2294
2295 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
2296
2297         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
2298         offsets for the big-endian 32-bit case.
2299
2300 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
2301
2302         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2303
2304 2005-02-11  Dale Johannesen  <dalej@apple.com>
2305
2306         * cselib.c (cselib_process_insn):  Clear out regs where
2307         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
2308         * reload.c (find_equiv_reg): Ditto.
2309
2310 2005-02-11  Ian Lance Taylor  <ian@airs.com>
2311
2312         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
2313         with no elements.
2314
2315         * tree.c (build_function_type_list): Work correctly if there are
2316         no arguments.
2317
2318 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
2319
2320         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
2321         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
2322         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
2323         TARGET_ZARCH instead of TARGET_64BIT.
2324
2325 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
2326
2327         * config/rs6000/t-rtems:
2328         (MULTILIB_OPTIONS): Remove mcpu=602.
2329         (MUTLILIB_DIRNAMES): Remove m602.
2330         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
2331         Let mcpu=602 match mcpu=603.
2332         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
2333
2334 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2335
2336         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
2337         signal trampolines.
2338
2339 2005-02-10  David Daney  <ddaney@avtrex.com>
2340
2341         * config/alpha/linux-unwind.h: Add exception clause to copyright.
2342         * config/i386/linux-unwind.h: Likewise.
2343         * config/ia64/linux-unwind.h: Likewise.
2344         * config/mips/linux-unwind.h: Likewise.
2345         * config/pa/linux-unwind.h: Likewise.
2346         * config/rs6000/linux-unwind.h: Likewise.
2347         * config/s390/linux-unwind.h: Likewise.
2348         * config/sh/linux-unwind.h: Likewise.
2349         * config/sparc/linux-unwind.h: Likewise.
2350
2351 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2352
2353         PR tree-optimization/17549
2354         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
2355         TER to replace a DEF with its expression if the DEF and the
2356         rhs of the expression we replace into have the same root
2357         variable.
2358
2359 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
2360
2361         * config/mips/mips.md: Fix the placement of the match_scratch in the
2362         lea64 peephole2.
2363
2364 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2365
2366         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
2367         Fix comment typos.
2368
2369 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
2370
2371         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
2372         (strip_offset): Handle addresses.
2373         (add_address_candidates): Use strip_offset.
2374         (difference_cost): Reflect strip_offset change.
2375         (force_var_cost, difference_cost): Strip nops.
2376
2377 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2378
2379         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
2380
2381         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
2382         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
2383         config/cris/cris-protos.h, config/cris/cris.c: Update
2384         copyright.
2385
2386 2005-02-10  Jeff Law  <law@redhat.com>
2387
2388         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
2389         (lookup_avail_expr): Similarly.
2390
2391 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
2392
2393         * builtins.c (fold_builtin_powi): New function.
2394         (fold_builtin_1): Call it.
2395
2396 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2397
2398         PR documentation/19309
2399         * doc/cpp.texi: The __GNUC__ and related predefined macros
2400         are also defined for the "standalone" cpp.
2401         Some non-GCC compilers may also define __GNUC__.
2402
2403 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
2404
2405         PR c/19342
2406         * c-typeck.c (common_type): New routine.  Old common_type renamed
2407         to...
2408         (c_common_type): ...this.
2409         (build_conditional_expr, build_binary_op): Use c_common_type instead
2410         of common_type.
2411
2412 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2413
2414         * doc/md.texi: Replace @samp{length} with @code{length}.
2415
2416 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
2417
2418         PR tree-optimization/18687
2419         * tree-flow.h (find_loop_niter): Declare.
2420         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2421         Try using scev even for loops with more than one exit.
2422         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
2423         (struct ivopts_data): Added niters field.
2424         (struct nfe_cache_elt): New.
2425         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
2426         functions.
2427         (tree_ssa_iv_optimize_init): Initialize niters cache.
2428         (determine_number_of_iterations): Removed.
2429         (find_induction_variables): Do not call determine_number_of_iterations.
2430         Access niters for single exit through niter_for_single_dom_exit.
2431         (add_iv_outer_candidates): Access niters for single exit through
2432         niter_for_single_dom_exit.
2433         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
2434         number_of_iterations_cond.
2435         (iv_period): New function.
2436         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
2437         (may_replace_final_value): Take data argument.  Use
2438         niter_for_single_dom_exit.
2439         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
2440         (rewrite_use_compare): Pass data to may_eliminate_iv.
2441         (rewrite_use_outer): Pass data to may_replace_final_value.
2442         (free_loop_data): Clean up the niters cache.
2443         (tree_ssa_iv_optimize_finalize): Free the niters cache.
2444         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
2445         * tree-ssa-loop-niter.c (find_loop_niter): New function.
2446         (find_loop_niter_by_eval): Use tree_int_cst_lt.
2447         (num_ending_zeros): Moved to tree.c.
2448         * tree.h (num_ending_zeros): Declare.
2449         * tree.c (num_ending_zeros): Moved from tree.c.
2450
2451 2005-02-09  Richard Henderson  <rth@redhat.com>
2452
2453         * builtins.c (DEF_BUILTIN): Add COND argument.
2454         * tree.h (DEF_BUILTIN): Likewise.
2455         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
2456         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
2457         match.
2458         (DEF_BUILTIN_STUB): New.
2459         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
2460         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
2461         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
2462         * c-common.c (DEF_BUILTIN): Add COND argument.
2463         * tree.c (local_define_builtin): New.
2464         (build_common_builtin_nodes): New.
2465
2466 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2467
2468         * fold-const.c (fold_strip_sign_ops): New function to simplify a
2469         floating point expression ignoring the sign of the result.
2470         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
2471         (fold) <MULT_EXPR>: Use it to simplify x*x.
2472         * tree.h (fold_strip_sign_ops): Prototype here.
2473         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
2474         argument.  Use fold_strip_sign_ops to simplify the first argument.
2475         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
2476         first argument when the second argument is an even integer
2477         constant, but only with -funsafe_math_optimizations.
2478         (fold_builtin_1): Update call to fold_builtin_copysign.
2479
2480 2005-02-09  Ian Lance Taylor  <ian@airs.com>
2481
2482         PR middle-end/19583
2483         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
2484         just check whether EH_FILTER_FAILURE falls through.
2485
2486 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2487
2488         * gcc/haifa-sched.c (schedule_block): Make queued sched group
2489         insns return to ready list in the next turn.
2490
2491 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2492
2493         PR middle-end/19402
2494         * builtins.def: New __builtin_powi[lf].
2495         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
2496         (expand_builtin_powi): New function.
2497         (expand_builtin): Dispatch to expand_builtin_powi.
2498         * libgcc2.h: Add prototypes for __builtin_powi[lf].
2499         * libgcc2.c: Add __builtin_powi[lf] implementation.
2500         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
2501         * optabs.h: Add powi_optab.
2502         * optabs.c (init_optabs): Initialize powi_optab.
2503         * doc/extend.texi: Document __builtin_powi[lf].
2504
2505 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
2506
2507         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
2508         exists.
2509
2510 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2511
2512         PR middle-end/19854
2513         * fold-const.c (try_move_mult_to_index): Remove redundant
2514         type argument.  Create ADDR_EXPR with correct type.
2515         (fold): Update callers of try_move_mult_to_index.  Convert
2516         result to the appropriate type.
2517
2518 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2519
2520         PR target/19597
2521         * config/avr/avr.c (default_rtx_costs): Delete.
2522         (avr_operand_rtx_cost): New function.
2523         (avr_rtx_costs): Completely rewrite.
2524
2525 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
2526
2527         PR target/19806
2528         * config/cris/cris.c (in_code): New variable.
2529         (cris_output_addr_const): Now a static function, a wrapper for
2530         output_addr_const.
2531         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
2532         case from old cris_output_addr_const.
2533         (cris_asm_output_label_ref): Similar for LABEL_REF.
2534         (cris_output_addr_const_extra): Similar for UNSPEC.
2535         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
2536         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
2537         * config/cris/cris-protos.h (cris_output_addr_const): Remove
2538         declaration.
2539         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
2540         (cris_asm_output_label_ref): Declare.
2541
2542 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
2543
2544         PR preprocessor/19801
2545         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
2546         filenames that changed when libcpp was moved to the toplevel.
2547
2548 2005-02-07  Roger Sayle  <roger@eyesopen.com>
2549
2550         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
2551         zero extensions of BImode operands.  Call lowpart_subreg instead
2552         of gen_lowpart_common and gen_lowpart_SUBREG.
2553
2554 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
2555
2556         PR ada/19489
2557         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
2558         * configure.ac: Set cc_for_cross_gnattools.
2559         * configure: Regenerate.
2560
2561 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
2562
2563         PR target/19803
2564         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
2565
2566 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2567
2568         PR debug/19327
2569         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
2570         of nested functions.
2571
2572 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
2573
2574         * doc/extend.texi: Document deprecated extensions allowing
2575         static floating-point members to have initializers and allowing
2576         floating-point literals in integral constant expressions.
2577
2578 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
2579
2580         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
2581         config/darwin7.h, config/mips/mips.c,
2582         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
2583         Update copyright.
2584
2585         * cse.c: Update comments.
2586
2587 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
2588
2589         PR middle-end/19775
2590         * builtins.c (fold_builtin_sqrt): Transform
2591         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
2592         pow(x,y*0.5).
2593
2594 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
2595             Dorit Naishlos  <dorit@il.ibm.com>
2596
2597         * doc/invoke.texi (ftree-vectorizer-verbose): New.
2598         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
2599         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
2600         was added.
2601         * tree.h (vect_set_verbosity_level): New extern function declaration
2602         added.
2603         * tree-vectorizer.h (verbosity_levels): New enum type.
2604         * tree-vectorizer.c (vect_debug_stats): Function removed.
2605         (vect_debug_details): Likewise.
2606         (vect_verbosity_level): Global variable was defined and initialized.
2607         (vect_dump): Global variable definition.
2608         (vect_print_dump_info): New function.
2609         (vect_set_dump_settings): New function.
2610         (vect_set_verbosity_level): New function.
2611         (vectorize_loops): Add call to vect_set_dump_settings.
2612
2613         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
2614         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2615         (slpeel_tree_peel_loop_to_edge): Likewise.
2616
2617         (vect_analyze_offset_expr): Call to vect_print_dump_info with
2618         appropriate verbosity level instead of call to vect_debug_details
2619         or vect_debug_stats.
2620         (vect_get_base_and_offset):
2621         (vect_create_addr_base_for_vector_ref):
2622         (get_vectype_for_scalar_type):
2623         (vect_create_data_ref_ptr):
2624         (vect_init_vector):
2625         (vect_get_vec_def_for_operand):
2626         (vect_finish_stmt_generation):
2627         (vectorizable_assignment):
2628         (vectorizable_operation):
2629         (vectorizable_store):
2630         (vectorizable_load):
2631         (vect_transform_stmt):
2632         (vect_update_ivs_after_vectorizer):
2633         (vect_do_peeling_for_loop_bound):
2634         (vect_update_inits_of_drs):
2635         (vect_do_peeling_for_alignment):
2636         (vect_transform_loop):
2637         (vect_is_simple_use):
2638         (vect_analyze_operations):
2639         (vect_is_simple_iv_evolution):
2640         (vect_analyze_scalar_cycles):
2641         (vect_analyze_data_ref_dependence):
2642         (vect_analyze_data_ref_dependences):
2643         (vect_compute_data_ref_alignment):
2644         (vect_enhance_data_refs_alignment):
2645         (vect_analyze_data_refs_alignment):
2646         (vect_analyze_data_ref_access):
2647         (vect_analyze_data_ref_accesses):
2648         (vect_analyze_pointer_ref_access):
2649         (vect_get_memtag_and_dr):
2650         (vect_analyze_data_refs):
2651         (vect_mark_relevant):
2652         (vect_stmt_relevant_p):
2653         (vect_mark_stmts_to_be_vectorized):
2654         (vect_can_advance_ivs_p):
2655         (vect_get_loop_niters):
2656         (vect_analyze_loop_form):
2657         (vect_analyze_loop):
2658         (vectorize_loops): Likewise.
2659
2660         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
2661         (vect_update_inits_of_drs):
2662         (vect_do_peeling_for_alignment):
2663         (vect_transform_loop):
2664         (vect_analyze_operations):
2665         (vect_analyze_scalar_cycles):
2666         (vect_analyze_data_ref_dependences):
2667         (vect_analyze_data_refs_alignment):
2668         (vect_analyze_data_ref_accesses):
2669         (vect_analyze_data_refs):
2670         (vect_mark_stmts_to_be_vectorized):
2671         (vect_get_loop_niters):
2672         (vect_analyze_loop_form):
2673         (vect_analyze_loop): Likewise.
2674         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
2675
2676 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
2677
2678         PR bootstrap/19796
2679         Revert:
2680         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
2681         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2682         either -ffast-math or -funsafe-math-optimizations is in use.
2683
2684         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
2685         * config/mips/irix-csr.c: New file.
2686         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
2687         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
2688         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
2689         executables.
2690
2691 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
2692
2693         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
2694         redundant, incorrect definitions.
2695
2696         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
2697         expand.
2698         ("*tls_indirect_call"): New, reference hard regs directly.
2699         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
2700
2701 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
2702
2703         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
2704         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
2705
2706 2005-02-06  Roger Sayle  <roger@eyesopen.com>
2707
2708         PR rtl-optimization/19800
2709         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
2710         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
2711         gen_lowpart.
2712
2713 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
2714
2715         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
2716
2717 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
2718
2719         PR other/17135
2720         * doc/invoke.texi: Correct documentation of -freorder-functions.
2721
2722 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2723
2724         PR other/14402
2725         * doc/invoke.texi: Don't mention gccbug.
2726
2727 2005-02-06  Roger Sayle  <roger@eyesopen.com>
2728             Andrew Pinski  <pinskia@physics.uc.edu>
2729             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
2730
2731         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2732         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
2733         into just (zero_extract:SI FOO (const_int 1) BAR).
2734
2735 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2736
2737         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
2738         macro locally.  Don't give last revision date.  Use GCC version
2739         number from gcc-common.texi.
2740         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
2741         revision date.  Use GCC version number from gcc-common.texi.
2742         Describe being a library as current state rather than as 3.x
2743         history.
2744         * doc/gcc.texi: Remove last update date.
2745         * doc/gccint.texi: Likewise.  Update copyright dates.
2746         * doc/install.texi: Update copyright dates.
2747
2748 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2749
2750         PR other/7549
2751         * doc/invoke.texi: Mention for each option included in -Wall that
2752         it is included in -Wall.
2753         * doc/gcc.texi: Update copyright and last modification date.
2754
2755 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2756
2757         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
2758         unnecessary cast to original induction variable increments.
2759
2760 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2761
2762         PR tree-optimization/18219
2763         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
2764         in distributed form.
2765
2766 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
2767
2768         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
2769         Set bitpos and offset later in the function.  Do nothing if the
2770         target is a register and if the bitfield lies completely outside
2771         that register.
2772         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
2773         here.  Return an uninitialised register if the source value is stored
2774         in a register and the bitfield lies completely outside that register.
2775
2776 2005-02-06  Steven Bosscher  <stevenb@suse.de>
2777
2778         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
2779         not SET_DEST.
2780
2781 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
2782
2783         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
2784
2785 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
2786
2787         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
2788         * config/darwin8.h: New.
2789         * config/darwin7.h: Update comment.
2790
2791 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2792             Dorit Naishlos  <dorit@il.ibm.com>
2793
2794         * tree-vectorizer.h (LOC): New type.
2795         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
2796         (loop_line_number): New field in struct _loop_vec_info.
2797         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
2798
2799         * tree-vectorizer.c (input.h): Included.
2800         (find_loop_location): New function.
2801         (vect_debug_stats): Argument changed from loop to LOC. Computation of
2802         loop line number removed.
2803         (vect_debug_details): Likewise.
2804         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
2805
2806         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
2807         call to vect_debug_details/stats changed from loop to loop_loc.
2808         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2809         (slpeel_tree_peel_loop_to_edge): Likewise.
2810
2811         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
2812         changed from NULL to UNKNOWN_LOC.
2813         (vect_get_base_and_offset):
2814         (vect_create_addr_base_for_vector_ref):
2815         (get_vectype_for_scalar_type):
2816         (vect_create_data_ref_ptr):
2817         (vect_init_vector):
2818         (vect_get_vec_def_for_operand):
2819         (vect_finish_stmt_generation):
2820         (vectorizable_assignment):
2821         (vectorizable_operation):
2822         (vectorizable_store):
2823         (vectorizable_load):
2824         (vect_transform_stmt):
2825         (vect_update_ivs_after_vectorizer):
2826         (vect_do_peeling_for_loop_bound):
2827         (vect_do_peeling_for_alignment):
2828         (vect_transform_loop):
2829         (vect_is_simple_use):
2830         (vect_analyze_operations):
2831         (vect_is_simple_iv_evolution):
2832         (vect_analyze_scalar_cycles):
2833         (vect_analyze_data_ref_dependences):
2834         (vect_compute_data_ref_alignment):
2835         (vect_enhance_data_refs_alignment):
2836         (vect_analyze_data_ref_access):
2837         (vect_analyze_data_ref_accesses):
2838         (vect_analyze_pointer_ref_access):
2839         (vect_get_memtag_and_dr):
2840         (vect_analyze_data_refs):
2841         (vect_mark_relevant):
2842         (vect_stmt_relevant_p):
2843         (vect_mark_stmts_to_be_vectorized):
2844         (vect_can_advance_ivs_p):
2845         (vect_get_loop_niters):
2846         (vect_analyze_loop):
2847         (vectorize_loops): Likewise.
2848
2849         (vectorizable_load): Argument in call to vect_debug_details/stats
2850         changed from loop to LOOP_LOC (loop_vinfo).
2851         (vect_transform_loop):
2852         (vect_analyze_operations):
2853         (vect_analyze_scalar_cycles):
2854         (vect_analyze_data_ref_dependence):
2855         (vect_enhance_data_refs_alignment):
2856         (vect_analyze_data_ref_accesses):
2857         (vect_analyze_pointer_ref_access):
2858         (vect_analyze_data_refs):
2859         (vect_analyze_loop): Likewise.
2860
2861         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
2862         changed from loop to loop_loc.
2863
2864         (vect_enhance_data_refs_alignment): Removed unused variable loop.
2865
2866 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2867             Dorit Naishlos  <dorit@il.ibm.com>
2868
2869         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
2870         declaration added.
2871         (vect_analyze_data_ref_dependences): Likewise.
2872
2873         (vect_is_simple_use): Argument changed from loop structure to
2874         loop_vect_info structure.
2875         (vect_can_advance_ivs_p): Likewise.
2876         (vect_create_index_for_vector_ref): Likewise.
2877         (vect_update_ivs_after_vectorizer): Likewise.
2878         (new_stmt_vec_info): Likewise.
2879
2880         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
2881         changed from loop to loop_vinfo.
2882         (vect_create_data_ref_ptr): First argument in call to
2883         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
2884         (vectorizable_assignment): Second argument in call to vect_is_simple_use
2885         was changed from loop to loop_vinfo.
2886         (vectorizable_operation): Likewise.
2887         (vectorizable_store): Likewise.
2888         (vect_mark_stmts_to_be_vectorized): Likewise.
2889         (vect_do_peeling_for_loop_bound): First argument in call to
2890         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
2891         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
2892         was changed from loop to loop_vinfo.
2893         (vect_analyze_data_ref_dependences): Third argument in call to
2894         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2895
2896         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
2897         (vect_create_data_ref_ptr): Likewise.
2898         (vect_init_vector): Likewise.
2899         (vect_get_vec_def_for_operand): Likewise.
2900         (vectorizable_assignment): Likewise.
2901         (vectorizable_operation): Likewise.
2902         (vectorizable_store): Likewise.
2903         (vectorizable_load): Likewise.
2904         (vect_update_ivs_after_vectorizer): Likewise.
2905         (vect_is_simple_use): Likewise.
2906         (vect_analyze_data_ref_dependence): Likewise.
2907         (vect_analyze_pointer_ref_access): Likewise.
2908         (vect_can_advance_ivs_p): Likewise.
2909
2910         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
2911         before _stmt_vec_info.
2912         (_stmt_vec_info): Loop field replaced by loop_vec_info.
2913         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
2914         (new_stmt_vec_info): Argument changed from loop structure to
2915         loop_vect_info structure
2916
2917         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
2918         (vect_analyze_offset_expr): Avoid 80 columns overflow.
2919         (vect_create_addr_base_for_vector_ref): Likewise.
2920         (vect_analyze_pointer_ref_access): Likewise.
2921
2922 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2923
2924         PR tree-opt/19768
2925         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
2926         phi flag if the phi is abnormal.
2927
2928 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2929
2930         PR tree-opt/19736
2931         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
2932         information for the new statement.
2933
2934 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
2935
2936         PR driver/19117
2937         * gcc.c (main): Include the target in -v output.
2938
2939 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
2940
2941         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
2942         Do not drop the extend if we'd have to add a paradoxical subreg
2943         later.  Include optabs.h and insn-codes.h.
2944         * Makefile.in (combine.o): Depend on $(OPTABS_H).
2945
2946 2005-02-02  Roger Sayle  <roger@eyesopen.com>
2947
2948         PR middle-end/19405
2949         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
2950         * fold-const.c (const_binop): Avoid constant folding floating
2951         point operations in modes that use composite representations.
2952         * simplify-rtx.c (simplify_binary_operation): Likewise.
2953
2954 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
2955
2956         * config/rs6000/altivec.md (altivec_dst): Make the first operand
2957         a REG, not a MEM.
2958         (altivec_dstt): Likewise.
2959         (altivec_dstst): Likewise.
2960         (altivec_dststt): Likewise.
2961         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
2962         of first operand.
2963
2964 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2965
2966         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
2967         EXPR_LOCUS from orig_cond to the new cond_stmt.
2968         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
2969         the new vec_stmt.
2970
2971 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2972
2973         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
2974         standard_iv_increment_position. Remove call to bsi_next
2975         (no need to bump the iterator anymore).
2976         (vect_create_index_for_vector_ref): Call
2977         standard_iv_increment_position. Remove second function argument.
2978         (vect_finish_stmt_generation): Remove call to bsi_next
2979         (no need to bump the iterator anymore).
2980         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
2981         to vect_create_index_for_vector_ref.
2982
2983 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
2984
2985         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
2986         phis are used out of the loop.
2987
2988 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
2989
2990         PR c/17807
2991         * c-decl.c (undef_nested_function): New variable.
2992         (pop_scope): Diagnose undefined nested functions.
2993         (finish_function): Don't attempt cgraph processing or genericizing
2994         if current top-level function contained an undefined nested
2995         function.  Reset undef_nested_function at the end of a top-level
2996         function.
2997
2998 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
2999
3000         * tree.c (build_int_cst_type): Take sign of the value into account
3001         when deciding whether sign extend the value.
3002
3003 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3004
3005         PR c/18502
3006         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
3007         (cpp_options, cc1_options): Change %{std*&ansi} to
3008         %{std*&ansi&trigraphs}.
3009
3010 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
3011
3012         * cse.c: Update comments.
3013
3014 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
3015
3016         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
3017         arguments go on the stack.  Do not put complex doubles in odd/even
3018         pairs.
3019
3020 2005-02-02  Steven Bosscher  <stevenb@suse.de>
3021
3022         * doc/invoke.texi: Update the options enabled at -O1, -O2,
3023         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
3024         -ftree-pre, and -fthread-jumps.
3025
3026 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
3027
3028         PR tree-optimization/19578
3029         * tree-flow.h (modified_noreturn_calls): Declare.
3030         (noreturn_call_p): Declare.
3031         * tree-flow-inline.h (noreturn_call_p): New function.
3032         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
3033         * tree-cfg.c (modified_noreturn_calls): New variable.
3034         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
3035         that contain a mid-block noreturn call.
3036         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
3037
3038 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
3039
3040         * df.c (df_def_record_1, df_uses_record): Don't use
3041         DF_FOR_REGALLOC.
3042         * df.h (DF_FOR_REGALLOC): Remove.
3043
3044 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3045
3046         PR c/19435
3047         * c-typeck.c (really_start_incremental_init): Reset
3048         constructor_max_index for arrays of incomplete type.
3049
3050 2005-02-02  Jeff Law  <law@redhat.com>
3051
3052         * gcse.c (struct reg_set): Store the block index where the register
3053         was set rather than the setting insn.
3054         (record_one_set, compute_transp): Corresponding changes.
3055         (pre_insert_copy_insn): Do not call replace_one_set.
3056         (replace_one_set): Remove.
3057
3058 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3059
3060         PR other/15514
3061         * doc/gcov.texi: Fix typo.
3062
3063 2005-02-01  Richard Henderson  <rth@redhat.com
3064
3065         PR target/19680
3066         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
3067         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
3068         type to bool.
3069         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
3070         * config/i386/i386-protos.h: Update.
3071
3072 2005-02-01  Steven Bosscher  <stevenb@suse.de>
3073
3074         PR tree-optimization/19217
3075         * tree-cfg.c (verify_expr): Use the data field to see if TP was
3076         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
3077         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
3078         that it is walking a PHI node.
3079
3080 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
3081
3082         * doc/extend.texi (Nested Functions): Update.
3083
3084 2005-02-01  Richard Henderson  <rth@redhat.com>
3085
3086         PR 19696
3087         * optabs.c (expand_copysign_absneg): Export.
3088         * optabs.h (expand_copysign_absneg): Declare.
3089         * config/rs6000/rs6000.md (copysigntf3): New.
3090
3091 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
3092
3093         PR tree-optimization/19633
3094         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
3095         * tree-ssa-alias.c (init_alias_info): Initialize.
3096         (merge_pointed_to_info): Set.
3097         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
3098         (dump_points_to_info_for): Show value of pt_null.
3099         (struct count_ptr_d): Declare.
3100         (find_ptr_dereference): Remove.
3101         (ptr_is_dereferenced_by): Remove.
3102         (count_ptr_derefs): New local function.
3103         (count_uses_and_derefs): New local function.
3104         (compute_points_to_and_addr_escape): Call it.  If the number
3105         of dereferences is greater than zero, mark the pointer as
3106         dereferenced.  If there are fewer dereferences than uses of
3107         the pointer, the pointer's value escapes.
3108
3109 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
3110
3111         PR tree-optimization/19670
3112         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
3113         here...
3114         (verify_use): ... set it here, instead.
3115
3116 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
3117
3118         * doc/sourcebuild.texi (Test directives): Fix formatting.
3119
3120         * doc/sourcebuild.texi (Test directives): Describe selector
3121         expressions.
3122
3123 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
3124
3125         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
3126         specific 64-bit CPUs.
3127
3128 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
3129
3130         PR target/16201
3131         * arm.c (arm_eliminable_register): New function.
3132         (adjacent_mem_locations): Don't allow eliminable registers.  Use
3133         HOST_WIDE_INT for address offsets.
3134         * arm-protos.h (arm_eliminable_register): Add prototype.
3135
3136 2005-02-01  Steven Bosscher  <stevenb@suse.de>
3137
3138         PR optimization/15242
3139         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
3140         * basic-block.h (duplicate_computed_gotos): Add prototype.
3141         * bb-reorder.c (duplicate_computed_gotos): New function to
3142         duplicate sufficiently small blocks ending in a computed jump.
3143         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
3144         if not optimizing for size.
3145         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
3146         never do tail merging for blocks ending in a computed jump.
3147         * doc/invoke.texi: Document the max-goto-duplication-insns param.
3148
3149 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3150
3151         Patch from Richard Sandiford <rsandifo@redhat.com>
3152         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
3153         from inheriting a subreg equivalence with a non-spill register.
3154
3155         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
3156
3157 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
3158
3159         * config/frv/frv.c (movcc_fp_destination_operand): New.
3160         (gpr_or_memory_operand): Fix typo in comment.
3161         (gpr_or_memory_operand_with_scratch): New.
3162         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
3163         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
3164         movcc_fp_destination_operand.
3165         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
3166         Legitimize memory addresses using a scratch register.
3167
3168 2005-01-31  Jeff Law  <law@redhat.com>
3169
3170         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
3171         bitmap a sparse bitmap instead of a simple bitmap.
3172         (mark_def_sites_initialize_block):  Corresponding changes.
3173         (ssa_mark_def_sites_initialize_block): Likewise.
3174         (ssa_mark_phi_uses): Likewise.
3175         (mark_def_site, ssa_mark_def_sites): Likewise.
3176         (mark_def_site_blocks): Likewise.
3177         (rewrite_ssa_into_ssa): Likewise.
3178
3179         * tree-ssa-dom.c (record_cond): Pass correct variable type
3180         for last argument to htab_find_slot_with_hash.
3181
3182         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
3183         effects when optimizing 0 % X.  Do not try to optimize X % 0.
3184
3185 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
3186
3187         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
3188         1_mmalua.
3189
3190 2005-02-01  Eric Christopher  <echristo@redhat.com>
3191
3192         * config/mips/mips.c (override_options): Warn if -mint64
3193         is used.
3194         * doc/invoke.texi (MIPS Options): Document that -mint64 is
3195         deprecated.
3196
3197 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
3198
3199         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
3200         timestamp.
3201         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
3202         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
3203         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
3204         (cached_regno): Initialize to INVALID_REGNUM.
3205         (cse_reg_info_table_size,
3206         cse_reg_info_table_first_uninitialized,
3207         cse_reg_info_timestamp): New.
3208         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
3209         get_cse_reg_info.
3210         (init_cse_reg_info, get_cse_reg_info_1): New.
3211         (get_cse_reg_info): Cache the last look-up.
3212         (new_basic_block): Update the code to clear mappings from
3213         registers to cse_reg_info entries.
3214         (cse_main): Call init_cse_reg_info.
3215
3216         * cse.c (get_cse_reg_info): Update a comment.
3217
3218 2005-01-31  Steven Bosscher  <stevenb@suse.de>
3219
3220         PR c/19333
3221         * c-decl.c (start_decl): Do not warn about arrays of elements with
3222         an incomplete type here.
3223         (grokdeclarator): Do it here by making a pedwarn an error.
3224         * c-typeck.c (push_init_level): If there were previous errors with
3225         the constructor type, do not warn about braces for initializers.
3226         (process_init_element): Likewise for excess initializer elements.
3227
3228 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
3229
3230         * cse.c (delete_trivially_dead_insn): Don't iterate.
3231
3232 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
3233
3234         * config/rs6000/rs6000.md (copysignsf3): New expand.
3235         (copysigndf3): Likewise.
3236
3237 2005-01-31  Steven Bosscher  <stevenb@suse.de>
3238
3239         * recog.c (constrain_operands): Only look for earlyclobber operand
3240         conflicts if an '&' constraint was seen.
3241
3242 2005-01-31  Marc Espie <espie@openbsd.org>
3243
3244         * config.gcc: Don't include embedded systems fragment, switches default
3245         debugging format to ELF.
3246         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
3247         longer pick it up there.
3248
3249 2005-01-31  Dale Johannesen  <dalej@apple.com>
3250
3251         * doc/extend.texi (nested functions): Fix linkage description.
3252         Clarify that static is not allowed.
3253
3254 2005-01-31  Dale Johannesen  <dalej@apple.com>
3255
3256         * config/rs6000/darwin.md (movsf_low_di):  Make work.
3257         (movdf_low_di):  Make work.
3258
3259 2005-01-31  Dale Johannesen  <dalej@apple.com>
3260
3261         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
3262         Make work for 64 bit.
3263
3264 2005-01-31  Roger Sayle  <roger@eyesopen.com>
3265             Dale Johannesen  <dalej@apple.com>
3266
3267         PR middle-end/19650
3268         * fold-const.c (fold_binary_op_with_conditional_arg):
3269         Make types match original operands, before STRIP_NOPS.
3270
3271 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
3272
3273         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
3274         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
3275         (struct gcc_sigcontext): Delete.  Merge contents to..
3276         (struct gcc_ucontext): ..here.
3277         (get_sigcontext): Delete.
3278         (get_regs): New function, like get_sigcontext but return regs ptr.
3279         64-bit version finds regs from r1 to support vdso.
3280         (ppc_linux_aux_vector): New function.
3281         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
3282         and vector regs.
3283
3284 2005-01-31  Ira Rosen  <irar@il.ibm.com>
3285
3286         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
3287         sizetype.
3288         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
3289         redundant fold. Fix misalignment for MINUS_EXPR.
3290         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
3291         (vect_analyze_pointer_ref_access): Likewise.
3292         (vect_get_memtag_and_dr): Likewise.
3293
3294 2005-01-31  Richard Henderson  <rth@redhat.com>
3295
3296         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
3297         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
3298         absnegdf2_i387, absnegxf2_i387): Likewise.
3299
3300 2005-01-31  Richard Henderson  <rth@redhat.com>
3301
3302         PR 19696
3303         * optabs.c (expand_copysign_absneg): New.
3304         (expand_copysign_bit): Split out from ...
3305         (expand_copysign): ... here.  Use expand_copysign_absneg.
3306
3307 2005-01-30  Roger Sayle  <roger@eyesopen.com>
3308
3309         PR middle-end/19697
3310         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
3311         constant as the second operand and a register as the third.
3312
3313 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
3314
3315         PR target/19704
3316         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
3317         that dllimport'd functions do not use all call-clobbered registers
3318         to pass parameters.
3319
3320 2005-01-30  Richard Henderson  <rth@redhat.com>
3321
3322         PR 19696
3323         * optabs.c (expand_absneg_bit): Split out from expand_unop and
3324         expand_abs_nojump and generalize.  Use operand_subword and
3325         emit_no_conflict_block.  Support large modes.
3326         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
3327         back to maximum.
3328         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
3329         negation to subtraction.
3330         (expand_copysign): Check that the format has signed zeros.
3331         Use operand_subword and emit_no_conflict_block.  Support large modes.
3332
3333 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
3334
3335         Fix PR tree-optimization/19624
3336
3337         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
3338         * tree-ssa-pre.c: Add cfgloop.h.
3339         Update comment.
3340         (pre_stats): New member, constified.
3341         (inserted_exprs): New static variable.
3342         (NECESSARY): New macro.
3343         (create_expression_by_pieces): Fold the expression, and
3344         mark it as defaulting to not necessary. Also put in
3345         inserted_exprs.
3346         (fully_constant_expression): New function.
3347         (insert_into_preds_of_block): Modify to not insert phis when we
3348         are playing with induction variables.
3349         Push phis onto the inserted_exprs vector, and mark them as not
3350         necessary by default.
3351         (insert_aux): Call fully_constant_expression on eprime.
3352         If all edges produce the same value, mark it constant.
3353         (mark_operand_necessary): New function.
3354         (remove_dead_inserted_code): New function.
3355         (init_pre): Init loop optimizer to get loop info.
3356         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
3357         (execute_pre): Commit edge inserts, then remove dead code.
3358
3359 2005-01-30  Richard Henderson  <rth@redhat.com>
3360
3361         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
3362         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
3363
3364 2005-01-30  Richard Henderson  <rth@redhat.com>
3365
3366         PR target/19700
3367         * config/i386/i386.c (ix86_expand_copysign): New.
3368         (ix86_split_copysign_const): New.
3369         (ix86_split_copysign_var): Rename from ix86_split_copysign,
3370         rearrange op1/nmask operands.
3371         * config/i386/i386-protos.h: Update.
3372         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
3373         (copysigndf3): Likewise.
3374         (copysignsf3_const, copysigndf3_const): New.
3375         (copysignsf3_var): Rename from copysignsf3, split out splitter
3376         and fix split predicate for X constraint.
3377         (copysigndf3_var): Similarly.
3378
3379 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
3380
3381         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
3382         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
3383         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
3384
3385 2005-01-29  Richard Henderson  <rth@redhat.com>
3386
3387         PR target/19690
3388         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
3389         of # and * in constraints.
3390
3391 2005-01-29  Richard Henderson  <rth@redhat.com>
3392
3393         PR middle-end/19689
3394         * expr.c (store_field): Don't strip sub-mode cast when the input
3395         data is even smaller.
3396
3397 2005-01-29  Richard Henderson  <rth@redhat.com>
3398
3399         PR middle-end/19687
3400         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
3401         union being empty.
3402
3403 2005-01-29  Richard Henderson  <rth@redhat.com>
3404
3405         * combine.c (make_field_assignment): Fix argument order
3406         to gen_int_mode.
3407
3408 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
3409
3410         PR tree-optimization/15791
3411         * fold-const.c (extract_array_ref): New function.
3412         (fold): Fold comparisons between &a[i] and &a[j] or
3413         semantically equivalent trees.
3414
3415 2005-01-29  Jeff Law  <law@redhat.com>
3416
3417         * gcse.c (insert_expr_in_table): Revamp handling of available
3418         and anticipatable occurrence lists to avoid unnecessary list
3419         walking.
3420         (insert_set_in_table): Similarly.
3421
3422 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
3423
3424         * c-common.c (fix_string_type): Just use c_build_qualified_type to
3425         build string type.
3426         (c_build_qualified_type): Build qualified array types with
3427         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
3428         * c-decl.c (c_make_fname_decl): Build unqualified array type
3429         before qualified type.
3430         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
3431         type is qualified, not just if type itself is.  Don't apply
3432         qualifiers to array type when declarator is processed.  Apply
3433         qualifiers to field type whether or not it is an array type.
3434         Don't handle array types specially for applying qualifiers to
3435         variables.
3436         * c-typeck.c (composite_type): Build unqualified element type and
3437         array type when forming composite of array types.
3438         (common_pointer_type, comptypes, comp_target_types,
3439         type_lists_compatible_p, build_indirect_ref, build_array_ref,
3440         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
3441         types.
3442         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
3443         (args2) in variables a1 and a2.
3444
3445 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
3446
3447         * cse.c (n_elements_made, max_elements_made): Remove.
3448         (insert): Don't touch n_elements_made.
3449         (cse_main): Don't touch n_elements_made or max_elements_made.
3450
3451 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
3452
3453         PR target/15384
3454         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
3455         configuration part of dp-bit.c to be lost.
3456
3457 2005-01-28  Roger Sayle  <roger@eyesopen.com>
3458
3459         * expmed.c (expand_mult_highpart_optab): When attempting to use
3460         a non-widening multiplication in a wider mode, the operands need
3461         to be converted (zero or sign extended) to that mode.
3462
3463 2005-01-28  Ian Lance Taylor  <ian@airs.com>
3464
3465         PR middle-end/16558
3466         PR middle-end/19583
3467         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
3468         through if both operands fall through.
3469
3470 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
3471
3472         * cse.c (fold_rtx) <PC>: Don't optimize.
3473
3474 2005-01-28  Jeff Law  <law@redhat.com>
3475
3476         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
3477         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
3478
3479 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
3480
3481         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
3482         cse_reg_info_used_list_end): Remove.
3483         (cse_reg_info_list, cse_reg_info_list_free): New.
3484         (get_cse_reg_info): When allocating an instance of
3485         cse_reg_info, add it to the beginning of the cse_reg_info_list
3486         list.  Remove code to maintain cse_reg_info_used_list.
3487         (new_basic_block): Reset the free list to the beginning of
3488         cse_reg_info_list.
3489
3490 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
3491
3492         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
3493         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
3494         (frv_expand_mdpackh_builtin): New function.
3495         (frv_expand_builtin): Use it to expand __MDPACKH.
3496         * doc/extend.texi (__MDPACKH): Update documentation.
3497
3498 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
3499
3500         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
3501         SSE_FLOAT_MODE_P for use_sse computation.
3502
3503 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
3504
3505         PR target/19663
3506         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
3507
3508 2005-01-27  Richard Henderson  <rth@redhat.com>
3509
3510         * builtins.c (expand_builtin_copysign): New.
3511         (expand_builtin): Call it.
3512         * genopinit.c (optabs): Add copysign_optab.
3513         * optabs.c (init_optabs): Initialize it.
3514         (expand_copysign): New.
3515         * optabs.h (OTI_copysign, copysign_optab): New.
3516         (expand_copysign): Declare.
3517
3518         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
3519         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
3520
3521         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
3522         (ix86_expand_fp_absneg_operator): ... here.
3523         (ix86_split_copysign): New.
3524         * config/i386/i386-protos.h: Update.
3525         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
3526         (copysignsf3, copysigndf3): New.
3527
3528         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
3529         (copysignsf3, ncopysignsf3): New.
3530         (copysigndf3, ncopysigndf3): New.
3531         (copysignxf3, ncopysignxf3): New.
3532         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
3533
3534 2005-01-27  Arend Bayer  <arend.bayer@web.de>
3535             Kazu Hirata  <kazu@cs.umass.edu>
3536
3537         * cse.c: (find_best_addr): Don't call copy_rtx before calling
3538         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
3539         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
3540         NULL_RTX.
3541
3542 2005-01-27  Jeff Law  <law@redhat.com>
3543
3544         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
3545         definitions of SSA_NAMEs which are not being rewritten.
3546         (rewrite_ssa_into_ssa): Only initialize the current definition
3547         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
3548         If checking is enabled, assert that SSA_NAME_AUX is clear for all
3549         SSA_NAMEs before returning.
3550
3551 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
3552
3553         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
3554         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
3555         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
3556         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
3557         config/mips/iris6.h, config/sh/sh.c: Update copyright.
3558
3559 2005-01-27  Steven Bosscher  <stevenb@suse.de>
3560
3561         PR middle-end/17278
3562         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
3563         higher to -O2 and higher.  Likewise for tree PRE.
3564         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
3565         and better.
3566
3567 2005-01-27  Ian Lance Taylor  <ian@airs.com>
3568
3569         PR middle-end/19583
3570         * gimple-low.c (try_catch_may_fallthru): New static function.
3571         (block_may_fallthru): Handle TRY_CATCH_EXPR.
3572         * tree-inline.c (expand_call_inline): Don't warn about reaching
3573         the end of a non-void function being inlined if the function uses
3574         a return slot.
3575
3576 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
3577
3578         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
3579
3580         PR c/18946
3581         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
3582         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
3583         (implicitly_declare): Handle error_mark_node.
3584
3585 2005-01-27  Richard Henderson  <rth@redhat.com>
3586
3587         PR tree-opt/14329
3588         * tree.h (struct tree_decl): Add debug_expr_is_from.
3589         (DECL_DEBUG_EXPR_IS_FROM): New.
3590         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
3591         * dwarf2out.c (dwarf2out_var_location): Update to match.
3592         * tree-outof-ssa.c (create_temp): Likewise.
3593         * var-tracking.c (track_expr_p): Likewise.
3594         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
3595         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
3596         * toplev.c (default_tree_printer): Likewise.
3597
3598 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
3599
3600         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
3601         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
3602
3603 2005-01-27  Steven Bosscher  <stevenb@suse.de>
3604
3605         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
3606         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3607         ASM_CLOBBERS): Add tree checks.
3608
3609         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
3610         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
3611         * c-common.def (SWITCH_STMT): Update to match.
3612         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
3613         macros instead of SWITCH_EXPR ones.
3614         * c-dump.c (c_dump_tree): Likewise.
3615         * c-gimplify.c (gimplify_switch_stmt): Likewise.
3616         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
3617
3618         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
3619
3620 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
3621
3622         * unwind-dw2.c (execute_stack_op): Add missing cases for
3623         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
3624
3625 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
3626
3627         * config.gcc (Obsolete configurations): Remove 'dummy', add
3628         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
3629         sparc-*-openbsd*.
3630
3631 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
3632
3633         PR tree-optimization/19633
3634         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
3635         CALL_EXPRs.
3636         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
3637         are no call-clobbered variables.
3638         * tree-outof-ssa.c (check_replaceable): Return false for calls
3639         with side-effects.
3640
3641 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
3642
3643         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
3644         even for variables with NULL DECL_INITIAL.
3645
3646 2005-01-26  Stuart Hastings  <stuart@apple.com>
3647
3648         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
3649
3650 2005-01-26  Richard Henderson  <rth@redhat.com>
3651
3652         PR middle-end/18008
3653         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3654         field's type.
3655         * expr.c (store_field): Strip conversions to odd-bit-sized types
3656         if the destination field width matches.
3657
3658 2005-01-26  Richard Henderson  <rth@redhat.com>
3659
3660         * c-decl.c, expmed.c, expr.c: Revert last change.
3661
3662 2005-01-26  Richard Henderson  <rth@redhat.com>
3663
3664         PR middle-end/18008
3665         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3666         field's type.
3667         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
3668         if we don't need the bits above those present in the current mode.
3669         * expr.c (store_field): Strip conversions to odd-bit-sized types
3670         if the destination field width matches.
3671
3672 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
3673
3674         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
3675         either -ffast-math or -funsafe-math-optimizations is in use.
3676
3677 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3678
3679         PR target/19293
3680         PR target/19329
3681         * config/avr/avr.c (notice_update_cc): Only set condition code for
3682         ashrqi3 if shift count > 0.
3683         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
3684         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
3685         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
3686         count <= 0 as a no-op, and shift count >= width by copying zero
3687         or sign bit to all bits of the result.
3688         * config/avr/avr.md (all shifts): Add alternatives for zero shift
3689         count, with attribute "length" set to 0 and "cc" set to "none".
3690
3691 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
3692
3693         * doc/invoke.texi: Document -mTLS.
3694
3695         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
3696         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
3697         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
3698         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
3699         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
3700         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
3701         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
3702         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
3703
3704         * configure.ac: Check for a TLS capable gas.
3705
3706         * configure: Regenerate.
3707
3708 2005-01-26  Richard Henderson  <rth@redhat.com>
3709
3710         PR middle-end/18008
3711         * combine.c (make_field_assignment): Simplify store to zero_extract
3712         from a source with an overlapping mask.
3713
3714 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
3715
3716         2004-11-11  Eric Christopher  <echristo@redhat.com>
3717
3718         * config/frv/frv.md: Add fr400_integer automaton. Don't
3719         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
3720         to TYPE_MACC.
3721
3722 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3723
3724         PR middle-end/16585
3725         * cfgbuild.c (make_edges): Do not clear or set
3726         current_function_has_computed_jump.
3727         * function.h (struct function): Remove the has_computed_jump field.
3728         (current_function_has_computed_jump): Do not define.
3729         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
3730         in a computed jump.  Ignore current_function_has_computed_jump.
3731
3732 2005-01-26  Richard Henderson  <rth@redhat.com>
3733
3734         PR middle-end/19515
3735         * expr.c (categorize_ctor_elements): New argument p_must_clear.
3736         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
3737         fully initialized.
3738         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
3739         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
3740         objects into static storage if they have more than one non-zero value.
3741         * tree.h (categorize_ctor_elements): Update decl.
3742
3743 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3744
3745         PR middle-end/19616
3746         * tree.h (CALL_EXPR_TAILCALL): Add comment.
3747         * calls.c (check_sibcall_argument_overlap_1): Revert the change
3748         to this function from 2004-07-10.
3749         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
3750         the current function for tail call optimizations if the address
3751         of one of it its arguments is taken.
3752
3753 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
3754
3755         * cse.c (fold_rtx): Call equiv_constant only when necessary.
3756
3757 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3758
3759         * function.c (expand_function_end): If current_function_calls_alloca,
3760         emit stack restore in a place that is reached when the function falls
3761         through at the end.
3762
3763 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
3764
3765         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
3766         rule to avoid matching inappropriate suffix rule.
3767
3768 2005-01-26  Jan Hubicka  <jh@suse.cz>
3769
3770         PR tree-optimization/19241
3771         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
3772
3773 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3774
3775         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
3776         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
3777         of doubling.
3778         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
3779         <sim*>: Always use crt1.o, regardless of N in simN.
3780         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3781         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
3782         (CRT_CALL_STATIC_FUNCTION): Remove.
3783         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
3784         use crt1.o, regardless of N in simN.
3785         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3786         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
3787         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
3788         case isystem setting.
3789         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
3790
3791 2005-01-25  Ian Lance Taylor  <ian@airs.com>
3792
3793         * gimple-low.c (block_may_fallthru): Correct handling of
3794         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
3795
3796 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3797
3798         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
3799         handlers to match indentation; nested under the mtune=* handler.
3800         Similar for mcpu= and march=.
3801
3802 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
3803
3804         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
3805         * config/mips/linux64.h (LIB_SPEC): Likewise.
3806         * config/mn10300/linux.h (LIB_SPEC): Likewise.
3807         * config/sh/linux.h (LIB_SPEC): Likewise.
3808
3809 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
3810
3811         * config/frv/frv.c (frv_legitimize_tls_address): New.
3812         (TARGET_HAVE_TLS): Define.
3813         (FRV_SYMBOL_REF_TLS_P): Define.
3814         (frv_override_options): Handle new register classes.
3815         (frv_legitimate_address_p): Reject tls addresses.
3816         (frv_legitimize_address): Handle TLS addresses.
3817         (gen_inlined_tls_plt): New.
3818         (gen_tlsmoff): New.
3819         (frv_legitimize_tls_address): New.
3820         (unspec_got_name): Add TLS entries.
3821         (got12_operand): Add R_FRV_TLSMOFF12 case.
3822         (frv_emit_move): Fixup TLS addresses.
3823         (frv_emit_movsi): Legitimize TLS addresses.
3824
3825         * config/frv/frv.h (MASK_BIG_TLS): New.
3826         (TARGET_BIG_TLS): New.
3827         (HAVE_AS_TLS): Define.
3828         (TARGET_SWITCHES): Add -mTLS and -mtls options.
3829         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
3830         (REG_CLASS_NAMES): Same.
3831         (REG_CLASS_CONTENTS): Same.
3832         (CONSTRAINT_LEN): New.
3833         (REG_CLASS_FROM_CONSTRAINT): New.
3834         (PREDICATE_CODES): Add symbolic_operand.
3835
3836         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
3837         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
3838         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
3839         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
3840         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
3841         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
3842         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
3843         GR9_REG, GR14_REG, LRREG.
3844         (type): Add load_or_call attribute.
3845         ("load_or_call"): New reservation.
3846         ("call_gettlsoff"): New.
3847         ("tls_indirect_call"): New.
3848         ("tls_load_gottlsoff12"): New.
3849         ("tlsoff_hilo"): New.
3850         ("tls_tlsdesc_ldd"): New.
3851         ("tls_tlsoff_ld"): New.
3852         ("tls_lddi"): New.
3853
3854         * config/frv/frv-protos.h (symbolic_operand): Protoize.
3855
3856         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
3857
3858         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3859         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
3860         * config/frv/frv.c (TLS_BIAS): Define.
3861         (frv_output_dwarf_dtprel): New.
3862
3863 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
3864
3865         PR rtl-optimization/19579
3866         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
3867         both A and B, see if they don't clobber registers the other expr uses.
3868
3869 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
3870
3871         * real.c (do_add): Initialize signalling and canonical members.
3872
3873         * real.c (real_from_integer): Zero out destination.
3874
3875 2005-01-18  Jan Hubicka  <jh@suse.cz>
3876
3877         PR tree-optimize/19337
3878         * tree-inline.c (initialize_inlined_parameters): Copy
3879         saved_static_chain_decl only.
3880
3881 2005-01-25  Richard Henderson  <rth@redhat.com>
3882
3883         PR target/19556
3884         PR target/19584
3885         * config/i386/i386.c (x86_inter_unit_moves): Zero.
3886         (ix86_preferred_reload_class): Rewrite fp-constant section, with
3887         80387 enabled, to return a proper subclass.  Return the subset that
3888         overlaps with GENERAL_REGS for PLUS.
3889         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
3890
3891 2005-01-25  Richard Henderson  <rth@redhat.com>
3892
3893         PR middle-end/19609
3894         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
3895
3896 2005-01-25  Roger Sayle  <roger@eyesopen.com>
3897
3898         * expmed.c (choose_multiplier): Change interface to return the
3899         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
3900         (expand_divmod): Update calls to choose_multiplier.
3901
3902 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3903
3904         PR middle-end/19330
3905         * expmed.c (extract_bit_field): Use adjust_address instead of
3906         gen_lowpart when op0 is a MEM.
3907
3908 2005-01-24  Steven Bosscher  <stevenb@suse.de>
3909
3910         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
3911
3912 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
3913
3914         * config/mips/irix-csr.c: New file.
3915         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3916         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3917         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3918         executables.
3919
3920 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3921
3922         PR bootstrap/19364
3923         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
3924         sparc/elf.h, add sparc/sp-elf.h.
3925         (sparc-*-rtems*): Likewise.
3926         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
3927         tm-dwarf2.h, add sparc/sp-elf.h.
3928         (sparc86x-*-elf): Likewise.
3929         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
3930         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
3931         TARGET_OS_CPP_BUILTINS.
3932         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3933         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3934         Undefine it.
3935         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
3936         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
3937         (SWITCH_TAKES_ARG): Likewise.
3938         (LOCAL_LABEL_PREFIX): Likewise.
3939         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3940         (TARGET_N_FORMAT_TYPES): Delete.
3941         (TARGET_FORMAT_TYPES): Likewise.
3942         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
3943         * config/sparc/elf.h: Delete.
3944         * config/sparc/sp-elf.h: New file.
3945
3946 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
3947
3948         * tree-flow-inline.h (phi_arg_from_edge): Remove.
3949         * tree-flow.h: Remove the corresponding prototype.
3950         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
3951         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
3952
3953 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
3954
3955         PR target/17751
3956         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
3957         for AIX ABI or ELF -fPIC.
3958         (rs6000_emit_load_toc_table): Don't create toc_section here.
3959         (rs6000_xcoff_file_start): Nor here.
3960
3961 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
3962
3963         * sh.c (ra.h): Don't #include.
3964         (hard_regs_intersect_p): New function, resurrected from ra.c.
3965
3966         * sh.c: Fix 1996 Copyright.
3967
3968 2005-01-24  Richard Henderson  <rth@redhat.com>
3969             Aldy Hernandez  <aldyh@redhat.com>
3970
3971         * regrename.c (note_sets): Handle subregs.
3972
3973 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
3974
3975         PR bootstrap/18058
3976         * genconditions.c (write_header, write_conditions): Elide file if
3977         not GCC >= 3.0.1.
3978
3979 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
3980
3981         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
3982         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
3983         Update copyright.
3984
3985 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
3986
3987         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
3988         expand_builtin_printf, expand_builtin_fprintf,
3989         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
3990         checking against POINTER_TYPE.
3991         (validate_arglist): Handle POINTER_TYPE code by checking
3992         POINTER_TYPE_P.
3993
3994 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
3995
3996         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
3997         init_rtlanal): New.
3998         (for_each_rtx): Call for_each_rtx_1.
3999         * rtl.h (init_rtlanal): Declare.
4000         * toplev.c (backend_init): Call init_rtlanal.
4001
4002 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
4003
4004         * flow.c (propagate_one_insn): Formatting.
4005
4006         PR middle-end/19551
4007         * flow.c (libcall_dead_p): Be more conservative if unsure.
4008         If there are any instructions between insn and call, see if they are
4009         all dead before saying the libcall is dead.
4010
4011 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
4012
4013         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
4014         operand constraint for operand 0.
4015
4016 2005-01-23  Richard Henderson  <rth@redhat.com>
4017
4018         PR 19486
4019         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
4020         edges leading to join block.
4021
4022 2005-01-23  Roger Sayle  <roger@eyesopen.com>
4023
4024         * expmed.c (expand_mult_highpart): Make static.  Change type of
4025         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
4026         (expand_divmod): Updates calls to expand_mult_highpart by using
4027         gen_int_mode to pass a CONST_INT rtx.
4028         * rtl.h (expand_mult_highpart): Remove prototype.
4029
4030 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4031
4032         * flow.c (regset_bytes, regset_size): Remove.
4033
4034         * cfganal.c: Fix a reference to Harvey's paper.
4035
4036 2005-01-23  Steven Bosscher  <stevenb@suse.de>
4037
4038         PR rtl-optimization/19464
4039         * tree-optimize.c (init_tree_optimization_passes): Add one more
4040         copyrename pass just before out-of-ssa.
4041
4042 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
4043
4044         PR bootstrap/18058
4045         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
4046         * ggc-none.c (ggc_free): Define.
4047
4048 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4049
4050         * cse.c (max_reg, max_insn_uid): Remove.
4051         (cse_main): Don't access max_reg or max_insn_uid.
4052
4053         * c-common.c (explicit_flag_signed_bitfields,
4054         lang_statement_code_p, lang_expand_function_end): Remove.
4055         * c-common.h: Remove the corresponding declarations.
4056         * c-opts.c (c_common_handle_option): Remove all write access
4057         to explicit_flag_signed_bitfields.
4058
4059         * cgraph.c (cgraph_varpool_n_nodes): Remove.
4060         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
4061         * cgraph.h: Remove the corresponding declaration.
4062
4063         * gcse.c (null_pointer_info): Remove.
4064
4065 2005-01-23  Roger Sayle  <roger@eyesopen.com>
4066             Eric Botcazou  <ebotcazou@libertysurf.fr>
4067
4068         * combine.c (simplify_logical): Only simplify logical expressions
4069         of the form ior(and(x,y),z) by the inverse distributive law if the
4070       &