OSDN Git Service

Index: libcpp/ChangeLog
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
2
3         * c-lex.c (c_lex_with_flags): Add parameter to call to 
4         cpp_spell_token.
5
6 2005-03-11  Per Bothner  <per@bothner.com>
7
8         * c-tree.h (struct c_declarator): New id_loc field.
9         * c-pragma.h (c_lex_with_flags): Take position reference.
10         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
11         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
12         (c_lex): Pass dummy location to c_lex_with_flags.
13         * c-parser.c (c_lex_one_token): Set c_token's location using
14         c_lex_with_flags, instead of input_location, which might be "ahead".
15         (c_parser_direct_declarator): Set declarator's id_loc from
16         c_token's id_loc.
17         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
18         declarator's id_loc, rather than probably-imprecise input_location.
19         (build_id_declarator): Initialize c_declarator's id_loc field.
20
21 2005-03-11  Roger Sayle  <roger@eyesopen.com>
22
23         PR middle-end/20419
24         * builtins.c (expand_builtin_signbit): Force the signbit's word
25         into an integer register to avoid SUBREGs of floating point modes.
26
27 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
28
29         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
30         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
31         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
32         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
33
34 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
35
36         PR rtl-optimization/20306
37         * expr.c (emit_move_complex): Set try_int false if mode is
38         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
39         emit_block_move if try_int is true.
40
41 2005-03-11  Richard Henderson  <rth@redhat.com>
42
43         PR target/20415
44         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
45         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
46         to match.
47
48 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
49
50         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
51         (TARGET_FIX_VR4130): New macro.
52         (TARGET_OPTIONS): Add -mfix-vr4130.
53         (ISA_HAS_MACCHI): New macro.
54         (ASM_SPEC): Add -mfix-vr4130.
55         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
56         (override_options): Handle mips_fix_vr4130_string.
57         (mips_avoid_hazards): Clear all_noreorder_p
58         if we're working around VR4130 errata and the macc alternatives
59         are not available.
60         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
61         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
62         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
63         (MULTILIB_DEFAULTS): Remove leading "march=".
64         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
65         if no architecture option is given.
66         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
67         VR4130 multilibs.
68         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
69         * doc/invoke.texi: Document -mfix-vr4130.
70
71 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
72
73         * config/mips/mips.c (override_options): Only warn about -mint64
74         deprecation if TARGET_INT64.
75
76 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
77
78         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
79         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
80         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
81         are non-specific regarding the nonnull parameter positions.
82         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
83         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
84         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
85         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
86         
87         * builtins.def: Use the non-specific "nonnull" attibute lists.
88
89 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
90
91         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
92         single_pred_edge, single_succ, single_pred): Improve comments.
93
94 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
95
96         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
97         single_pred_edge, single_succ, single_pred): New inline functions.
98         * bb-reorder.c (rotate_loop, find_traces_1_round,
99         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
100         duplicate_computed_gotos): Use the single_succ/pred functions.
101         * cfganal.c (forwarder_block_p): Ditto.
102         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
103         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
104         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
105         merge_seq_blocks): Ditto.
106         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
107         * cfglayout.c (fixup_reorder_chain): Ditto.
108         * cfgloop.c (mark_single_exit_loops, update_latch_info,
109         canonicalize_loop_headers, verify_loop_structure): Ditto.
110         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
111         mfb_update_loops, create_preheader, force_single_succ_latches,
112         create_loop_notes): Ditto.
113         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
114         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
115         commit_one_edge_insertion, purge_dead_edges,
116         cfg_layout_can_merge_blocks_p): Ditto.
117         * except.c (sjlj_emit_function_enter): Ditto.
118         * flow.c (init_propagate_block_info): Ditto.
119         * function.c (thread_prologue_and_epilogue_insns): Ditto.
120         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
121         insert_insn_end_bb): Ditto.
122         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
123         find_if_case_2): Ditto.
124         * lambda-code.c (perfect_nestify): Ditto.
125         * lcm.c (optimize_mode_switching): Ditto.
126         * loop-doloop.c (doloop_modify): Ditto.
127         * loop-init.c (loop_optimizer_init): Ditto.
128         * loop-iv.c (simplify_using_initial_values): Ditto.
129         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
130         * loop-unswitch.c (unswitch_loop): Ditto.
131         * modulo-sched.c (generate_prolog_epilog): Ditto.
132         * predict.c (combine_predictions_for_insn, estimate_probability,
133         tree_estimate_probability, last_basic_block_p,
134         estimate_bb_frequencies): Ditto.
135         * profile.c (branch_prob): Ditto.
136         * regrename.c (copyprop_hardreg_forward): Ditto.
137         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
138         * tracer.c (layout_superblocks): Ditto.
139         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
140         cfg_remove_useless_stmts_bb, cleanup_control_flow,
141         cleanup_control_expr_graph, disband_implicit_edges,
142         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
143         tree_verify_flow_info, tree_make_forwarder_block,
144         tree_forwarder_block_p, remove_forwarder_block,
145         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
146         * tree-if-conv.c (tree_if_conversion): Ditto.
147         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
148         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
149         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
150         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
151         copy_loop_headers): Ditto.
152         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
153         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
154         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
155         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
156         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
157         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
158         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
159         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
160         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
161         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
162         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
163         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
164         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
165         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
166         slpeel_add_loop_guard): Ditto.
167
168 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
169
170         PR tree-optimization/15784
171         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
172         and -1 - A to ~A.
173
174         * stmt.c (expand_case): Don't change index_type.  Convert minval
175         to the proper type.
176
177         PR tree-optimization/20130
178         * fold-const.c (fold): Fold x * -1 into -x.
179
180 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
181
182         PR rtl-optimization/20331
183         * rtlanal.c (modified_between_p): Check its address first for MEM.
184         (modified_in_p): Likewise.
185
186 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
187
188         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
189
190 2005-03-10  Steven Bosscher  <stevenb@suse.de>
191
192         * expr.c (expand_expr_real_1): If possible, use a conditional
193         move for expanding MIN_EXPR and MAX_EXPR.
194         Use temp for moving around rtx-en.
195
196 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
197
198         PR rtl-opt/20412
199         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
200         correct mode.
201
202 2005-03-10  Roger Sayle  <roger@eyesopen.com>
203
204         * builtins.c (expand_builtin_signbit): Extend to handle floating
205         point modes wider than the largest integer type, using the
206         operand_subword_force function to obtain the signbit's word.
207
208 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
209
210         PR target/20322
211         * combine.c (try_combine): If recog_for_combine added CLOBBERs
212         to NEWI2PAT, fail to combine if they are used by NEWPAT.
213
214 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
215
216         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
217
218 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
219
220         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
221         type void.
222         (perform_edge_inserts): Unconditionally call
223         free_dominator_info.
224
225         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
226
227 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
228
229         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
230
231 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
232
233         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
234
235         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
236         gcc_unreachable.
237         (rtl_register_value_prof_hooks,
238         tree_value_profile_transformations,
239         tree_register_value_prof_hooks): Likewise.
240         * var-tracking.c (stack_adjust_offset_pre_post,
241         variable_htab_free, variable_union, dataflow_set_different_2,
242         count_uses, variable_was_changed, set_frame_base_location,
243         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
244         vt_add_function_parameters): Likewise.
245         * varasm.c (named_section_real, named_section, make_decl_rtl,
246         asm_emit_uninitialised, assemble_integer, decode_addr_const,
247         const_hash_1, compare_constant, copy_constant, force_const_mem,
248         output_constant_pool_2, output_constant_pool_1, output_constant,
249         output_constructor, make_decl_one_only, decl_tls_model,
250         default_no_named_section, default_elf_select_section_1,
251         default_unique_section_1): Likewise.
252         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
253         * vmsdbgout.c (addr_const_to_string): Likewise.
254
255         PR c++/20375
256         * function.c (struct assign_parm_data_one): Remove last_named
257         field.
258         (assign_parm_find_data_types): Don't determine last_named.
259         Reorder named_parm determination.
260         (assign_parms): Only setup varargs on the last non-varadic
261         parameter.
262
263 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
264
265         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
266         sda base address on medium model.
267
268 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
269
270         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
271         * cfgloop.c (flow_loop_nodes_find): Export.
272         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
273         Declare.
274         * cfgloopmanip.c (fix_loop_structure): New function.
275         * predict.c (predict_loops): Clean up the loops information.
276         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
277         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
278         loop structure.
279         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
280         (rewrite_into_loop_closed_ssa): Declaration changed.
281         * tree-loop-linear.c (linear_transform_loops): Add argument to
282         rewrite_into_loop_closed_ssa call.
283         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
284         * tree-ssa-loop-im.c (move_computations): Ditto.
285         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
286         * tree-vectorizer.c (vectorize_loops): Ditto.
287         * tree-optimize.c: Include cfgloop.h.
288         (execute_todo): Choose whether to call cleanup_tree_cfg or
289         cleanup_tree_cfg_loop.
290         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
291         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
292         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
293         cleanup_tree_cfg_loop call.
294         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
295         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
296         work on part of cfg.
297
298 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
299
300         PR inline-asm/20314
301         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
302         with multiple alternatives.
303
304         * stmt.c (parse_output_constraint): Fix a typo.
305
306 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
307
308         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
309         assembly directive instead of deprecated "no-generics".
310
311 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
312
313         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
314         for non-offsettable memory references to cope with outstanding reload
315         replacements.
316         * config/s390/s390.md ("reload_outti"): Call find_replacement to
317         avoid losing outstanding address reloads.
318         ("reload_outdi", "reload_outdf"): Likewise.
319
320 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
321
322         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
323         code.  Add more cbrt transformations.
324
325 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
326
327         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
328
329 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
330
331         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
332         NULL_TREE when a given tree is not simplified.
333         (fold): Return the original tree when any of the functions
334         mentioned above NULL_TREE.
335
336         * fold-const.c (fold_unary, fold_binary): Take decomposed
337         arguments, code, type, op0, and op1 in case of fold_binary.
338         (fold): Update calls to fold_unary and fold_binary.
339
340 2005-03-09  Roger Sayle  <roger@eyesopen.com>
341
342         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
343         a fndecl and an arglist instead of a CALL_EXPR, exp.
344
345 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
346
347         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
348
349         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
350
351         * expr.c (expand_assignment): Remove orig_to_rtx.
352
353         * fold-const.c (int_const_binop): Remove no_overflow.
354
355         * ifcvt.c (noce_emit_move_insn): Remove inmode.
356
357         * loop-iv.c (get_biv_step_1): Remove lhs.
358
359         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
360
361         * real.c (real_nan): Remove neg.
362
363         * function.c (thread_prologue_and_epilogue_insns): Remove i
364         and newinsn.
365
366         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
367         tb.
368
369         * tree-eh.c (tree_could_trap_p): Remove idx.
370
371         * tree-into-ssa.c (ann): Remove ann.
372
373         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
374
375         * tree-sra.c (decide_block_copy): Remove inst_count.
376
377         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
378
379         * tree-ssa-loop-im.c (lhs): Remove.
380
381         * cfgbuild.c (state, STATE, SET_STATE,
382         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
383         make_edges.
384         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
385         (find_basic_blocks): Set the state of each basic block to
386         BLOCK_NEW.
387
388 2005-03-08  Jeff Law  <law@redhat.com>
389
390         * tree-cfg.c (cleanup_control_flow): If removal of a computed
391         goto results in the removal of edges in the CFG, then we need
392         to recompute dominators.
393
394 2005-03-09  Ben Elliston  <bje@au.ibm.com>
395
396         * c-common.c (c_do_switch_warnings): Comment fix.
397
398 2005-03-08  Julian Brown  <julian@codesourcery.com>
399
400         * Patch from 2005-03-08 reverted for causing regressions and
401         ppc-darwin bootstrap failure.
402
403 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
404
405         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn): 
406         Define the real function for ppc-darwin.
407         * c-typeck.c (convert_arguments): Check for target-specific
408         invalid argument call to unprototyped function.
409         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN): 
410         New Macro.
411         * target.h (invalid_arg_for_unprototyped_fn): New field 
412         in struct calls.
413         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New 
414         default target hook.
415         * targhooks.h (hook_invalid_arg_for_unprototyped_fn): 
416         Declare.
417
418 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
419
420         * c-typeck.c (constructor_stack, constructor_range_stack,
421         initializer_stack): Make them static.
422
423         * cfg.c (rbi_pool): Make it static.
424
425         * gimple-low.c (lower_stmt_body): Make it static.
426         * tree-flow.h: Remove the corresponding prototype.  Don't
427         declare lower_data.
428
429         * sched-deps.c (cache_size): Make it static.
430
431         * stor-layout.c (lang_adjust_rli): Make it static.
432
433 2005-03-08  Julian Brown  <julian@codesourcery.com>
434
435         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
436         from being used for symbols with vague linkage when
437         HAVE_GAS_COMDAT_GROUP is true.
438
439 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
440
441         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
442         nlabel == JUMP_LABEL (jump).
443
444 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
445
446         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
447         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
448         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
449         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
450
451 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
452
453         PR c/14411
454         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
455         * c-common.c (handle_returns_twice): New function.
456         (c_common_attribute_table): Declare eturns_twice' attribute.
457         * doc/extend.texi: Document eturns_twice' attribute.
458         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
459         (struct tree_decl): Add returns_twice_flag.
460
461 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
462
463         * tree-ssa-phiopt.c: Fix a comment typo.
464
465         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
466         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
467         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
468         copyright.
469
470 2005-03-08  Richard Henderson  <rth@redhat.com>
471
472         * config/alpha/alpha.c (code_for_builtin): Replace special-case
473         builtin codes with ctzdi2, clzdi2, popcountdi2.
474         (struct alpha_builtin_def): Add is_const.
475         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
476         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
477         (alpha_init_builtins): Init them.  Set nothrow and const attributes
478         on builtins.
479         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, 
480         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, 
481         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, 
482         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
483         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
484         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
485         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
486         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
487         (TARGET_FOLD_BUILTIN): New.
488         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
489         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
490         (ffsdi2): Use ctz.
491         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
492
493 2005-03-08  Ira Rosen  <irar@il.ibm.com>
494
495         PR tree-optimization/20122
496         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
497         condition of access function instead of base.
498
499 2005-03-07  Jeff Law  <law@redhat.com>
500             Steven Bosscher  <stevenb@suse.de>
501
502         * tree-cfg.c (find_taken_edge_computed_goto): New function.
503         (find_taken_edge): Call find_taken_edge_computed_goto as
504         appropriate.  Allow any gimple invariant rather than just
505         INTEGER_CST for VAL.
506         (cleanup_control_flow): Cleanup a computed goto which has turned
507         into a simple goto.
508         (tree_merge_blocks): If block B has any forced labels, move
509         them to the start of block A.
510         * tree-ssa-dom.c (thread_across_edge): Allow threading across
511         computed gotos as well.
512         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
513         removal of unnecessary computed gotos too.
514         (lookup_redirection_data): Fix type of INSERT argument.  Callers
515         updated.
516
517 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
518
519         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
520         Remove trailing spaces.
521
522         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
523         unshare_all_trees): Make them static.
524         * tree-gimple.h: Remove the corresponding prototypes.
525
526         * diagnostic.h: Remove unused prototype
527         debug_output_buffer.
528         * modulo-sched.c: Remove unused prototype
529         set_row_column_for_ps.
530
531         * tree-ssa-phiopt.c (tree_ssa_phiopt,
532         replace_phi_edge_with_variable): Remove unused variable i.
533
534 2005-03-07  Per Bothner  <per@bothner.com>
535
536         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
537
538 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
539         
540         PR tree-opt/17671
541         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
542         bbs on the COND_EXPR instead of the PHI_NODEs.
543         (candidate_bb_for_phi_optimization): Remove.
544         (replace_phi_with_stmt): Rename to ...
545         (replace_phi_edge_with_variable): this and change so that we
546         replace the phi argument instead of removing the PHI.
547         (conditional_replacement): Change so we deal with PHI with more
548         than two arguments.
549         (value_replacement): Likewise.
550         (abs_replacement): Likewise.
551
552 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
553
554         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
555         output_e500_flip_gt_bit.
556
557         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
558         as bit 31.
559         (rs6000_generate_compare): Fix logic to look at the correct bits.
560         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
561         Look at GT bit.
562         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
563         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
564         gen_move_from_CR_gt_bit.
565
566         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
567         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
568         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
569
570         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
571         (E500_CR_IOR_COMPARE): New constant.
572
573 2005-03-08  Earl Chew <earl_chew@agilent.com>
574             David Billinghurst <David.Billinghurst@riotinto.com>
575
576         * config/i386/host-cygwin.c: New file to support precompiled
577         headers on cygwin
578         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
579         * config.host: Use above files for cygwin host.
580
581 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
582
583         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
584         ordering ops from earlier change.
585
586 2005-03-07  Per Bothner  <per@bothner.com>
587
588         Various fixes to allow us to again build if --enable-mapped-location:
589         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
590         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
591         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
592         local variable loc. Change logic appropriately.
593         * tree-vect-transform.c (vect_finish_stmt_generation): Use
594         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.    
595         * c-parser.c (c_parser_for_statement): Initialize loc variable.
596         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
597         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
598
599 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
600
601         PR rtl-optimization/19683
602         * reload1.c (choose_reload_regs): Pass the number of bits, not the
603         number of bytes, to smallest_int_for_mode.  Fix arguments to
604         REG_CANNOT_CHANGE_MODE_P.
605
606 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
607
608         * reorg.c (relax_delay_slots): Check that the jump is
609         conditional before trying to invert it.
610
611 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
612
613         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
614         Make them static.
615
616         * calls (stack_arg_under_construction): Make it static.
617
618         * flow.c (regs_live_at_setjmp): Make it static.
619         * flow.h: Remove the corresponding prototype.
620
621         * reload1.c (reload_startobj, reload_firstobj,
622         something_needs_operands_changed, reload_inherited,
623         reload_inheritance_insn, reload_override_in,
624         reload_spill_index): Make them static.
625
626         * recog.c (verify_changes): Make it static.
627         * recog.h: Remove the corresponding prototype.
628
629         * cfgbuild.c (find_sub_basic_blocks): Remove.
630         * basic-block.h: Remove the corresponding prototype.
631         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
632         in comments.
633         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
634
635         * tree-ssa-operands.c (check_build_stmt): Remove.
636
637         * stor-layout.c (set_alignment): Remove.
638         * tree.h: Remove the corresponding prototype.
639
640         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
641
642         * tree-ssa-dce.c (control_dependence_map,
643         visited_control_parents): Make them static.
644
645         * cfghooks.c (verify_flow_info): Remove local variable
646         num_bb_notes.
647
648         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
649         last_bb_seen.
650
651         * loop-unswitch.c (unswitch_loop): Remove local variable src.
652
653 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
654
655         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
656
657 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
658
659         * config/ia64/hpux.h (LINK_SPEC): Add -z.
660         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
661         PARALLEL for an empty structure.
662
663 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
664
665         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
666
667         * fold-const.c (fold_binary): Unroll the very first "for"
668         loop.
669
670 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
671
672         * config/rs6000/predicates.md (branch_comparison_operator): Remove
673         redundant match_code test.
674         (scc_comparison_operator): Swap match_operand and match_code
675         tests.
676         (branch_positive_comparison_operator): Same.
677         (trap_comparison_operator): Use comparison_operator and swap with
678         match_code test.
679
680 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
681
682         PR target/20288
683         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
684         (out_movhi_r_mr): Read low byte of volatile MEM first.
685         (out_movhi_mr_r): Write high byte of volatile MEM first.
686
687 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
688
689         * cselib.c (reg_values, reg_values_size): Make them static.
690
691         * cse.c (cse_reg_info_table): Make it static.
692
693         * fold-const.c (fold_unary): Use build1 instead of copy_node.
694
695 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
696
697         * cse.c (find_best_addr): Use canon_for_address.
698
699 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
700
701         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
702         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
703         SUBREG and MEM, respectively.
704
705         * fold-const.c (fold_binary): Use code instead of t.
706
707         * fold-const.c (optimize_minmax_comparison): Take decomposed
708         arguments code, type, op0, and op1 instead of t.
709         (fold_binary): Update a call to optimize_minmax_comparison.
710
711         * fold-const.c (fold_range_test): Take decomposed arguments
712         code, type, op0, and op1 instead of t.
713         (fold_binary): Update a call to fold_range_test.
714
715         * fold-const.c (fold_binary_op_with_conditional_arg): Take
716         decomposed arguments code, type, op0, and op1 instead of t.
717         (fold_binary): Update a call to fold_range_test.
718
719 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
720
721         * fold-const.c (fold_binary): Avoid directly using the original
722         expression t as much as possible.
723
724 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
725
726         * c-semantics.c (build_stmt): Use TYPE_P instead of
727         IS_NON_TYPE_CODE_CLASS.
728         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
729         (NON_TYPE_CHECK): Use TYPE_P instead of
730         IS_NON_TYPE_CODE_CLASS.
731
732         * fold-const.c (fold): Remove handling of binary expressions.
733
734 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
735
736         * doc/c-tree.texi: Wrap comments in @r{}.
737         * doc/cpp.texi: Likewise.
738         * doc/cppinternals.texi: Likewise.
739         * doc/extend.texi: Likewise.
740         * doc/md.texi: Likewise.
741         * doc/objc.texi: Likewise.
742         * doc/sourcebuild.texi: Likewise.
743         * doc/tm.texi: Likewise.
744         * doc/tree-ssa.texi
745
746 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
747
748         * predict.c (apply_return_prediction): Standardize PHI chain
749         walking.
750         * tree-ssa.c (ssa_redirect_edge): Likewise.
751
752         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
753         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
754         Update copyright.
755
756         * tree-phinodes.c (remove_phi_node): Drop the last argument.
757         * tree-flow.h: Adjust the prototype for remove_phi_node.
758         * lambda-code.c (perfect_nestify): Adjust a call to
759         remove_phi_node.
760         * tree-cfg.c
761         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
762         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
763         Likewise.
764         * tree-ssa-dce.c (remove_dead_phis): Likewise.
765         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
766         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
767         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
768
769         * combine.c (simplify_and_const_int): Use gen_int_mode instead
770         of GEN_INT (trunc_int_for_mode (...)).
771         * loop-iv.c (iv_number_of_iterations): Likewise.
772         * postreload.c (reload_cse_move2add): Likewise.
773         * simplify-rtx.c (simplify_const_unary_operation,
774         simplify_const_binary_operation): Likewise.
775         * stor-layout.c (get_mode_bounds): Likewise.
776
777         * fold-const.c (fold_binary): New.
778         (fold): Call fold_binary on binary expressions.
779
780 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
781
782         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
783         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
784         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
785         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
786         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
787
788 2005-03-04  Devang Patel  <dpatel@apple.com>
789         
790         PR tree-optimization/18815
791         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
792         loops with zero exit edges.
793
794 2005-03-04  Devang Patel  <dpatel@apple.com>
795
796         * doc/invoke.texi: Remove reference to webpage that does not exist.
797         
798 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
799             Joseph S. Myers  <joseph@codesourcery.com>
800
801         PR c++/19797
802         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
803         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
804         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
805         * pa.c (get_plabel): Change argument to symbol_ref.  Call
806         maybe_get_identifier instead of get_identifier.
807         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
808         (struct deferred_plabel): Replace name field with symbol field.
809         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
810         ASM_OUTPUT_EXTERNAL_REAL is defined.
811         (output_global_address): Use output_addr_const for output of all
812         symbol_refs.
813         (output_deferred_plabels): Use symbol_ref instead of name for address
814         output.
815         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
816         ASM_OUTPUT_SYMBOL_REF): New macros.
817         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
818         comment.
819         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
820         label.
821
822 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
823
824         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
825         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
826
827 2005-03-04  Jeff Law  <law@redhat.com>
828
829         * basic-block.h (rediscover_loops_after_threading): Declare.
830         * tree-ssa-dom.c: Include cfgloop.h.
831         (tree_ssa_dominator_optimize): Discover loops and some basic
832         properties.  Remove forwarder blocks recreated by loop header
833         canonicalization.  Also mark backedges in the CFG.
834         * tree-ssa-threadupdate.c: Include cfgloop.h
835         (rediscover_loops_after_threading): Define.
836         (struct local_info): New field, JUMP_THREADED.
837         (prune_undesirable_thread_requests): New function.
838         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
839         then record that fact for the callers of redirct_edges.
840         (thread_block): If BB has incoming backedges, then call
841         prune_undesirable_thraed_requests.    Note when we are
842         going to have to rediscover loop information.  Return a
843         boolean indicating if any jumps were threaded.
844         (thread_through_all_blocks): Bubble up boolean indicating
845         if any jumps were threaded.
846         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
847         (tree-ssa-threadupdate.o): Similarly.
848
849 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
850
851         * fold-const.c (fold_ternary): Unroll the "for" loop to
852         extract operands.  
853
854 2005-03-04  Andrew Haley  <aph@redhat.com>
855
856         * unwind-dw2-fde-glibc.c (struct
857         unw_eh_callback_data.check_cache): New field.
858         (frame_hdr_cache): New.
859         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
860         Cache frame header info.
861
862 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
863
864         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
865         (print_c_condition): Declare.
866         * read-rtl.c (ptr_loc): New structure.
867         (ptr_locs, ptr_loc_obstack, joined_conditions)
868         (joined_conditions_obstack): New variables.
869         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
870         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
871         (join_c_conditions, print_c_condition): New functions.
872         (apply_macro_to_string): Associate the new string with the same
873         source location as the old one.
874         (add_condition_to_string): Use join_c_conditions.
875         (read_string): Use set_rtx_ptr_loc to record a filename and line
876         number for the string.
877         (read_rtx): Initialize the new variables above.
878         * genattrtab.c (write_test_expr, write_attr_value): Use
879         print_c_condition.
880         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
881         comment above the GCC_VERSION check.
882         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
883         Inline the definition of MAYBE_EVAL.
884         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
885         * genoutput.c (process_template): Likewise.
886         * genpreds.c (write_predicate_subfunction): Likewise.
887         (write_predicate_expr): Use print_c_condition.
888         * genrecog.c (write_cond): Likewise.
889         * gensupport.c (process_rtx): Use join_c_conditions to join the
890         conditions of a define_insn_and_split.  Record a source location
891         for the string after the "&&".
892         (alter_test_for_insn): Use join_c_conditions.
893
894 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
895
896         Revert for now:
897         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
898         PR tree-optimization/15784
899         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
900         and -1 - A to ~A.
901
902 2005-03-04  Ben Elliston  <bje@au.ibm.com>
903
904         * gcc.c (option_map): Add --coverage.
905         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
906         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
907         * config/darwin.h: Pass -lgcov for `coverage'.
908         * doc/invoke.texi (Debugging Options): Document --coverage.
909
910 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
911
912         * gcse.c (bypass_block): Use find_edge wherever possible.
913
914 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
915
916         Fix PR debug/20253
917         
918         * c-opts.c (c_common_parse_file): Call start_source_file
919         and end_source_file at the approriate times.
920
921         * dwarf2out.c (dwarf2out_finish): Don't auto-end
922         the main file, it will be done for us now.
923         
924 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
925
926         * fold-const.c (fold_ternary): New.
927         (fold): Call fold_ternary on ternary expressions.  Remove
928         handling of ternary expressions.
929
930 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
931
932         PR tree-optimization/15784
933         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
934         and -1 - A to ~A.
935
936 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
937
938         * config/rs6000/predicates.md (branch_comparison_operator):
939         Convert from C block to conditional format.
940
941 2005-03-03  Jan Hubicka  <jh@suse.cz>
942
943         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
944         and non-constant public variables.
945
946 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
947
948         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
949         with LABEL_EXPR.
950
951         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
952         EDGE_I.
953
954         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
955         calls to release_ssa_name and release_phi_node.
956
957         * fold-const.c (fold): Remove handling of unary expressions.
958
959         * fold-const.c (fold_unary): Avoid directly using the original
960         expression t as much as possible.
961
962 2005-03-03  Roger Sayle  <roger@eyesopen.com>
963             Andrew Pinski  <pinskia@physics.uc.edu>
964
965         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
966         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
967
968 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
969
970         Describe special registers SRP and MOF as allocatable registers.
971         * config/cris/cris.c (cris_md_asm_clobbers): New function.
972         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
973         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
974         TARGET_HAS_MUL_INSNS.
975         (cris_print_operand) <case 'd'>: New case.
976         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
977         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
978         define.
979         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
980         (REG_ALLOC_ORDER): Update for MOF.
981         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
982         SPECIAL_REGS.
983         (GENERAL_REGS): No longer a define of ALL_REGS.
984         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
985         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
986         Adjust accordingly.
987         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
988         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
989         (SECONDARY_RELOAD_CLASS): Define.
990         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
991         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
992         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
993         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
994         (REGISTER_MOVE_COST): Define.
995         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
996         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
997         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
998         (CRIS_MOF_REGNUM): New define_constants.
999         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
1000         special registers.
1001         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
1002         New patterns.
1003         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
1004         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
1005         Adjust for MOF being properly described as a register.
1006         (indir_to_reg_split): Name this split.  Conditionalize on the
1007         destination register being a general register.
1008         (movei): Conditionalize on on operands 0 and 1 having the same
1009         register class.
1010
1011 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
1012
1013         PR target/20277
1014         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
1015         -mcpu to override any other explicitly given flags.
1016
1017 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
1018
1019         * recog.c (verify_changes, confirm_change_group): New functions,
1020         broken out of apply_change_group.
1021         (apply_change_group): Use them.
1022         * recog.h (verify_change, confirm_change_group): Declare.
1023         * rtl.h (redirect_jump_2): Declare.
1024         * jump.c (redirect_exp, invert_exp): Delete.
1025         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
1026         (redirect_jump_2): New function, broken out of redirect_jump.
1027         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
1028         (invert_jump): Use invert_jump_1 and redirect_jump_2.
1029         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
1030
1031 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
1032
1033         * varasm.c (named_section): Use xstrdup rather than doing it by
1034         hand.
1035
1036         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
1037
1038 2005-03-02  Devang Patel  <dpatel@apple.com>
1039         
1040         Undo PR tree-optimization/18815 fix.
1041         
1042 2005-03-02  Devang Patel  <dpatel@apple.com>
1043
1044         PR tree-optimization/18815
1045         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
1046         loops with zero exit edges.
1047         
1048 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
1049
1050         * cfg.c (connect_src, connect_dest, disconnect_src,
1051         disconnct_dest): New.
1052         (unchecked_make_edge, remove_edge, redirect_edge_succ,
1053         redirect_edge_pred): Use the new functions.
1054
1055         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1056         free_dominance_info only when needed.
1057
1058 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
1059
1060         PR target/20276
1061         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
1062         (reg_or_sub_cint64_operand): Same.
1063
1064 2005-03-02  Jeff Law  <law@redhat.com>
1065
1066         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
1067         CFG_ALTERED in the main DOM iteration loop.
1068
1069 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
1070
1071         PR c++/19916
1072         * varasm.c (initializer_constant_valid_p): Allow conversions
1073         between OFFSET_TYPEs.  Tidy.
1074
1075 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
1076
1077         * config/cris/cris.md ("return"): Remove epilogue delay list
1078         sanity check.
1079
1080 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
1081
1082         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
1083         for Thumb.
1084         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
1085
1086 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
1087
1088         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
1089         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
1090         config/m68k/m68k.c, config/mips/mips.h,
1091         config/rs6000/rs6000-protos.h, doc/contrib.texi,
1092         doc/include/gcc-common.texi: Update copyright.
1093
1094         PR middle-end/18029 and PR middle-end/18030
1095         * expr.c (optimize_bitfield_assignment_op): Add a special case
1096         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
1097
1098         * fold-const.c (fold_unary): New.
1099         (fold): Call fold_unary on unary expressions.
1100
1101 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
1102
1103         * cgraph.h (struct cgraph_edge): Add prev_caller and
1104         prev_callee fields.
1105         (cgraph_node_remove_callees): Export.
1106         * cgraph.c (cgraph_create_edge): Initialize prev_caller
1107         and prev_callee.
1108         (cgraph_edge_remove_callee): New function.
1109         (cgraph_edge_remove_caller): Likewise.
1110         (cgraph_remove_edge): Use.
1111         (cgraph_redirect_edge_callee): Likewise.
1112         (cgraph_node_remove_callees): New function.
1113         (cgraph_node_remove_callers): Likewise.
1114         (cgraph_remove_node): Use.
1115         * tree-optimize.c (tree_rest_of_compilation): Use
1116         cgraph_node_remove_callees instead of manual loop.
1117         * cgraphunit.c (cgraph_finalize_function): Likewise.
1118         (cgraph_expand_function): Likewise.
1119         (cgraph_remove_unreachable_nodes): Likewise.
1120
1121 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
1122
1123         PR c/8927
1124         * c-tree.h (undeclared_variable, build_external_ref): Add extra
1125         argument.
1126         * c-decl.c (undeclared_variable): Take location as argument.
1127         * c-typeck.c (build_external_ref): Likewise.
1128         * c-parser.c (c_parser_postfix_expression): Pass location of
1129         identifier to build_external_ref.
1130
1131 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
1132
1133         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
1134         CCEQ mode for branch_positive_comparison_operator test.
1135         * config/rs6000/predicates (branch_comparison_operator): Revert to
1136         define_predicate.
1137         (scc_comparison_operator): Same.
1138         (branch_positive_comparison_operator): Same.
1139
1140 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
1141
1142         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
1143         (cris_delay_slots_for_epilogue): Remove.
1144         (save_last): Move into cris_target_asm_function_epilogue.
1145         (cris_target_asm_function_epilogue): Remove tests for file being
1146         NULL.
1147         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
1148         (cris_delay_slots_for_epilogue): Remove prototypes.
1149         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
1150         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
1151
1152 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
1153
1154         * config/rs6000/predicates.md (branch_comparison_operator): Change
1155         to define_special_predicate.
1156         (scc_comparison_operator): Same.
1157         (branch_positive_comparison_operator): Same.
1158
1159 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
1160
1161         * Makefile.in (tree-ssa-sink.o): New.
1162         (OBJS-common): Add tree-ssa-sink.o.
1163         * common.opt: Add -ftree-sink
1164         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
1165         * timevar.def (TV_TREE_SINK): new timevar.
1166         * tree-flow.h (is_hidden_global_store): Prototype.
1167         * tree-optimize.c (init_tree_optimization_passes): Add
1168         pass_sink_code.
1169         * tree-pass.h (pass_sink_code): New.
1170         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
1171         for non-obvious global store store to is_hidden_global_store, and
1172         call that new function.
1173         * tree-ssa-sink.c: New file.
1174         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
1175         * doc/passes.texi: Document forward store motion.
1176         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
1177         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
1178         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
1179         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
1180
1181 2005-03-01  Per Bothner  <per@bothner.com>
1182
1183         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
1184         and we have a non-zero column-number, add it to the message.
1185         Also factor out the diagnostic_kind_text.
1186
1187 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
1188
1189         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1190         flow_loop_pre_header_scan, flow_loop_pre_header_find,
1191         flow_loop_scan): Removed.
1192         (flow_loop_dump): Do not dump removed fields.
1193         (flow_loop_free): Do not free removed fields.
1194         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
1195         (loop_exit_edge_p): New function.
1196         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
1197         num_pre_header_edges, entry_edges, num_entries, exit_edges,
1198         num_exits, exits_doms.
1199         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
1200         LOOP_EDGES, LOOP_ALL): Removed.
1201         (flow_loop_scan): Declaration removed.
1202         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
1203         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
1204         flow_loops_find.
1205         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
1206         (if_convert): Call flow_loops_find and flow_loops_free
1207         when calling mark_loop_exit_edges.
1208         * cfgloopanal.c (mark_loop_exit_edges): Moved from
1209         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
1210         free_dominance_info calls.
1211         * loop-init.c (flow_loops_find): Ditto.
1212         * passes.c (rest_of_handle_branch_prob): Ditto.
1213         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
1214         * loop-unroll.c (analyze_insns_in_loop): Do not use
1215         EDGE_LOOP_EXIT.
1216         * predict.c (predict_loops): Do not call flow_loop_scan.
1217         Use get_loop_exit_edges.
1218         (tree_estimate_probability): Do not pass flags to flow_loops_find.
1219         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
1220         Do not use EDGE_LOOP_EXIT.
1221         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
1222         to bb_with_exit_edge_p.
1223         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
1224         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
1225         to bb_with_exit_edge_p.
1226         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
1227         EDGE_LOOP_EXIT.
1228         * tree-loop-linear.c (linear_transform_loops): Do not call
1229         flow_loop_scan.  Use loop->single_exit.
1230         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
1231         (vect_analyze_loop_form): Do not call flow_loop_scan.
1232         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
1233         loop->single_exit.
1234         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
1235         loop->single_exit.
1236         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
1237         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1238         slpeel_tree_duplicate_loop_to_edge_cfg,
1239         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
1240         Use loop_preheader_edge and loop->single_exit.  Do not call
1241         flow_loop_scan.
1242
1243 2005-03-01  Nick Clifton  <nickc@redhat.com>
1244
1245         * config/arm/arm.c (thumb_find_work_register): Check all of the
1246         argument registers to see if they are free, and a couple of
1247         special cases where the last argument register but can be proved
1248         to be available during the function's prologue.
1249         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
1250         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
1251         thumb_unexpanded_epilogue): Use unsigned long as the type for the
1252         register bit-mask.
1253         (thumb_compute_save_reg_mask): Likewise.  Also use
1254         thumb_find_work_register() to ensure that there is agreement about
1255         which work register is going to be used in the prologue.
1256         (thumb_output_function_prologue): Use unsigned long as the type
1257         for the register bit-mask.  Also delay pushing the link register if
1258         other high registers are going to be pushed.
1259         (thumb_compute_save_reg_mask, emit_multi_reg_push,
1260         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
1261         redundant prototypes.
1262
1263 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
1264
1265         PR target/19819
1266         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
1267         and after reload in REG+REG indexed addresses without REG_POINTER
1268         set in the base and not set in the index.
1269
1270 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1271
1272         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1273         Don't undefine here.
1274         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
1275         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
1276         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
1277         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
1278         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
1279         Delete.
1280         * config.gcc (sh*-*-linux*): Use config/linux.h.
1281
1282 2005-02-28  Dale Johannesen  <dalej@apple.com>
1283             Stan Shebs  <shebs@apple.com>
1284
1285         Rewrite of 64-bit Darwin structure-by-value pass/return.
1286         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
1287         intoffset, use_stack, named.
1288         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
1289         (rs6000_darwin64_record_arg_advance_flush):  New.
1290         (rs6000_darwin64_record_arg_advance_recurse): New.
1291         (rs6000_darwin64_record_arg_flush):  New.
1292         (rs6000_darwin64_record_arg_recurse):  New.
1293         (rs6000_darwin64_record_arg):  New.
1294         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
1295         (function_arg_boundary):  Handle 128-bit aligned structs.
1296         (function_arg_advance):  Rewrite darwin64 struct handling.
1297         (function_arg):  Call rs6000_darwin64_record_arg.
1298         (function_arg_partial_nregs):  Handle darwin64 structs.
1299         (rs6000_darwin64_function_value):  Remove.
1300         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
1301
1302 2005-02-28  Roger Sayle  <roger@eyesopen.com>
1303
1304         PR tree-optimization/20216
1305         * tree-chrec.c (tree_fold_factorial): Delete.
1306         (tree_fold_binomial): Change argument list to take a return type
1307         and change the type of K to unsigned int.  Rewrite to avoid explicit
1308         evaluation of factorials, and (recursively) calling fold to perform
1309         compile-time arithmetic.  Return NULL on (internal) overflow.
1310         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
1311         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
1312         if any intermediate calculation overflows.
1313         (chrec_apply): Update call to chrec_evaluate.
1314
1315 2005-02-28  James E Wilson  <wilson@specifixinc.com>
1316
1317         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
1318
1319 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
1320
1321         PR c/20245
1322         * c-parser.c (c_parser_compound_statement): Return error_mark_node
1323         instead of NULL_TREE on error.
1324
1325 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
1326
1327         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
1328         (EASY_VECTOR_15_ADD_SELF): Remove.
1329         (num_insns_constant_wide): Not static.
1330         (validate_condition_mode): Not static.
1331         (toc_relative_expr_p): Not static.
1332         (legitimate_indirect_address_p): Not static.
1333         (macho_lo_sum_memory_operand): Not static.
1334         (invalid_e500_subreg): Not static.
1335         (easy_vector_same): Not static.
1336         (easy_vector_splat_const): Not static.
1337         (RS6000_SYMBOL_REF_TLS_P): Remove.
1338         (any_operand): Delete.
1339         (any_parallel_operand): Delete.
1340         (count_register_operand): Delete.
1341         (altivec_register_operand): Delete.
1342         (xer_operand): Delete.
1343         (s8bit_cint_operand): Delete.
1344         (short_cint_operand): Delete.
1345         (u_short_cint_operand): Delete.
1346         (non_short_cint_operand): Delete.
1347         (exact_log2_cint_operand): Delete.
1348         (gpc_reg_operand): Delete.
1349         (cc_reg_operand): Delete.
1350         (cc_reg_not_cr0_operand): Delete.
1351         (reg_or_short_operand): Delete.
1352         (reg_or_neg_short_operand): Delete.
1353         (reg_or_aligned_short_operand): Delete.
1354         (reg_or_u_short_operand): Delete.
1355         (reg_or_cint_operand): Delete.
1356         (reg_or_arith_cint_operand): Delete.
1357         (reg_or_add_cint64_operand): Delete.
1358         (reg_or_sub_cint64_operand): Delete.
1359         (reg_or_logical_cint_operand): Delete.
1360         (got_operand): Delete.
1361         (got_no_const_operand): Delete.
1362         (easy_fp_constant): Delete.
1363         (easy_vector_constant): Delete.
1364         (easy_vector_constant_add_self): Delete.
1365         (zero_constant): Delete.
1366         (zero_fp_constant): Delete.
1367         (volatile_mem_operand): Delete.
1368         (offsettable_mem_operand): Delete.
1369         (mem_or_easy_const_operand): Delete.
1370         (add_operand): Delete.
1371         (non_add_cint_operand): Delete.
1372         (logical_operand): Delete.
1373         (non_logical_cint_operand): Delete.
1374         (mask_operand): Delete.
1375         (mask_operand_wrap): Delete.
1376         (mask64_operand): Delete.
1377         (mask64_2_operand): Delete.
1378         (and64_operand): Delete.
1379         (and64_2_operand): Delete.
1380         (and_operand): Delete.
1381         (reg_or_mem_operand): Delete.
1382         (lwa_operand): Delete.
1383         (symbol_ref_operand): Delete.
1384         (call_operand): Delete.
1385         (current_file_function_operand): Delete.
1386         (input_operand): Delete.
1387         (rs6000_nonimmediate_operand): Delete.
1388         (rs6000_tls_symbol_ref): Delete.
1389         (save_world_operation): Delete.
1390         (restore_world_operation): Delete.
1391         (load_multiple_operation): Delete.
1392         (store_multiple_operation): Delete.
1393         (vrsave_operation): Delete.
1394         (mfcr_operation): Delete.
1395         (mtcrf_operation): Delete.
1396         (lmw_operation): Delete.
1397         (stmw_operation): Delete.
1398         (branch_comparison_operator): Delete.
1399         (branch_positive_comparison_operator): Delete.
1400         (scc_comparison_operator): Delete.
1401         (trap_comparison_operator): Delete.
1402         (boolean_operator): Delete.
1403         (boolean_or_operator): Delete.
1404         (min_max_operator): Delete.
1405         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
1406         (EASY_VECTOR_15): Moved to here.
1407         (EASY_VECTOR_15_ADD_SELF): Move to here.
1408         (PREDICATE_CODES): Delete.
1409         * config/rs6000/rs6000-protos.h: Delete predicate functions.
1410         Declare functions no longer static.
1411         * config/rs6000/predicates.md: New.
1412         * config/rs6000/rs6000.md: Include predicates.md
1413
1414 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
1415
1416         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
1417         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
1418         REG_ALWAYS_RETURN.
1419         * cfgrtl.c (need_fake_edge_p): Likewise.
1420         * combine.c (distribute_notes): Likewise.
1421         * emit-rtl.c (try_split): Likewise.
1422         * recog.c (peephole2_opimize): Likewise.
1423         * reg-notes.def (ALWAYS_RETURN): Remove.
1424         * rtl.h (LCT_ALWAYS_RETURN): Remove.
1425         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
1426         * tree.h (ECF_ALWAYS_RETURN): Remove.
1427
1428 2005-02-28  Roger Sayle  <roger@eyesopen.com>
1429
1430         PR middle-end/19874
1431         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
1432         between different machine modes is never a "useless" conversion.
1433
1434 2005-02-28  Geert Bosch  <bosch@gnat.com>
1435
1436         PR ada/15977
1437         * doc/contrib.texi: List contributors for Ada front end
1438
1439 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
1440
1441         * simplify-rtx.c (simplify_unary_operation_1,
1442         simplify_const_unary_operation): New, extracted from...
1443         (simplify_unary_operation): ... this one.
1444         (simplify_binary_operation_1,
1445         simplify_const_binary_operation): New, extracted from...
1446         (simplify_binary_operation): ... this one.
1447         * rtl.h (simplify_const_unary_operation,
1448         simplify_const_binary_operation): Add prototypes.
1449
1450 2005-02-28  Julian Brown  <julian@codesourcery.com>
1451
1452         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
1453         building libjava and caused PR regression/20228.
1454
1455 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
1456
1457         PR bootstrap/17383
1458         * Makefile.in (host_subdir): New.
1459         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
1460         * configure: Regenerate.
1461
1462 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
1463
1464         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
1465         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
1466         installation directory first.
1467
1468 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
1469
1470         PR target/19065.
1471         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
1472         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
1473         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
1474         * config/cris/cris.md: Tweak comments referring to Q.
1475         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
1476         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
1477         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
1478         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
1479         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
1480         Insert spaces in constraints to align alternatives vertically for
1481         readability.
1482         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
1483         operand 1: "M".
1484
1485 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1486
1487         PR rtl-optimization/17728
1488         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
1489         operand 0 from general_operand to move_dest_operand.
1490
1491 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1492
1493         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
1494         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
1495         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
1496         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
1497
1498 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1499
1500         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
1501         * configure: Regenerate.
1502         * libada-mk.in: Remove CC; rename
1503         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
1504
1505 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
1506
1507         PR tree-opt/20188
1508         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
1509         for the lhs, also walk over the tree.  Likewise for rhs.
1510
1511 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
1512
1513         * tree-ssa-dom.c (simple_iv_increment_p): New function.
1514         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
1515         Do not propagate value of iv before increment over the increment.
1516
1517 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
1518
1519         * c-parser.c: New file.
1520         * c-parse.in: Remove.
1521         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
1522         Remove.
1523         (c-parser.o): Add dependencies.
1524         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
1525         maintainer-clean, TAGS): Update.
1526         * c-config-lang.in (gtfiles): Update.
1527         * gengtype-lex.l: Don't handle "@@".
1528         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
1529         objc_build_synchronized, objc_begin_try_stmt,
1530         objc_begin_catch_clause, objc_finish_catch_clause,
1531         objc_build_finally_clause, objc_finish_try_stmt): New.
1532         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
1533         type_seen_p.
1534         (c_parse_init): Update comment.
1535         * c-decl.c (c_init_decl_processing): Update comment.
1536         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1537         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
1538         new c_declspecs members.
1539
1540 2005-02-25  Julian Brown  <julian@codesourcery.com>
1541
1542         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
1543         from being used for symbols with vague linkage when
1544         HAVE_GAS_COMDAT_GROUP is true.
1545
1546 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1547
1548         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
1549
1550 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
1551
1552         PR target/19930
1553         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
1554         (LIBGCC2_HAS_DF_MODE): New.
1555         (LIBGCC2_HAS_XF_MODE): New.
1556         (LIBGCC2_HAS_TF_MODE): New.
1557         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1558         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1559         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1560         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1561         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
1562         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
1563         and add _fixtfdi, _fixunstfdi, _floatditf
1564         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
1565         L_fixunstfdi, L_floatditf.
1566         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
1567         (LIBGCC2_HAS_TF_MODE): Define.
1568
1569 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
1570
1571         PR tree-optimization/20204
1572         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
1573         REWRITE_THIS_STMT markers on PHI nodes.
1574         (rewrite_initialize_block): Likewise.
1575
1576 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1577
1578         * version.c (version_string): Update to 4.1.
1579
1580 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
1581
1582         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
1583         Clarify that the alternative way doesn't work in GNU C++.
1584
1585 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
1586
1587         PR tree-optimization/19937
1588         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
1589         to the type of the induction variable.
1590
1591 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1592
1593         PR rtl-optimization/20117
1594         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
1595         the block including noncopyable insn.
1596
1597 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1598
1599         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
1600         calls to find_reg_note.
1601
1602 2005-02-24  Richard Henderson  <rth@redhat.com>
1603
1604         PR tree-opt/20127
1605         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
1606         the type.
1607
1608 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
1609
1610         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
1611         vector types if to use base reg for misaligned non-word ld/std.
1612
1613 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1614
1615         PR target/14619
1616         * config/cris/cris.c (cris_target_asm_function_prologue): Create
1617         dwarf2 label manually and put it after, not before the prologue.
1618
1619 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
1620
1621         PR target/19019
1622         * reload.c (operands_match_p): Only increment register number for
1623         SCALAR_INT_MODE_P modes in multiple hard registers.
1624
1625         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
1626         Fix formatting.
1627
1628 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1629
1630         * ChangeLog.5: Fix log message typo(s).
1631         * ChangeLog.7: Likewise.
1632         * ChangeLog.tree-ssa: Likewise.
1633         * cfgexpand.c: Fix comment typo(s).
1634         * conflict.c: Likewise.
1635         * defaults.h: Likewise.
1636         * dwarf2out.c: Likewise.
1637         * gcse.c: Likewise.
1638         * ggc-page.c: Likewise.
1639         * tree-eh.c: Likewise.
1640         * tree-ssa-dom.c: Likewise.
1641
1642 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
1643
1644         PR target/19019
1645         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
1646         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
1647         if SHARED is defined.
1648
1649         PR target/20196
1650         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
1651         allow splitting only if operands 0 and 3 don't overlap.
1652
1653 2005-02-24  Richard Henderson  <rth@redhat.com>
1654
1655         PR middle-end/19953
1656         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
1657         (fold_builtin_1): Call them.
1658         * fold-const.c (fold_complex_mult_parts): Split out from ...
1659         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
1660         (fold_complex_div_parts, fold_complex_div): New.
1661         (fold): Use them.
1662         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
1663
1664 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1665
1666         * tree-ssa-ccp.c (visit_assignment): Verify that result of
1667         VIEW_CONVERT_EXPR is_gimple_min_invariant.
1668
1669         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
1670         (print_node): Likewise.
1671         Print TYPE_SIZES_GIMPLIFIED.
1672
1673 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1674
1675         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
1676         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
1677         operands as commutative in constraints.
1678
1679 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
1680
1681         * tree-into-ssa.c: Re-organize internal functions.
1682
1683 2005-02-24  Richard Henderson  <rth@redhat.com>
1684
1685         PR middle-end/18902
1686         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
1687         for c99.
1688         * common.opt (fcx-limited-range): New.
1689         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
1690         * toplev.c (flag_complex_method): Initialize to 1.
1691         (process_options): Set flag_complex_method to 0 if
1692         flag_cx_limited_range.
1693         * doc/invoke.texi (-fcx-limited-range): New.
1694
1695 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1696
1697         * cse.c (delete_trivially_dead_insns): Speed up by using
1698         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
1699         prev_real_insn.
1700
1701 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
1702
1703         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
1704         functions when -mid-shared-library is being used.
1705
1706 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
1707
1708         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
1709         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
1710         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
1711         * system.h: Poison LINK_LIBGCC_SPECIAL.
1712
1713 2005-02-23  James E Wilson  <wilson@specifixinc.com>
1714
1715         * gengtype.c (note_insn_name): Make 1 element larger.
1716
1717 2005-02-23  Roger Sayle  <roger@eyesopen.com>
1718
1719         PR target/20018
1720         PR rtl-optimization/20097
1721         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1722         BImode SUBREGs of SImode registers which confuse the ia64 backend.
1723
1724 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
1725
1726         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
1727         * t-aix52 (SHLIB_INSTALL): Same.
1728
1729 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
1730
1731         * genpreds.c: Update copyright.
1732
1733 2005-02-23  Michael Beach  <michaelb@ieee.org>
1734
1735         PR target/20159
1736         * config/sparc/t-elf (startup files): Assemble with CPP.
1737
1738 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
1739
1740         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
1741         (write_predicate_expr): Likewise.
1742
1743 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1744
1745         PR tree-optimization/20100
1746         PR tree-optimization/20115
1747         * tree-optimize.c (init_tree_optimization_passes): Remove
1748         pass_maybe_create_global_var.
1749         * tree-pass.h (pass_maybe_create_global_var): Remove.
1750         * tree-ssa-alias.c (aliases_computed_p): Declare.
1751         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
1752         (count_calls_and_maybe_create_global_var): Remove.
1753         (pass_maybe_create_global_var): Remove.
1754         (init_alias_info): Do not declare aliases_computed_p.
1755         (maybe_create_global_var): If the function contains no
1756         call-clobbered variables and a mix of pure/const and regular
1757         function calls, create .GLOBAL_VAR.
1758         Mark all call-clobbered variables for renaming.
1759         (merge_pointed_to_info): Update comment.
1760         (add_pointed_to_var): Likewise.
1761         (is_escape_site): Likewise.
1762         Accept struct alias_info * instead of size_t *.
1763         Update all users.
1764         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
1765         as necessary.
1766         * tree-ssa-operands.c (get_call_expr_operands): If
1767         ALIASES_COMPUTED_P is false, do not add call-clobbering
1768         operands.
1769         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
1770         (delete_tree_ssa): Likewise.
1771
1772 2005-02-22  James E Wilson  <wilson@specifixinc.com>
1773
1774         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
1775         (do_compile): Do call it here.
1776
1777 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1778
1779         PR rtl-optimization/20017.
1780         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
1781         rest_of_handle_cse2, rest_of_handle_gcse): Call
1782         delete_dead_jumptables immediately before calling cleanup_cfg.
1783
1784 2005-02-22  Devang Patel  <dpatel@apple.com>
1785
1786         PR 19952
1787         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
1788         all labels
1789
1790 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
1791
1792         * config/rs6000/aix.h (WINT_TYPE): Define.
1793
1794 2005-02-22  Stan Shebs  <shebs@apple.com>
1795
1796         * config/rs6000/rs6000.c (rs6000_override_options): Default to
1797         natural alignment for 64-bit Darwin.
1798         (rs6000_parse_alignment_option): Warn about uses of -malign-power
1799         on 64-bit Darwin.
1800         * doc/invoke.texi: Document this.
1801
1802 2005-02-22  DJ Delorie  <dj@redhat.com>
1803
1804         * c-common.c (c_common_type_for_mode): Pass the mode's precision
1805         to make_[un]signed_type, not the mode itself.
1806
1807 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1808
1809         * cfg.c (cached_make_edge): Call make_edge if edge cache is
1810         not available.  Use tail calls wherever possible.
1811         (make_edge): Call unchecked_make_edge to create an edge.
1812
1813         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
1814         (coalesce_ssa_name): Don't check for
1815         SSANORM_USE_COALESCE_LIST.
1816         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
1817
1818 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1819
1820         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
1821         (rewrite_into_ssa): ... here.
1822
1823 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
1824
1825         PR tree-optimization/19786
1826         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
1827         tag to another's may-alias bitmap when adding to the other's list.
1828
1829 2005-02-21  DJ Delorie  <dj@redhat.com>
1830
1831         * tree-ssa-loop-ivopts.c (computation_cost): Start register
1832         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
1833         registers in unsupported ways.
1834         * expmed.c (init_expmed): Likewise.
1835
1836 2005-02-21  Stan Cox  <scox@redhat.com>
1837
1838         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
1839
1840 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1841
1842         * tree-cfg.c (fold_cond_expr_cond): New.
1843         (make_edges): Call fold_cond_expr_cond.
1844         (find_taken_edge): Accept nothing but INTEGER_CST.
1845         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
1846         and 1.
1847         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
1848
1849         * flow.c (delete_dead_jumptables): Speed up by scanning insns
1850         that do not belong to any basic block.
1851
1852 2005-02-21  Jeff Law  <law@redhat.com>
1853
1854         * cfganal.c (find_unreachable_blocks): Manually CSE load of
1855         e->dest.
1856
1857 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1858
1859         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
1860         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
1861         Adjust their definitions.
1862         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
1863         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
1864
1865         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
1866         genautomata.c, langhooks.c, langhooks.h, system.h,
1867         config/arm/lib1funcs.asm: Update copyright.
1868
1869 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
1870
1871         * dbxout.c (dbxout_function_end): Emit Lscope label always.
1872
1873 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
1874
1875         PR bootstrap/13770
1876         * doc/install.texi: Document --with-gc.
1877
1878 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
1879
1880         * simplify-rtx.c (simplify_unary_operation): Add a missing
1881         "break" statement.
1882
1883 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1884
1885         PR tree-optimization/18663
1886         * tree-ssa-dom.c (extract_range_from_cond): Return 0
1887         if the type has variable bounds.
1888
1889 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
1890
1891         * gcse.c: Remove an obsolete comment.
1892
1893         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
1894
1895 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
1896
1897         * doc/extend.texi (Function Attributes) <Attribute const>: The
1898         attribute "pure" is below this text, not above.
1899
1900 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1901
1902         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
1903         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
1904         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
1905
1906 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
1907
1908         PR 18785
1909         * langhooks.h (struct lang_hooks): Add to_target_charset.
1910         * langhooks.c (lhd_to_target_charset): New function.
1911         * langhooks-def.h: Declare lhd_to_target_charset.
1912         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
1913         (LANG_HOOKS_INITIALIZER): Update.
1914         * c-common.c (c_common_to_target_charset): New function.
1915         * c-common.h: Declare it.
1916         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
1917         c_common_to_target_charset.
1918
1919         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
1920         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
1921         Delete definitions.
1922         * system.h: Poison them.
1923         * doc/tm.texi: Don't discuss them.
1924         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
1925         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
1926         (pp_c_char): Do not attempt to generate letter escapes for
1927         newline, tab, etc.
1928         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
1929         * config/mips/mips.c (mips_output_ascii): Likewise.
1930
1931 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
1932
1933         PR tree-optimization/19951
1934         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
1935         is abnormal.
1936
1937 2005-02-19  Steven Bosscher  <stevenb@suse.de>
1938
1939         PR middle-end/19698
1940         * function.h (struct function): New field `max_loop_depth'.
1941         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
1942         (flow_loops_find): Reset the max loop depth count before finding loops.
1943         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
1944         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
1945         (calculate_global_regs_live): Make sure the loop will terminate
1946         when the initial sets are not empty.
1947
1948 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
1949
1950         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
1951         object inside.
1952         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
1953
1954 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
1955
1956         PR other/19525
1957         * doc/invoke.texi: Remove documentation of %M spec.
1958         * gcc.c: Likewise.
1959         (init_spec): Remove %M suffix from -lgcc_s.
1960         (do_spec_1): Remove 'M' case.
1961         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
1962         to put shared libraries in the multilib directory.  Remove the
1963         shlib_so_soname substitution variable.  Don't add a multilib encoding
1964         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
1965         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
1966         SHLIB_INSTALL as well as SHLIB_LINK.
1967         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
1968         (SHLIB_NAME): Delete.
1969         (SHLIB_DIR): New macro.
1970         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
1971         (SHLIB_INSTALL): Adjust accordingly.
1972         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
1973         * config/t-slibgcc-sld: Likewise.
1974         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
1975         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
1976         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
1977         in $(SHLIB_DIR).
1978         (SHLIBUNWIND_INSTALL): Adjust accordingly.
1979         * config/i386/t-nwld (SHLIB_SONAME): Delete.
1980         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
1981         Use @shlib_base_name@ instead of @shlib_so_name@.
1982         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
1983         and @shlib_base_name@.so in @multilib_dir@.
1984         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
1985         to the install path.
1986         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
1987         (SHLIB_LINK): Remove previous workaround.
1988         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
1989         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
1990         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
1991         the install path.
1992         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
1993         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
1994         (SHLIB_INSTALL): Adjust accordingly.
1995         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
1996         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
1997         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
1998         config/t-slibgcc-elf-ver.
1999
2000 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
2001             Jakub Jelinek  <jakub@redhat.com>
2002
2003         PR tree-optimization/19828
2004         * tree-ssa-loop-im.c: Add a TODO comment.
2005         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
2006         without side-effects.
2007
2008 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
2009
2010         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
2011         call fold_convert.
2012
2013 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
2014
2015         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
2016         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
2017         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
2018         functions.
2019         (ia64_reorg): Delete fixup_errata call.
2020         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
2021         (TARGET_SWITCHES): Delete -mb-step entry.
2022
2023 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
2024
2025         PR c/20043
2026         * c-typeck.c (composite_type): Handle quals in transparent unions.
2027         (type_lists_compatible_p): Likewise.
2028
2029 2005-02-18  Stan Shebs  <shebs@apple.com>
2030
2031         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
2032         expressions in the .literal8 section.
2033
2034 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
2035
2036         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
2037
2038 2005-02-18  Roger Sayle  <roger@eyesopen.com>
2039
2040         * fold-const.c (constant_boolean_node): Always create values of the
2041         specified type, don't bother calling truthvalue_conversion.
2042
2043 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2044
2045         * except.c (output_function_exception_table): Call
2046         assemble_external_libcall (eh_personality_libfunc).
2047
2048 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2049
2050         PR target/19886
2051         * config/ia64/ia64.h (struct machine_function): Add state_num.
2052         * config/ia64/ia64.c (process_epilogue,
2053         process_for_unwind_directive): Use new unwind state numbers each
2054         time rather than state 1.
2055
2056 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
2057
2058         PR target/20054
2059         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
2060         before the "*llgt_didi" pattern.
2061
2062 2005-02-18  Jason Merrill  <jason@redhat.com>
2063
2064         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
2065
2066 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
2067
2068         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
2069         (div0): Use it in place of ARM_FUNC_ALIAS.
2070         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
2071
2072 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
2073
2074         PR middle-end/20030
2075         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
2076         access, the lower bound of the array type if it exists.
2077
2078 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
2079
2080         PR c++/20008
2081         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
2082         cases that are out-of-range for the index type.
2083
2084 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
2085
2086         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
2087         (estimate_case_costs): Don't call convert.
2088         * expmed.c (expand_shift): Likewise.
2089         (make_tree): Call fold_convert instead of convert.
2090
2091 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
2092
2093         PR c++/19813
2094         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
2095         that ref to be marked MEM_READONLY_P doesn't have base that needs
2096         constructing.
2097
2098 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2099
2100         * genautomata.c (output_get_cpu_unit_code_func,
2101         output_cpu_unit_reservation_p): Don't generate old-style function
2102         definitions.
2103
2104 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
2105
2106         PR c++/20023
2107         PR tree-optimization/20009
2108         * convert.c (convert_to_integer): Revert 2005-02-16 change.
2109
2110         PR tree-optimization/18947
2111         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
2112         inline, remove all nodes that are inlined into the extern inline
2113         being redefined.
2114
2115 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
2116
2117         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
2118         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
2119         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
2120         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
2121         Update copyright.
2122
2123 2005-02-17  Roger Sayle  <roger@eyesopen.com>
2124
2125         PR tree-optimization/19917
2126         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
2127         to be potentially trapping.
2128
2129 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
2130
2131         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
2132
2133 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2134
2135         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
2136         tem becomes a local variable which is set to the value of the
2137         back end defined INITIAL_FRAME_ADDRESS macro.
2138         (expand_builtin_frame_address): Omit the base parameter to
2139         expand_builtin_return_addr.
2140         (expand_builtin_profile_func): Likewise.
2141         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
2142         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
2143         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
2144
2145 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
2146
2147         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
2148         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
2149         * config/frv/frv.c (frv_function_epilogue): Likewise.
2150
2151 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
2152
2153         * lambda-code (perfect_nestify): Remove mark/unmark
2154         for rewriting hack.
2155         * tree-loop-linear.c (linear_transform_loops): Add
2156         rewrite_into_ssa call so that ssa is correct for
2157         rewriting into loop closed.
2158
2159 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
2160
2161         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
2162         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
2163         BITMAP_FREE.
2164         * bt-load.c (btr_def_live_range, combine_btr_defs,
2165         migrate_btr_def, migrate_btr_defs): Likewise.
2166         * cfgcleanup.c (thread_jump): Likewise.
2167         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
2168         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
2169         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
2170         df_rd_local_compute, df_reg_info_compute): Likewise.
2171         * dominance.c (init_dom_info, free_dom_info): Likewise.
2172         * flow.c (init_propagate_block_info,
2173         free_propagate_block_info): Likewise.
2174         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
2175         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
2176         modify_reg_pav): Likewise.
2177         * loop-invariant.c (find_defs, find_invariant_insn,
2178         find_invariants, free_inv_motion_data): Likewise.
2179         * predict.c (tree_predict_by_opcode,
2180         estimate_bb_frequencies): Likewise.
2181         * stmt.c (expand_case): Likewise.
2182         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
2183         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
2184         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
2185         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
2186         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
2187         rewrite_ssa_into_ssa): Likewise.
2188         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2189         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
2190         analyze_edges_for_bb, perform_edge_inserts): Likewise.
2191         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
2192         * tree-sra.c (tree_sra): Likewise.
2193         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
2194         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
2195         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
2196         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2197         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
2198         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
2199         Likewise.
2200         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
2201         calculate_live_on_entry, calculate_live_on_exit,
2202         build_tree_conflict_graph): Likewise.
2203         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
2204         record_important_candidates, set_use_iv_cost, find_depends,
2205         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
2206         tree_ssa_iv_optimize_finalize): Likewise.
2207         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
2208         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
2209         tree_duplicate_loop_to_header_edge): Likewise.
2210         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
2211         * tree-ssa.c (verify_flow_insensitive_alias_info,
2212         verify_name_tags, verify_ssa, init_tree_ssa,
2213         delete_tree_ssa): Likewise.
2214         * tree-ssanames.c (marked_ssa_names, init_ssanames,
2215         fini_ssanames): Likewise.
2216         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
2217
2218 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
2219
2220         * config/rs6000/t-rtems: Completely reworked.
2221
2222 2005-02-17  Ira Rosen  <irar@il.ibm.com>
2223
2224         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
2225
2226 2005-02-17  Ira Rosen  <irar@il.ibm.com>
2227
2228         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
2229         POINTER_TYPE_P when checking that type is a pointer.
2230         (vect_get_memtag): Remove.
2231         (vect_address_analysis): Use POINTER_TYPE_P. Call
2232         vect_object_analysis with dummy parameter for memtag.
2233         (vect_object_analysis): Extract memtag (functionality that
2234         used to be in vect_get_memtag and moved here). Fix printings.
2235         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
2236         with correct parameters. Remove call to vect_get_memtag.
2237
2238 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
2239
2240         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
2241         (tree-vectorizer.o): Added missing dependencies.
2242
2243         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
2244         decleration.
2245         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
2246         declaration in tree-vectorizer.c, now has an extern declaration in
2247         tree-vectorizer.h).
2248         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2249         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
2250         get_vectype_for_scalar_type, vect_is_simple_use,
2251         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
2252         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
2253         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
2254         vectorizable_store, vectorizable_operation, vectorizable_assignment,
2255         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
2256         find_loop_location): Likewise.
2257
2258         * tree-vectorizer.c (langhooks.h): #include removed.
2259         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
2260         moved to tree-vectorized.h.
2261         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2262         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
2263         get_vectype_for_scalar_type, vect_is_simple_use,
2264         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
2265         vect_supportable_dr_alignment, new_loop_vec_info,
2266         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
2267         vect_set_verbosity_level, find_loop_location): Likewise.
2268
2269         (vect_analyze_loop): Function externalized. Declaration moved to
2270         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
2271         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
2272         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
2273         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
2274         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
2275         vect_enhance_data_refs_alignment, vect_analyze_operations,
2276         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
2277         vect_stmt_relevant_p, vect_get_loop_niters,
2278         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
2279         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
2280         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
2281         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
2282         vect_get_memtag): Likewise.
2283
2284         (vectorizable_load): Function externalized. Declaration moved to
2285         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
2286         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
2287         vect_transform_loop): Likewise.
2288         (vect_transform_stmt): Moved to tree-vect-transform.c.
2289         (vect_align_data_ref, vect_create_destination_var,
2290         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
2291         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
2292         vect_get_vec_def_for_operand, vect_init_vector,
2293         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
2294         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
2295         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
2296         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
2297         vect_do_peeling_for_loop_bound): Likewise.
2298
2299         * tree-vect-analyze.c: New file.
2300         * tree-vect-transform.c: New file.
2301
2302 2005-02-17  Jason Merrill  <jason@redhat.com>
2303
2304         PR mudflap/19319, c++/19317
2305         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
2306         slot explicit.
2307
2308 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
2309
2310         * doc/install.texi (Specific): Update link for Darwin-specific
2311         tool binary site.
2312
2313 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
2314
2315         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
2316         constant_boolean_node.
2317
2318 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
2319
2320         PR target/19019
2321         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
2322         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
2323
2324 2005-02-16  Richard Henderson  <rth@redhat.com>
2325
2326         PR 19920
2327         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
2328         with W_TYPE_SIZE.
2329         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
2330         replace uses with Wtype_MAXp1_F.
2331         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
2332         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
2333         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
2334         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
2335         and HAVE_TFMODE as appropriate.
2336         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
2337         (__floatdisf): Likewise.
2338         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
2339         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
2340         (Wtype_MAXp1_F): New.
2341         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
2342         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
2343
2344 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
2345
2346         * PR target/19162
2347         * arm.c (arm_apply_result_size): New function.
2348         * arm.h (APPLY_RESULT_SIZE): Define.
2349         * arm-protos.h (arm_apply_result_size): Add prototype.
2350         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
2351         (movxf): New expand.
2352         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
2353         (call_value_symbol): Remove predicate for operand 0.
2354         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
2355         (untyped_call): Rework to correclty return values for any type.
2356         (untyped_return): New expand.
2357         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
2358
2359 2005-02-16  Stan Shebs  <shebs@apple.com>
2360
2361         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
2362         * config/rs6000/t-darwin8: New, for 64-bit multilib.
2363
2364 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
2365
2366         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
2367         configure settings on Solaris 7 and later.
2368
2369 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
2370
2371         PR tree-optimization/19865
2372         * tree-optimize.c (init_tree_optimization_passes): Run
2373         pass_may_alias after pass_sra.
2374
2375 2005-02-16  Richard Henderson  <rth@redhat.com>
2376             Stuart Hastings  <stuart@apple.com>
2377
2378         PR debug/19521
2379         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
2380         Do nothing if debug info suppressed for this function.
2381         (dbxout_begin_function): Early exit if debug info suppressed for
2382         this function.
2383
2384 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
2385
2386         PR target/20007
2387         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
2388         find_basic_blocks.
2389         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2390
2391         PR tree-optimization/19967
2392         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
2393         expand_builtin_strchr, expand_builtin_strrchr): Take a new
2394         argument TYPE.  Adjust calls to fold_builtin_XXX.
2395         (expand_builtin, fold_builtin_1): Adjust calls to
2396         expand_builtin_XXX.
2397         (fold_builtin_strchr, fold_builtin_strpbrk,
2398         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
2399         result to a requested type TYPE.
2400
2401 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
2402
2403         PR middle-end/19857
2404         * fold-const.c (fold): Don't optimize (T)(x & cst) to
2405         (T)x & (T)cst if (T)cst overflows.
2406         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
2407         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
2408
2409 2005-02-15  Jeff Law  <law@redhat.com>
2410
2411         * gcse.c (blocks_with_calls): New bitmap.
2412         (alloc_gcse_mem): Allocate it.
2413         (free_gcse_mem): Free it.
2414         (clear_modifY_mem_tables): Clear it.
2415         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
2416         when we encounter CALL_INSNs.
2417         (compute_transp, case MEM): Handle blocks with calls separate
2418         from blocks without calls.  Use bitmap iterators rather than
2419         FOR_EACH_BB.
2420
2421 2005-02-15  Peter O'Gorman  <peter@pogma.com>
2422
2423         PR bootstrap/18810
2424         * mklibgcc.in (vis_hide): Use a temporary object file, not
2425         -o /dev/null.
2426
2427 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2428
2429         PR target/19924
2430         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
2431         access optimization.
2432
2433 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
2434             Alan Modra  <amodra@bigpond.net.au>
2435
2436         PR target/19019
2437         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
2438         (_xlqsub): Rename to __gcc_qsub.
2439         (_xlqmul): Rename to __gcc_qmul.
2440         (_xlqdiv): Rename to __gcc_qdiv.
2441         Provide versioned symbol aliases with old names.
2442         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
2443         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
2444         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
2445         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
2446         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
2447
2448 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2449
2450         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
2451         Fold ~(A - 1) and ~(A + -1) to -A.
2452
2453 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2454
2455         PR pch/14940
2456         PR target/19300
2457         * config/host-linux.c (linux_gt_pch_use_address): Copy from
2458         config/pa/pa-host.c:pa_gt_pch_use_address.
2459
2460 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
2461
2462         * tree-vn.c (get_value_handle): Make sure that given an
2463         is_gimple_min_invariant expression, we always return it.
2464
2465 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2466
2467         * passes.c (rest_of_handle_gcse): Fix a comment.
2468
2469 2005-02-15  Jeff Law  <law@redhat.com>
2470
2471         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
2472         bitmap.
2473         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
2474         (canon_list_insert, record_last_mem_set_info): Similarly.
2475         (clear_modify_mem_tables): Similarly.
2476
2477 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2478
2479         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
2480         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
2481         config/mips/mips.md, config/rs6000/aix.h,
2482         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
2483
2484 2005-02-15  Richard Henderson  <rth@redhat.com>
2485
2486         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
2487         call to be best_edge.
2488
2489 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2490
2491         * basic-block.h: Adjust the prototype for find_basic_blocks.
2492         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
2493         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
2494         find_basic_blocks.
2495
2496         * flow.c (recompute_reg_usage): Remove all arguments.
2497         * passes.c (rest_of_compilation): Adjust the call to
2498         recompute_reg_usage.
2499         * rtl.h: Adjust the prototype for recompute_reg_usage.
2500
2501 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
2502
2503         * tree-dump.c (dump_files): Update to reflect new member
2504         of dump_file_info.
2505         (dump_register): Add new argument.
2506         Set glob name.
2507         (dump_switch_p_1): Check against glob name if doglob was passed.
2508         (dump_switch_p): Check against regular first, then glob if
2509         we didn't have any hits on the dump name.
2510         * tree-optimize.c (register_one_dump_file):
2511         Pass in glob name as well.
2512         * tree-pass.h (struct dump_file_info): Add glob
2513         member.
2514
2515 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
2516
2517         PR preprocessor/16323
2518         * doc/invoke.texi: Document that -Wendif-labels is on by default.
2519
2520 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
2521
2522         PR target/19019
2523         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
2524         (trunctfdf2_internal1): New.
2525         (trunctfdf2_internal2): Renamed from trunctfdf2.
2526
2527 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
2528
2529         PR tree-optimization/19853
2530         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
2531
2532 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2533
2534         * passes.c (rest_of_handle_loop_optimize): Remove calls to
2535         delete_dead_jumptables and cleanup_cfg.
2536
2537 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
2538
2539         * reload.c (find_reloads): Swap address_reloaded flags when
2540         swapping commutative operands.
2541
2542 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
2543
2544         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
2545         Use standard_iv_increment_position for computing the bsi position
2546         for create_iv.
2547         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
2548         the bsi position.
2549
2550 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
2551
2552         PR target/17428
2553         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
2554         life range of hard registers.
2555         * value-prof.c (insn_prefetch_values_to_profile): Only
2556         scan normal insns.
2557
2558         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
2559         profile in libcalls.
2560
2561 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
2562
2563         * bitmap.h (bitmap_and_compl_into): Return bool.
2564         * bitmap.c (bitmap_and_compl_into): Return changed flag.
2565
2566 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2567
2568         PR tree-optimization/19944
2569         * fold-const.c (fold): Re-add ABS_EXPR folding.
2570
2571 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
2572
2573         PR target/19019
2574         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
2575         {TARGET,MASK}_XL_COMPAT.
2576         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
2577         MASK_XL_COMPAT.
2578         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
2579         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
2580         TARGET_XL_COMPAT.
2581         (rs6000_arg_partial_bytes): Same.
2582         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
2583         and XL compatibility enabled.
2584         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
2585         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
2586         test to final condition.
2587         (cmptf_internal2): New.
2588         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
2589         xl-compat.  Add TFmode information to description.
2590
2591 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
2592
2593         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
2594
2595 2005-02-13  Jason Merrill  <jason@redhat.com>
2596
2597         PR c++/16405
2598         * fold-const.c (fold_indirect_ref_1): Split out from...
2599         (build_fold_indirect_ref): Here.
2600         (fold_indirect_ref): New fn.
2601         * tree.h: Declare it.
2602         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
2603         (gimplify_modify_expr_rhs): Likewise.
2604         (gimplify_expr): Likewise.
2605
2606 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2607
2608         PR tree-optimization/14303
2609         PR tree-optimization/15784
2610         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
2611         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
2612         ABS_EXPR<x> != 0 to x != 0.
2613
2614 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
2615
2616         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
2617         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
2618         spelling conventions.
2619
2620         * passes.c (rest_of_handle_gcse): Don't run cse_main and
2621         delete_trivially_dead_insns too many times.
2622
2623         * passes.c (rest_of_handle_gcse): Remove dead assignments to
2624         tem and tem2.
2625
2626 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2627
2628         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
2629         (vect_is_simple_iv_evolution): Remove redundant parameter
2630         and step check.
2631         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
2632         without last parameter.
2633         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
2634         Return pointer step. Call vect_is_simple_iv_evolution without
2635         last parameter. Check only that the step is multiple of size
2636         type. Remove stmt_vinfo updates.
2637         (vect_get_memtag_and_dr): Remove.
2638         (vect_get_memtag): New function.
2639         (vect_address_analysis): New function.
2640         (vect_object_analysis): New function.
2641         (vect_analyze_data_refs): Call vect_object_analysis and
2642         vect_get_memtag. Update stmt_vinfo fields.
2643
2644 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2645
2646         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
2647         exist and are objects. Remove checks for pointer.
2648         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
2649         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
2650         (vect_create_data_ref_ptr): Likewise.
2651         (vect_base_addr_differ_p): New function.
2652         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
2653         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
2654         Don't set the DR_BASE_NAME field of data-ref.
2655         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
2656
2657 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
2658
2659         * optabs.h (enum optab_index): Add new OTI_ldexp.
2660         (ldexp_optab): Define corresponding macro.
2661         * optabs.c (init_optabs): Initialize ldexp_optab.
2662         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
2663         patterns.
2664         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
2665         using ldexp_optab.
2666         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
2667         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
2668
2669         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
2670         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
2671         intrinsics.
2672
2673 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2674
2675         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
2676         to base_address.
2677         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
2678         stmt_vec_info.
2679         (vect_get_base_and_offset): Always return an address.
2680         (vect_create_addr_base_for_vector_ref): Remove treatment for
2681         different data reference types.
2682         (vect_compute_data_ref_alignment): Rename base to base_address in
2683         stmt_vec_info. Get the object in order to force its alignment.
2684         (vect_get_memtag_and_dr): Rename base to base_address in
2685         stmt_vec_info. Extract the object for memtag analysis.
2686
2687 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
2688
2689         PR regression/19898.
2690         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
2691         changes cc_status, use apply modified_in_p to part of cc_status
2692         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
2693         body.
2694
2695 2005-02-11  Richard Henderson  <rth@redhat.com>
2696
2697         * tree-complex.c (expand_complex_libcall): New.
2698         (expand_complex_multiplication): Use it for c99 compliance.
2699         (expand_complex_division): Likewise.
2700         * fold-const.c (fold_complex_add, fold_complex_mult): New.
2701         (fold): Call them.
2702         * builtins.c (built_in_names): Remove const.
2703         * tree.c (build_common_builtin_nodes): Build complex arithmetic
2704         builtins.
2705         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
2706         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
2707         (built_in_names): Remove const.
2708         * c-common.c (c_common_type_for_mode): Handle complex modes.
2709         * flags.h, toplev.c (flag_complex_method): Rename from
2710         flag_complex_divide_method.
2711         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
2712         __mulsc3, __muldc3, __mulxc3, __multc3): New.
2713         * libgcc2.h: Declare them.
2714         * libgcc-std.ver: Export them.
2715         * mklibgcc.in (lib2funcs): Build them.
2716
2717 2005-02-11  Steven Bosscher  <stevenb@suse.de>
2718
2719         PR tree-optimization/19876
2720         Partially revert my change from 2005-01-14
2721         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
2722         (compute_antic): ...and remove the loop here.
2723
2724 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
2725
2726         PR middle-end/19858
2727         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
2728         is number of inner's bits, avoid creating a BIT_FIELD_REF.
2729
2730         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
2731         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
2732
2733 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
2734
2735         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
2736         offsets for the big-endian 32-bit case.
2737
2738 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
2739
2740         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2741
2742 2005-02-11  Dale Johannesen  <dalej@apple.com>
2743
2744         * cselib.c (cselib_process_insn):  Clear out regs where
2745         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
2746         * reload.c (find_equiv_reg): Ditto.
2747
2748 2005-02-11  Ian Lance Taylor  <ian@airs.com>
2749
2750         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
2751         with no elements.
2752
2753         * tree.c (build_function_type_list): Work correctly if there are
2754         no arguments.
2755
2756 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
2757
2758         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
2759         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
2760         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
2761         TARGET_ZARCH instead of TARGET_64BIT.
2762
2763 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
2764
2765         * config/rs6000/t-rtems:
2766         (MULTILIB_OPTIONS): Remove mcpu=602.
2767         (MUTLILIB_DIRNAMES): Remove m602.
2768         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
2769         Let mcpu=602 match mcpu=603.
2770         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
2771
2772 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2773
2774         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
2775         signal trampolines.
2776
2777 2005-02-10  David Daney  <ddaney@avtrex.com>
2778
2779         * config/alpha/linux-unwind.h: Add exception clause to copyright.
2780         * config/i386/linux-unwind.h: Likewise.
2781         * config/ia64/linux-unwind.h: Likewise.
2782         * config/mips/linux-unwind.h: Likewise.
2783         * config/pa/linux-unwind.h: Likewise.
2784         * config/rs6000/linux-unwind.h: Likewise.
2785         * config/s390/linux-unwind.h: Likewise.
2786         * config/sh/linux-unwind.h: Likewise.
2787         * config/sparc/linux-unwind.h: Likewise.
2788
2789 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2790
2791         PR tree-optimization/17549
2792         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
2793         TER to replace a DEF with its expression if the DEF and the
2794         rhs of the expression we replace into have the same root
2795         variable.
2796
2797 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
2798
2799         * config/mips/mips.md: Fix the placement of the match_scratch in the
2800         lea64 peephole2.
2801
2802 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2803
2804         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
2805         Fix comment typos.
2806
2807 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
2808
2809         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
2810         (strip_offset): Handle addresses.
2811         (add_address_candidates): Use strip_offset.
2812         (difference_cost): Reflect strip_offset change.
2813         (force_var_cost, difference_cost): Strip nops.
2814
2815 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2816
2817         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
2818
2819         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
2820         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
2821         config/cris/cris-protos.h, config/cris/cris.c: Update
2822         copyright.
2823
2824 2005-02-10  Jeff Law  <law@redhat.com>
2825
2826         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
2827         (lookup_avail_expr): Similarly.
2828
2829 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
2830
2831         * builtins.c (fold_builtin_powi): New function.
2832         (fold_builtin_1): Call it.
2833
2834 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2835
2836         PR documentation/19309
2837         * doc/cpp.texi: The __GNUC__ and related predefined macros
2838         are also defined for the "standalone" cpp.
2839         Some non-GCC compilers may also define __GNUC__.
2840
2841 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
2842
2843         PR c/19342
2844         * c-typeck.c (common_type): New routine.  Old common_type renamed
2845         to...
2846         (c_common_type): ...this.
2847         (build_conditional_expr, build_binary_op): Use c_common_type instead
2848         of common_type.
2849
2850 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2851
2852         * doc/md.texi: Replace @samp{length} with @code{length}.
2853
2854 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
2855
2856         PR tree-optimization/18687
2857         * tree-flow.h (find_loop_niter): Declare.
2858         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2859         Try using scev even for loops with more than one exit.
2860         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
2861         (struct ivopts_data): Added niters field.
2862         (struct nfe_cache_elt): New.
2863         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
2864         functions.
2865         (tree_ssa_iv_optimize_init): Initialize niters cache.
2866         (determine_number_of_iterations): Removed.
2867         (find_induction_variables): Do not call determine_number_of_iterations.
2868         Access niters for single exit through niter_for_single_dom_exit.
2869         (add_iv_outer_candidates): Access niters for single exit through
2870         niter_for_single_dom_exit.
2871         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
2872         number_of_iterations_cond.
2873         (iv_period): New function.
2874         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
2875         (may_replace_final_value): Take data argument.  Use
2876         niter_for_single_dom_exit.
2877         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
2878         (rewrite_use_compare): Pass data to may_eliminate_iv.
2879         (rewrite_use_outer): Pass data to may_replace_final_value.
2880         (free_loop_data): Clean up the niters cache.
2881         (tree_ssa_iv_optimize_finalize): Free the niters cache.
2882         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
2883         * tree-ssa-loop-niter.c (find_loop_niter): New function.
2884         (find_loop_niter_by_eval): Use tree_int_cst_lt.
2885         (num_ending_zeros): Moved to tree.c.
2886         * tree.h (num_ending_zeros): Declare.
2887         * tree.c (num_ending_zeros): Moved from tree.c.
2888
2889 2005-02-09  Richard Henderson  <rth@redhat.com>
2890
2891         * builtins.c (DEF_BUILTIN): Add COND argument.
2892         * tree.h (DEF_BUILTIN): Likewise.
2893         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
2894         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
2895         match.
2896         (DEF_BUILTIN_STUB): New.
2897         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
2898         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
2899         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
2900         * c-common.c (DEF_BUILTIN): Add COND argument.
2901         * tree.c (local_define_builtin): New.
2902         (build_common_builtin_nodes): New.
2903
2904 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2905
2906         * fold-const.c (fold_strip_sign_ops): New function to simplify a
2907         floating point expression ignoring the sign of the result.
2908         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
2909         (fold) <MULT_EXPR>: Use it to simplify x*x.
2910         * tree.h (fold_strip_sign_ops): Prototype here.
2911         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
2912         argument.  Use fold_strip_sign_ops to simplify the first argument.
2913         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
2914         first argument when the second argument is an even integer
2915         constant, but only with -funsafe_math_optimizations.
2916         (fold_builtin_1): Update call to fold_builtin_copysign.
2917
2918 2005-02-09  Ian Lance Taylor  <ian@airs.com>
2919
2920         PR middle-end/19583
2921         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
2922         just check whether EH_FILTER_FAILURE falls through.
2923
2924 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2925
2926         * gcc/haifa-sched.c (schedule_block): Make queued sched group
2927         insns return to ready list in the next turn.
2928
2929 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2930
2931         PR middle-end/19402
2932         * builtins.def: New __builtin_powi[lf].
2933         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
2934         (expand_builtin_powi): New function.
2935         (expand_builtin): Dispatch to expand_builtin_powi.
2936         * libgcc2.h: Add prototypes for __builtin_powi[lf].
2937         * libgcc2.c: Add __builtin_powi[lf] implementation.
2938         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
2939         * optabs.h: Add powi_optab.
2940         * optabs.c (init_optabs): Initialize powi_optab.
2941         * doc/extend.texi: Document __builtin_powi[lf].
2942
2943 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
2944
2945         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
2946         exists.
2947
2948 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2949
2950         PR middle-end/19854
2951         * fold-const.c (try_move_mult_to_index): Remove redundant
2952         type argument.  Create ADDR_EXPR with correct type.
2953         (fold): Update callers of try_move_mult_to_index.  Convert
2954         result to the appropriate type.
2955
2956 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2957
2958         PR target/19597
2959         * config/avr/avr.c (default_rtx_costs): Delete.
2960         (avr_operand_rtx_cost): New function.
2961         (avr_rtx_costs): Completely rewrite.
2962
2963 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
2964
2965         PR target/19806
2966         * config/cris/cris.c (in_code): New variable.
2967         (cris_output_addr_const): Now a static function, a wrapper for
2968         output_addr_const.
2969         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
2970         case from old cris_output_addr_const.
2971         (cris_asm_output_label_ref): Similar for LABEL_REF.
2972         (cris_output_addr_const_extra): Similar for UNSPEC.
2973         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
2974         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
2975         * config/cris/cris-protos.h (cris_output_addr_const): Remove
2976         declaration.
2977         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
2978         (cris_asm_output_label_ref): Declare.
2979
2980 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
2981
2982         PR preprocessor/19801
2983         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
2984         filenames that changed when libcpp was moved to the toplevel.
2985
2986 2005-02-07  Roger Sayle  <roger@eyesopen.com>
2987
2988         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
2989         zero extensions of BImode operands.  Call lowpart_subreg instead
2990         of gen_lowpart_common and gen_lowpart_SUBREG.
2991
2992 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
2993
2994         PR ada/19489
2995         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
2996         * configure.ac: Set cc_for_cross_gnattools.
2997         * configure: Regenerate.
2998
2999 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
3000
3001         PR target/19803
3002         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
3003
3004 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3005
3006         PR debug/19327
3007         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
3008         of nested functions.
3009
3010 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
3011
3012         * doc/extend.texi: Document deprecated extensions allowing
3013         static floating-point members to have initializers and allowing
3014         floating-point literals in integral constant expressions.
3015
3016 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
3017
3018         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
3019         config/darwin7.h, config/mips/mips.c,
3020         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
3021         Update copyright.
3022
3023         * cse.c: Update comments.
3024
3025 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
3026
3027         PR middle-end/19775
3028         * builtins.c (fold_builtin_sqrt): Transform
3029         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
3030         pow(x,y*0.5).
3031
3032 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
3033             Dorit Naishlos  <dorit@il.ibm.com>
3034
3035         * doc/invoke.texi (ftree-vectorizer-verbose): New.
3036         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
3037         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
3038         was added.
3039         * tree.h (vect_set_verbosity_level): New extern function declaration
3040         added.
3041         * tree-vectorizer.h (verbosity_levels): New enum type.
3042         * tree-vectorizer.c (vect_debug_stats): Function removed.
3043         (vect_debug_details): Likewise.
3044         (vect_verbosity_level): Global variable was defined and initialized.
3045         (vect_dump): Global variable definition.
3046         (vect_print_dump_info): New function.
3047         (vect_set_dump_settings): New function.
3048         (vect_set_verbosity_level): New function.
3049         (vectorize_loops): Add call to vect_set_dump_settings.
3050
3051         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
3052         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
3053         (slpeel_tree_peel_loop_to_edge): Likewise.
3054
3055         (vect_analyze_offset_expr): Call to vect_print_dump_info with
3056         appropriate verbosity level instead of call to vect_debug_details
3057         or vect_debug_stats.
3058         (vect_get_base_and_offset):
3059         (vect_create_addr_base_for_vector_ref):
3060         (get_vectype_for_scalar_type):
3061         (vect_create_data_ref_ptr):
3062         (vect_init_vector):
3063         (vect_get_vec_def_for_operand):
3064         (vect_finish_stmt_generation):
3065         (vectorizable_assignment):
3066         (vectorizable_operation):
3067         (vectorizable_store):
3068         (vectorizable_load):
3069         (vect_transform_stmt):
3070         (vect_update_ivs_after_vectorizer):
3071         (vect_do_peeling_for_loop_bound):
3072         (vect_update_inits_of_drs):
3073         (vect_do_peeling_for_alignment):
3074         (vect_transform_loop):
3075         (vect_is_simple_use):
3076         (vect_analyze_operations):
3077         (vect_is_simple_iv_evolution):
3078         (vect_analyze_scalar_cycles):
3079         (vect_analyze_data_ref_dependence):
3080         (vect_analyze_data_ref_dependences):
3081         (vect_compute_data_ref_alignment):
3082         (vect_enhance_data_refs_alignment):
3083         (vect_analyze_data_refs_alignment):
3084         (vect_analyze_data_ref_access):
3085         (vect_analyze_data_ref_accesses):
3086         (vect_analyze_pointer_ref_access):
3087         (vect_get_memtag_and_dr):
3088         (vect_analyze_data_refs):
3089         (vect_mark_relevant):
3090         (vect_stmt_relevant_p):
3091         (vect_mark_stmts_to_be_vectorized):
3092         (vect_can_advance_ivs_p):
3093         (vect_get_loop_niters):
3094         (vect_analyze_loop_form):
3095         (vect_analyze_loop):
3096         (vectorize_loops): Likewise.
3097
3098         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
3099         (vect_update_inits_of_drs):
3100         (vect_do_peeling_for_alignment):
3101         (vect_transform_loop):
3102         (vect_analyze_operations):
3103         (vect_analyze_scalar_cycles):
3104         (vect_analyze_data_ref_dependences):
3105         (vect_analyze_data_refs_alignment):
3106         (vect_analyze_data_ref_accesses):
3107         (vect_analyze_data_refs):
3108         (vect_mark_stmts_to_be_vectorized):
3109         (vect_get_loop_niters):
3110         (vect_analyze_loop_form):
3111         (vect_analyze_loop): Likewise.
3112         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
3113
3114 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
3115
3116         PR bootstrap/19796
3117         Revert:
3118         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
3119         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
3120         either -ffast-math or -funsafe-math-optimizations is in use.
3121
3122         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
3123         * config/mips/irix-csr.c: New file.
3124         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3125         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3126         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3127         executables.
3128
3129 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
3130
3131         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
3132         redundant, incorrect definitions.
3133
3134         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
3135         expand.
3136         ("*tls_indirect_call"): New, reference hard regs directly.
3137         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
3138
3139 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
3140
3141         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
3142         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
3143
3144 2005-02-06  Roger Sayle  <roger@eyesopen.com>
3145
3146         PR rtl-optimization/19800
3147         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
3148         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
3149         gen_lowpart.
3150
3151 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
3152
3153         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
3154
3155 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
3156
3157         PR other/17135
3158         * doc/invoke.texi: Correct documentation of -freorder-functions.
3159
3160 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3161
3162         PR other/14402
3163         * doc/invoke.texi: Don't mention gccbug.
3164
3165 2005-02-06  Roger Sayle  <roger@eyesopen.com>
3166             Andrew Pinski  <pinskia@physics.uc.edu>
3167             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
3168
3169         * simplify-rtx.c (simplify_relational_operation_1): Simplify
3170         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
3171         into just (zero_extract:SI FOO (const_int 1) BAR).
3172
3173 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3174
3175         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
3176         macro locally.  Don't give last revision date.  Use GCC version
3177         number from gcc-common.texi.
3178         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
3179         revision date.  Use GCC version number from gcc-common.texi.
3180         Describe being a library as current state rather than as 3.x
3181         history.
3182         * doc/gcc.texi: Remove last update date.
3183         * doc/gccint.texi: Likewise.  Update copyright dates.
3184         * doc/install.texi: Update copyright dates.
3185
3186 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3187
3188         PR other/7549
3189         * doc/invoke.texi: Mention for each option included in -Wall that
3190         it is included in -Wall.
3191         * doc/gcc.texi: Update copyright and last modification date.
3192
3193 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
3194
3195         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
3196         unnecessary cast to original induction variable increments.
3197
3198 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
3199
3200         PR tree-optimization/18219
3201         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
3202         in distributed form.
3203
3204 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
3205
3206         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
3207         Set bitpos and offset later in the function.  Do nothing if the
3208         target is a register and if the bitfield lies completely outside
3209         that register.
3210         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
3211         here.  Return an uninitialised register if the source value is stored
3212         in a register and the bitfield lies completely outside that register.
3213
3214 2005-02-06  Steven Bosscher  <stevenb@suse.de>
3215
3216         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
3217         not SET_DEST.
3218
3219 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
3220
3221         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
3222
3223 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
3224
3225         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
3226         * config/darwin8.h: New.
3227         * config/darwin7.h: Update comment.
3228
3229 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
3230             Dorit Naishlos  <dorit@il.ibm.com>
3231
3232         * tree-vectorizer.h (LOC): New type.
3233         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
3234         (loop_line_number): New field in struct _loop_vec_info.
3235         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
3236
3237         * tree-vectorizer.c (input.h): Included.
3238         (find_loop_location): New function.
3239         (vect_debug_stats): Argument changed from loop to LOC. Computation of
3240         loop line number removed.
3241         (vect_debug_details): Likewise.
3242         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
3243
3244         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
3245         call to vect_debug_details/stats changed from loop to loop_loc.
3246         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
3247         (slpeel_tree_peel_loop_to_edge): Likewise.
3248
3249         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
3250         changed from NULL to UNKNOWN_LOC.
3251         (vect_get_base_and_offset):
3252         (vect_create_addr_base_for_vector_ref):
3253         (get_vectype_for_scalar_type):
3254         (vect_create_data_ref_ptr):
3255         (vect_init_vector):
3256         (vect_get_vec_def_for_operand):
3257         (vect_finish_stmt_generation):
3258         (vectorizable_assignment):
3259         (vectorizable_operation):
3260         (vectorizable_store):
3261         (vectorizable_load):
3262         (vect_transform_stmt):
3263         (vect_update_ivs_after_vectorizer):
3264         (vect_do_peeling_for_loop_bound):
3265         (vect_do_peeling_for_alignment):
3266         (vect_transform_loop):
3267         (vect_is_simple_use):
3268         (vect_analyze_operations):
3269         (vect_is_simple_iv_evolution):
3270         (vect_analyze_scalar_cycles):
3271         (vect_analyze_data_ref_dependences):
3272         (vect_compute_data_ref_alignment):
3273         (vect_enhance_data_refs_alignment):
3274         (vect_analyze_data_ref_access):
3275         (vect_analyze_data_ref_accesses):
3276         (vect_analyze_pointer_ref_access):
3277         (vect_get_memtag_and_dr):
3278         (vect_analyze_data_refs):
3279         (vect_mark_relevant):
3280         (vect_stmt_relevant_p):
3281         (vect_mark_stmts_to_be_vectorized):
3282         (vect_can_advance_ivs_p):
3283         (vect_get_loop_niters):
3284         (vect_analyze_loop):
3285         (vectorize_loops): Likewise.
3286
3287         (vectorizable_load): Argument in call to vect_debug_details/stats
3288         changed from loop to LOOP_LOC (loop_vinfo).
3289         (vect_transform_loop):
3290         (vect_analyze_operations):
3291         (vect_analyze_scalar_cycles):
3292         (vect_analyze_data_ref_dependence):
3293         (vect_enhance_data_refs_alignment):
3294         (vect_analyze_data_ref_accesses):
3295         (vect_analyze_pointer_ref_access):
3296         (vect_analyze_data_refs):
3297         (vect_analyze_loop): Likewise.
3298
3299         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
3300         changed from loop to loop_loc.
3301
3302         (vect_enhance_data_refs_alignment): Removed unused variable loop.
3303
3304 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
3305             Dorit Naishlos  <dorit@il.ibm.com>
3306
3307         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
3308         declaration added.
3309         (vect_analyze_data_ref_dependences): Likewise.
3310
3311         (vect_is_simple_use): Argument changed from loop structure to
3312         loop_vect_info structure.
3313         (vect_can_advance_ivs_p): Likewise.
3314         (vect_create_index_for_vector_ref): Likewise.
3315         (vect_update_ivs_after_vectorizer): Likewise.
3316         (new_stmt_vec_info): Likewise.
3317
3318         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
3319         changed from loop to loop_vinfo.
3320         (vect_create_data_ref_ptr): First argument in call to
3321         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
3322         (vectorizable_assignment): Second argument in call to vect_is_simple_use
3323         was changed from loop to loop_vinfo.
3324         (vectorizable_operation): Likewise.
3325         (vectorizable_store): Likewise.
3326         (vect_mark_stmts_to_be_vectorized): Likewise.
3327         (vect_do_peeling_for_loop_bound): First argument in call to
3328         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
3329         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
3330         was changed from loop to loop_vinfo.
3331         (vect_analyze_data_ref_dependences): Third argument in call to
3332         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
3333
3334         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
3335         (vect_create_data_ref_ptr): Likewise.
3336         (vect_init_vector): Likewise.
3337         (vect_get_vec_def_for_operand): Likewise.
3338         (vectorizable_assignment): Likewise.
3339         (vectorizable_operation): Likewise.
3340         (vectorizable_store): Likewise.
3341         (vectorizable_load): Likewise.
3342         (vect_update_ivs_after_vectorizer): Likewise.
3343         (vect_is_simple_use): Likewise.
3344         (vect_analyze_data_ref_dependence): Likewise.
3345         (vect_analyze_pointer_ref_access): Likewise.
3346         (vect_can_advance_ivs_p): Likewise.
3347
3348         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
3349         before _stmt_vec_info.
3350         (_stmt_vec_info): Loop field replaced by loop_vec_info.
3351         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
3352         (new_stmt_vec_info): Argument changed from loop structure to
3353         loop_vect_info structure
3354
3355         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
3356         (vect_analyze_offset_expr): Avoid 80 columns overflow.
3357         (vect_create_addr_base_for_vector_ref): Likewise.
3358         (vect_analyze_pointer_ref_access): Likewise.
3359
3360 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
3361
3362         PR tree-opt/19768
3363         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
3364         phi flag if the phi is abnormal.
3365
3366 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
3367
3368         PR tree-opt/19736
3369         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
3370         information for the new statement.
3371
3372 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
3373
3374         PR driver/19117
3375         * gcc.c (main): Include the target in -v output.
3376
3377 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
3378
3379         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
3380         Do not drop the extend if we'd have to add a paradoxical subreg
3381         later.  Include optabs.h and insn-codes.h.
3382         * Makefile.in (combine.o): Depend on $(OPTABS_H).
3383
3384 2005-02-02  Roger Sayle  <roger@eyesopen.com>
3385
3386         PR middle-end/19405
3387         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
3388         * fold-const.c (const_binop): Avoid constant folding floating
3389         point operations in modes that use composite representations.
3390         * simplify-rtx.c (simplify_binary_operation): Likewise.
3391
3392 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
3393
3394         * config/rs6000/altivec.md (altivec_dst): Make the first operand
3395         a REG, not a MEM.
3396         (altivec_dstt): Likewise.
3397         (altivec_dstst): Likewise.
3398         (altivec_dststt): Likewise.
3399         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
3400         of first operand.
3401
3402 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3403
3404         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
3405         EXPR_LOCUS from orig_cond to the new cond_stmt.
3406         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
3407         the new vec_stmt.
3408
3409 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3410
3411         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
3412         standard_iv_increment_position. Remove call to bsi_next
3413         (no need to bump the iterator anymore).
3414         (vect_create_index_for_vector_ref): Call
3415         standard_iv_increment_position. Remove second function argument.
3416         (vect_finish_stmt_generation): Remove call to bsi_next
3417         (no need to bump the iterator anymore).
3418         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
3419         to vect_create_index_for_vector_ref.
3420
3421 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3422
3423         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
3424         phis are used out of the loop.
3425
3426 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
3427
3428         PR c/17807
3429         * c-decl.c (undef_nested_function): New variable.
3430         (pop_scope): Diagnose undefined nested functions.
3431         (finish_function): Don't attempt cgraph processing or genericizing
3432         if current top-level function contained an undefined nested
3433         function.  Reset undef_nested_function at the end of a top-level
3434         function.
3435
3436 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
3437
3438         * tree.c (build_int_cst_type): Take sign of the value into account
3439         when deciding whether sign extend the value.
3440
3441 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3442
3443         PR c/18502
3444         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
3445         (cpp_options, cc1_options): Change %{std*&ansi} to
3446         %{std*&ansi&trigraphs}.
3447
3448 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
3449
3450         * cse.c: Update comments.
3451
3452 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
3453
3454         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
3455         arguments go on the stack.  Do not put complex doubles in odd/even
3456         pairs.
3457
3458 2005-02-02  Steven Bosscher  <stevenb@suse.de>
3459
3460         * doc/invoke.texi: Update the options enabled at -O1, -O2,
3461         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
3462         -ftree-pre, and -fthread-jumps.
3463