OSDN Git Service

In gcc/ada/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
2
3         * tree-flow-inline.h (ref_contains_array_ref): New function.
4         (lookup_subvars_for_var): Ditto.
5         (get_subvars_for_var): Ditto.
6         (var_can_have_subvars): Ditto.
7
8         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
9         (struct subvar): New type.
10
11         * tree-dfa.c (okay_component_ref_for_subvars): New function.
12
13         * tree-optimize.c (init_tree_optimization_passes): Call
14         pass_create_structure_vars.
15
16         * tree-ssa-alias.c: Include vec.h.
17         (init_alias_info): Don't auto-clear call clobbered on struct-field
18         tags.
19         (compute_flow_insensitive_aliasing): Handle subvars.
20         (group_aliases): Handle STRUCT_FIELD aliases.
21         (setup_pointers_and_addressables): Ditto.
22         Don't mark variables non-addressable if they still have
23         addressable subvars.
24         Also mark subvars addressable when the real variable is marked
25         addressable. 
26         (add_pointed_to_var): Try to prune the pointed-to set by only
27         pointing to subvars when possible.
28         Otherwise, make sure we set addresses_needed and pt_vars to
29         properly include subvars.
30         (bitpos_of_field): New function.
31         (push_fields_onto_fieldstack): Ditto.
32         (get_or_create_used_part_for): Ditto.
33         (create_overlap_variables_for): Ditto.
34         (find_used_portions): Ditto.
35         (create_structure_vars): Ditto.
36         (pass_create_structure_vars): New structure.
37
38         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
39         (get_expr_operands): Handle subvars.  Also try to turn
40         COMPONENT_REF accesses into must-defs now that we can accurately
41         portray it.
42         (note_addressable): Try to only mark as addressable those subvars
43         we know a COMPONENT_REF touches.
44         (overlap_subvar): New function.
45
46         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
47         Handle subvar storing.
48         (vect_address_analysis): Update caller of vect_object_analysis.
49
50         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
51
52         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
53         (STMT_VINFO_SUBVARS): New macro.
54
55         * common.opts: add flag_tree_salias.
56         
57         * opts.c (decode_options): flag_tree_salias defaults to on.
58         
59         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
60
61         * doc/tree-ssa.texi: Document structural alias analysis.
62         
63 2005-03-12  Steven Bosscher  <stevenb@suse.de>
64
65         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
66         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
67         * tree-ssa-operands.c (get_expr_operands): Likewise.
68         (get_expr_operands): Likewise for ERROR_MARK.
69
70 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
71
72         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
73         var.
74
75         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
76         removed_phis.
77
78         * tree-ssa-pre.c (compute_avail): Remove local variable val.
79         (mark_operand_necessary): Remove local variable ver.
80
81         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
82         variable prefix_len.
83
84         * value-prof.c (mod_subtract_transform): Remove local variable
85         value.
86
87         * builtins.c (fold_builtin_exponent): Take decomposed
88         arguments of CALL_EXPR.
89         (fold_builtin_1): Update a call to fold_builtin_exponent.
90
91         * builtins.c (fold_builtin_logarithm): Take decomposed
92         arguments of CALL_EXPR.
93         (fold_builtin_1): Update a call to fold_builtin_logarithm.
94
95         * c-decl.c (c_init_decl_processing): Remove local variables
96         ptr_ftype_void and ptr_ftype_ptr.
97
98         * gimplify.c (gimplify_expr): Remove local variables r0 and
99         r1.
100
101         * reg-stack.c (move_for_stack_reg): Remove local variable
102         push_insn.
103         (compare_for_stack_reg): Remove local variable flags_user.
104         (convert_regs_1): Remove local variable deleted.
105
106         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
107         variable new_cond.
108         (combine_blocks): Remove local variables exits and new_e.
109
110         * tree-inline.c (expand_call_inline): Remove local variable
111         decl.
112
113         * tree-ssa-live.c (create_ssa_var_map,
114         calculate_live_on_entry): Remove local variable snn.
115
116 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
117
118         * c-lex.c (c_lex_with_flags): Add parameter to call to 
119         cpp_spell_token.
120
121 2005-03-11  Per Bothner  <per@bothner.com>
122
123         * c-tree.h (struct c_declarator): New id_loc field.
124         * c-pragma.h (c_lex_with_flags): Take position reference.
125         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
126         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
127         (c_lex): Pass dummy location to c_lex_with_flags.
128         * c-parser.c (c_lex_one_token): Set c_token's location using
129         c_lex_with_flags, instead of input_location, which might be "ahead".
130         (c_parser_direct_declarator): Set declarator's id_loc from
131         c_token's id_loc.
132         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
133         declarator's id_loc, rather than probably-imprecise input_location.
134         (build_id_declarator): Initialize c_declarator's id_loc field.
135
136 2005-03-11  Roger Sayle  <roger@eyesopen.com>
137
138         PR middle-end/20419
139         * builtins.c (expand_builtin_signbit): Force the signbit's word
140         into an integer register to avoid SUBREGs of floating point modes.
141
142 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
143
144         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
145         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
146         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
147         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
148
149 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
150
151         PR rtl-optimization/20306
152         * expr.c (emit_move_complex): Set try_int false if mode is
153         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
154         emit_block_move if try_int is true.
155
156 2005-03-11  Richard Henderson  <rth@redhat.com>
157
158         PR target/20415
159         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
160         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
161         to match.
162
163 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
164
165         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
166         (TARGET_FIX_VR4130): New macro.
167         (TARGET_OPTIONS): Add -mfix-vr4130.
168         (ISA_HAS_MACCHI): New macro.
169         (ASM_SPEC): Add -mfix-vr4130.
170         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
171         (override_options): Handle mips_fix_vr4130_string.
172         (mips_avoid_hazards): Clear all_noreorder_p
173         if we're working around VR4130 errata and the macc alternatives
174         are not available.
175         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
176         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
177         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
178         (MULTILIB_DEFAULTS): Remove leading "march=".
179         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
180         if no architecture option is given.
181         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
182         VR4130 multilibs.
183         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
184         * doc/invoke.texi: Document -mfix-vr4130.
185
186 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
187
188         * config/mips/mips.c (override_options): Only warn about -mint64
189         deprecation if TARGET_INT64.
190
191 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
192
193         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
194         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
195         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
196         are non-specific regarding the nonnull parameter positions.
197         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
198         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
199         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
200         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
201         
202         * builtins.def: Use the non-specific "nonnull" attibute lists.
203
204 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
205
206         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
207         single_pred_edge, single_succ, single_pred): Improve comments.
208
209 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
210
211         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
212         single_pred_edge, single_succ, single_pred): New inline functions.
213         * bb-reorder.c (rotate_loop, find_traces_1_round,
214         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
215         duplicate_computed_gotos): Use the single_succ/pred functions.
216         * cfganal.c (forwarder_block_p): Ditto.
217         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
218         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
219         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
220         merge_seq_blocks): Ditto.
221         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
222         * cfglayout.c (fixup_reorder_chain): Ditto.
223         * cfgloop.c (mark_single_exit_loops, update_latch_info,
224         canonicalize_loop_headers, verify_loop_structure): Ditto.
225         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
226         mfb_update_loops, create_preheader, force_single_succ_latches,
227         create_loop_notes): Ditto.
228         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
229         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
230         commit_one_edge_insertion, purge_dead_edges,
231         cfg_layout_can_merge_blocks_p): Ditto.
232         * except.c (sjlj_emit_function_enter): Ditto.
233         * flow.c (init_propagate_block_info): Ditto.
234         * function.c (thread_prologue_and_epilogue_insns): Ditto.
235         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
236         insert_insn_end_bb): Ditto.
237         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
238         find_if_case_2): Ditto.
239         * lambda-code.c (perfect_nestify): Ditto.
240         * lcm.c (optimize_mode_switching): Ditto.
241         * loop-doloop.c (doloop_modify): Ditto.
242         * loop-init.c (loop_optimizer_init): Ditto.
243         * loop-iv.c (simplify_using_initial_values): Ditto.
244         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
245         * loop-unswitch.c (unswitch_loop): Ditto.
246         * modulo-sched.c (generate_prolog_epilog): Ditto.
247         * predict.c (combine_predictions_for_insn, estimate_probability,
248         tree_estimate_probability, last_basic_block_p,
249         estimate_bb_frequencies): Ditto.
250         * profile.c (branch_prob): Ditto.
251         * regrename.c (copyprop_hardreg_forward): Ditto.
252         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
253         * tracer.c (layout_superblocks): Ditto.
254         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
255         cfg_remove_useless_stmts_bb, cleanup_control_flow,
256         cleanup_control_expr_graph, disband_implicit_edges,
257         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
258         tree_verify_flow_info, tree_make_forwarder_block,
259         tree_forwarder_block_p, remove_forwarder_block,
260         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
261         * tree-if-conv.c (tree_if_conversion): Ditto.
262         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
263         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
264         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
265         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
266         copy_loop_headers): Ditto.
267         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
268         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
269         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
270         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
271         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
272         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
273         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
274         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
275         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
276         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
277         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
278         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
279         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
280         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
281         slpeel_add_loop_guard): Ditto.
282
283 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
284
285         PR tree-optimization/15784
286         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
287         and -1 - A to ~A.
288
289         * stmt.c (expand_case): Don't change index_type.  Convert minval
290         to the proper type.
291
292         PR tree-optimization/20130
293         * fold-const.c (fold): Fold x * -1 into -x.
294
295 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
296
297         PR rtl-optimization/20331
298         * rtlanal.c (modified_between_p): Check its address first for MEM.
299         (modified_in_p): Likewise.
300
301 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
302
303         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
304
305 2005-03-10  Steven Bosscher  <stevenb@suse.de>
306
307         * expr.c (expand_expr_real_1): If possible, use a conditional
308         move for expanding MIN_EXPR and MAX_EXPR.
309         Use temp for moving around rtx-en.
310
311 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
312
313         PR rtl-opt/20412
314         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
315         correct mode.
316
317 2005-03-10  Roger Sayle  <roger@eyesopen.com>
318
319         * builtins.c (expand_builtin_signbit): Extend to handle floating
320         point modes wider than the largest integer type, using the
321         operand_subword_force function to obtain the signbit's word.
322
323 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
324
325         PR target/20322
326         * combine.c (try_combine): If recog_for_combine added CLOBBERs
327         to NEWI2PAT, fail to combine if they are used by NEWPAT.
328
329 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
330
331         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
332
333 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
334
335         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
336         type void.
337         (perform_edge_inserts): Unconditionally call
338         free_dominator_info.
339
340         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
341
342 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
343
344         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
345
346 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
347
348         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
349
350         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
351         gcc_unreachable.
352         (rtl_register_value_prof_hooks,
353         tree_value_profile_transformations,
354         tree_register_value_prof_hooks): Likewise.
355         * var-tracking.c (stack_adjust_offset_pre_post,
356         variable_htab_free, variable_union, dataflow_set_different_2,
357         count_uses, variable_was_changed, set_frame_base_location,
358         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
359         vt_add_function_parameters): Likewise.
360         * varasm.c (named_section_real, named_section, make_decl_rtl,
361         asm_emit_uninitialised, assemble_integer, decode_addr_const,
362         const_hash_1, compare_constant, copy_constant, force_const_mem,
363         output_constant_pool_2, output_constant_pool_1, output_constant,
364         output_constructor, make_decl_one_only, decl_tls_model,
365         default_no_named_section, default_elf_select_section_1,
366         default_unique_section_1): Likewise.
367         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
368         * vmsdbgout.c (addr_const_to_string): Likewise.
369
370         PR c++/20375
371         * function.c (struct assign_parm_data_one): Remove last_named
372         field.
373         (assign_parm_find_data_types): Don't determine last_named.
374         Reorder named_parm determination.
375         (assign_parms): Only setup varargs on the last non-varadic
376         parameter.
377
378 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
379
380         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
381         sda base address on medium model.
382
383 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
384
385         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
386         * cfgloop.c (flow_loop_nodes_find): Export.
387         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
388         Declare.
389         * cfgloopmanip.c (fix_loop_structure): New function.
390         * predict.c (predict_loops): Clean up the loops information.
391         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
392         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
393         loop structure.
394         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
395         (rewrite_into_loop_closed_ssa): Declaration changed.
396         * tree-loop-linear.c (linear_transform_loops): Add argument to
397         rewrite_into_loop_closed_ssa call.
398         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
399         * tree-ssa-loop-im.c (move_computations): Ditto.
400         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
401         * tree-vectorizer.c (vectorize_loops): Ditto.
402         * tree-optimize.c: Include cfgloop.h.
403         (execute_todo): Choose whether to call cleanup_tree_cfg or
404         cleanup_tree_cfg_loop.
405         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
406         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
407         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
408         cleanup_tree_cfg_loop call.
409         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
410         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
411         work on part of cfg.
412
413 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
414
415         PR inline-asm/20314
416         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
417         with multiple alternatives.
418
419         * stmt.c (parse_output_constraint): Fix a typo.
420
421 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
422
423         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
424         assembly directive instead of deprecated "no-generics".
425
426 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
427
428         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
429         for non-offsettable memory references to cope with outstanding reload
430         replacements.
431         * config/s390/s390.md ("reload_outti"): Call find_replacement to
432         avoid losing outstanding address reloads.
433         ("reload_outdi", "reload_outdf"): Likewise.
434
435 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
436
437         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
438         code.  Add more cbrt transformations.
439
440 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
441
442         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
443
444 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
445
446         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
447         NULL_TREE when a given tree is not simplified.
448         (fold): Return the original tree when any of the functions
449         mentioned above NULL_TREE.
450
451         * fold-const.c (fold_unary, fold_binary): Take decomposed
452         arguments, code, type, op0, and op1 in case of fold_binary.
453         (fold): Update calls to fold_unary and fold_binary.
454
455 2005-03-09  Roger Sayle  <roger@eyesopen.com>
456
457         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
458         a fndecl and an arglist instead of a CALL_EXPR, exp.
459
460 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
461
462         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
463
464         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
465
466         * expr.c (expand_assignment): Remove orig_to_rtx.
467
468         * fold-const.c (int_const_binop): Remove no_overflow.
469
470         * ifcvt.c (noce_emit_move_insn): Remove inmode.
471
472         * loop-iv.c (get_biv_step_1): Remove lhs.
473
474         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
475
476         * real.c (real_nan): Remove neg.
477
478         * function.c (thread_prologue_and_epilogue_insns): Remove i
479         and newinsn.
480
481         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
482         tb.
483
484         * tree-eh.c (tree_could_trap_p): Remove idx.
485
486         * tree-into-ssa.c (ann): Remove ann.
487
488         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
489
490         * tree-sra.c (decide_block_copy): Remove inst_count.
491
492         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
493
494         * tree-ssa-loop-im.c (lhs): Remove.
495
496         * cfgbuild.c (state, STATE, SET_STATE,
497         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
498         make_edges.
499         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
500         (find_basic_blocks): Set the state of each basic block to
501         BLOCK_NEW.
502
503 2005-03-08  Jeff Law  <law@redhat.com>
504
505         * tree-cfg.c (cleanup_control_flow): If removal of a computed
506         goto results in the removal of edges in the CFG, then we need
507         to recompute dominators.
508
509 2005-03-09  Ben Elliston  <bje@au.ibm.com>
510
511         * c-common.c (c_do_switch_warnings): Comment fix.
512
513 2005-03-08  Julian Brown  <julian@codesourcery.com>
514
515         * Patch from 2005-03-08 reverted for causing regressions and
516         ppc-darwin bootstrap failure.
517
518 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
519
520         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn): 
521         Define the real function for ppc-darwin.
522         * c-typeck.c (convert_arguments): Check for target-specific
523         invalid argument call to unprototyped function.
524         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN): 
525         New Macro.
526         * target.h (invalid_arg_for_unprototyped_fn): New field 
527         in struct calls.
528         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New 
529         default target hook.
530         * targhooks.h (hook_invalid_arg_for_unprototyped_fn): 
531         Declare.
532
533 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
534
535         * c-typeck.c (constructor_stack, constructor_range_stack,
536         initializer_stack): Make them static.
537
538         * cfg.c (rbi_pool): Make it static.
539
540         * gimple-low.c (lower_stmt_body): Make it static.
541         * tree-flow.h: Remove the corresponding prototype.  Don't
542         declare lower_data.
543
544         * sched-deps.c (cache_size): Make it static.
545
546         * stor-layout.c (lang_adjust_rli): Make it static.
547
548 2005-03-08  Julian Brown  <julian@codesourcery.com>
549
550         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
551         from being used for symbols with vague linkage when
552         HAVE_GAS_COMDAT_GROUP is true.
553
554 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
555
556         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
557         nlabel == JUMP_LABEL (jump).
558
559 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
560
561         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
562         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
563         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
564         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
565
566 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
567
568         PR c/14411
569         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
570         * c-common.c (handle_returns_twice): New function.
571         (c_common_attribute_table): Declare eturns_twice' attribute.
572         * doc/extend.texi: Document eturns_twice' attribute.
573         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
574         (struct tree_decl): Add returns_twice_flag.
575
576 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
577
578         * tree-ssa-phiopt.c: Fix a comment typo.
579
580         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
581         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
582         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
583         copyright.
584
585 2005-03-08  Richard Henderson  <rth@redhat.com>
586
587         * config/alpha/alpha.c (code_for_builtin): Replace special-case
588         builtin codes with ctzdi2, clzdi2, popcountdi2.
589         (struct alpha_builtin_def): Add is_const.
590         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
591         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
592         (alpha_init_builtins): Init them.  Set nothrow and const attributes
593         on builtins.
594         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, 
595         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, 
596         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, 
597         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
598         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
599         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
600         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
601         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
602         (TARGET_FOLD_BUILTIN): New.
603         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
604         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
605         (ffsdi2): Use ctz.
606         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
607
608 2005-03-08  Ira Rosen  <irar@il.ibm.com>
609
610         PR tree-optimization/20122
611         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
612         condition of access function instead of base.
613
614 2005-03-07  Jeff Law  <law@redhat.com>
615             Steven Bosscher  <stevenb@suse.de>
616
617         * tree-cfg.c (find_taken_edge_computed_goto): New function.
618         (find_taken_edge): Call find_taken_edge_computed_goto as
619         appropriate.  Allow any gimple invariant rather than just
620         INTEGER_CST for VAL.
621         (cleanup_control_flow): Cleanup a computed goto which has turned
622         into a simple goto.
623         (tree_merge_blocks): If block B has any forced labels, move
624         them to the start of block A.
625         * tree-ssa-dom.c (thread_across_edge): Allow threading across
626         computed gotos as well.
627         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
628         removal of unnecessary computed gotos too.
629         (lookup_redirection_data): Fix type of INSERT argument.  Callers
630         updated.
631
632 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
633
634         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
635         Remove trailing spaces.
636
637         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
638         unshare_all_trees): Make them static.
639         * tree-gimple.h: Remove the corresponding prototypes.
640
641         * diagnostic.h: Remove unused prototype
642         debug_output_buffer.
643         * modulo-sched.c: Remove unused prototype
644         set_row_column_for_ps.
645
646         * tree-ssa-phiopt.c (tree_ssa_phiopt,
647         replace_phi_edge_with_variable): Remove unused variable i.
648
649 2005-03-07  Per Bothner  <per@bothner.com>
650
651         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
652
653 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
654         
655         PR tree-opt/17671
656         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
657         bbs on the COND_EXPR instead of the PHI_NODEs.
658         (candidate_bb_for_phi_optimization): Remove.
659         (replace_phi_with_stmt): Rename to ...
660         (replace_phi_edge_with_variable): this and change so that we
661         replace the phi argument instead of removing the PHI.
662         (conditional_replacement): Change so we deal with PHI with more
663         than two arguments.
664         (value_replacement): Likewise.
665         (abs_replacement): Likewise.
666
667 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
668
669         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
670         output_e500_flip_gt_bit.
671
672         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
673         as bit 31.
674         (rs6000_generate_compare): Fix logic to look at the correct bits.
675         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
676         Look at GT bit.
677         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
678         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
679         gen_move_from_CR_gt_bit.
680
681         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
682         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
683         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
684
685         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
686         (E500_CR_IOR_COMPARE): New constant.
687
688 2005-03-08  Earl Chew <earl_chew@agilent.com>
689             David Billinghurst <David.Billinghurst@riotinto.com>
690
691         * config/i386/host-cygwin.c: New file to support precompiled
692         headers on cygwin
693         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
694         * config.host: Use above files for cygwin host.
695
696 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
697
698         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
699         ordering ops from earlier change.
700
701 2005-03-07  Per Bothner  <per@bothner.com>
702
703         Various fixes to allow us to again build if --enable-mapped-location:
704         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
705         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
706         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
707         local variable loc. Change logic appropriately.
708         * tree-vect-transform.c (vect_finish_stmt_generation): Use
709         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.    
710         * c-parser.c (c_parser_for_statement): Initialize loc variable.
711         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
712         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
713
714 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
715
716         PR rtl-optimization/19683
717         * reload1.c (choose_reload_regs): Pass the number of bits, not the
718         number of bytes, to smallest_int_for_mode.  Fix arguments to
719         REG_CANNOT_CHANGE_MODE_P.
720
721 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
722
723         * reorg.c (relax_delay_slots): Check that the jump is
724         conditional before trying to invert it.
725
726 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
727
728         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
729         Make them static.
730
731         * calls (stack_arg_under_construction): Make it static.
732
733         * flow.c (regs_live_at_setjmp): Make it static.
734         * flow.h: Remove the corresponding prototype.
735
736         * reload1.c (reload_startobj, reload_firstobj,
737         something_needs_operands_changed, reload_inherited,
738         reload_inheritance_insn, reload_override_in,
739         reload_spill_index): Make them static.
740
741         * recog.c (verify_changes): Make it static.
742         * recog.h: Remove the corresponding prototype.
743
744         * cfgbuild.c (find_sub_basic_blocks): Remove.
745         * basic-block.h: Remove the corresponding prototype.
746         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
747         in comments.
748         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
749
750         * tree-ssa-operands.c (check_build_stmt): Remove.
751
752         * stor-layout.c (set_alignment): Remove.
753         * tree.h: Remove the corresponding prototype.
754
755         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
756
757         * tree-ssa-dce.c (control_dependence_map,
758         visited_control_parents): Make them static.
759
760         * cfghooks.c (verify_flow_info): Remove local variable
761         num_bb_notes.
762
763         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
764         last_bb_seen.
765
766         * loop-unswitch.c (unswitch_loop): Remove local variable src.
767
768 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
769
770         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
771
772 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
773
774         * config/ia64/hpux.h (LINK_SPEC): Add -z.
775         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
776         PARALLEL for an empty structure.
777
778 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
779
780         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
781
782         * fold-const.c (fold_binary): Unroll the very first "for"
783         loop.
784
785 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
786
787         * config/rs6000/predicates.md (branch_comparison_operator): Remove
788         redundant match_code test.
789         (scc_comparison_operator): Swap match_operand and match_code
790         tests.
791         (branch_positive_comparison_operator): Same.
792         (trap_comparison_operator): Use comparison_operator and swap with
793         match_code test.
794
795 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
796
797         PR target/20288
798         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
799         (out_movhi_r_mr): Read low byte of volatile MEM first.
800         (out_movhi_mr_r): Write high byte of volatile MEM first.
801
802 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
803
804         * cselib.c (reg_values, reg_values_size): Make them static.
805
806         * cse.c (cse_reg_info_table): Make it static.
807
808         * fold-const.c (fold_unary): Use build1 instead of copy_node.
809
810 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
811
812         * cse.c (find_best_addr): Use canon_for_address.
813
814 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
815
816         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
817         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
818         SUBREG and MEM, respectively.
819
820         * fold-const.c (fold_binary): Use code instead of t.
821
822         * fold-const.c (optimize_minmax_comparison): Take decomposed
823         arguments code, type, op0, and op1 instead of t.
824         (fold_binary): Update a call to optimize_minmax_comparison.
825
826         * fold-const.c (fold_range_test): Take decomposed arguments
827         code, type, op0, and op1 instead of t.
828         (fold_binary): Update a call to fold_range_test.
829
830         * fold-const.c (fold_binary_op_with_conditional_arg): Take
831         decomposed arguments code, type, op0, and op1 instead of t.
832         (fold_binary): Update a call to fold_range_test.
833
834 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
835
836         * fold-const.c (fold_binary): Avoid directly using the original
837         expression t as much as possible.
838
839 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
840
841         * c-semantics.c (build_stmt): Use TYPE_P instead of
842         IS_NON_TYPE_CODE_CLASS.
843         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
844         (NON_TYPE_CHECK): Use TYPE_P instead of
845         IS_NON_TYPE_CODE_CLASS.
846
847         * fold-const.c (fold): Remove handling of binary expressions.
848
849 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
850
851         * doc/c-tree.texi: Wrap comments in @r{}.
852         * doc/cpp.texi: Likewise.
853         * doc/cppinternals.texi: Likewise.
854         * doc/extend.texi: Likewise.
855         * doc/md.texi: Likewise.
856         * doc/objc.texi: Likewise.
857         * doc/sourcebuild.texi: Likewise.
858         * doc/tm.texi: Likewise.
859         * doc/tree-ssa.texi
860
861 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
862
863         * predict.c (apply_return_prediction): Standardize PHI chain
864         walking.
865         * tree-ssa.c (ssa_redirect_edge): Likewise.
866
867         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
868         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
869         Update copyright.
870
871         * tree-phinodes.c (remove_phi_node): Drop the last argument.
872         * tree-flow.h: Adjust the prototype for remove_phi_node.
873         * lambda-code.c (perfect_nestify): Adjust a call to
874         remove_phi_node.
875         * tree-cfg.c
876         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
877         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
878         Likewise.
879         * tree-ssa-dce.c (remove_dead_phis): Likewise.
880         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
881         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
882         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
883
884         * combine.c (simplify_and_const_int): Use gen_int_mode instead
885         of GEN_INT (trunc_int_for_mode (...)).
886         * loop-iv.c (iv_number_of_iterations): Likewise.
887         * postreload.c (reload_cse_move2add): Likewise.
888         * simplify-rtx.c (simplify_const_unary_operation,
889         simplify_const_binary_operation): Likewise.
890         * stor-layout.c (get_mode_bounds): Likewise.
891
892         * fold-const.c (fold_binary): New.
893         (fold): Call fold_binary on binary expressions.
894
895 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
896
897         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
898         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
899         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
900         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
901         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
902
903 2005-03-04  Devang Patel  <dpatel@apple.com>
904         
905         PR tree-optimization/18815
906         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
907         loops with zero exit edges.
908
909 2005-03-04  Devang Patel  <dpatel@apple.com>
910
911         * doc/invoke.texi: Remove reference to webpage that does not exist.
912         
913 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
914             Joseph S. Myers  <joseph@codesourcery.com>
915
916         PR c++/19797
917         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
918         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
919         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
920         * pa.c (get_plabel): Change argument to symbol_ref.  Call
921         maybe_get_identifier instead of get_identifier.
922         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
923         (struct deferred_plabel): Replace name field with symbol field.
924         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
925         ASM_OUTPUT_EXTERNAL_REAL is defined.
926         (output_global_address): Use output_addr_const for output of all
927         symbol_refs.
928         (output_deferred_plabels): Use symbol_ref instead of name for address
929         output.
930         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
931         ASM_OUTPUT_SYMBOL_REF): New macros.
932         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
933         comment.
934         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
935         label.
936
937 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
938
939         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
940         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
941
942 2005-03-04  Jeff Law  <law@redhat.com>
943
944         * basic-block.h (rediscover_loops_after_threading): Declare.
945         * tree-ssa-dom.c: Include cfgloop.h.
946         (tree_ssa_dominator_optimize): Discover loops and some basic
947         properties.  Remove forwarder blocks recreated by loop header
948         canonicalization.  Also mark backedges in the CFG.
949         * tree-ssa-threadupdate.c: Include cfgloop.h
950         (rediscover_loops_after_threading): Define.
951         (struct local_info): New field, JUMP_THREADED.
952         (prune_undesirable_thread_requests): New function.
953         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
954         then record that fact for the callers of redirct_edges.
955         (thread_block): If BB has incoming backedges, then call
956         prune_undesirable_thraed_requests.    Note when we are
957         going to have to rediscover loop information.  Return a
958         boolean indicating if any jumps were threaded.
959         (thread_through_all_blocks): Bubble up boolean indicating
960         if any jumps were threaded.
961         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
962         (tree-ssa-threadupdate.o): Similarly.
963
964 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
965
966         * fold-const.c (fold_ternary): Unroll the "for" loop to
967         extract operands.  
968
969 2005-03-04  Andrew Haley  <aph@redhat.com>
970
971         * unwind-dw2-fde-glibc.c (struct
972         unw_eh_callback_data.check_cache): New field.
973         (frame_hdr_cache): New.
974         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
975         Cache frame header info.
976
977 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
978
979         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
980         (print_c_condition): Declare.
981         * read-rtl.c (ptr_loc): New structure.
982         (ptr_locs, ptr_loc_obstack, joined_conditions)
983         (joined_conditions_obstack): New variables.
984         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
985         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
986         (join_c_conditions, print_c_condition): New functions.
987         (apply_macro_to_string): Associate the new string with the same
988         source location as the old one.
989         (add_condition_to_string): Use join_c_conditions.
990         (read_string): Use set_rtx_ptr_loc to record a filename and line
991         number for the string.
992         (read_rtx): Initialize the new variables above.
993         * genattrtab.c (write_test_expr, write_attr_value): Use
994         print_c_condition.
995         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
996         comment above the GCC_VERSION check.
997         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
998         Inline the definition of MAYBE_EVAL.
999         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
1000         * genoutput.c (process_template): Likewise.
1001         * genpreds.c (write_predicate_subfunction): Likewise.
1002         (write_predicate_expr): Use print_c_condition.
1003         * genrecog.c (write_cond): Likewise.
1004         * gensupport.c (process_rtx): Use join_c_conditions to join the
1005         conditions of a define_insn_and_split.  Record a source location
1006         for the string after the "&&".
1007         (alter_test_for_insn): Use join_c_conditions.
1008
1009 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
1010
1011         Revert for now:
1012         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
1013         PR tree-optimization/15784
1014         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
1015         and -1 - A to ~A.
1016
1017 2005-03-04  Ben Elliston  <bje@au.ibm.com>
1018
1019         * gcc.c (option_map): Add --coverage.
1020         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
1021         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
1022         * config/darwin.h: Pass -lgcov for `coverage'.
1023         * doc/invoke.texi (Debugging Options): Document --coverage.
1024
1025 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
1026
1027         * gcse.c (bypass_block): Use find_edge wherever possible.
1028
1029 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
1030
1031         Fix PR debug/20253
1032         
1033         * c-opts.c (c_common_parse_file): Call start_source_file
1034         and end_source_file at the approriate times.
1035
1036         * dwarf2out.c (dwarf2out_finish): Don't auto-end
1037         the main file, it will be done for us now.
1038         
1039 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
1040
1041         * fold-const.c (fold_ternary): New.
1042         (fold): Call fold_ternary on ternary expressions.  Remove
1043         handling of ternary expressions.
1044
1045 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
1046
1047         PR tree-optimization/15784
1048         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
1049         and -1 - A to ~A.
1050
1051 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
1052
1053         * config/rs6000/predicates.md (branch_comparison_operator):
1054         Convert from C block to conditional format.
1055
1056 2005-03-03  Jan Hubicka  <jh@suse.cz>
1057
1058         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
1059         and non-constant public variables.
1060
1061 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
1062
1063         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
1064         with LABEL_EXPR.
1065
1066         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
1067         EDGE_I.
1068
1069         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
1070         calls to release_ssa_name and release_phi_node.
1071
1072         * fold-const.c (fold): Remove handling of unary expressions.
1073
1074         * fold-const.c (fold_unary): Avoid directly using the original
1075         expression t as much as possible.
1076
1077 2005-03-03  Roger Sayle  <roger@eyesopen.com>
1078             Andrew Pinski  <pinskia@physics.uc.edu>
1079
1080         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
1081         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
1082
1083 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
1084
1085         Describe special registers SRP and MOF as allocatable registers.
1086         * config/cris/cris.c (cris_md_asm_clobbers): New function.
1087         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
1088         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
1089         TARGET_HAS_MUL_INSNS.
1090         (cris_print_operand) <case 'd'>: New case.
1091         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
1092         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
1093         define.
1094         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
1095         (REG_ALLOC_ORDER): Update for MOF.
1096         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
1097         SPECIAL_REGS.
1098         (GENERAL_REGS): No longer a define of ALL_REGS.
1099         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
1100         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
1101         Adjust accordingly.
1102         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
1103         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
1104         (SECONDARY_RELOAD_CLASS): Define.
1105         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
1106         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
1107         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
1108         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
1109         (REGISTER_MOVE_COST): Define.
1110         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
1111         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
1112         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
1113         (CRIS_MOF_REGNUM): New define_constants.
1114         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
1115         special registers.
1116         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
1117         New patterns.
1118         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
1119         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
1120         Adjust for MOF being properly described as a register.
1121         (indir_to_reg_split): Name this split.  Conditionalize on the
1122         destination register being a general register.
1123         (movei): Conditionalize on on operands 0 and 1 having the same
1124         register class.
1125
1126 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
1127
1128         PR target/20277
1129         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
1130         -mcpu to override any other explicitly given flags.
1131
1132 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
1133
1134         * recog.c (verify_changes, confirm_change_group): New functions,
1135         broken out of apply_change_group.
1136         (apply_change_group): Use them.
1137         * recog.h (verify_change, confirm_change_group): Declare.
1138         * rtl.h (redirect_jump_2): Declare.
1139         * jump.c (redirect_exp, invert_exp): Delete.
1140         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
1141         (redirect_jump_2): New function, broken out of redirect_jump.
1142         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
1143         (invert_jump): Use invert_jump_1 and redirect_jump_2.
1144         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
1145
1146 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
1147
1148         * varasm.c (named_section): Use xstrdup rather than doing it by
1149         hand.
1150
1151         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
1152
1153 2005-03-02  Devang Patel  <dpatel@apple.com>
1154         
1155         Undo PR tree-optimization/18815 fix.
1156         
1157 2005-03-02  Devang Patel  <dpatel@apple.com>
1158
1159         PR tree-optimization/18815
1160         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
1161         loops with zero exit edges.
1162         
1163 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
1164
1165         * cfg.c (connect_src, connect_dest, disconnect_src,
1166         disconnct_dest): New.
1167         (unchecked_make_edge, remove_edge, redirect_edge_succ,
1168         redirect_edge_pred): Use the new functions.
1169
1170         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1171         free_dominance_info only when needed.
1172
1173 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
1174
1175         PR target/20276
1176         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
1177         (reg_or_sub_cint64_operand): Same.
1178
1179 2005-03-02  Jeff Law  <law@redhat.com>
1180
1181         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
1182         CFG_ALTERED in the main DOM iteration loop.
1183
1184 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
1185
1186         PR c++/19916
1187         * varasm.c (initializer_constant_valid_p): Allow conversions
1188         between OFFSET_TYPEs.  Tidy.
1189
1190 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
1191
1192         * config/cris/cris.md ("return"): Remove epilogue delay list
1193         sanity check.
1194
1195 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
1196
1197         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
1198         for Thumb.
1199         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
1200
1201 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
1202
1203         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
1204         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
1205         config/m68k/m68k.c, config/mips/mips.h,
1206         config/rs6000/rs6000-protos.h, doc/contrib.texi,
1207         doc/include/gcc-common.texi: Update copyright.
1208
1209         PR middle-end/18029 and PR middle-end/18030
1210         * expr.c (optimize_bitfield_assignment_op): Add a special case
1211         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
1212
1213         * fold-const.c (fold_unary): New.
1214         (fold): Call fold_unary on unary expressions.
1215
1216 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
1217
1218         * cgraph.h (struct cgraph_edge): Add prev_caller and
1219         prev_callee fields.
1220         (cgraph_node_remove_callees): Export.
1221         * cgraph.c (cgraph_create_edge): Initialize prev_caller
1222         and prev_callee.
1223         (cgraph_edge_remove_callee): New function.
1224         (cgraph_edge_remove_caller): Likewise.
1225         (cgraph_remove_edge): Use.
1226         (cgraph_redirect_edge_callee): Likewise.
1227         (cgraph_node_remove_callees): New function.
1228         (cgraph_node_remove_callers): Likewise.
1229         (cgraph_remove_node): Use.
1230         * tree-optimize.c (tree_rest_of_compilation): Use
1231         cgraph_node_remove_callees instead of manual loop.
1232         * cgraphunit.c (cgraph_finalize_function): Likewise.
1233         (cgraph_expand_function): Likewise.
1234         (cgraph_remove_unreachable_nodes): Likewise.
1235
1236 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
1237
1238         PR c/8927
1239         * c-tree.h (undeclared_variable, build_external_ref): Add extra
1240         argument.
1241         * c-decl.c (undeclared_variable): Take location as argument.
1242         * c-typeck.c (build_external_ref): Likewise.
1243         * c-parser.c (c_parser_postfix_expression): Pass location of
1244         identifier to build_external_ref.
1245
1246 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
1247
1248         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
1249         CCEQ mode for branch_positive_comparison_operator test.
1250         * config/rs6000/predicates (branch_comparison_operator): Revert to
1251         define_predicate.
1252         (scc_comparison_operator): Same.
1253         (branch_positive_comparison_operator): Same.
1254
1255 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
1256
1257         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
1258         (cris_delay_slots_for_epilogue): Remove.
1259         (save_last): Move into cris_target_asm_function_epilogue.
1260         (cris_target_asm_function_epilogue): Remove tests for file being
1261         NULL.
1262         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
1263         (cris_delay_slots_for_epilogue): Remove prototypes.
1264         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
1265         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
1266
1267 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
1268
1269         * config/rs6000/predicates.md (branch_comparison_operator): Change
1270         to define_special_predicate.
1271         (scc_comparison_operator): Same.
1272         (branch_positive_comparison_operator): Same.
1273
1274 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
1275
1276         * Makefile.in (tree-ssa-sink.o): New.
1277         (OBJS-common): Add tree-ssa-sink.o.
1278         * common.opt: Add -ftree-sink
1279         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
1280         * timevar.def (TV_TREE_SINK): new timevar.
1281         * tree-flow.h (is_hidden_global_store): Prototype.
1282         * tree-optimize.c (init_tree_optimization_passes): Add
1283         pass_sink_code.
1284         * tree-pass.h (pass_sink_code): New.
1285         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
1286         for non-obvious global store store to is_hidden_global_store, and
1287         call that new function.
1288         * tree-ssa-sink.c: New file.
1289         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
1290         * doc/passes.texi: Document forward store motion.
1291         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
1292         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
1293         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
1294         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
1295
1296 2005-03-01  Per Bothner  <per@bothner.com>
1297
1298         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
1299         and we have a non-zero column-number, add it to the message.
1300         Also factor out the diagnostic_kind_text.
1301
1302 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
1303
1304         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1305         flow_loop_pre_header_scan, flow_loop_pre_header_find,
1306         flow_loop_scan): Removed.
1307         (flow_loop_dump): Do not dump removed fields.
1308         (flow_loop_free): Do not free removed fields.
1309         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
1310         (loop_exit_edge_p): New function.
1311         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
1312         num_pre_header_edges, entry_edges, num_entries, exit_edges,
1313         num_exits, exits_doms.
1314         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
1315         LOOP_EDGES, LOOP_ALL): Removed.
1316         (flow_loop_scan): Declaration removed.
1317         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
1318         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
1319         flow_loops_find.
1320         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
1321         (if_convert): Call flow_loops_find and flow_loops_free
1322         when calling mark_loop_exit_edges.
1323         * cfgloopanal.c (mark_loop_exit_edges): Moved from
1324         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
1325         free_dominance_info calls.
1326         * loop-init.c (flow_loops_find): Ditto.
1327         * passes.c (rest_of_handle_branch_prob): Ditto.
1328         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
1329         * loop-unroll.c (analyze_insns_in_loop): Do not use
1330         EDGE_LOOP_EXIT.
1331         * predict.c (predict_loops): Do not call flow_loop_scan.
1332         Use get_loop_exit_edges.
1333         (tree_estimate_probability): Do not pass flags to flow_loops_find.
1334         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
1335         Do not use EDGE_LOOP_EXIT.
1336         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
1337         to bb_with_exit_edge_p.
1338         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
1339         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
1340         to bb_with_exit_edge_p.
1341         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
1342         EDGE_LOOP_EXIT.
1343         * tree-loop-linear.c (linear_transform_loops): Do not call
1344         flow_loop_scan.  Use loop->single_exit.
1345         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
1346         (vect_analyze_loop_form): Do not call flow_loop_scan.
1347         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
1348         loop->single_exit.
1349         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
1350         loop->single_exit.
1351         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
1352         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1353         slpeel_tree_duplicate_loop_to_edge_cfg,
1354         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
1355         Use loop_preheader_edge and loop->single_exit.  Do not call
1356         flow_loop_scan.
1357
1358 2005-03-01  Nick Clifton  <nickc@redhat.com>
1359
1360         * config/arm/arm.c (thumb_find_work_register): Check all of the
1361         argument registers to see if they are free, and a couple of
1362         special cases where the last argument register but can be proved
1363         to be available during the function's prologue.
1364         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
1365         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
1366         thumb_unexpanded_epilogue): Use unsigned long as the type for the
1367         register bit-mask.
1368         (thumb_compute_save_reg_mask): Likewise.  Also use
1369         thumb_find_work_register() to ensure that there is agreement about
1370         which work register is going to be used in the prologue.
1371         (thumb_output_function_prologue): Use unsigned long as the type
1372         for the register bit-mask.  Also delay pushing the link register if
1373         other high registers are going to be pushed.
1374         (thumb_compute_save_reg_mask, emit_multi_reg_push,
1375         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
1376         redundant prototypes.
1377
1378 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
1379
1380         PR target/19819
1381         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
1382         and after reload in REG+REG indexed addresses without REG_POINTER
1383         set in the base and not set in the index.
1384
1385 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1386
1387         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1388         Don't undefine here.
1389         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
1390         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
1391         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
1392         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
1393         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
1394         Delete.
1395         * config.gcc (sh*-*-linux*): Use config/linux.h.
1396
1397 2005-02-28  Dale Johannesen  <dalej@apple.com>
1398             Stan Shebs  <shebs@apple.com>
1399
1400         Rewrite of 64-bit Darwin structure-by-value pass/return.
1401         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
1402         intoffset, use_stack, named.
1403         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
1404         (rs6000_darwin64_record_arg_advance_flush):  New.
1405         (rs6000_darwin64_record_arg_advance_recurse): New.
1406         (rs6000_darwin64_record_arg_flush):  New.
1407         (rs6000_darwin64_record_arg_recurse):  New.
1408         (rs6000_darwin64_record_arg):  New.
1409         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
1410         (function_arg_boundary):  Handle 128-bit aligned structs.
1411         (function_arg_advance):  Rewrite darwin64 struct handling.
1412         (function_arg):  Call rs6000_darwin64_record_arg.
1413         (function_arg_partial_nregs):  Handle darwin64 structs.
1414         (rs6000_darwin64_function_value):  Remove.
1415         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
1416
1417 2005-02-28  Roger Sayle  <roger@eyesopen.com>
1418
1419         PR tree-optimization/20216
1420         * tree-chrec.c (tree_fold_factorial): Delete.
1421         (tree_fold_binomial): Change argument list to take a return type
1422         and change the type of K to unsigned int.  Rewrite to avoid explicit
1423         evaluation of factorials, and (recursively) calling fold to perform
1424         compile-time arithmetic.  Return NULL on (internal) overflow.
1425         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
1426         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
1427         if any intermediate calculation overflows.
1428         (chrec_apply): Update call to chrec_evaluate.
1429
1430 2005-02-28  James E Wilson  <wilson@specifixinc.com>
1431
1432         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
1433
1434 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
1435
1436         PR c/20245
1437         * c-parser.c (c_parser_compound_statement): Return error_mark_node
1438         instead of NULL_TREE on error.
1439
1440 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
1441
1442         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
1443         (EASY_VECTOR_15_ADD_SELF): Remove.
1444         (num_insns_constant_wide): Not static.
1445         (validate_condition_mode): Not static.
1446         (toc_relative_expr_p): Not static.
1447         (legitimate_indirect_address_p): Not static.
1448         (macho_lo_sum_memory_operand): Not static.
1449         (invalid_e500_subreg): Not static.
1450         (easy_vector_same): Not static.
1451         (easy_vector_splat_const): Not static.
1452         (RS6000_SYMBOL_REF_TLS_P): Remove.
1453         (any_operand): Delete.
1454         (any_parallel_operand): Delete.
1455         (count_register_operand): Delete.
1456         (altivec_register_operand): Delete.
1457         (xer_operand): Delete.
1458         (s8bit_cint_operand): Delete.
1459         (short_cint_operand): Delete.
1460         (u_short_cint_operand): Delete.
1461         (non_short_cint_operand): Delete.
1462         (exact_log2_cint_operand): Delete.
1463         (gpc_reg_operand): Delete.
1464         (cc_reg_operand): Delete.
1465         (cc_reg_not_cr0_operand): Delete.
1466         (reg_or_short_operand): Delete.
1467         (reg_or_neg_short_operand): Delete.
1468         (reg_or_aligned_short_operand): Delete.
1469         (reg_or_u_short_operand): Delete.
1470         (reg_or_cint_operand): Delete.
1471         (reg_or_arith_cint_operand): Delete.
1472         (reg_or_add_cint64_operand): Delete.
1473         (reg_or_sub_cint64_operand): Delete.
1474         (reg_or_logical_cint_operand): Delete.
1475         (got_operand): Delete.
1476         (got_no_const_operand): Delete.
1477         (easy_fp_constant): Delete.
1478         (easy_vector_constant): Delete.
1479         (easy_vector_constant_add_self): Delete.
1480         (zero_constant): Delete.
1481         (zero_fp_constant): Delete.
1482         (volatile_mem_operand): Delete.
1483         (offsettable_mem_operand): Delete.
1484         (mem_or_easy_const_operand): Delete.
1485         (add_operand): Delete.
1486         (non_add_cint_operand): Delete.
1487         (logical_operand): Delete.
1488         (non_logical_cint_operand): Delete.
1489         (mask_operand): Delete.
1490         (mask_operand_wrap): Delete.
1491         (mask64_operand): Delete.
1492         (mask64_2_operand): Delete.
1493         (and64_operand): Delete.
1494         (and64_2_operand): Delete.
1495         (and_operand): Delete.
1496         (reg_or_mem_operand): Delete.
1497         (lwa_operand): Delete.
1498         (symbol_ref_operand): Delete.
1499         (call_operand): Delete.
1500         (current_file_function_operand): Delete.
1501         (input_operand): Delete.
1502         (rs6000_nonimmediate_operand): Delete.
1503         (rs6000_tls_symbol_ref): Delete.
1504         (save_world_operation): Delete.
1505         (restore_world_operation): Delete.
1506         (load_multiple_operation): Delete.
1507         (store_multiple_operation): Delete.
1508         (vrsave_operation): Delete.
1509         (mfcr_operation): Delete.
1510         (mtcrf_operation): Delete.
1511         (lmw_operation): Delete.
1512         (stmw_operation): Delete.
1513         (branch_comparison_operator): Delete.
1514         (branch_positive_comparison_operator): Delete.
1515         (scc_comparison_operator): Delete.
1516         (trap_comparison_operator): Delete.
1517         (boolean_operator): Delete.
1518         (boolean_or_operator): Delete.
1519         (min_max_operator): Delete.
1520         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
1521         (EASY_VECTOR_15): Moved to here.
1522         (EASY_VECTOR_15_ADD_SELF): Move to here.
1523         (PREDICATE_CODES): Delete.
1524         * config/rs6000/rs6000-protos.h: Delete predicate functions.
1525         Declare functions no longer static.
1526         * config/rs6000/predicates.md: New.
1527         * config/rs6000/rs6000.md: Include predicates.md
1528
1529 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
1530
1531         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
1532         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
1533         REG_ALWAYS_RETURN.
1534         * cfgrtl.c (need_fake_edge_p): Likewise.
1535         * combine.c (distribute_notes): Likewise.
1536         * emit-rtl.c (try_split): Likewise.
1537         * recog.c (peephole2_opimize): Likewise.
1538         * reg-notes.def (ALWAYS_RETURN): Remove.
1539         * rtl.h (LCT_ALWAYS_RETURN): Remove.
1540         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
1541         * tree.h (ECF_ALWAYS_RETURN): Remove.
1542
1543 2005-02-28  Roger Sayle  <roger@eyesopen.com>
1544
1545         PR middle-end/19874
1546         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
1547         between different machine modes is never a "useless" conversion.
1548
1549 2005-02-28  Geert Bosch  <bosch@gnat.com>
1550
1551         PR ada/15977
1552         * doc/contrib.texi: List contributors for Ada front end
1553
1554 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
1555
1556         * simplify-rtx.c (simplify_unary_operation_1,
1557         simplify_const_unary_operation): New, extracted from...
1558         (simplify_unary_operation): ... this one.
1559         (simplify_binary_operation_1,
1560         simplify_const_binary_operation): New, extracted from...
1561         (simplify_binary_operation): ... this one.
1562         * rtl.h (simplify_const_unary_operation,
1563         simplify_const_binary_operation): Add prototypes.
1564
1565 2005-02-28  Julian Brown  <julian@codesourcery.com>
1566
1567         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
1568         building libjava and caused PR regression/20228.
1569
1570 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
1571
1572         PR bootstrap/17383
1573         * Makefile.in (host_subdir): New.
1574         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
1575         * configure: Regenerate.
1576
1577 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
1578
1579         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
1580         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
1581         installation directory first.
1582
1583 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
1584
1585         PR target/19065.
1586         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
1587         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
1588         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
1589         * config/cris/cris.md: Tweak comments referring to Q.
1590         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
1591         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
1592         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
1593         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
1594         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
1595         Insert spaces in constraints to align alternatives vertically for
1596         readability.
1597         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
1598         operand 1: "M".
1599
1600 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1601
1602         PR rtl-optimization/17728
1603         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
1604         operand 0 from general_operand to move_dest_operand.
1605
1606 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1607
1608         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
1609         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
1610         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
1611         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
1612
1613 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1614
1615         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
1616         * configure: Regenerate.
1617         * libada-mk.in: Remove CC; rename
1618         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
1619
1620 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
1621
1622         PR tree-opt/20188
1623         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
1624         for the lhs, also walk over the tree.  Likewise for rhs.
1625
1626 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
1627
1628         * tree-ssa-dom.c (simple_iv_increment_p): New function.
1629         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
1630         Do not propagate value of iv before increment over the increment.
1631
1632 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
1633
1634         * c-parser.c: New file.
1635         * c-parse.in: Remove.
1636         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
1637         Remove.
1638         (c-parser.o): Add dependencies.
1639         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
1640         maintainer-clean, TAGS): Update.
1641         * c-config-lang.in (gtfiles): Update.
1642         * gengtype-lex.l: Don't handle "@@".
1643         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
1644         objc_build_synchronized, objc_begin_try_stmt,
1645         objc_begin_catch_clause, objc_finish_catch_clause,
1646         objc_build_finally_clause, objc_finish_try_stmt): New.
1647         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
1648         type_seen_p.
1649         (c_parse_init): Update comment.
1650         * c-decl.c (c_init_decl_processing): Update comment.
1651         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1652         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
1653         new c_declspecs members.
1654
1655 2005-02-25  Julian Brown  <julian@codesourcery.com>
1656
1657         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
1658         from being used for symbols with vague linkage when
1659         HAVE_GAS_COMDAT_GROUP is true.
1660
1661 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1662
1663         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
1664
1665 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
1666
1667         PR target/19930
1668         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
1669         (LIBGCC2_HAS_DF_MODE): New.
1670         (LIBGCC2_HAS_XF_MODE): New.
1671         (LIBGCC2_HAS_TF_MODE): New.
1672         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1673         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1674         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1675         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1676         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
1677         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
1678         and add _fixtfdi, _fixunstfdi, _floatditf
1679         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
1680         L_fixunstfdi, L_floatditf.
1681         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
1682         (LIBGCC2_HAS_TF_MODE): Define.
1683
1684 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
1685
1686         PR tree-optimization/20204
1687         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
1688         REWRITE_THIS_STMT markers on PHI nodes.
1689         (rewrite_initialize_block): Likewise.
1690
1691 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1692
1693         * version.c (version_string): Update to 4.1.
1694
1695 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
1696
1697         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
1698         Clarify that the alternative way doesn't work in GNU C++.
1699
1700 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
1701
1702         PR tree-optimization/19937
1703         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
1704         to the type of the induction variable.
1705
1706 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1707
1708         PR rtl-optimization/20117
1709         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
1710         the block including noncopyable insn.
1711
1712 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1713
1714         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
1715         calls to find_reg_note.
1716
1717 2005-02-24  Richard Henderson  <rth@redhat.com>
1718
1719         PR tree-opt/20127
1720         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
1721         the type.
1722
1723 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
1724
1725         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
1726         vector types if to use base reg for misaligned non-word ld/std.
1727
1728 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1729
1730         PR target/14619
1731         * config/cris/cris.c (cris_target_asm_function_prologue): Create
1732         dwarf2 label manually and put it after, not before the prologue.
1733
1734 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
1735
1736         PR target/19019
1737         * reload.c (operands_match_p): Only increment register number for
1738         SCALAR_INT_MODE_P modes in multiple hard registers.
1739
1740         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
1741         Fix formatting.
1742
1743 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1744
1745         * ChangeLog.5: Fix log message typo(s).
1746         * ChangeLog.7: Likewise.
1747         * ChangeLog.tree-ssa: Likewise.
1748         * cfgexpand.c: Fix comment typo(s).
1749         * conflict.c: Likewise.
1750         * defaults.h: Likewise.
1751         * dwarf2out.c: Likewise.
1752         * gcse.c: Likewise.
1753         * ggc-page.c: Likewise.
1754         * tree-eh.c: Likewise.
1755         * tree-ssa-dom.c: Likewise.
1756
1757 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
1758
1759         PR target/19019
1760         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
1761         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
1762         if SHARED is defined.
1763
1764         PR target/20196
1765         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
1766         allow splitting only if operands 0 and 3 don't overlap.
1767
1768 2005-02-24  Richard Henderson  <rth@redhat.com>
1769
1770         PR middle-end/19953
1771         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
1772         (fold_builtin_1): Call them.
1773         * fold-const.c (fold_complex_mult_parts): Split out from ...
1774         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
1775         (fold_complex_div_parts, fold_complex_div): New.
1776         (fold): Use them.
1777         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
1778
1779 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1780
1781         * tree-ssa-ccp.c (visit_assignment): Verify that result of
1782         VIEW_CONVERT_EXPR is_gimple_min_invariant.
1783
1784         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
1785         (print_node): Likewise.
1786         Print TYPE_SIZES_GIMPLIFIED.
1787
1788 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1789
1790         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
1791         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
1792         operands as commutative in constraints.
1793
1794 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
1795
1796         * tree-into-ssa.c: Re-organize internal functions.
1797
1798 2005-02-24  Richard Henderson  <rth@redhat.com>
1799
1800         PR middle-end/18902
1801         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
1802         for c99.
1803         * common.opt (fcx-limited-range): New.
1804         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
1805         * toplev.c (flag_complex_method): Initialize to 1.
1806         (process_options): Set flag_complex_method to 0 if
1807         flag_cx_limited_range.
1808         * doc/invoke.texi (-fcx-limited-range): New.
1809
1810 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1811
1812         * cse.c (delete_trivially_dead_insns): Speed up by using
1813         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
1814         prev_real_insn.
1815
1816 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
1817
1818         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
1819         functions when -mid-shared-library is being used.
1820
1821 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
1822
1823         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
1824         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
1825         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
1826         * system.h: Poison LINK_LIBGCC_SPECIAL.
1827
1828 2005-02-23  James E Wilson  <wilson@specifixinc.com>
1829
1830         * gengtype.c (note_insn_name): Make 1 element larger.
1831
1832 2005-02-23  Roger Sayle  <roger@eyesopen.com>
1833
1834         PR target/20018
1835         PR rtl-optimization/20097
1836         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1837         BImode SUBREGs of SImode registers which confuse the ia64 backend.
1838
1839 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
1840
1841         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
1842         * t-aix52 (SHLIB_INSTALL): Same.
1843
1844 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
1845
1846         * genpreds.c: Update copyright.
1847
1848 2005-02-23  Michael Beach  <michaelb@ieee.org>
1849
1850         PR target/20159
1851         * config/sparc/t-elf (startup files): Assemble with CPP.
1852
1853 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
1854
1855         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
1856         (write_predicate_expr): Likewise.
1857
1858 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1859
1860         PR tree-optimization/20100
1861         PR tree-optimization/20115
1862         * tree-optimize.c (init_tree_optimization_passes): Remove
1863         pass_maybe_create_global_var.
1864         * tree-pass.h (pass_maybe_create_global_var): Remove.
1865         * tree-ssa-alias.c (aliases_computed_p): Declare.
1866         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
1867         (count_calls_and_maybe_create_global_var): Remove.
1868         (pass_maybe_create_global_var): Remove.
1869         (init_alias_info): Do not declare aliases_computed_p.
1870         (maybe_create_global_var): If the function contains no
1871         call-clobbered variables and a mix of pure/const and regular
1872         function calls, create .GLOBAL_VAR.
1873         Mark all call-clobbered variables for renaming.
1874         (merge_pointed_to_info): Update comment.
1875         (add_pointed_to_var): Likewise.
1876         (is_escape_site): Likewise.
1877         Accept struct alias_info * instead of size_t *.
1878         Update all users.
1879         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
1880         as necessary.
1881         * tree-ssa-operands.c (get_call_expr_operands): If
1882         ALIASES_COMPUTED_P is false, do not add call-clobbering
1883         operands.
1884         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
1885         (delete_tree_ssa): Likewise.
1886
1887 2005-02-22  James E Wilson  <wilson@specifixinc.com>
1888
1889         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
1890         (do_compile): Do call it here.
1891
1892 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1893
1894         PR rtl-optimization/20017.
1895         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
1896         rest_of_handle_cse2, rest_of_handle_gcse): Call
1897         delete_dead_jumptables immediately before calling cleanup_cfg.
1898
1899 2005-02-22  Devang Patel  <dpatel@apple.com>
1900
1901         PR 19952
1902         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
1903         all labels
1904
1905 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
1906
1907         * config/rs6000/aix.h (WINT_TYPE): Define.
1908
1909 2005-02-22  Stan Shebs  <shebs@apple.com>
1910
1911         * config/rs6000/rs6000.c (rs6000_override_options): Default to
1912         natural alignment for 64-bit Darwin.
1913         (rs6000_parse_alignment_option): Warn about uses of -malign-power
1914         on 64-bit Darwin.
1915         * doc/invoke.texi: Document this.
1916
1917 2005-02-22  DJ Delorie  <dj@redhat.com>
1918
1919         * c-common.c (c_common_type_for_mode): Pass the mode's precision
1920         to make_[un]signed_type, not the mode itself.
1921
1922 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1923
1924         * cfg.c (cached_make_edge): Call make_edge if edge cache is
1925         not available.  Use tail calls wherever possible.
1926         (make_edge): Call unchecked_make_edge to create an edge.
1927
1928         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
1929         (coalesce_ssa_name): Don't check for
1930         SSANORM_USE_COALESCE_LIST.
1931         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
1932
1933 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1934
1935         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
1936         (rewrite_into_ssa): ... here.
1937
1938 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
1939
1940         PR tree-optimization/19786
1941         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
1942         tag to another's may-alias bitmap when adding to the other's list.
1943
1944 2005-02-21  DJ Delorie  <dj@redhat.com>
1945
1946         * tree-ssa-loop-ivopts.c (computation_cost): Start register
1947         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
1948         registers in unsupported ways.
1949         * expmed.c (init_expmed): Likewise.
1950
1951 2005-02-21  Stan Cox  <scox@redhat.com>
1952
1953         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
1954
1955 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1956
1957         * tree-cfg.c (fold_cond_expr_cond): New.
1958         (make_edges): Call fold_cond_expr_cond.
1959         (find_taken_edge): Accept nothing but INTEGER_CST.
1960         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
1961         and 1.
1962         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
1963
1964         * flow.c (delete_dead_jumptables): Speed up by scanning insns
1965         that do not belong to any basic block.
1966
1967 2005-02-21  Jeff Law  <law@redhat.com>
1968
1969         * cfganal.c (find_unreachable_blocks): Manually CSE load of
1970         e->dest.
1971
1972 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1973
1974         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
1975         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
1976         Adjust their definitions.
1977         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
1978         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
1979
1980         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
1981         genautomata.c, langhooks.c, langhooks.h, system.h,
1982         config/arm/lib1funcs.asm: Update copyright.
1983
1984 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
1985
1986         * dbxout.c (dbxout_function_end): Emit Lscope label always.
1987
1988 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
1989
1990         PR bootstrap/13770
1991         * doc/install.texi: Document --with-gc.
1992
1993 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
1994
1995         * simplify-rtx.c (simplify_unary_operation): Add a missing
1996         "break" statement.
1997
1998 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1999
2000         PR tree-optimization/18663
2001         * tree-ssa-dom.c (extract_range_from_cond): Return 0
2002         if the type has variable bounds.
2003
2004 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
2005
2006         * gcse.c: Remove an obsolete comment.
2007
2008         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
2009
2010 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
2011
2012         * doc/extend.texi (Function Attributes) <Attribute const>: The
2013         attribute "pure" is below this text, not above.
2014
2015 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2016
2017         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
2018         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
2019         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
2020
2021 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
2022
2023         PR 18785
2024         * langhooks.h (struct lang_hooks): Add to_target_charset.
2025         * langhooks.c (lhd_to_target_charset): New function.
2026         * langhooks-def.h: Declare lhd_to_target_charset.
2027         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
2028         (LANG_HOOKS_INITIALIZER): Update.
2029         * c-common.c (c_common_to_target_charset): New function.
2030         * c-common.h: Declare it.
2031         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
2032         c_common_to_target_charset.
2033
2034         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
2035         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
2036         Delete definitions.
2037         * system.h: Poison them.
2038         * doc/tm.texi: Don't discuss them.
2039         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
2040         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
2041         (pp_c_char): Do not attempt to generate letter escapes for
2042         newline, tab, etc.
2043         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
2044         * config/mips/mips.c (mips_output_ascii): Likewise.
2045
2046 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
2047
2048         PR tree-optimization/19951
2049         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
2050         is abnormal.
2051
2052 2005-02-19  Steven Bosscher  <stevenb@suse.de>
2053
2054         PR middle-end/19698
2055         * function.h (struct function): New field `max_loop_depth'.
2056         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
2057         (flow_loops_find): Reset the max loop depth count before finding loops.
2058         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
2059         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
2060         (calculate_global_regs_live): Make sure the loop will terminate
2061         when the initial sets are not empty.
2062
2063 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
2064
2065         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
2066         object inside.
2067         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
2068
2069 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
2070
2071         PR other/19525
2072         * doc/invoke.texi: Remove documentation of %M spec.
2073         * gcc.c: Likewise.
2074         (init_spec): Remove %M suffix from -lgcc_s.
2075         (do_spec_1): Remove 'M' case.
2076         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
2077         to put shared libraries in the multilib directory.  Remove the
2078         shlib_so_soname substitution variable.  Don't add a multilib encoding
2079         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
2080         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
2081         SHLIB_INSTALL as well as SHLIB_LINK.
2082         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
2083         (SHLIB_NAME): Delete.
2084         (SHLIB_DIR): New macro.
2085         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
2086         (SHLIB_INSTALL): Adjust accordingly.
2087         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
2088         * config/t-slibgcc-sld: Likewise.
2089         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
2090         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
2091         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
2092         in $(SHLIB_DIR).
2093         (SHLIBUNWIND_INSTALL): Adjust accordingly.
2094         * config/i386/t-nwld (SHLIB_SONAME): Delete.
2095         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
2096         Use @shlib_base_name@ instead of @shlib_so_name@.
2097         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
2098         and @shlib_base_name@.so in @multilib_dir@.
2099         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
2100         to the install path.
2101         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
2102         (SHLIB_LINK): Remove previous workaround.
2103         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
2104         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
2105         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
2106         the install path.
2107         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
2108         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
2109         (SHLIB_INSTALL): Adjust accordingly.
2110         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
2111         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
2112         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
2113         config/t-slibgcc-elf-ver.
2114
2115 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
2116             Jakub Jelinek  <jakub@redhat.com>
2117
2118         PR tree-optimization/19828
2119         * tree-ssa-loop-im.c: Add a TODO comment.
2120         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
2121         without side-effects.
2122
2123 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
2124
2125         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
2126         call fold_convert.
2127
2128 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
2129
2130         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
2131         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
2132         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
2133         functions.
2134         (ia64_reorg): Delete fixup_errata call.
2135         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
2136         (TARGET_SWITCHES): Delete -mb-step entry.
2137
2138 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
2139
2140         PR c/20043
2141         * c-typeck.c (composite_type): Handle quals in transparent unions.
2142         (type_lists_compatible_p): Likewise.
2143
2144 2005-02-18  Stan Shebs  <shebs@apple.com>
2145
2146         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
2147         expressions in the .literal8 section.
2148
2149 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
2150
2151         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
2152
2153 2005-02-18  Roger Sayle  <roger@eyesopen.com>
2154
2155         * fold-const.c (constant_boolean_node): Always create values of the
2156         specified type, don't bother calling truthvalue_conversion.
2157
2158 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2159
2160         * except.c (output_function_exception_table): Call
2161         assemble_external_libcall (eh_personality_libfunc).
2162
2163 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2164
2165         PR target/19886
2166         * config/ia64/ia64.h (struct machine_function): Add state_num.
2167         * config/ia64/ia64.c (process_epilogue,
2168         process_for_unwind_directive): Use new unwind state numbers each
2169         time rather than state 1.
2170
2171 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
2172
2173         PR target/20054
2174         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
2175         before the "*llgt_didi" pattern.
2176
2177 2005-02-18  Jason Merrill  <jason@redhat.com>
2178
2179         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
2180
2181 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
2182
2183         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
2184         (div0): Use it in place of ARM_FUNC_ALIAS.
2185         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
2186
2187 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
2188
2189         PR middle-end/20030
2190         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
2191         access, the lower bound of the array type if it exists.
2192
2193 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
2194
2195         PR c++/20008
2196         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
2197         cases that are out-of-range for the index type.
2198
2199 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
2200
2201         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
2202         (estimate_case_costs): Don't call convert.
2203         * expmed.c (expand_shift): Likewise.
2204         (make_tree): Call fold_convert instead of convert.
2205
2206 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
2207
2208         PR c++/19813
2209         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
2210         that ref to be marked MEM_READONLY_P doesn't have base that needs
2211         constructing.
2212
2213 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
2214
2215         * genautomata.c (output_get_cpu_unit_code_func,
2216         output_cpu_unit_reservation_p): Don't generate old-style function
2217         definitions.
2218
2219 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
2220
2221         PR c++/20023
2222         PR tree-optimization/20009
2223         * convert.c (convert_to_integer): Revert 2005-02-16 change.
2224
2225         PR tree-optimization/18947
2226         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
2227         inline, remove all nodes that are inlined into the extern inline
2228         being redefined.
2229
2230 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
2231
2232         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
2233         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
2234         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
2235         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
2236         Update copyright.
2237
2238 2005-02-17  Roger Sayle  <roger@eyesopen.com>
2239
2240         PR tree-optimization/19917
2241         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
2242         to be potentially trapping.
2243
2244 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
2245
2246         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
2247
2248 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2249
2250         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
2251         tem becomes a local variable which is set to the value of the
2252         back end defined INITIAL_FRAME_ADDRESS macro.
2253         (expand_builtin_frame_address): Omit the base parameter to
2254         expand_builtin_return_addr.
2255         (expand_builtin_profile_func): Likewise.
2256         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
2257         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
2258         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
2259
2260 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
2261
2262         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
2263         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
2264         * config/frv/frv.c (frv_function_epilogue): Likewise.
2265
2266 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
2267
2268         * lambda-code (perfect_nestify): Remove mark/unmark
2269         for rewriting hack.
2270         * tree-loop-linear.c (linear_transform_loops): Add
2271         rewrite_into_ssa call so that ssa is correct for
2272         rewriting into loop closed.
2273
2274 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
2275
2276         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
2277         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
2278         BITMAP_FREE.
2279         * bt-load.c (btr_def_live_range, combine_btr_defs,
2280         migrate_btr_def, migrate_btr_defs): Likewise.
2281         * cfgcleanup.c (thread_jump): Likewise.
2282         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
2283         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
2284         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
2285         df_rd_local_compute, df_reg_info_compute): Likewise.
2286         * dominance.c (init_dom_info, free_dom_info): Likewise.
2287         * flow.c (init_propagate_block_info,
2288         free_propagate_block_info): Likewise.
2289         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
2290         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
2291         modify_reg_pav): Likewise.
2292         * loop-invariant.c (find_defs, find_invariant_insn,
2293         find_invariants, free_inv_motion_data): Likewise.
2294         * predict.c (tree_predict_by_opcode,
2295         estimate_bb_frequencies): Likewise.
2296         * stmt.c (expand_case): Likewise.
2297         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
2298         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
2299         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
2300         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
2301         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
2302         rewrite_ssa_into_ssa): Likewise.
2303         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2304         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
2305         analyze_edges_for_bb, perform_edge_inserts): Likewise.
2306         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
2307         * tree-sra.c (tree_sra): Likewise.
2308         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
2309         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
2310         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
2311         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2312         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
2313         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
2314         Likewise.
2315         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
2316         calculate_live_on_entry, calculate_live_on_exit,
2317         build_tree_conflict_graph): Likewise.
2318         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
2319         record_important_candidates, set_use_iv_cost, find_depends,
2320         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
2321         tree_ssa_iv_optimize_finalize): Likewise.
2322         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
2323         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
2324         tree_duplicate_loop_to_header_edge): Likewise.
2325         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
2326         * tree-ssa.c (verify_flow_insensitive_alias_info,
2327         verify_name_tags, verify_ssa, init_tree_ssa,
2328         delete_tree_ssa): Likewise.
2329         * tree-ssanames.c (marked_ssa_names, init_ssanames,
2330         fini_ssanames): Likewise.
2331         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
2332
2333 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
2334
2335         * config/rs6000/t-rtems: Completely reworked.
2336
2337 2005-02-17  Ira Rosen  <irar@il.ibm.com>
2338
2339         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
2340
2341 2005-02-17  Ira Rosen  <irar@il.ibm.com>
2342
2343         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
2344         POINTER_TYPE_P when checking that type is a pointer.
2345         (vect_get_memtag): Remove.
2346         (vect_address_analysis): Use POINTER_TYPE_P. Call
2347         vect_object_analysis with dummy parameter for memtag.
2348         (vect_object_analysis): Extract memtag (functionality that
2349         used to be in vect_get_memtag and moved here). Fix printings.
2350         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
2351         with correct parameters. Remove call to vect_get_memtag.
2352
2353 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
2354
2355         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
2356         (tree-vectorizer.o): Added missing dependencies.
2357
2358         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
2359         decleration.
2360         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
2361         declaration in tree-vectorizer.c, now has an extern declaration in
2362         tree-vectorizer.h).
2363         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2364         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
2365         get_vectype_for_scalar_type, vect_is_simple_use,
2366         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
2367         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
2368         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
2369         vectorizable_store, vectorizable_operation, vectorizable_assignment,
2370         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
2371         find_loop_location): Likewise.
2372
2373         * tree-vectorizer.c (langhooks.h): #include removed.
2374         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
2375         moved to tree-vectorized.h.
2376         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
2377         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
2378         get_vectype_for_scalar_type, vect_is_simple_use,
2379         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
2380         vect_supportable_dr_alignment, new_loop_vec_info,
2381         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
2382         vect_set_verbosity_level, find_loop_location): Likewise.
2383
2384         (vect_analyze_loop): Function externalized. Declaration moved to
2385         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
2386         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
2387         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
2388         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
2389         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
2390         vect_enhance_data_refs_alignment, vect_analyze_operations,
2391         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
2392         vect_stmt_relevant_p, vect_get_loop_niters,
2393         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
2394         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
2395         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
2396         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
2397         vect_get_memtag): Likewise.
2398
2399         (vectorizable_load): Function externalized. Declaration moved to
2400         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
2401         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
2402         vect_transform_loop): Likewise.
2403         (vect_transform_stmt): Moved to tree-vect-transform.c.
2404         (vect_align_data_ref, vect_create_destination_var,
2405         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
2406         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
2407         vect_get_vec_def_for_operand, vect_init_vector,
2408         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
2409         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
2410         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
2411         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
2412         vect_do_peeling_for_loop_bound): Likewise.
2413
2414         * tree-vect-analyze.c: New file.
2415         * tree-vect-transform.c: New file.
2416
2417 2005-02-17  Jason Merrill  <jason@redhat.com>
2418
2419         PR mudflap/19319, c++/19317
2420         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
2421         slot explicit.
2422
2423 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
2424
2425         * doc/install.texi (Specific): Update link for Darwin-specific
2426         tool binary site.
2427
2428 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
2429
2430         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
2431         constant_boolean_node.
2432
2433 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
2434
2435         PR target/19019
2436         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
2437         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
2438
2439 2005-02-16  Richard Henderson  <rth@redhat.com>
2440
2441         PR 19920
2442         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
2443         with W_TYPE_SIZE.
2444         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
2445         replace uses with Wtype_MAXp1_F.
2446         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
2447         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
2448         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
2449         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
2450         and HAVE_TFMODE as appropriate.
2451         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
2452         (__floatdisf): Likewise.
2453         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
2454         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
2455         (Wtype_MAXp1_F): New.
2456         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
2457         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
2458
2459 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
2460
2461         * PR target/19162
2462         * arm.c (arm_apply_result_size): New function.
2463         * arm.h (APPLY_RESULT_SIZE): Define.
2464         * arm-protos.h (arm_apply_result_size): Add prototype.
2465         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
2466         (movxf): New expand.
2467         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
2468         (call_value_symbol): Remove predicate for operand 0.
2469         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
2470         (untyped_call): Rework to correclty return values for any type.
2471         (untyped_return): New expand.
2472         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
2473
2474 2005-02-16  Stan Shebs  <shebs@apple.com>
2475
2476         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
2477         * config/rs6000/t-darwin8: New, for 64-bit multilib.
2478
2479 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
2480
2481         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
2482         configure settings on Solaris 7 and later.
2483
2484 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
2485
2486         PR tree-optimization/19865
2487         * tree-optimize.c (init_tree_optimization_passes): Run
2488         pass_may_alias after pass_sra.
2489
2490 2005-02-16  Richard Henderson  <rth@redhat.com>
2491             Stuart Hastings  <stuart@apple.com>
2492
2493         PR debug/19521
2494         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
2495         Do nothing if debug info suppressed for this function.
2496         (dbxout_begin_function): Early exit if debug info suppressed for
2497         this function.
2498
2499 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
2500
2501         PR target/20007
2502         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
2503         find_basic_blocks.
2504         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2505
2506         PR tree-optimization/19967
2507         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
2508         expand_builtin_strchr, expand_builtin_strrchr): Take a new
2509         argument TYPE.  Adjust calls to fold_builtin_XXX.
2510         (expand_builtin, fold_builtin_1): Adjust calls to
2511         expand_builtin_XXX.
2512         (fold_builtin_strchr, fold_builtin_strpbrk,
2513         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
2514         result to a requested type TYPE.
2515
2516 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
2517
2518         PR middle-end/19857
2519         * fold-const.c (fold): Don't optimize (T)(x & cst) to
2520         (T)x & (T)cst if (T)cst overflows.
2521         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
2522         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
2523
2524 2005-02-15  Jeff Law  <law@redhat.com>
2525
2526         * gcse.c (blocks_with_calls): New bitmap.
2527         (alloc_gcse_mem): Allocate it.
2528         (free_gcse_mem): Free it.
2529         (clear_modifY_mem_tables): Clear it.
2530         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
2531         when we encounter CALL_INSNs.
2532         (compute_transp, case MEM): Handle blocks with calls separate
2533         from blocks without calls.  Use bitmap iterators rather than
2534         FOR_EACH_BB.
2535
2536 2005-02-15  Peter O'Gorman  <peter@pogma.com>
2537
2538         PR bootstrap/18810
2539         * mklibgcc.in (vis_hide): Use a temporary object file, not
2540         -o /dev/null.
2541
2542 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2543
2544         PR target/19924
2545         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
2546         access optimization.
2547
2548 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
2549             Alan Modra  <amodra@bigpond.net.au>
2550
2551         PR target/19019
2552         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
2553         (_xlqsub): Rename to __gcc_qsub.
2554         (_xlqmul): Rename to __gcc_qmul.
2555         (_xlqdiv): Rename to __gcc_qdiv.
2556         Provide versioned symbol aliases with old names.
2557         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
2558         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
2559         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
2560         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
2561         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
2562
2563 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2564
2565         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
2566         Fold ~(A - 1) and ~(A + -1) to -A.
2567
2568 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2569
2570         PR pch/14940
2571         PR target/19300
2572         * config/host-linux.c (linux_gt_pch_use_address): Copy from
2573         config/pa/pa-host.c:pa_gt_pch_use_address.
2574
2575 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
2576
2577         * tree-vn.c (get_value_handle): Make sure that given an
2578         is_gimple_min_invariant expression, we always return it.
2579
2580 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2581
2582         * passes.c (rest_of_handle_gcse): Fix a comment.
2583
2584 2005-02-15  Jeff Law  <law@redhat.com>
2585
2586         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
2587         bitmap.
2588         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
2589         (canon_list_insert, record_last_mem_set_info): Similarly.
2590         (clear_modify_mem_tables): Similarly.
2591
2592 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2593
2594         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
2595         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
2596         config/mips/mips.md, config/rs6000/aix.h,
2597         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
2598
2599 2005-02-15  Richard Henderson  <rth@redhat.com>
2600
2601         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
2602         call to be best_edge.
2603
2604 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2605
2606         * basic-block.h: Adjust the prototype for find_basic_blocks.
2607         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
2608         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
2609         find_basic_blocks.
2610
2611         * flow.c (recompute_reg_usage): Remove all arguments.
2612         * passes.c (rest_of_compilation): Adjust the call to
2613         recompute_reg_usage.
2614         * rtl.h: Adjust the prototype for recompute_reg_usage.
2615
2616 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
2617
2618         * tree-dump.c (dump_files): Update to reflect new member
2619         of dump_file_info.
2620         (dump_register): Add new argument.
2621         Set glob name.
2622         (dump_switch_p_1): Check against glob name if doglob was passed.
2623         (dump_switch_p): Check against regular first, then glob if
2624         we didn't have any hits on the dump name.
2625         * tree-optimize.c (register_one_dump_file):
2626         Pass in glob name as well.
2627         * tree-pass.h (struct dump_file_info): Add glob
2628         member.
2629
2630 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
2631
2632         PR preprocessor/16323
2633         * doc/invoke.texi: Document that -Wendif-labels is on by default.
2634
2635 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
2636
2637         PR target/19019
2638         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
2639         (trunctfdf2_internal1): New.
2640         (trunctfdf2_internal2): Renamed from trunctfdf2.
2641
2642 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
2643
2644         PR tree-optimization/19853
2645         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
2646
2647 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2648
2649         * passes.c (rest_of_handle_loop_optimize): Remove calls to
2650         delete_dead_jumptables and cleanup_cfg.
2651
2652 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
2653
2654         * reload.c (find_reloads): Swap address_reloaded flags when
2655         swapping commutative operands.
2656
2657 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
2658
2659         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
2660         Use standard_iv_increment_position for computing the bsi position
2661         for create_iv.
2662         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
2663         the bsi position.
2664
2665 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
2666
2667         PR target/17428
2668         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
2669         life range of hard registers.
2670         * value-prof.c (insn_prefetch_values_to_profile): Only
2671         scan normal insns.
2672
2673         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
2674         profile in libcalls.
2675
2676 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
2677
2678         * bitmap.h (bitmap_and_compl_into): Return bool.
2679         * bitmap.c (bitmap_and_compl_into): Return changed flag.
2680
2681 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2682
2683         PR tree-optimization/19944
2684         * fold-const.c (fold): Re-add ABS_EXPR folding.
2685
2686 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
2687
2688         PR target/19019
2689         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
2690         {TARGET,MASK}_XL_COMPAT.
2691         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
2692         MASK_XL_COMPAT.
2693         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
2694         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
2695         TARGET_XL_COMPAT.
2696         (rs6000_arg_partial_bytes): Same.
2697         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
2698         and XL compatibility enabled.
2699         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
2700         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
2701         test to final condition.
2702         (cmptf_internal2): New.
2703         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
2704         xl-compat.  Add TFmode information to description.
2705
2706 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
2707
2708         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
2709
2710 2005-02-13  Jason Merrill  <jason@redhat.com>
2711
2712         PR c++/16405
2713         * fold-const.c (fold_indirect_ref_1): Split out from...
2714         (build_fold_indirect_ref): Here.
2715         (fold_indirect_ref): New fn.
2716         * tree.h: Declare it.
2717         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
2718         (gimplify_modify_expr_rhs): Likewise.
2719         (gimplify_expr): Likewise.
2720
2721 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2722
2723         PR tree-optimization/14303
2724         PR tree-optimization/15784
2725         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
2726         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
2727         ABS_EXPR<x> != 0 to x != 0.
2728
2729 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
2730
2731         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
2732         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
2733         spelling conventions.
2734
2735         * passes.c (rest_of_handle_gcse): Don't run cse_main and
2736         delete_trivially_dead_insns too many times.
2737
2738         * passes.c (rest_of_handle_gcse): Remove dead assignments to
2739         tem and tem2.
2740
2741 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2742
2743         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
2744         (vect_is_simple_iv_evolution): Remove redundant parameter
2745         and step check.
2746         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
2747         without last parameter.
2748         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
2749         Return pointer step. Call vect_is_simple_iv_evolution without
2750         last parameter. Check only that the step is multiple of size
2751         type. Remove stmt_vinfo updates.
2752         (vect_get_memtag_and_dr): Remove.
2753         (vect_get_memtag): New function.
2754         (vect_address_analysis): New function.
2755         (vect_object_analysis): New function.
2756         (vect_analyze_data_refs): Call vect_object_analysis and
2757         vect_get_memtag. Update stmt_vinfo fields.
2758
2759 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2760
2761         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
2762         exist and are objects. Remove checks for pointer.
2763         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
2764         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
2765         (vect_create_data_ref_ptr): Likewise.
2766         (vect_base_addr_differ_p): New function.
2767         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
2768         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
2769         Don't set the DR_BASE_NAME field of data-ref.
2770         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
2771
2772 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
2773
2774         * optabs.h (enum optab_index): Add new OTI_ldexp.
2775         (ldexp_optab): Define corresponding macro.
2776         * optabs.c (init_optabs): Initialize ldexp_optab.
2777         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
2778         patterns.
2779         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
2780         using ldexp_optab.
2781         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
2782         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
2783
2784         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
2785         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
2786         intrinsics.
2787
2788 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2789
2790         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
2791         to base_address.
2792         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
2793         stmt_vec_info.
2794         (vect_get_base_and_offset): Always return an address.
2795         (vect_create_addr_base_for_vector_ref): Remove treatment for
2796         different data reference types.
2797         (vect_compute_data_ref_alignment): Rename base to base_address in
2798         stmt_vec_info. Get the object in order to force its alignment.
2799         (vect_get_memtag_and_dr): Rename base to base_address in
2800         stmt_vec_info. Extract the object for memtag analysis.
2801
2802 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
2803
2804         PR regression/19898.
2805         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
2806         changes cc_status, use apply modified_in_p to part of cc_status
2807         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
2808         body.
2809
2810 2005-02-11  Richard Henderson  <rth@redhat.com>
2811
2812         * tree-complex.c (expand_complex_libcall): New.
2813         (expand_complex_multiplication): Use it for c99 compliance.
2814         (expand_complex_division): Likewise.
2815         * fold-const.c (fold_complex_add, fold_complex_mult): New.
2816         (fold): Call them.
2817         * builtins.c (built_in_names): Remove const.
2818         * tree.c (build_common_builtin_nodes): Build complex arithmetic
2819         builtins.
2820         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
2821         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
2822         (built_in_names): Remove const.
2823         * c-common.c (c_common_type_for_mode): Handle complex modes.
2824         * flags.h, toplev.c (flag_complex_method): Rename from
2825         flag_complex_divide_method.
2826         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
2827         __mulsc3, __muldc3, __mulxc3, __multc3): New.
2828         * libgcc2.h: Declare them.
2829         * libgcc-std.ver: Export them.
2830         * mklibgcc.in (lib2funcs): Build them.
2831
2832 2005-02-11  Steven Bosscher  <stevenb@suse.de>
2833
2834         PR tree-optimization/19876
2835         Partially revert my change from 2005-01-14
2836         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
2837         (compute_antic): ...and remove the loop here.
2838
2839 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
2840
2841         PR middle-end/19858
2842         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
2843         is number of inner's bits, avoid creating a BIT_FIELD_REF.
2844
2845         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
2846         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
2847
2848 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
2849
2850         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
2851         offsets for the big-endian 32-bit case.
2852
2853 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
2854
2855         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2856
2857 2005-02-11  Dale Johannesen  <dalej@apple.com>
2858
2859         * cselib.c (cselib_process_insn):  Clear out regs where
2860         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
2861         * reload.c (find_equiv_reg): Ditto.
2862
2863 2005-02-11  Ian Lance Taylor  <ian@airs.com>
2864
2865         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
2866         with no elements.
2867
2868         * tree.c (build_function_type_list): Work correctly if there are
2869         no arguments.
2870
2871 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
2872
2873         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
2874         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
2875         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
2876         TARGET_ZARCH instead of TARGET_64BIT.
2877
2878 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
2879
2880         * config/rs6000/t-rtems:
2881         (MULTILIB_OPTIONS): Remove mcpu=602.
2882         (MUTLILIB_DIRNAMES): Remove m602.
2883         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
2884         Let mcpu=602 match mcpu=603.
2885         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
2886
2887 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2888
2889         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
2890         signal trampolines.
2891
2892 2005-02-10  David Daney  <ddaney@avtrex.com>
2893
2894         * config/alpha/linux-unwind.h: Add exception clause to copyright.
2895         * config/i386/linux-unwind.h: Likewise.
2896         * config/ia64/linux-unwind.h: Likewise.
2897         * config/mips/linux-unwind.h: Likewise.
2898         * config/pa/linux-unwind.h: Likewise.
2899         * config/rs6000/linux-unwind.h: Likewise.
2900         * config/s390/linux-unwind.h: Likewise.
2901         * config/sh/linux-unwind.h: Likewise.
2902         * config/sparc/linux-unwind.h: Likewise.
2903
2904 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2905
2906         PR tree-optimization/17549
2907         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
2908         TER to replace a DEF with its expression if the DEF and the
2909         rhs of the expression we replace into have the same root
2910         variable.
2911
2912 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
2913
2914         * config/mips/mips.md: Fix the placement of the match_scratch in the
2915         lea64 peephole2.
2916
2917 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2918
2919         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
2920         Fix comment typos.
2921
2922 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
2923
2924         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
2925         (strip_offset): Handle addresses.
2926         (add_address_candidates): Use strip_offset.
2927         (difference_cost): Reflect strip_offset change.
2928         (force_var_cost, difference_cost): Strip nops.
2929
2930 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2931
2932         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
2933
2934         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
2935         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
2936         config/cris/cris-protos.h, config/cris/cris.c: Update
2937         copyright.
2938
2939 2005-02-10  Jeff Law  <law@redhat.com>
2940
2941         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
2942         (lookup_avail_expr): Similarly.
2943
2944 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
2945
2946         * builtins.c (fold_builtin_powi): New function.
2947         (fold_builtin_1): Call it.
2948
2949 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2950
2951         PR documentation/19309
2952         * doc/cpp.texi: The __GNUC__ and related predefined macros
2953         are also defined for the "standalone" cpp.
2954         Some non-GCC compilers may also define __GNUC__.
2955
2956 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
2957
2958         PR c/19342
2959         * c-typeck.c (common_type): New routine.  Old common_type renamed
2960         to...
2961         (c_common_type): ...this.
2962         (build_conditional_expr, build_binary_op): Use c_common_type instead
2963         of common_type.
2964
2965 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2966
2967         * doc/md.texi: Replace @samp{length} with @code{length}.
2968
2969 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
2970
2971         PR tree-optimization/18687
2972         * tree-flow.h (find_loop_niter): Declare.
2973         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2974         Try using scev even for loops with more than one exit.
2975         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
2976         (struct ivopts_data): Added niters field.
2977         (struct nfe_cache_elt): New.
2978         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
2979         functions.
2980         (tree_ssa_iv_optimize_init): Initialize niters cache.
2981         (determine_number_of_iterations): Removed.
2982         (find_induction_variables): Do not call determine_number_of_iterations.
2983         Access niters for single exit through niter_for_single_dom_exit.
2984         (add_iv_outer_candidates): Access niters for single exit through
2985         niter_for_single_dom_exit.
2986         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
2987         number_of_iterations_cond.
2988         (iv_period): New function.
2989         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
2990         (may_replace_final_value): Take data argument.  Use
2991         niter_for_single_dom_exit.
2992         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
2993         (rewrite_use_compare): Pass data to may_eliminate_iv.
2994         (rewrite_use_outer): Pass data to may_replace_final_value.
2995         (free_loop_data): Clean up the niters cache.
2996         (tree_ssa_iv_optimize_finalize): Free the niters cache.
2997         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
2998         * tree-ssa-loop-niter.c (find_loop_niter): New function.
2999         (find_loop_niter_by_eval): Use tree_int_cst_lt.
3000         (num_ending_zeros): Moved to tree.c.
3001         * tree.h (num_ending_zeros): Declare.
3002         * tree.c (num_ending_zeros): Moved from tree.c.
3003
3004 2005-02-09  Richard Henderson  <rth@redhat.com>
3005
3006         * builtins.c (DEF_BUILTIN): Add COND argument.
3007         * tree.h (DEF_BUILTIN): Likewise.
3008         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
3009         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
3010         match.
3011         (DEF_BUILTIN_STUB): New.
3012         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
3013         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
3014         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
3015         * c-common.c (DEF_BUILTIN): Add COND argument.
3016         * tree.c (local_define_builtin): New.
3017         (build_common_builtin_nodes): New.
3018
3019 2005-02-09  Roger Sayle  <roger@eyesopen.com>
3020
3021         * fold-const.c (fold_strip_sign_ops): New function to simplify a
3022         floating point expression ignoring the sign of the result.
3023         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
3024         (fold) <MULT_EXPR>: Use it to simplify x*x.
3025         * tree.h (fold_strip_sign_ops): Prototype here.
3026         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
3027         argument.  Use fold_strip_sign_ops to simplify the first argument.
3028         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
3029         first argument when the second argument is an even integer
3030         constant, but only with -funsafe_math_optimizations.
3031         (fold_builtin_1): Update call to fold_builtin_copysign.
3032
3033 2005-02-09  Ian Lance Taylor  <ian@airs.com>
3034
3035         PR middle-end/19583
3036         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
3037         just check whether EH_FILTER_FAILURE falls through.
3038
3039 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
3040
3041         * gcc/haifa-sched.c (schedule_block): Make queued sched group
3042         insns return to ready list in the next turn.
3043
3044 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
3045
3046         PR middle-end/19402
3047         * builtins.def: New __builtin_powi[lf].
3048         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
3049         (expand_builtin_powi): New function.
3050         (expand_builtin): Dispatch to expand_builtin_powi.
3051         * libgcc2.h: Add prototypes for __builtin_powi[lf].
3052         * libgcc2.c: Add __builtin_powi[lf] implementation.
3053         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
3054         * optabs.h: Add powi_optab.
3055         * optabs.c (init_optabs): Initialize powi_optab.
3056         * doc/extend.texi: Document __builtin_powi[lf].
3057
3058 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
3059
3060         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
3061         exists.
3062
3063 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
3064
3065         PR middle-end/19854
3066         * fold-const.c (try_move_mult_to_index): Remove redundant
3067         type argument.  Create ADDR_EXPR with correct type.
3068         (fold): Update callers of try_move_mult_to_index.  Convert
3069         result to the appropriate type.
3070
3071 2005-02-09  Roger Sayle  <roger@eyesopen.com>
3072
3073         PR target/19597
3074         * config/avr/avr.c (default_rtx_costs): Delete.
3075         (avr_operand_rtx_cost): New function.
3076         (avr_rtx_costs): Completely rewrite.
3077
3078 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
3079
3080         PR target/19806
3081         * config/cris/cris.c (in_code): New variable.
3082         (cris_output_addr_const): Now a static function, a wrapper for
3083         output_addr_const.
3084         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
3085         case from old cris_output_addr_const.
3086         (cris_asm_output_label_ref): Similar for LABEL_REF.
3087         (cris_output_addr_const_extra): Similar for UNSPEC.
3088         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
3089         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
3090         * config/cris/cris-protos.h (cris_output_addr_const): Remove
3091         declaration.
3092         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
3093         (cris_asm_output_label_ref): Declare.
3094
3095 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
3096
3097         PR preprocessor/19801
3098         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
3099         filenames that changed when libcpp was moved to the toplevel.
3100
3101 2005-02-07  Roger Sayle  <roger@eyesopen.com>
3102
3103         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
3104         zero extensions of BImode operands.  Call lowpart_subreg instead
3105         of gen_lowpart_common and gen_lowpart_SUBREG.
3106
3107 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
3108
3109         PR ada/19489
3110         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
3111         * configure.ac: Set cc_for_cross_gnattools.
3112         * configure: Regenerate.
3113
3114 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
3115
3116         PR target/19803
3117         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
3118
3119 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3120
3121         PR debug/19327
3122         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
3123         of nested functions.
3124
3125 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
3126
3127         * doc/extend.texi: Document deprecated extensions allowing
3128         static floating-point members to have initializers and allowing
3129         floating-point literals in integral constant expressions.
3130
3131 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
3132
3133         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
3134         config/darwin7.h, config/mips/mips.c,
3135         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
3136         Update copyright.
3137
3138         * cse.c: Update comments.
3139
3140 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
3141
3142         PR middle-end/19775
3143         * builtins.c (fold_builtin_sqrt): Transform
3144         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
3145         pow(x,y*0.5).
3146
3147 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
3148             Dorit Naishlos  <dorit@il.ibm.com>
3149
3150         * doc/invoke.texi (ftree-vectorizer-verbose): New.
3151         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
3152         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
3153         was added.
3154         * tree.h (vect_set_verbosity_level): New extern function declaration
3155         added.
3156         * tree-vectorizer.h (verbosity_levels): New enum type.
3157         * tree-vectorizer.c (vect_debug_stats): Function removed.
3158         (vect_debug_details): Likewise.
3159         (vect_verbosity_level): Global variable was defined and initialized.
3160         (vect_dump): Global variable definition.
3161         (vect_print_dump_info): New function.
3162         (vect_set_dump_settings): New function.
3163         (vect_set_verbosity_level): New function.
3164         (vectorize_loops): Add call to vect_set_dump_settings.
3165
3166         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
3167         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
3168         (slpeel_tree_peel_loop_to_edge): Likewise.
3169
3170         (vect_analyze_offset_expr): Call to vect_print_dump_info with
3171         appropriate verbosity level instead of call to vect_debug_details
3172         or vect_debug_stats.
3173         (vect_get_base_and_offset):
3174         (vect_create_addr_base_for_vector_ref):
3175         (get_vectype_for_scalar_type):
3176         (vect_create_data_ref_ptr):
3177         (vect_init_vector):
3178         (vect_get_vec_def_for_operand):
3179         (vect_finish_stmt_generation):
3180         (vectorizable_assignment):
3181         (vectorizable_operation):
3182         (vectorizable_store):
3183         (vectorizable_load):
3184         (vect_transform_stmt):
3185         (vect_update_ivs_after_vectorizer):
3186         (vect_do_peeling_for_loop_bound):
3187         (vect_update_inits_of_drs):
3188         (vect_do_peeling_for_alignment):
3189         (vect_transform_loop):
3190         (vect_is_simple_use):
3191         (vect_analyze_operations):
3192         (vect_is_simple_iv_evolution):
3193         (vect_analyze_scalar_cycles):
3194         (vect_analyze_data_ref_dependence):
3195         (vect_analyze_data_ref_dependences):
3196         (vect_compute_data_ref_alignment):
3197         (vect_enhance_data_refs_alignment):
3198         (vect_analyze_data_refs_alignment):
3199         (vect_analyze_data_ref_access):
3200         (vect_analyze_data_ref_accesses):
3201         (vect_analyze_pointer_ref_access):
3202         (vect_get_memtag_and_dr):
3203         (vect_analyze_data_refs):
3204         (vect_mark_relevant):
3205         (vect_stmt_relevant_p):
3206         (vect_mark_stmts_to_be_vectorized):
3207         (vect_can_advance_ivs_p):
3208         (vect_get_loop_niters):
3209         (vect_analyze_loop_form):
3210         (vect_analyze_loop):
3211         (vectorize_loops): Likewise.
3212
3213         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
3214         (vect_update_inits_of_drs):
3215         (vect_do_peeling_for_alignment):
3216         (vect_transform_loop):
3217         (vect_analyze_operations):
3218         (vect_analyze_scalar_cycles):
3219         (vect_analyze_data_ref_dependences):
3220         (vect_analyze_data_refs_alignment):
3221         (vect_analyze_data_ref_accesses):
3222         (vect_analyze_data_refs):
3223         (vect_mark_stmts_to_be_vectorized):
3224         (vect_get_loop_niters):
3225         (vect_analyze_loop_form):
3226         (vect_analyze_loop): Likewise.
3227         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
3228
3229 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
3230
3231         PR bootstrap/19796
3232         Revert:
3233         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
3234         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
3235         either -ffast-math or -funsafe-math-optimizations is in use.
3236
3237         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
3238         * config/mips/irix-csr.c: New file.
3239         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3240         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3241         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3242         executables.
3243
3244 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
3245
3246         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
3247         redundant, incorrect definitions.
3248
3249         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
3250         expand.
3251         ("*tls_indirect_call"): New, reference hard regs directly.
3252         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
3253
3254 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
3255
3256         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
3257         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
3258
3259 2005-02-06  Roger Sayle  <roger@eyesopen.com>
3260
3261         PR rtl-optimization/19800
3262         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
3263         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
3264         gen_lowpart.
3265
3266 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
3267
3268         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
3269
3270 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
3271
3272         PR other/17135
3273         * doc/invoke.texi: Correct documentation of -freorder-functions.
3274
3275 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3276
3277         PR other/14402
3278         * doc/invoke.texi: Don't mention gccbug.
3279
3280 2005-02-06  Roger Sayle  <roger@eyesopen.com>
3281             Andrew Pinski  <pinskia@physics.uc.edu>
3282             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
3283
3284         * simplify-rtx.c (simplify_relational_operation_1): Simplify
3285         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
3286         into just (zero_extract:SI FOO (const_int 1) BAR).
3287
3288 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3289
3290         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
3291         macro locally.  Don't give last revision date.  Use GCC version
3292         number from gcc-common.texi.
3293         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
3294         revision date.  Use GCC version number from gcc-common.texi.
3295         Describe being a library as current state rather than as 3.x
3296         history.
3297         * doc/gcc.texi: Remove last update date.
3298         * doc/gccint.texi: Likewise.  Update copyright dates.
3299         * doc/install.texi: Update copyright dates.
3300
3301 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
3302
3303         PR other/7549
3304         * doc/invoke.texi: Mention for each option included in -Wall that
3305         it is included in -Wall.
3306         * doc/gcc.texi: Update copyright and last modification date.
3307
3308 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
3309
3310         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
3311         unnecessary cast to original induction variable increments.
3312
3313 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
3314
3315         PR tree-optimization/18219
3316         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
3317         in distributed form.
3318
3319 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
3320
3321         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
3322         Set bitpos and offset later in the function.  Do nothing if the
3323         target is a register and if the bitfield lies completely outside
3324         that register.
3325         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
3326         here.  Return an uninitialised register if the source value is stored
3327         in a register and the bitfield lies completely outside that register.
3328
3329 2005-02-06  Steven Bosscher  <stevenb@suse.de>
3330
3331         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
3332         not SET_DEST.
3333
3334 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
3335
3336         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
3337
3338 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
3339
3340         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
3341         * config/darwin8.h: New.
3342         * config/darwin7.h: Update comment.
3343
3344 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
3345             Dorit Naishlos  <dorit@il.ibm.com>
3346
3347         * tree-vectorizer.h (LOC): New type.
3348         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
3349         (loop_line_number): New field in struct _loop_vec_info.
3350         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
3351
3352         * tree-vectorizer.c (input.h): Included.
3353         (find_loop_location): New function.
3354         (vect_debug_stats): Argument changed from loop to LOC. Computation of
3355         loop line number removed.
3356         (vect_debug_details): Likewise.
3357         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
3358
3359         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
3360         call to vect_debug_details/stats changed from loop to loop_loc.
3361         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
3362         (slpeel_tree_peel_loop_to_edge): Likewise.
3363
3364         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
3365         changed from NULL to UNKNOWN_LOC.
3366         (vect_get_base_and_offset):
3367         (vect_create_addr_base_for_vector_ref):
3368         (get_vectype_for_scalar_type):
3369         (vect_create_data_ref_ptr):
3370         (vect_init_vector):
3371         (vect_get_vec_def_for_operand):
3372         (vect_finish_stmt_generation):
3373         (vectorizable_assignment):
3374         (vectorizable_operation):
3375         (vectorizable_store):
3376         (vectorizable_load):
3377         (vect_transform_stmt):
3378         (vect_update_ivs_after_vectorizer):
3379         (vect_do_peeling_for_loop_bound):
3380         (vect_do_peeling_for_alignment):
3381         (vect_transform_loop):
3382         (vect_is_simple_use):
3383         (vect_analyze_operations):
3384         (vect_is_simple_iv_evolution):
3385         (vect_analyze_scalar_cycles):
3386         (vect_analyze_data_ref_dependences):
3387         (vect_compute_data_ref_alignment):
3388         (vect_enhance_data_refs_alignment):
3389         (vect_analyze_data_ref_access):
3390         (vect_analyze_data_ref_accesses):
3391         (vect_analyze_pointer_ref_access):
3392         (vect_get_memtag_and_dr):
3393         (vect_analyze_data_refs):
3394         (vect_mark_relevant):
3395         (vect_stmt_relevant_p):
3396         (vect_mark_stmts_to_be_vectorized):
3397         (vect_can_advance_ivs_p):
3398         (vect_get_loop_niters):
3399         (vect_analyze_loop):
3400         (vectorize_loops): Likewise.
3401
3402         (vectorizable_load): Argument in call to vect_debug_details/stats
3403         changed from loop to LOOP_LOC (loop_vinfo).
3404         (vect_transform_loop):
3405         (vect_analyze_operations):
3406         (vect_analyze_scalar_cycles):
3407         (vect_analyze_data_ref_dependence):
3408         (vect_enhance_data_refs_alignment):
3409         (vect_analyze_data_ref_accesses):
3410         (vect_analyze_pointer_ref_access):
3411         (vect_analyze_data_refs):
3412         (vect_analyze_loop): Likewise.
3413
3414         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
3415         changed from loop to loop_loc.
3416
3417         (vect_enhance_data_refs_alignment): Removed unused variable loop.
3418
3419 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
3420             Dorit Naishlos  <dorit@il.ibm.com>
3421
3422         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
3423         declaration added.
3424         (vect_analyze_data_ref_dependences): Likewise.
3425
3426         (vect_is_simple_use): Argument changed from loop structure to
3427         loop_vect_info structure.
3428         (vect_can_advance_ivs_p): Likewise.
3429         (vect_create_index_for_vector_ref): Likewise.
3430         (vect_update_ivs_after_vectorizer): Likewise.
3431         (new_stmt_vec_info): Likewise.
3432
3433         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
3434         changed from loop to loop_vinfo.
3435         (vect_create_data_ref_ptr): First argument in call to
3436         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
3437         (vectorizable_assignment): Second argument in call to vect_is_simple_use
3438         was changed from loop to loop_vinfo.
3439         (vectorizable_operation): Likewise.
3440         (vectorizable_store): Likewise.
3441         (vect_mark_stmts_to_be_vectorized): Likewise.
3442         (vect_do_peeling_for_loop_bound): First argument in call to
3443         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
3444         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
3445         was changed from loop to loop_vinfo.
3446         (vect_analyze_data_ref_dependences): Third argument in call to
3447         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
3448
3449         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
3450         (vect_create_data_ref_ptr): Likewise.
3451         (vect_init_vector): Likewise.
3452         (vect_get_vec_def_for_operand): Likewise.
3453         (vectorizable_assignment): Likewise.
3454         (vectorizable_operation): Likewise.
3455         (vectorizable_store): Likewise.
3456         (vectorizable_load): Likewise.
3457         (vect_update_ivs_after_vectorizer): Likewise.
3458         (vect_is_simple_use): Likewise.
3459         (vect_analyze_data_ref_dependence): Likewise.
3460         (vect_analyze_pointer_ref_access): Likewise.
3461         (vect_can_advance_ivs_p): Likewise.
3462
3463         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
3464         before _stmt_vec_info.
3465         (_stmt_vec_info): Loop field replaced by loop_vec_info.
3466         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
3467         (new_stmt_vec_info): Argument changed from loop structure to
3468         loop_vect_info structure
3469
3470         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
3471         (vect_analyze_offset_expr): Avoid 80 columns overflow.
3472         (vect_create_addr_base_for_vector_ref): Likewise.
3473         (vect_analyze_pointer_ref_access): Likewise.
3474
3475 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
3476
3477         PR tree-opt/19768
3478         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
3479         phi flag if the phi is abnormal.
3480
3481 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
3482
3483         PR tree-opt/19736
3484         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
3485         information for the new statement.
3486
3487 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
3488
3489         PR driver/19117
3490         * gcc.c (main): Include the target in -v output.
3491
3492 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
3493
3494         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
3495         Do not drop the extend if we'd have to add a paradoxical subreg
3496         later.  Include optabs.h and insn-codes.h.
3497         * Makefile.in (combine.o): Depend on $(OPTABS_H).
3498
3499 2005-02-02  Roger Sayle  <roger@eyesopen.com>
3500
3501         PR middle-end/19405
3502         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
3503         * fold-const.c (const_binop): Avoid constant folding floating
3504         point operations in modes that use composite representations.
3505         * simplify-rtx.c (simplify_binary_operation): Likewise.
3506
3507 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
3508
3509         * config/rs6000/altivec.md (altivec_dst): Make the first operand
3510         a REG, not a MEM.
3511         (altivec_dstt): Likewise.
3512         (altivec_dstst): Likewise.
3513         (altivec_dststt): Likewise.
3514         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
3515         of first operand.
3516
3517 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3518
3519         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
3520         EXPR_LOCUS from orig_cond to the new cond_stmt.
3521         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
3522         the new vec_stmt.
3523
3524 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3525
3526         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
3527         standard_iv_increment_position. Remove call to bsi_next
3528         (no need to bump the iterator anymore).
3529         (vect_create_index_for_vector_ref): Call
3530         standard_iv_increment_position. Remove second function argument.
3531         (vect_finish_stmt_generation): Remove call to bsi_next
3532         (no need to bump the iterator anymore).
3533         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
3534         to vect_create_index_for_vector_ref.
3535
3536 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3537
3538         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
3539         phis are used out of the loop.
3540
3541 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
3542
3543         PR c/17807
3544         * c-decl.c (undef_nested_function): New variable.
3545         (pop_scope): Diagnose undefined nested functions.
3546         (finish_function): Don't attempt cgraph processing or genericizing
3547         if current top-level function contained an undefined nested
3548         function.  Reset undef_nested_function at the end of a top-level
3549         function.
3550
3551 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
3552
3553         * tree.c (build_int_cst_type): Take sign of the value into account
3554         when deciding whether sign extend the value.
3555
3556 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3557
3558         PR c/18502
3559         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
3560         (cpp_options, cc1_options): Change %{std*&ansi} to
3561         %{std*&ansi&trigraphs}.
3562
3563 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
3564
3565         * cse.c: Update comments.
3566
3567 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
3568
3569         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
3570         arguments go on the stack.  Do not put complex doubles in odd/even
3571         pairs.
3572
3573 2005-02-02  Steven Bosscher  <stevenb@suse.de>
3574
3575         * doc/invoke.texi: Update the options enabled at -O1, -O2,
3576         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
3577         -ftree-pre, and -fthread-jumps.
3578
3579 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
3580
3581         PR tree-optimization/19578
3582         * tree-flow.h (modified_noreturn_calls): Declare.
3583         (noreturn_call_p): Declare.
3584         * tree-flow-inline.h (noreturn_call_p): New function.
3585         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
3586         * tree-cfg.c (modified_noreturn_calls): New variable.
3587         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
3588         that contain a mid-block noreturn call.
3589         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
3590
3591 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
3592
3593         * df.c (df_def_record_1, df_uses_record): Don't use
3594         DF_FOR_REGALLOC.
3595         * df.h (DF_FOR_REGALLOC): Remove.
3596
3597 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3598
3599         PR c/19435
3600         * c-typeck.c (really_start_incremental_init): Reset
3601         constructor_max_index for arrays of incomplete type.
3602
3603 2005-02-02  Jeff Law  <law@redhat.com>
3604
3605         * gcse.c (struct reg_set): Store the block index where the register
3606         was set rather than the setting insn.
3607         (record_one_set, compute_transp): Corresponding changes.
3608         (pre_insert_copy_insn): Do not call replace_one_set.
3609         (replace_one_set): Remove.
3610
3611 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3612
3613         PR other/15514
3614         * doc/gcov.texi: Fix typo.
3615
3616 2005-02-01  Richard Henderson  <rth@redhat.com
3617
3618         PR target/19680
3619         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
3620         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
3621         type to bool.
3622         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
3623         * config/i386/i386-protos.h: Update.
3624
3625 2005-02-01  Steven Bosscher  <stevenb@suse.de>
3626
3627         PR tree-optimization/19217
3628         * tree-cfg.c (verify_expr): Use the data field to see if TP was
3629         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
3630         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
3631         that it is walking a PHI node.
3632
3633 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
3634
3635         * doc/extend.texi (Nested Functions): Update.
3636
3637 2005-02-01  Richard Henderson  <rth@redhat.com>
3638
3639         PR 19696
3640         * optabs.c (expand_copysign_absneg): Export.
3641         * optabs.h (expand_copysign_absneg): Declare.
3642         * config/rs6000/rs6000.md (copysigntf3): New.
3643
3644 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
3645
3646         PR tree-optimization/19633
3647         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
3648         * tree-ssa-alias.c (init_alias_info): Initialize.
3649         (merge_pointed_to_info): Set.
3650         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
3651         (dump_points_to_info_for): Show value of pt_null.
3652         (struct count_ptr_d): Declare.
3653         (find_ptr_dereference): Remove.
3654         (ptr_is_dereferenced_by): Remove.
3655         (count_ptr_derefs): New local function.
3656         (count_uses_and_derefs): New local function.
3657         (compute_points_to_and_addr_escape): Call it.  If the number
3658         of dereferences is greater than zero, mark the pointer as
3659         dereferenced.  If there are fewer dereferences than uses of
3660         the pointer, the pointer's value escapes.
3661
3662 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
3663
3664         PR tree-optimization/19670
3665         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
3666         here...
3667         (verify_use): ... set it here, instead.
3668
3669 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
3670
3671         * doc/sourcebuild.texi (Test directives): Fix formatting.
3672
3673         * doc/sourcebuild.texi (Test directives): Describe selector
3674         expressions.
3675
3676 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
3677
3678         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
3679         specific 64-bit CPUs.
3680
3681 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
3682
3683         PR target/16201
3684         * arm.c (arm_eliminable_register): New function.
3685         (adjacent_mem_locations): Don't allow eliminable registers.  Use
3686         HOST_WIDE_INT for address offsets.
3687         * arm-protos.h (arm_eliminable_register): Add prototype.
3688
3689 2005-02-01  Steven Bosscher  <stevenb@suse.de>
3690
3691         PR optimization/15242
3692         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
3693         * basic-block.h (duplicate_computed_gotos): Add prototype.
3694         * bb-reorder.c (duplicate_computed_gotos): New function to
3695         duplicate sufficiently small blocks ending in a computed jump.
3696         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
3697         if not optimizing for size.
3698         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
3699         never do tail merging for blocks ending in a computed jump.
3700         * doc/invoke.texi: Document the max-goto-duplication-insns param.
3701
3702 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3703
3704         Patch from Richard Sandiford <rsandifo@redhat.com>
3705         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
3706         from inheriting a subreg equivalence with a non-spill register.
3707
3708         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
3709
3710 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
3711
3712         * config/frv/frv.c (movcc_fp_destination_operand): New.
3713         (gpr_or_memory_operand): Fix typo in comment.
3714         (gpr_or_memory_operand_with_scratch): New.
3715         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
3716         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
3717         movcc_fp_destination_operand.
3718         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
3719         Legitimize memory addresses using a scratch register.
3720
3721 2005-01-31  Jeff Law  <law@redhat.com>
3722
3723         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
3724         bitmap a sparse bitmap instead of a simple bitmap.
3725         (mark_def_sites_initialize_block):  Corresponding changes.
3726         (ssa_mark_def_sites_initialize_block): Likewise.
3727         (ssa_mark_phi_uses): Likewise.
3728         (mark_def_site, ssa_mark_def_sites): Likewise.
3729         (mark_def_site_blocks): Likewise.
3730         (rewrite_ssa_into_ssa): Likewise.
3731
3732         * tree-ssa-dom.c (record_cond): Pass correct variable type
3733         for last argument to htab_find_slot_with_hash.
3734
3735         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
3736         effects when optimizing 0 % X.  Do not try to optimize X % 0.
3737
3738 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
3739
3740         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
3741         1_mmalua.
3742
3743 2005-02-01  Eric Christopher  <echristo@redhat.com>
3744
3745         * config/mips/mips.c (override_options): Warn if -mint64
3746         is used.
3747         * doc/invoke.texi (MIPS Options): Document that -mint64 is
3748         deprecated.
3749
3750 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
3751
3752         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
3753         timestamp.
3754         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
3755         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
3756         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
3757         (cached_regno): Initialize to INVALID_REGNUM.
3758         (cse_reg_info_table_size,
3759         cse_reg_info_table_first_uninitialized,
3760         cse_reg_info_timestamp): New.
3761         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
3762         get_cse_reg_info.
3763         (init_cse_reg_info, get_cse_reg_info_1): New.
3764         (get_cse_reg_info): Cache the last look-up.
3765         (new_basic_block): Update the code to clear mappings from
3766         registers to cse_reg_info entries.
3767         (cse_main): Call init_cse_reg_info.
3768
3769         * cse.c (get_cse_reg_info): Update a comment.
3770
3771 2005-01-31  Steven Bosscher  <stevenb@suse.de>
3772
3773         PR c/19333
3774         * c-decl.c (start_decl): Do not warn about arrays of elements with
3775         an incomplete type here.
3776         (grokdeclarator): Do it here by making a pedwarn an error.
3777         * c-typeck.c (push_init_level): If there were previous errors with
3778         the constructor type, do not warn about braces for initializers.
3779         (process_init_element): Likewise for excess initializer elements.
3780
3781 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
3782
3783         * cse.c (delete_trivially_dead_insn): Don't iterate.
3784
3785 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
3786
3787         * config/rs6000/rs6000.md (copysignsf3): New expand.
3788         (copysigndf3): Likewise.
3789
3790 2005-01-31  Steven Bosscher  <stevenb@suse.de>
3791
3792         * recog.c (constrain_operands): Only look for earlyclobber operand
3793         conflicts if an '&' constraint was seen.
3794
3795 2005-01-31  Marc Espie <espie@openbsd.org>
3796
3797         * config.gcc: Don't include embedded systems fragment, switches default
3798         debugging format to ELF.
3799         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
3800         longer pick it up there.
3801
3802 2005-01-31  Dale Johannesen  <dalej@apple.com>
3803
3804         * doc/extend.texi (nested functions): Fix linkage description.
3805         Clarify that static is not allowed.
3806
3807 2005-01-31  Dale Johannesen  <dalej@apple.com>
3808
3809         * config/rs6000/darwin.md (movsf_low_di):  Make work.
3810         (movdf_low_di):  Make work.
3811
3812 2005-01-31  Dale Johannesen  <dalej@apple.com>
3813
3814         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
3815         Make work for 64 bit.
3816
3817 2005-01-31  Roger Sayle  <roger@eyesopen.com>
3818             Dale Johannesen  <dalej@apple.com>
3819
3820         PR middle-end/19650
3821         * fold-const.c (fold_binary_op_with_conditional_arg):
3822         Make types match original operands, before STRIP_NOPS.
3823
3824 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
3825
3826         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
3827         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
3828         (struct gcc_sigcontext): Delete.  Merge contents to..
3829         (struct gcc_ucontext): ..here.
3830         (get_sigcontext): Delete.
3831         (get_regs): New function, like get_sigcontext but return regs ptr.
3832         64-bit version finds regs from r1 to support vdso.
3833         (ppc_linux_aux_vector): New function.
3834         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
3835         and vector regs.
3836
3837 2005-01-31  Ira Rosen  <irar@il.ibm.com>
3838
3839         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
3840         sizetype.
3841         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
3842         redundant fold. Fix misalignment for MINUS_EXPR.
3843         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
3844         (vect_analyze_pointer_ref_access): Likewise.
3845         (vect_get_memtag_and_dr): Likewise.
3846
3847 2005-01-31  Richard Henderson  <rth@redhat.com>
3848
3849         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
3850         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
3851         absnegdf2_i387, absnegxf2_i387): Likewise.
3852
3853 2005-01-31  Richard Henderson  <rth@redhat.com>
3854
3855         PR 19696
3856         * optabs.c (expand_copysign_absneg): New.
3857         (expand_copysign_bit): Split out from ...
3858         (expand_copysign): ... here.  Use expand_copysign_absneg.
3859
3860 2005-01-30  Roger Sayle  <roger@eyesopen.com>
3861
3862         PR middle-end/19697
3863         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
3864         constant as the second operand and a register as the third.
3865
3866 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
3867
3868         PR target/19704
3869         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
3870         that dllimport'd functions do not use all call-clobbered registers
3871         to pass parameters.
3872
3873 2005-01-30  Richard Henderson  <rth@redhat.com>
3874
3875         PR 19696
3876         * optabs.c (expand_absneg_bit): Split out from expand_unop and
3877         expand_abs_nojump and generalize.  Use operand_subword and
3878         emit_no_conflict_block.  Support large modes.
3879         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
3880         back to maximum.
3881         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
3882         negation to subtraction.
3883         (expand_copysign): Check that the format has signed zeros.
3884         Use operand_subword and emit_no_conflict_block.  Support large modes.
3885
3886 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
3887
3888         Fix PR tree-optimization/19624
3889
3890         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
3891         * tree-ssa-pre.c: Add cfgloop.h.
3892         Update comment.
3893         (pre_stats): New member, constified.
3894         (inserted_exprs): New static variable.
3895         (NECESSARY): New macro.
3896         (create_expression_by_pieces): Fold the expression, and
3897         mark it as defaulting to not necessary. Also put in
3898         inserted_exprs.
3899         (fully_constant_expression): New function.
3900         (insert_into_preds_of_block): Modify to not insert phis when we
3901         are playing with induction variables.
3902         Push phis onto the inserted_exprs vector, and mark them as not
3903         necessary by default.
3904         (insert_aux): Call fully_constant_expression on eprime.
3905         If all edges produce the same value, mark it constant.
3906         (mark_operand_necessary): New function.
3907         (remove_dead_inserted_code): New function.
3908         (init_pre): Init loop optimizer to get loop info.
3909         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
3910         (execute_pre): Commit edge inserts, then remove dead code.
3911
3912 2005-01-30  Richard Henderson  <rth@redhat.com>
3913
3914         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
3915         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
3916
3917 2005-01-30  Richard Henderson  <rth@redhat.com>
3918
3919         PR target/19700
3920         * config/i386/i386.c (ix86_expand_copysign): New.
3921         (ix86_split_copysign_const): New.
3922         (ix86_split_copysign_var): Rename from ix86_split_copysign,
3923         rearrange op1/nmask operands.
3924         * config/i386/i386-protos.h: Update.
3925         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
3926         (copysigndf3): Likewise.
3927         (copysignsf3_const, copysigndf3_const): New.
3928         (copysignsf3_var): Rename from copysignsf3, split out splitter
3929         and fix split predicate for X constraint.
3930         (copysigndf3_var): Similarly.
3931
3932 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
3933
3934         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
3935         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
3936         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
3937
3938 2005-01-29  Richard Henderson  <rth@redhat.com>
3939
3940         PR target/19690
3941         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
3942         of # and * in constraints.
3943
3944 2005-01-29  Richard Henderson  <rth@redhat.com>
3945
3946         PR middle-end/19689
3947         * expr.c (store_field): Don't strip sub-mode cast when the input
3948         data is even smaller.
3949
3950 2005-01-29  Richard Henderson  <rth@redhat.com>
3951
3952         PR middle-end/19687
3953         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
3954         union being empty.
3955
3956 2005-01-29  Richard Henderson  <rth@redhat.com>
3957
3958         * combine.c (make_field_assignment): Fix argument order
3959         to gen_int_mode.
3960
3961 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
3962
3963         PR tree-optimization/15791
3964         * fold-const.c (extract_array_ref): New function.
3965         (fold): Fold comparisons between &a[i] and &a[j] or
3966         semantically equivalent trees.
3967
3968 2005-01-29  Jeff Law  <law@redhat.com>
3969
3970         * gcse.c (insert_expr_in_table): Revamp handling of available
3971         and anticipatable occurrence lists to avoid unnecessary list
3972         walking.
3973         (insert_set_in_table): Similarly.
3974
3975 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
3976
3977         * c-common.c (fix_string_type): Just use c_build_qualified_type to
3978         build string type.
3979         (c_build_qualified_type): Build qualified array types with
3980         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
3981         * c-decl.c (c_make_fname_decl): Build unqualified array type
3982         before qualified type.
3983         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
3984         type is qualified, not just if type itself is.  Don't apply
3985         qualifiers to array type when declarator is processed.  Apply
3986         qualifiers to field type whether or not it is an array type.
3987         Don't handle array types specially for applying qualifiers to
3988         variables.
3989         * c-typeck.c (composite_type): Build unqualified element type and
3990         array type when forming composite of array types.
3991         (common_pointer_type, comptypes, comp_target_types,
3992         type_lists_compatible_p, build_indirect_ref, build_array_ref,
3993         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
3994         types.
3995         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
3996         (args2) in variables a1 and a2.
3997
3998 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
3999
4000         * cse.c (n_elements_made, max_elements_made): Remove.
4001         (insert): Don't touch n_elements_made.
4002         (cse_main): Don't touch n_elements_made or max_elements_made.
4003
4004 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
4005
4006         PR target/15384
4007         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
4008         configuration part of dp-bit.c to be lost.
4009
4010 2005-01-28  Roger Sayle  <roger@eyesopen.com>
4011
4012         * expmed.c (expand_mult_highpart_optab): When attempting to use
4013         a non-widening multiplication in a wider mode, the operands need
4014         to be converted (zero or sign extended) to that mode.
4015
4016 2005-01-28  Ian Lance Taylor  <ian@airs.com>
4017
4018         PR middle-end/16558
4019         PR middle-end/19583
4020         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
4021         through if both operands fall through.
4022
4023 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
4024
4025         * cse.c (fold_rtx) <PC>: Don't optimize.
4026
4027 2005-01-28  Jeff Law  <law@redhat.com>
4028
4029         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
4030         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
4031
4032 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
4033
4034         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
4035         cse_reg_info_used_list_end): Remove.
4036         (cse_reg_info_list, cse_reg_info_list_free): New.
4037         (get_cse_reg_info): When allocating an instance of
4038         cse_reg_info, add it to the beginning of the cse_reg_info_list
4039         list.  Remove code to maintain cse_reg_info_used_list.
4040         (new_basic_block): Reset the free list to the beginning of
4041         cse_reg_info_list.
4042
4043 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
4044
4045         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
4046         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
4047         (frv_expand_mdpackh_builtin): New function.
4048         (frv_expand_builtin): Use it to expand __MDPACKH.
4049         * doc/extend.texi (__MDPACKH): Update documentation.
4050
4051 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
4052
4053         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
4054         SSE_FLOAT_MODE_P for use_sse computation.
4055
4056 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
4057
4058         PR target/19663
4059         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
4060
4061 2005-01-27  Richard Henderson  <rth@redhat.com>
4062
4063         * builtins.c (expand_builtin_copysign): New.
4064         (expand_builtin): Call it.
4065         * genopinit.c (optabs): Add copysign_optab.
4066         * optabs.c (init_optabs): Initialize it.
4067         (expand_copysign): New.
4068         * optabs.h (OTI_copysign, copysign_optab): New.
4069         (expand_copysign): Declare.
4070
4071         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
4072         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
4073
4074         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
4075         (ix86_expand_fp_absneg_operator): ... here.
4076         (ix86_split_copysign): New.
4077         * config/i386/i386-protos.h: Update.
4078         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
4079         (copysignsf3, copysigndf3): New.
4080
4081         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
4082         (copysignsf3, ncopysignsf3): New.
4083         (copysigndf3, ncopysigndf3): New.
4084         (copysignxf3, ncopysignxf3): New.
4085         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
4086
4087 2005-01-27  Arend Bayer  <arend.bayer@web.de>
4088             Kazu Hirata  <kazu@cs.umass.edu>
4089
4090         * cse.c: (find_best_addr): Don't call copy_rtx before calling
4091         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
4092         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
4093         NULL_RTX.
4094
4095 2005-01-27  Jeff Law  <law@redhat.com>
4096
4097         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
4098         definitions of SSA_NAMEs which are not being rewritten.
4099         (rewrite_ssa_into_ssa): Only initialize the current definition
4100         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
4101         If checking is enabled, assert that SSA_NAME_AUX is clear for all
4102         SSA_NAMEs before returning.
4103
4104 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
4105
4106         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
4107         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
4108         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
4109         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
4110         config/mips/iris6.h, config/sh/sh.c: Update copyright.
4111
4112 2005-01-27  Steven Bosscher  <stevenb@suse.de>
4113
4114         PR middle-end/17278
4115         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
4116         higher to -O2 and higher.  Likewise for tree PRE.
4117         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
4118         and better.
4119
4120 2005-01-27  Ian Lance Taylor  <ian@airs.com>
4121
4122         PR middle-end/19583
4123         * gimple-low.c (try_catch_may_fallthru): New static function.
4124         (block_may_fallthru): Handle TRY_CATCH_EXPR.
4125         * tree-inline.c (expand_call_inline): Don't warn about reaching
4126         the end of a non-void function being inlined if the function uses
4127         a return slot.
4128
4129 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
4130
4131         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
4132
4133         PR c/18946
4134         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
4135         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
4136         (implicitly_declare): Handle error_mark_node.
4137
4138 2005-01-27  Richard Henderson  <rth@redhat.com>
4139
4140         PR tree-opt/14329
4141         * tree.h (struct tree_decl): Add debug_expr_is_from.
4142         (DECL_DEBUG_EXPR_IS_FROM): New.
4143         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
4144         * dwarf2out.c (dwarf2out_var_location): Update to match.
4145         * tree-outof-ssa.c (create_temp): Likewise.
4146         * var-tracking.c (track_expr_p): Likewise.
4147         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
4148         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
4149         * toplev.c (default_tree_printer): Likewise.
4150
4151 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
4152
4153         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
4154         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
4155
4156 2005-01-27  Steven Bosscher  <stevenb@suse.de>
4157
4158         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
4159         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
4160         ASM_CLOBBERS): Add tree checks.
4161
4162         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
4163         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
4164         * c-common.def (SWITCH_STMT): Update to match.
4165         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
4166         macros instead of SWITCH_EXPR ones.
4167         * c-dump.c (c_dump_tree): Likewise.
4168         * c-gimplify.c (gimplify_switch_stmt): Likewise.
4169         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
4170
4171         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
4172
4173 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
4174
4175         * unwind-dw2.c (execute_stack_op): Add missing cases for
4176         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
4177
4178 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4179
4180         * config.gcc (Obsolete configurations): Remove 'dummy', add
4181         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
4182         sparc-*-openbsd*.
4183
4184 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
4185
4186         PR tree-optimization/19633
4187         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
4188         CALL_EXPRs.
4189         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
4190         are no call-clobbered variables.
4191         * tree-outof-ssa.c (check_replaceable): Return false for calls
4192         with side-effects.
4193
4194 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
4195
4196         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
4197         even for variables with NULL DECL_INITIAL.
4198
4199 2005-01-26  Stuart Hastings  <stuart@apple.com>
4200
4201         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
4202
4203 2005-01-26  Richard Henderson  <rth@redhat.com>
4204
4205         PR middle-end/18008
4206         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
4207         field's type.
4208         * expr.c (store_field): Strip conversions to odd-bit-sized types
4209         if the destination field width matches.
4210
4211 2005-01-26  Richard Henderson  <rth@redhat.com>
4212
4213         * c-decl.c, expmed.c, expr.c: Revert last change.
4214
4215 2005-01-26  Richard Henderson  <rth@redhat.com>
4216
4217         PR middle-end/18008
4218         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
4219         field's type.
4220         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
4221         if we don't need the bits above those present in the current mode.
4222         * expr.c (store_field): Strip conversions to odd-bit-sized types
4223         if the destination field width matches.
4224
4225 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
4226
4227         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
4228         either -ffast-math or -funsafe-math-optimizations is in use.
4229
4230 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4231
4232         PR target/19293
4233         PR target/19329
4234         * config/avr/avr.c (notice_update_cc): Only set condition code for
4235         ashrqi3 if shift count > 0.
4236         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
4237         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
4238         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
4239         count <= 0 as a no-op, and shift count >= width by copying zero
4240         or sign bit to all bits of the result.
4241         * config/avr/avr.md (all shifts): Add alternatives for zero shift
4242         count, with attribute "length" set to 0 and "cc" set to "none".
4243
4244 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
4245
4246         * doc/invoke.texi: Document -mTLS.
4247
4248         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
4249         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
4250         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
4251         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
4252         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
4253         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
4254         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
4255         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
4256
4257         * configure.ac: Check for a TLS capable gas.
4258
4259         * configure: Regenerate.
4260
4261 2005-01-26  Richard Henderson  <rth@redhat.com>
4262
4263         PR middle-end/18008
4264         * combine.c (make_field_assignment): Simplify store to zero_extract
4265         from a source with an overlapping mask.
4266
4267 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
4268
4269         2004-11-11  Eric Christopher  <echristo@redhat.com>
4270
4271         * config/frv/frv.md: Add fr400_integer automaton. Don't
4272         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
4273         to TYPE_MACC.
4274
4275 2005-01-26  Steven Bosscher  <stevenb@suse.de>
4276
4277         PR middle-end/16585
4278         * cfgbuild.c (make_edges): Do not clear or set
4279         current_function_has_computed_jump.
4280         * function.h (struct function): Remove the has_computed_jump field.
4281         (current_function_has_computed_jump): Do not define.
4282         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
4283         in a computed jump.  Ignore current_function_has_computed_jump.
4284
4285 2005-01-26  Richard Henderson  <rth@redhat.com>
4286
4287         PR middle-end/19515
4288         * expr.c (categorize_ctor_elements): New argument p_must_clear.
4289         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
4290         fully initialized.
4291         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
4292         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
4293         objects into static storage if they have more than one non-zero value.
4294         * tree.h (categorize_ctor_elements): Update decl.
4295
4296 2005-01-26  Steven Bosscher  <stevenb@suse.de>
4297
4298         PR middle-end/19616
4299         * tree.h (CALL_EXPR_TAILCALL): Add comment.
4300         * calls.c (check_sibcall_argument_overlap_1): Revert the change
4301         to this function from 2004-07-10.
4302         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
4303         the current function for tail call optimizations if the address
4304         of one of it its arguments is taken.
4305
4306 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
4307
4308         * cse.c (fold_rtx): Call equiv_constant only when necessary.
4309
4310 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
4311
4312         * function.c (expand_function_end): If current_function_calls_alloca,
4313         emit stack restore in a place that is reached when the function falls
4314         through at the end.
4315
4316 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
4317
4318         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
4319         rule to avoid matching inappropriate suffix rule.
4320
4321 2005-01-26  Jan Hubicka  <jh@suse.cz>
4322
4323         PR tree-optimization/19241
4324         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
4325
4326 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
4327
4328         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
4329         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
4330         of doubling.
4331         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
4332         <sim*>: Always use crt1.o, regardless of N in simN.
4333         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
4334         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
4335         (CRT_CALL_STATIC_FUNCTION): Remove.
4336         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
4337         use crt1.o, regardless of N in simN.
4338         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
4339         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
4340         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
4341         case isystem setting.
4342         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
4343
4344 2005-01-25  Ian Lance Taylor  <ian@airs.com>
4345
4346         * gimple-low.c (block_may_fallthru): Correct handling of
4347         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
4348
4349 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
4350
4351         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
4352         handlers to match indentation; nested under the mtune=* handler.
4353         Similar for mcpu= and march=.
4354
4355 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
4356
4357         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
4358         * config/mips/linux64.h (LIB_SPEC): Likewise.
4359         * config/mn10300/linux.h (LIB_SPEC): Likewise.
4360         * config/sh/linux.h (LIB_SPEC): Likewise.
4361
4362 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
4363
4364         * config/frv/frv.c (frv_legitimize_tls_address): New.
4365         (TARGET_HAVE_TLS): Define.
4366         (FRV_SYMBOL_REF_TLS_P): Define.
4367         (frv_override_options): Handle new register classes.
4368         (frv_legitimate_address_p): Reject tls addresses.
4369         (frv_legitimize_address): Handle TLS addresses.
4370         (gen_inlined_tls_plt): New.
4371         (gen_tlsmoff): New.
4372         (frv_legitimize_tls_address): New.
4373         (unspec_got_name): Add TLS entries.
4374         (got12_operand): Add R_FRV_TLSMOFF12 case.
4375         (frv_emit_move): Fixup TLS addresses.
4376         (frv_emit_movsi): Legitimize TLS addresses.
4377
4378         * config/frv/frv.h (MASK_BIG_TLS): New.
4379         (TARGET_BIG_TLS): New.
4380         (HAVE_AS_TLS): Define.
4381         (TARGET_SWITCHES): Add -mTLS and -mtls options.
4382         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
4383         (REG_CLASS_NAMES): Same.
4384         (REG_CLASS_CONTENTS): Same.
4385         (CONSTRAINT_LEN): New.
4386         (REG_CLASS_FROM_CONSTRAINT): New.
4387         (PREDICATE_CODES): Add symbolic_operand.
4388
4389         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
4390         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
4391         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
4392         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
4393         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
4394         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
4395         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
4396         GR9_REG, GR14_REG, LRREG.
4397         (type): Add load_or_call attribute.
4398         ("load_or_call"): New reservation.
4399         ("call_gettlsoff"): New.
4400         ("tls_indirect_call"): New.
4401         ("tls_load_gottlsoff12"): New.
4402         ("tlsoff_hilo"): New.
4403         ("tls_tlsdesc_ldd"): New.
4404         ("tls_tlsoff_ld"): New.
4405         ("tls_lddi"): New.
4406
4407         * config/frv/frv-protos.h (symbolic_operand): Protoize.
4408
4409         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
4410
4411         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
4412         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
4413         * config/frv/frv.c (TLS_BIAS): Define.
4414         (frv_output_dwarf_dtprel): New.
4415
4416 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
4417
4418         PR rtl-optimization/19579
4419         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
4420         both A and B, see if they don't clobber registers the other expr uses.
4421
4422 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
4423
4424         * real.c (do_add): Initialize signalling and canonical members.
4425
4426         * real.c (real_from_integer): Zero out destination.
4427
4428 2005-01-18  Jan Hubicka  <jh@suse.cz>
4429
4430         PR tree-optimize/19337
4431         * tree-inline.c (initialize_inlined_parameters): Copy
4432         saved_static_chain_decl only.
4433
4434 2005-01-25  Richard Henderson  <rth@redhat.com>
4435
4436         PR target/19556
4437         PR target/19584
4438         * config/i386/i386.c (x86_inter_unit_moves): Zero.
4439         (ix86_preferred_reload_class): Rewrite fp-constant section, with
4440         80387 enabled, to return a proper subclass.  Return the subset that
4441         overlaps with GENERAL_REGS for PLUS.
4442         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
4443
4444 2005-01-25  Richard Henderson  <rth@redhat.com>
4445
4446         PR middle-end/19609
4447         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
4448
4449 2005-01-25  Roger Sayle  <roger@eyesopen.com>
4450
4451         * expmed.c (choose_multiplier): Change interface to return the
4452         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
4453         (expand_divmod): Update calls to choose_multiplier.
4454
4455 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4456
4457         PR middle-end/19330
4458         * expmed.c (extract_bit_field): Use adjust_address instead of
4459         gen_lowpart when op0 is a MEM.
4460
4461 2005-01-24  Steven Bosscher  <stevenb@suse.de>
4462
4463         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
4464
4465 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
4466
4467         * config/mips/irix-csr.c: New file.
4468         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
4469         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
4470         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
4471         executables.
4472
4473 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
4474
4475         PR bootstrap/19364
4476         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
4477         sparc/elf.h, add sparc/sp-elf.h.
4478         (sparc-*-rtems*): Likewise.
4479         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
4480         tm-dwarf2.h, add sparc/sp-elf.h.
4481         (sparc86x-*-elf): Likewise.
4482         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
4483         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
4484         TARGET_OS_CPP_BUILTINS.
4485         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
4486         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
4487         Undefine it.
4488         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
4489         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
4490         (SWITCH_TAKES_ARG): Likewise.
4491         (LOCAL_LABEL_PREFIX): Likewise.
4492         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
4493         (TARGET_N_FORMAT_TYPES): Delete.
4494         (TARGET_FORMAT_TYPES): Likewise.
4495         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
4496         * config/sparc/elf.h: Delete.
4497         * config/sparc/sp-elf.h: New file.
4498
4499 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
4500
4501         * tree-flow-inline.h (phi_arg_from_edge): Remove.
4502         * tree-flow.h: Remove the corresponding prototype.
4503         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
4504         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
4505
4506 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
4507
4508         PR target/17751
4509         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
4510         for AIX ABI or ELF -fPIC.
4511         (rs6000_emit_load_toc_table): Don't create toc_section here.
4512         (rs6000_xcoff_file_start): Nor here.
4513
4514 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
4515
4516         * sh.c (ra.h): Don't #include.
4517         (hard_regs_intersect_p): New function, resurrected from ra.c.
4518
4519         * sh.c: Fix 1996 Copyright.
4520
4521 2005-01-24  Richard Henderson  <rth@redhat.com>
4522             Aldy Hernandez  <aldyh@redhat.com>
4523
4524         * regrename.c (note_sets): Handle subregs.
4525
4526 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
4527
4528         PR bootstrap/18058
4529         * genconditions.c (write_header, write_conditions): Elide file if
4530         not GCC >= 3.0.1.
4531
4532 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
4533
4534         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
4535         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
4536         Update copyright.
4537
4538 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
4539
4540         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
4541         expand_builtin_printf, expand_builtin_fprintf,
4542         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
4543         checking against POINTER_TYPE.
4544         (validate_arglist): Handle POINTER_TYPE code by checking
4545         POINTER_TYPE_P.
4546
4547 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
4548
4549         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
4550         init_rtlanal): New.
4551         (for_each_rtx): Call for_each_rtx_1.
4552         * rtl.h (init_rtlanal): Declare.
4553         * toplev.c (backend_init): Call init_rtlanal.
4554
4555 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
4556
4557         * flow.c (propagate_one_insn): Formatting.
4558
4559         PR middle-end/19551
4560         * flow.c (libcall_dead_p): Be more conservative if unsure.
4561         If there are any instructions between insn and call, see if they are
4562         all dead before saying the libcall is dead.
4563
4564 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
4565
4566         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
4567         operand constraint for operand 0.
4568
4569 2005-01-23  Richard Henderson  <rth@redhat.com>
4570
4571         PR 19486
4572         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
4573         edges leading to join block.
4574
4575 2005-01-23  Roger Sayle  <roger@eyesopen.com>
4576
4577         * expmed.c (expand_mult_highpart): Make static.  Change type of
4578         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
4579         (expand_divmod): Updates calls to expand_mult_highpart by using
4580         gen_int_mode to pass a CONST_INT rtx.
4581         * rtl.h (expand_mult_highpart): Remove prototype.
4582
4583 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4584
4585         * flow.c (regset_bytes, regset_size): Remove.
4586
4587         * cfganal.c: Fix a reference to Harvey's paper.
4588
4589 2005-01-23  Steven Bosscher  <stevenb@suse.de>
4590
4591         PR rtl-optimization/19464
4592         * tree-optimize.c (init_tree_optimization_passes): Add one more
4593         copyrename pass just before out-of-ssa.
4594
4595 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
4596
4597         PR bootstrap/18058
4598         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
4599         * ggc-none.c (ggc_free): Define.
4600
4601 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4602
4603         * cse.c (max_reg, max_insn_uid): Remove.
4604         (cse_main): Don't access max_reg or max_insn_uid.
4605
4606         * c-common.c (explicit_flag_signed_bitfields,
4607         lang_statement_code_p, lang_expand_function_end): Remove.
4608         * c-common.h: Remove the corresponding declarations.
4609         * c-opts.c (c_common_handle_option): Remove all write access
4610         to explicit_flag_signed_bitfields.
4611
4612         * cgraph.c (cgraph_varpool_n_nodes): Remove.
4613         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
4614         * cgraph.h: Remove the corresponding declaration.
4615
4616         * gcse.c (null_pointer_info): Remove.
4617
4618 2005-01-23  Roger Sayle  <roger@eyesopen.com>
4619             Eric Botcazou  <ebotcazou@libertysurf.fr>
4620
4621         * combine.c (simplify_logical): Only simplify logical expressions
4622         of the form ior(and(x,y),z) by the inverse distributive law if the
4623         result is cheaper than the original.
4624
4625 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4626
4627         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
4628         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
4629         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
4630         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
4631         config/freebsd-spec.h, config/arm/arm.h,
4632         config/h8300/h8300.md, config/i386/i386.md,
4633         config/i386/predicates.md, config/i386/sse.md,
4634         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
4635         config/vax/vax.md: Fix comment typos.  Follow spelling
4636         conventions.
4637
4638 2005-01-23  Steven Bosscher  <stevenb@suse.de>
4639
4640         * gengtype.c (walk_type): Produce `not equal to' compares for loop
4641         tests, instead of `less than'.
4642
4643 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
4644
4645         * function.c (assign_parm_setup_block): When creating a new stack slot
4646         for a parameter, get its alignment from the parameter's DECL_ALIGN
4647         rather than the type's TYPE_ALIGN.  Make sure that the parameter
4648         is at least word aligned.
4649
4650 2005-01-22  Roger Sayle  <roger@eyesopen.com>
4651
4652         PR middle-end/19378
4653         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4654
4655 2005-01-22  Richard Henderson  <rth@redhat.com>
4656
4657         PR target/19506
4658         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
4659         in both compare operands.
4660         (movdfcc_1_sse_max): Likewise.
4661         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
4662         (movdfcc_1_sse): Likewise.
4663         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
4664         scratch register as needed.
4665
4666 2005-01-22  Richard Henderson  <rth@redhat.com>
4667
4668         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
4669
4670         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
4671
4672 2005-01-22  Richard Henderson  <rth@redhat.com>
4673
4674         * genopinit.c (optabs): Use smin/smax for floating point too.
4675         * doc/md.texi: Update to match.  Clarify that floating point
4676         results are undefined for +0/-0 and NaN.
4677         * doc/rtl.texi: Likewise.
4678         * rtl.def (SMIN, SMAX): Likewise
4679         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
4680
4681         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
4682         leading 's' to the name.
4683         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
4684         smaxxf3, sminxf3): Likewise.
4685         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
4686         Likewise.
4687
4688 2005-01-22  Paul Brook  <paul@codesourcery.com>
4689
4690         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
4691
4692 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
4693
4694         * config/s390/s390.c (struct processor_costs): New fields
4695         dlgr, dlr, dr, dsgfr, dsgr.
4696         (z900_cost, z990_cost): Values for new fields.
4697         (s390_rtx_costs): New cases MEM und COMPARE in switch
4698         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
4699         DIV, MOD, UDIV, UMOD.
4700
4701 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
4702
4703         * config/s390/s390.md ("doloop_si64"): Reload input value directly
4704         into the register being decremented.
4705         ("doloop_si31", "doloop_di"): Likewise.
4706         ("*doloop_si_long"): Adapt pattern.
4707
4708 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
4709
4710         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
4711         access registers.
4712         (CLASS_MAX_NREGS): Likewise.
4713
4714 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
4715
4716         * doc/tree-ssa.texi (Statement Operands): Add example for new
4717         must-def macro. Note deprecation of old operands interface.
4718
4719 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
4720
4721         PR tree-optimization/19484
4722         * tree-cfg.c (remove_fallthru_edge): New function.
4723         (cleanup_control_flow): Remove fallthru edges from calls that are
4724         now known not to return.
4725
4726 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
4727
4728         Fix PR tree-optimization/19038
4729         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
4730         copies with loop variant ones.
4731
4732 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
4733
4734         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
4735         config/alpha/alpha-protos.h, config/alpha/alpha.h,
4736         config/alpha/alpha.md, config/alpha/predicates.md,
4737         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
4738         config/sparc/sol2.h: Update copyright.
4739
4740         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
4741         first label to see if it is a nonlocal label.
4742
4743 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
4744             Andrew Pinski  <pinskia@physics.uc.edu>
4745
4746         PR target/19491
4747         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
4748         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
4749
4750 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
4751
4752         * config/rs6000/rtems.h: Update copyright.
4753
4754 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
4755
4756         PR target/19548
4757         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
4758         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
4759         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
4760
4761 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4762
4763         PR c/18809
4764         * c-typeck.c (convert_arguments): Check for error_mark_node.
4765
4766 2005-01-21  Ian Lance Taylor  <ian@airs.com>
4767
4768         PR tree-optimization/13000
4769         * tree-inline.c: Include "tree-flow.h".
4770         (expand_call_inline): If warn_return_type, warn if non-void inline
4771         function falls through.
4772         * tree-cfg.c (execute_warn_function_return): Don't warn about
4773         control reaching end if TREE_NO_WARNING is set.  Set
4774         TREE_NO_WARNING.
4775         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
4776         has been lowered.
4777         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
4778         branch if we don't need one.
4779         * c-typeck.c: Include "tree-flow.h"
4780         (c_finish_bc_stmt): Don't add a goto if the current statement
4781         list doesn't fall through to the current point.
4782
4783 2005-01-21  Roger Sayle  <roger@eyesopen.com>
4784
4785         PR rtl-optimization/576
4786         * real.c (real_arithmetic): Change return type from void to bool
4787         to return an indication that the result may be inexact.
4788         * real.h (real_arithmeric): Update prototype.
4789         * fold-const.c (const_binop):  Don't constant fold floating
4790         point expressions when the user specifies -frounding-math and
4791         the result may depend upon the run-time rounding mode.
4792         (fold_convert_const_real_from_real): Clean-up.
4793         (fold_initializer): Ignore flag_rounding_math for initializers.
4794         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
4795         constant fold FP operations with flag_rounding_math if the
4796         result may depend upon the run-time rounding mode.
4797
4798 2005-01-21  Tom Tromey  <tromey@redhat.com>
4799
4800         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
4801
4802 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
4803
4804         * tree-cfg.c: Fix comment typos.
4805
4806 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
4807
4808         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
4809         around the call to rest_of_handle_branch_target_load_optimize.
4810
4811 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4812
4813         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
4814         (sparc64-*-openbsd*): Likewise.
4815         (sparclite-*-elf*): Include tm-dwarf2.h.
4816         (sparc86x-*-elf*): Likewise.
4817         (sparc64-*-elf*): Likewise.
4818         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
4819         (DBX_DEBUGGING_INFO): Likewise.
4820         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
4821         (PREFERRED_DEBUGGING_TYPE): Likewise.
4822         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
4823         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
4824         (PREFERRED_DEBUGGING_TYPE): Likewise.
4825         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
4826         (PREFERRED_DEBUGGING_TYPE): Likewise.
4827         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
4828
4829 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
4830
4831         PR target/18701
4832         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
4833
4834 2005-01-20  Paul Brook  <paul@codesourcery.com>
4835
4836         * doc/rtl.texi: Document value extension requirements for CONST_INT.
4837
4838 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
4839
4840         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
4841         label is first in a sequence of labels.
4842
4843         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
4844
4845 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
4846             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4847
4848         * doc/sourcebuild.texi (Test Directives): New.
4849
4850 2005-01-20  Roger Sayle  <roger@eyesopen.com>
4851
4852         * real.c (real_floor): Don't leave the result uninitialized when
4853         mode is VOIDMode, but return the unrounded intermediate value.
4854         (real_ceil): Likewise.
4855
4856 2005-01-20  Paul Brook  <paul@codesourcery.com>
4857
4858         * config/arm/arm.md (insv): Use gen_int_mode.
4859
4860 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
4861
4862         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
4863         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4864         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4865         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4866         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4867
4868 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
4869
4870         Fix PR debug/19124
4871         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
4872         fbreg, so we have to assume we can't.
4873         (loc_descriptor_from_tree_1): Ditto.
4874         (containing_function_has_frame_base): New function.
4875         (add_location_or_const_value_attribute): Use it.
4876         Also try to generate a frame_base from a single element location
4877         list.
4878
4879 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
4880
4881         PR tree-optimization/15349
4882         * timevar.def (TV_TREE_MERGE_PHI): New.
4883         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
4884         PHI_WANTED.
4885         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
4886         calls to tree_forwarder_block_p.
4887         (remove_forwarder_block_with_phi, merge_phi_nodes,
4888         gate_merge_phi, pass_merge_phi): New.
4889         * tree-optimize.c (init_tree_optimization_passes): Add
4890         pass_merge_phi.
4891         * tree-pass.h: Add an extern for pass_merge_phi;
4892
4893 2005-01-20  Richard Henderson  <rth@redhat.com>
4894
4895         PR target/19418
4896         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
4897         (_mm_castps_pd, _mm_castps_si128): New.
4898         (_mm_castsi128_ps, _mm_castsi128_pd): New.
4899
4900 2005-01-20  Richard Henderson  <rth@redhat.com>
4901
4902         PR target/19530
4903         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
4904         __builtin_ia32_vec_init_v2si.
4905         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
4906         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
4907         (ix86_init_mmx_sse_builtins): Create it.
4908         (ix86_expand_builtin): Expand it.
4909         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
4910         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
4911         (vec_extractv2si_0, vec_extractv2si_1): New.
4912
4913 2005-01-20  Richard Henderson  <rth@redhat.com>
4914
4915         PR target/16533
4916         * config/i386/i386.c (ix86_expand_push): New.
4917         * config/i386/mmx.md (push<MMXMODE>1): New.
4918         * config/i386/sse.md (push<SSEMODE>1): New.
4919         * config/i386/i386-protos.h: Update.
4920
4921 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
4922
4923         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
4924         copyright.
4925
4926 2005-01-20  Richard Henderson  <rth@redhat.com>
4927
4928         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
4929         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
4930
4931 2005-01-19  Richard Henderson  <rth@redhat.com>
4932
4933         PR target/19350
4934         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
4935         to V4SFmode in SSE1 fallback load path.
4936
4937 2005-01-19  Richard Henderson  <rth@redhat.com>
4938
4939         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
4940         in QImode expansion to ix86_expand_vector_set.
4941         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
4942
4943 2005-01-19  Richard Henderson  <rth@redhat.com>
4944
4945         PR target/19511
4946         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
4947         subclass of the input class.
4948         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
4949         Always true for cross-SSE1 classes.  Rationalize conditionals.
4950         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
4951         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
4952         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
4953         (movdi_2): Add MMX/SSE zeros.
4954         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
4955         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
4956         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
4957         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
4958         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
4959         (zero_extendsidi2_rex64_1): Remove.
4960         (MOV0 peephole): Check GENERAL_REG_P.
4961
4962 2005-01-19  Richard Henderson  <rth@redhat.com>
4963
4964         PR target/19427
4965         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
4966         shufps elements.
4967         (ix86_expand_vector_extract): Likewise.
4968
4969 2005-01-19  Richard Henderson  <rth@redhat.com>
4970
4971         PR middle-end/19304
4972         * expr.c (emit_move_change_mode): New argument force; use
4973         simplify_gen_subreg if true.
4974         (emit_move_via_alt_mode): Merge into ...
4975         (emit_move_via_integer): ... here.
4976         (emit_move_ccmode): Use emit_move_change_mode directly.
4977
4978 2005-01-19  Richard Henderson  <rth@redhat.com>
4979
4980         PR target/19518
4981         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
4982         (alpha_preferred_reload_class): Handle CONST_VECTOR.
4983         (alpha_emit_set_const_1): Add no_output parameter; don't emit
4984         rtl if true.
4985         (alpha_emit_set_const): Likewise.  Make static.
4986         (alpha_emit_set_long_const): Make static.
4987         (alpha_extract_integer): Split out from alpha_expand_mov.
4988         (alpha_split_const_mov): Likewise.
4989         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
4990         (alpha_legitimate_constant_p): New.
4991         * config/alpha/alpha-protos.h: Update.
4992         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
4993         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
4994         * config/alpha/alpha.md (movsi): Add n alternative.
4995         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
4996         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
4997         (splitters for all of the above): Use alpha_split_const_mov.
4998         * config/alpha/predicates.md (non_add_const_operand): New.
4999         (non_zero_const_operand): New.
5000         (input_operand): Use alpha_legitimate_constant_p after reload.
5001
5002 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
5003
5004         PR tree-optimization/19038
5005         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
5006         (add_candidate): Add ivs with increment in latch only if
5007         allow_ip_end_pos_p is true.
5008         (determine_iv_cost): Use empty_block_p.
5009
5010 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
5011
5012         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
5013         (compute_dominance_frontiers): Ditto.
5014
5015 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
5016
5017         PR target/19529
5018         * config/sh/t-rtems: New.
5019         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
5020
5021 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
5022
5023         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
5024         the offset of the selected field.
5025
5026 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
5027
5028         * tree-cfg.c (remove_forwarder_block): Fix the check to
5029         prevent a nonlocal label from appearing in the middle of a
5030         basic block.
5031
5032 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
5033
5034         PR rtl-optimization/19462
5035         * reorg.c (find_end_label): Create return insn only if
5036         current_function_epilogue_delay_list is empty.
5037
5038 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
5039
5040         * doc/passes.texi: Remove paragraph mentioning new-ra.
5041
5042 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
5043
5044         PR rtl-optimization/15139
5045         * combine.c: Include params.h.
5046         (count_rtxs): New function.
5047         (record_value_for_reg): If replace_rtx would replace at least
5048         2 occurrences of REG in VALUE and TEM is really large, replace REG with
5049         (clobber (const_int 0)) instead of TEM.
5050         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
5051         * params.h (MAX_LAST_VALUE_RTL): New.
5052         * Makefile.in (combine.o): Depend on $(PARAMS_H).
5053         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
5054
5055         PR c/17297
5056         * c-typeck.c (digest_init): Only call build_vector if all constructor
5057         elements are *_CST nodes.
5058         * gimplify.c (gimplify_init_constructor): Likewise.
5059
5060         PR middle-end/19164
5061         * c-typeck.c (digest_init): Only call build_vector if inside_init
5062         is a CONSTRUCTOR.
5063
5064 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
5065
5066         * toplev.c (init_asm_output): Remove dead #ifdef.
5067
5068 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5069
5070         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
5071
5072 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
5073
5074         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
5075         accessing DECL_FUNCTION_CODE.
5076         * dojump.c (do_jump): Likewise.
5077         * gimplify.c (gimplify_call_expr): Likewise.
5078         * predict.c (expr_expected_value): Likewise.
5079         (strip_builtin_expect): Likewise.
5080         * tree-inline.c (estimate_num_insns_1): Likewise.
5081         * tree-ssa-loop-im.c (stmt_cost): Likewise
5082         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
5083         (tree_expr_nonnegative_p): Likewise.
5084
5085 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
5086
5087         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
5088         variant of the load_pcrel_sym pattern.
5089         * config/sparc/sparc.md (P macro): Move to the top.
5090         (load_pcrel_sym): Macroize using P.
5091         (save_register_window): Likewise.
5092
5093 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
5094
5095         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
5096         ("sordered"): Same.
5097
5098 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
5099
5100         PR C/19472
5101         * c-typeck.c (build_asm_expr): Strip nops off
5102         input memory operands.
5103
5104 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
5105
5106         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
5107         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
5108         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
5109         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
5110
5111 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
5112
5113         PR target/19379
5114         * config/i386/i386.c (override_options): If the 80387 is disabled,
5115         then do not return FP values using FP registers.
5116
5117 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
5118
5119         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
5120         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
5121         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
5122         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
5123         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
5124         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
5125         output.h, postreload-gcse.c, postreload.c, recog.c,
5126         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
5127         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
5128         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
5129         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
5130         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
5131         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
5132         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
5133         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
5134
5135         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
5136         config/alpha/alpha.c, config/arm/vfp.md,
5137         config/i386/emmintrin.h, config/i386/i386-modes.def,
5138         config/i386/i386-protos.h, config/i386/i386.h,
5139         config/i386/pmmintrin.h, config/i386/ppro.md,
5140         config/i386/predicates.md, config/i386/xmmintrin.h,
5141         config/i860/i860.c, config/ia64/ia64-modes.def,
5142         config/ia64/ia64-protos.h, config/ia64/ia64.h,
5143         config/ia64/ia64.md, config/ia64/itanium1.md,
5144         config/ia64/itanium2.md, config/ia64/predicates.md,
5145         config/iq2000/iq2000.h, config/mips/linux64.h,
5146         config/rs6000/aix41.h, config/rs6000/aix43.h,
5147         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
5148         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
5149         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
5150         config/sparc/linux64.h, config/sparc/litecoff.h,
5151         config/sparc/sp64-elf.h, config/sparc/sparc.c,
5152         config/sparc/sparc.h, config/sparc/sparc.md,
5153         config/sparc/sysv4-only.h: Update copyright.
5154
5155 2005-01-18  Richard Henderson  <rth@redhat.com>
5156
5157         PR target/19496
5158         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
5159
5160 2005-01-18  Marc Espie  <espie@openbsd.org>
5161         * config/i386/openbsdelf.h: Typo.
5162
5163 2005-01-18  Richard Henderson  <rth@redhat.com>
5164
5165         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
5166         special case for sse.
5167         * config/i386/predicates.md (sse_comparison_operator): Likewise.
5168
5169 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
5170
5171         * tree-inline.c (estimate_num_insns_1): Added cases for
5172         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
5173
5174 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
5175
5176         PR rtl-optimization/19296
5177         * combine.c (simplify_comparison): Rewrite the condition under
5178         which a non-paradoxical SUBREG of a PLUS can be lifted when
5179         compared against a constant.
5180
5181 2005-01-18  Andi Kleen <ak@muc.de>
5182
5183         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
5184         * c.opt (-Wpointer-sign): Add.
5185         * doc/invoke.texi: (-Wpointer-sign): Add.
5186
5187 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
5188
5189         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
5190         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
5191         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
5192         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
5193         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
5194         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
5195         for TARGET_MIX_SSE_I387.
5196         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
5197         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
5198         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
5199         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
5200         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
5201         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
5202         TARGET_MIX_SSE_I387.
5203         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
5204         from expander.
5205
5206 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
5207
5208         PR target/19424
5209         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
5210         Add movaps alternative for xmm reg->reg move.
5211
5212 2005-01-17  Jeff Law  <law@redhat.com>
5213
5214         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
5215         at the end of the main DOM loop rather than just before DOM exits.
5216
5217 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
5218
5219         PR tree-optimization/19121
5220         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
5221         adding aliases to a name tag, also add them to the pointer's
5222         type tag.
5223         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
5224         sensitive alias info at all.  Only check that the two pointers
5225         have compatible pointed-to sets.
5226         * tree-ssa.c (verify_name_tags): Verify that the alias set of
5227         a pointer's type tag is a superset of the alias set of the
5228         pointer's name tag.
5229
5230 2005-01-17  James E Wilson  <wilson@specifixinc.com>
5231
5232         PR target/19357
5233         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
5234         comment to document why.
5235
5236 2005-01-17  Richard Henderson  <rth@redhat.com>
5237
5238         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
5239         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
5240         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
5241         sse2_vmsminv2df3_finite): New.
5242         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
5243         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
5244         Force op1 into register.
5245
5246 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
5247
5248         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
5249         bubblestrap from always rebuilding build directory.
5250
5251 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
5252
5253         * config/s390/s390.md ("*clc"): Remove incorrect '='.
5254         ("*cmpmem_short"): Likewise.
5255
5256 2005-01-17  Steven Bosscher  <stevenb@suse.de>
5257
5258         * basic-block.h: Document BB_* flags.
5259         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
5260         use an sbitmap instead.
5261         * sched-rgn.c (compute_trg_info): Likewise.
5262
5263 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
5264
5265         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
5266         redundant target_cpu_default and extra_parts lines.  Use the default
5267         "from-abi" ISA.
5268         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
5269         (SUBTARGET_EXTRA_SPECS): Delete.
5270         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
5271         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
5272         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
5273         and "n32" for -mabi=n32.
5274
5275 2005-01-17  Ian Lance Taylor  <ian@airs.com>
5276
5277         PR c/5675
5278         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
5279         fold constant variables into initial values.
5280
5281 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
5282
5283         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
5284
5285         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
5286         through the statements backward.
5287
5288 2005-01-17  Ian Lance Taylor  <ian@airs.com>
5289
5290         PR middle-end/13127:
5291         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
5292         a variable set to the return value of the inlined function.
5293
5294 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
5295
5296         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
5297         when modes are tieable.
5298
5299 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
5300
5301         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
5302         of pthread_create to find out if threads are enabled.
5303         * gthr-posix95.h (__gthread_active_p): Likewise.
5304
5305 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
5306
5307         * common.opt (-fnew-ra): Remove.
5308         * ra*.*: Remove.
5309         * toplev.h (flag_new_regalloc): Remove.
5310         * Makefile.in (ra*.*): Don't mention.
5311         * passes.c (rest_of_handle_new_regalloc): Remove.
5312         (rest_of_handle_combine, rest_of_compilation): Always consider
5313         flag_new_regalloc as false.
5314         * doc/invoke.texi: Don't document -fnew-ra.
5315
5316 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
5317
5318         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
5319         last parameter to reg_scan.
5320         * loop.c (loop_optimize): Likewise.
5321         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
5322         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
5323         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5324         rest_of_handle_gcse, rest_of_handle_loop_optimize,
5325         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
5326         * regclass.c (reg_scan): Likewise, for the declaration.
5327         * rtl.h (reg_scan): Likewise, for the prototype.
5328
5329 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
5330
5331         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
5332         mark_dfs_back_edges.
5333
5334 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
5335
5336         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
5337         (compute_avail): Uses don't go in tmp_gen.
5338
5339 2005-01-16  Steven Bosscher  <stevenb@suse.de>
5340
5341         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
5342         loop to look for a free slot in a page entry.
5343
5344 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5345
5346         PR target/16304
5347         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
5348         * toplev.c (compile_file): Call process_pending_assemble_output_defs
5349         just before targetm.asm_out.file_end.
5350         * tree.h (process_pending_assemble_output_defs): Declare.
5351         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
5352         New functions.
5353         (assemble_alias): Defer generation of assembly code for defines when
5354         TARGET_DEFERRED_OUTPUT_DEFS is true.
5355         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
5356         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
5357         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
5358
5359 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5360
5361         PR target/19336
5362         * pa.c (pa_scalar_mode_supported_p): New function.
5363         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
5364         * pa.h (MIN_UNITS_PER_WORD): Add comment.
5365
5366         * pa-protos.h (prefetch_operand): Delete.
5367         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
5368         * pa.c (prefetch_operand): Delete.
5369         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
5370         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
5371         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
5372         and prefetch_nocc_operand.
5373         * pa.md (prefetch): Rework to avoid reload problems handling short
5374         displacements when a cache control completer needs to be provided.
5375         (prefetch_32, prefetch_64): Delete.
5376         (prefetch_cc, prefetch_nocc): New patterns.
5377
5378 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
5379
5380         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
5381
5382 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5383
5384         PR ada/19388
5385         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
5386         exceeds maximum alignment for global common data.
5387         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
5388         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
5389
5390 2004-01-15  Roger Sayle  <roger@eyesopen.com>
5391
5392         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
5393
5394 2004-01-15  Roger Sayle  <roger@eyesopen.com>
5395
5396         * harg-reg-set.h (reg_class_names): Prototype global array.
5397         * regclass.c (reg_class_names): Declare here and initialize to
5398         REG_CLASS_NAMES.
5399         (dump_regclass): Remove local declaration of reg_class_names.
5400         (regclass): Likewise.
5401         * cfg.c (dump_flow_info): Likewise.
5402         * ra-debug.c (reg_class_names): Likewise.
5403         * regrename.c (reg_class_names): Likewise.
5404         * reload.c (reg_class_names): Likewise.
5405         * reload1.c (spill_failure): Likewise.
5406         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
5407
5408 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
5409
5410         * config/s390/s390.md ("reload_outti"): Remove predicate for
5411         output operand.  Abort if operand is not a MEM.
5412         ("reload_outdi", "reload_outdf"): Likewise.
5413
5414 2005-01-15  Marc Espie  <espie@openbsd.org>
5415
5416         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
5417         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
5418         * config/openbsd.h:  Fix C++ includes for native configurations.
5419         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
5420         Add trampoline support.
5421         * config/i386/openbsdelf.h: New.
5422
5423 2005-01-15  Marc Espie  <espie@openbsd.org>
5424
5425         * collect2.c (main): Explicitly parse -dynamic-linker option.
5426
5427 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
5428
5429         PR tree-optimization/19060
5430         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
5431         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
5432         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
5433         and handle extract_range_from_cond returning false.
5434         * fold-const.c (fold): Optimize comparisons with min/max even for
5435         width > HOST_BITS_PER_WIDE_INT.
5436
5437 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
5438
5439         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
5440         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
5441         Remove little endian multilib variants.
5442         Add mips32 multilib variant.
5443
5444 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
5445
5446         * explow.c (copy_all_reg, stabilize): Remove.
5447         * expr.h: Remove the corresponding prototypes.
5448
5449         * rtlanal.c (regs_set_between_p): Remove.
5450         * rtl.h: Remove the corresponding prototype.
5451
5452 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
5453
5454         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
5455         to rs6000_nonimmediate_operand.
5456         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
5457         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
5458         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
5459         rs6000_nonimmediate_operand.
5460         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
5461         rs6000_nonimmediate_operand.
5462
5463 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
5464
5465         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
5466
5467 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
5468
5469         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
5470         on e500v2.
5471         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
5472         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
5473
5474         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
5475         (rs6k_nonimmediate_operand): New.
5476         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
5477         correctly.
5478         (legitimate_lo_sum_address_p): Same.
5479         (rs6000_legitimize_address): Same.
5480         (rs6000_legitimize_reload_address): Same.
5481         (rs6000_legitimate_address): Same.
5482         (spe_build_register_parallel): Pass DF and DC modes in a DI
5483         register.
5484
5485         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
5486         to rs6k_nonimmediate_operand.
5487
5488         * config/rs6000/spe.md ("*frob_df_di"): New.
5489         ("*frob_di_df"): New.
5490         ("*frob_di_df_2"): New.
5491         ("*mov_sidf_e500_subreg0"): New.
5492         ("*mov_sidf_e500_subreg4"): New.
5493         ("*movdf_e500_double"): Change predicate to
5494         rs6k_nonimmediate_operand.
5495
5496 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
5497
5498         * postreload.c (move2add_note_store): Only call
5499         trunc_int_for_mode on scalar integers.
5500
5501 2005-01-14  Steven Bosscher  <stevenb@suse.de>
5502
5503         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
5504         replace BB_VISITED uses.
5505         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
5506         (propagate_necessity): Check the bitmap instead of BB_VISITED.
5507         (tree_dce_done): Free visited_control_parents.
5508         (perform_tree_ssa_dce): Allocate and clear it.
5509         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
5510         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
5511         instead of BB_VISITED.
5512
5513 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
5514
5515         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
5516         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
5517         Remove unused prototypes.
5518
5519 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
5520
5521         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
5522         64-bit register usage.
5523         (spe_func_has_64bit_regs_p): Add FIXME note.
5524
5525 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
5526
5527         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
5528         flag_finite_math_only with flag_unsafe_math_optimizations.
5529
5530 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
5531
5532         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
5533         end-of-stack check.
5534         (__tpf_eh_return): Copy TPF private stack area from the module
5535         boundary stack frame.  Add check for when module addresses are
5536         equal, but no stub address is found.
5537
5538 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
5539
5540         PR target/7525
5541         * arm.h (struct machine_function): Add call_via field.
5542         (thumb_call_via_label): Declare.
5543         * arm.c (thumb_call_via_label): New variable.
5544         (thumb_call_reg_needed): New variable.
5545         (arm_output_function_epilogue): For Thumb code, output any per-function
5546         call-indirect trampolines.
5547         (thumb_call_via_reg): New function.
5548         (arm_file_end): New function.
5549         (TARGET_ASM_FILE_END): Call arm_file_end.
5550         (aof_file_end): Likewise.
5551         * arm-protos.h (thumb_call_via_reg): Declare.
5552         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
5553         thumb_call_via_reg in normal case.
5554
5555 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
5556
5557         PR middle-end/19084
5558         PR rtl-optimization/19348
5559         * recog.c (peephole2_optimize): Do global life update if some peephole
5560         decides it doesn't need at least one of its inputs and that change
5561         influences liveness at the start of the basic block.
5562
5563         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
5564         arguments instead of 1.
5565
5566 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
5567
5568         PR middle-end/18820
5569         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
5570         zero for nested functions needing a static chain or functions
5571         with a non-constant address.
5572
5573 2005-01-13  Roger Sayle  <roger@eyesopen.com>
5574
5575         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
5576         (and (sign_extend X) C) into (zero_extend (and X C)).
5577
5578 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
5579
5580         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
5581
5582 2005-01-13  Richard Henderson  <rth@redhat.com>
5583
5584         PR target/19009
5585         PR target/19250
5586         PR target/19252
5587         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
5588         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
5589         not just TARGET_SSE.
5590         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
5591         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
5592         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
5593         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
5594         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
5595         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
5596         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
5597         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
5598         (movdicc_c_rex64): Rename with '*'.
5599         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
5600         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
5601         (movsfcc_1_387): Rename from movsfcc_1.
5602         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
5603         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
5604         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
5605         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
5606         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
5607         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
5608         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
5609         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
5610         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
5611         sse_movdfcc_const0_4): Remove.
5612         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
5613         recognize min/max early.  Update for changed sse cmove patterns.
5614         (ix86_split_sse_movcc): New.
5615         * config/i386/i386-protos.h: Update.
5616
5617 2005-01-13  Steven Bosscher  <stevenb@suse.de>
5618
5619         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
5620         (fix_stmt_v_may_defs): Likewise.
5621
5622 2005-01-13  Richard Henderson  <rth@redhat.com>
5623
5624         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
5625         for converting the mask.
5626
5627 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
5628
5629         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
5630         definition to 600.
5631
5632 2005-01-13  Richard Henderson  <rth@redhat.com>
5633
5634         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
5635         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
5636         IX86_BUILTIN_MOVDQ2Q): Remove.
5637         (IX86_BUILTIN_VEC_EXT_V4SI): New.
5638         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
5639         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
5640         shuffling.
5641         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
5642         (sse2_pextrw): Fix immediate constraint.
5643         (sse2_loadq, sse2_loadq_rex64): Remove.
5644         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
5645         Use __builtin_ia32_vec_ext_<size>.
5646         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
5647
5648 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
5649
5650         * function.c (assign_parm_setup_block): Look inside original
5651         entry_parm when inspecting PARALLEL.
5652
5653 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
5654             Joel Sherrill  <joel@oarcorp.com>
5655
5656         PR target/19399
5657         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
5658         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
5659         rtems_gxx_recursive_mutex_init.
5660         (__gthread_recursive_mutex_lock): New function.
5661         (__gthread_recursive_mutex_trylock): Likewise.
5662         (__gthread_recursive_mutex_unlock): Likewise.
5663
5664 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
5665
5666         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
5667
5668 2005-01-13  Jan Beulich  <jbeulich@novell.com>
5669
5670         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
5671         (ashrti3_internal): Indicate output is early clobber. Generate result
5672         into output rather than first input. Use move for low word of output
5673         if shift count is exactly 64.
5674         (lshrti3_internal): Likewise.
5675
5676 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
5677
5678         PR target/18329
5679         PR target/18330
5680         * reload1.c (delete_output_reload): Don't delete an output reload
5681         if the pseudo lives longer than a single basic block.  Adjust and
5682         improve wording of comment.
5683
5684 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
5685
5686         PR target/19334
5687         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
5688         of TYPE_SIZE where we mean the number of bytes.
5689
5690 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
5691
5692         * function.c (assign_parm_setup_block): Relax condition on
5693         multi-register optimization.
5694
5695 2005-01-12  Nick Clifton  <nickc@redhat.com>
5696
5697         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
5698         an "in_delay_slot" attribute of "no" to prevent them being used in
5699         delay slots.  This is forbidden because they might generate
5700         exceptions.
5701
5702 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
5703
5704         PR target/19389
5705         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
5706         with r->Y and Y->r.
5707
5708 2005-01-12  Nick Clifton  <nickc@redhat.com>
5709
5710         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
5711         passed on to GAS) but do not define, as GAS no longer supports or
5712         needs the -m2000 option.
5713
5714 2005-01-11  Roger Sayle  <roger@eyesopen.com>
5715
5716         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
5717         type as args of unprototyped builtins aren't automatically promoted.
5718         (fold_builtin_abs): Likewise.
5719
5720 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5721
5722         * Makefile.in: Set a `build-warn' variable.
5723
5724 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
5725
5726         PR tree-optimization/17949
5727         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
5728         (find_interesting_uses_address): Use it.
5729
5730 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
5731
5732         * regrename.c (kill_value): Handle subreg's that won't simplify.
5733
5734 2005-01-11  Richard Henderson  <rth@redhat.com>
5735
5736         PR target/13366
5737         * config/i386/i386.h (enum ix86_builtins): Move ...
5738         * config/i386/i386.c: ... here.
5739         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
5740         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
5741         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
5742         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
5743         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
5744         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
5745         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
5746         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
5747         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
5748         IX86_BUILTIN_LOADDDUP): Remove.
5749         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
5750         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
5751         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
5752         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
5753         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
5754         (ix86_init_builtins): Make static.
5755         (ix86_init_mmx_sse_builtins): Update for changed builtins.
5756         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
5757         if all the modes match.  Otherwise, fake it.
5758         (get_element_number, ix86_expand_vec_init_builtin,
5759         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
5760         (ix86_expand_builtin): Make static.  Update for changed builtins.
5761         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
5762         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
5763         (ix86_expand_vector_init_duplicate): New.
5764         (ix86_expand_vector_init_low_nonzero): New.
5765         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
5766         Split out from ix86_expand_vector_init; handle integer modes.
5767         (ix86_expand_vector_init): Use them.
5768         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
5769         * config/i386/i386-protos.h: Update.
5770         * config/i386/predicates.md (reg_or_0_operand): New.
5771         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
5772         (movv2sf_internal): Likewise.  And a splitter to match them all.
5773         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
5774         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
5775         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
5776         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
5777         (mmx_pinsrw): Fix operand ordering.
5778         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
5779         rather than sse_loadss expander.
5780         (movv2df splitter): Similarly.
5781         (sse_loadss, sse_loadlss): Remove.
5782         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
5783         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
5784         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
5785         (sse3_movddup): Rename with '*'.
5786         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
5787         (sse2_loadsd): Remove.
5788         (vec_dupv2df_sse3): Rename from sse3_loadddup.
5789         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
5790         (sse2_pinsrw): Fix argument ordering.
5791         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
5792         (sse2_stored): Remove 'r' destination.
5793         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
5794         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
5795         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
5796         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
5797         vec_extractv16qi, vec_initv16qi): New.
5798
5799         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
5800         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
5801         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
5802         constructor form.
5803         (_mm_load_pd, _mm_store_pd): Use plain dereference.
5804         (_mm_load_si128, _mm_store_si128): Likewise.
5805         (_mm_load1_pd): Use _mm_set1_pd.
5806         (_mm_load_sd): Use _mm_set_sd.
5807         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
5808         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
5809         (_mm_set_epi64): Use _mm_set_epi64x.
5810         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
5811         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
5812         _mm_setr_epi8): Use _mm_set_foo form.
5813         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
5814         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
5815         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
5816         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
5817         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
5818         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
5819         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
5820         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
5821         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
5822         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
5823         (_mm_movedup_pd): Use _mm_shuffle_pd.
5824         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
5825         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
5826         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
5827         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
5828         Use _mm_setzero_ps.
5829         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
5830         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
5831         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
5832         (_mm_store_ps): Use raw dereference.
5833         (_mm_store1_ps): Use _mm_storeu_ps.
5834         (_mm_storer_ps): Use _mm_store_ps.
5835         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
5836         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
5837
5838 2005-01-11  Stan Shebs  <shebs@apple.com>
5839
5840         * config/rs6000/rs6000.c (machopic_output_stub): Issue
5841         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
5842
5843 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
5844
5845         PR target/18761
5846         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
5847         Skip all DECLs except for FIELD_DECLs.
5848
5849 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
5850
5851         * config/s390/s390.c (override_options): Return error if
5852         -mbackchain, -mpacked-stack and -mhard-float are used together.
5853         (s390_va_start): Remove the backchain && packed-stack special case.
5854         (s390_gimplify_va_arg): Likewise.
5855         * doc/invoke.texi: Remove the ABI incompatibility note.
5856
5857 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
5858
5859         * config/s390/s390.c (struct s390_frame_layout): Remove
5860         save_backchain_p.
5861         (s390_frame_info, s390_emit_prologue): Replace occurrences of
5862         save_backchain_p with TARGET_BACKCHAIN.
5863
5864 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
5865
5866         PR target/18916
5867         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
5868         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
5869         * function.c (locate_and_pad_parm): Set new field.
5870         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
5871         Tweak where_pad test to include "none".  Always set mem align for
5872         stack_parm.
5873         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
5874         not sufficient for type.
5875         (assign_parm_setup_block): If stack_parm is zero on entry, always
5876         make a new stack local.  Block move old stack parm if necessary
5877         to new aligned stack local.
5878         (assign_parm_setup_stack): Use a block move to handle
5879         potentially misaligned entry_parm.
5880         (assign_parms_unsplit_complex): Specify required alignment when
5881         creating stack local.
5882         * calls.c (compute_argument_addresses): Override alignment of stack
5883         arg calculated from its type with the alignment given by
5884         FUNCTION_ARG_BOUNDARY.
5885         (store_one_arg): Likewise.
5886
5887 2005-01-11  Jan Beulich  <jbeulich@novell.com>
5888
5889         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
5890         Change respective itanium_class attribute to ialu.
5891         (shladdp4_internal): New.
5892         * config/ia64/predicates.md (shladd_log2_operand): New.
5893
5894 2005-01-11  Richard Henderson  <rth@redhat.com>
5895
5896         * expr.c (store_constructor): Use rtvec_alloc instead of
5897         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
5898
5899 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
5900
5901         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
5902
5903 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
5904
5905         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
5906         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
5907         (TARGET_RWRELOC): Define.
5908         (ia64_rwreloc_section_type_flags): Delete.
5909         (ia64_section_type_flags): New function.
5910         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
5911         (TARGET_RWRELOC): Define.
5912
5913 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
5914
5915         PR target/18987
5916         * config/ia64/ia64.c (process_set): For alloc insn, only call
5917         process_epilogue is !frame_pointer_needed.
5918
5919 2005-01-10  Roger Sayle  <roger@eyesopen.com>
5920
5921         PR c++/19355
5922         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
5923         unary operator and can't be treated as a binary/comparison operator.
5924
5925 2005-01-10  Richard Henderson  <rth@redhat.com>
5926
5927         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
5928         (ix86_return_in_memory): Likewise.
5929         (function_arg_advance):  Likewise.  Mirror structure in function_arg
5930         for choosing register to advance.
5931
5932 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
5933
5934         * tree-vectorizer.c, tree.def: Fix comment typos.
5935
5936 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
5937
5938         * config/s390/s390.c (struct processor_costs): 4 new fields:
5939         ddbr, ddr, debr, der.
5940         (s390_rtx_costs): More precise handling of divide instructions.
5941
5942 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
5943
5944         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
5945
5946 2005-01-10  Jan Beulich  <jbeulich@novell.com>
5947
5948         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
5949         names resulting from -ffunction-sections/-fdata-sections and linkonce
5950         ones.
5951         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
5952         based on the section name. Rearrange the section name comparison logic
5953         slightly so that each section name is compared against at most once.
5954
5955 2005-01-10  Ben Elliston  <bje@au.ibm.com>
5956
5957         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
5958         targets for which -fPIC reduces limitations on the GOT size.
5959
5960 2005-01-09  Falk Hueffner  <falk@debian.org>
5961
5962         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
5963         X/C1 cmpop C2.
5964
5965 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
5966
5967         PR target/18720
5968         * collect2.c (main): Set aixrtl_flag for -brtl option.
5969         (resolve_lib_name): Search for .so file extension before .a
5970         if aixrtl_flag set.
5971
5972 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
5973
5974         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
5975         (vect_analyze_data_refs_alignment): Add dump prints.
5976
5977 2005-01-09  Ira Rosen  <irar@il.ibm.com>
5978
5979         * tree-vectorizer.c (vect_analyze_offset_expr): Use
5980         expr_invariant_in_loop_p.
5981         Initialize outputs first thing in the function.
5982         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
5983         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
5984         (vect_analyze_pointer_ref_access): Check that the initial condition of
5985         the access function is loop invariant.
5986
5987 2005-01-09  Richard Henderson  <rth@redhat.com>
5988
5989         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
5990         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
5991         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
5992         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
5993         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
5994         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
5995         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
5996         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
5997         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
5998         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
5999         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
6000         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
6001         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
6002         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
6003         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
6004         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
6005         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
6006         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
6007         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
6008         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
6009         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
6010         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
6011         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
6012         mmx_ prefix.
6013         (mmx_clrdi, pavgusb): Remove.
6014         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
6015         with leading sse_ prefix.
6016         * config/i386/sse.md: Receive them.
6017         * config/i386/mmx.md: New file.
6018         (MMXMODE12, MMXMODE24, mmxvecsize): New.
6019         (subrv2sf3): Turn into expander for normal subtraction.
6020         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
6021         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
6022         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
6023         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
6024         commutative; use ix86_binary_operator_ok.
6025         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
6026         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
6027         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
6028         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
6029         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
6030         Macroize from existing patterns; use ix86_binary_operator_ok.
6031         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
6032         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
6033         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
6034         with vec_select+vec_concat.
6035         (mmx_pshufw, mmx_pshufw_1): Likewise.
6036         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
6037         (mmx_uavgv4hi3): Model correctly.
6038         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
6039         _mm_xor_si64): Remove casts.
6040
6041 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
6042
6043         PR tree-optimization/19224
6044         * tree-scalar-evolution.c (get_instantiated_value,
6045         set_instantiated_value): New functions.
6046         (instantiate_parameters_1): Cache the results.
6047         (instantiate_parameters, resolve_mixers): Initialize and free
6048         the cache.
6049
6050 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
6051
6052         * config/i386/i386.md (addhi_4): Correct reference in comment.
6053         (addqi_4): Same.
6054
6055 2005-01-08  Richard Henderson  <rth@redhat.com>
6056
6057         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
6058         (_mm_cvtsi128_si64x): Likewise.
6059         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
6060         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
6061         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
6062         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
6063         * config/i386/i386-protos.h: Update.
6064         * config/i386/i386.c (print_operand): Add 'H'.
6065         (ix86_fixup_binary_operands): Split out from ...
6066         (ix86_expand_binary_operator): ... here.
6067         (ix86_fixup_binary_operands_no_copy): New.
6068         (ix86_expand_fp_absneg_operator): Handle vector mode results.
6069         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
6070         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
6071         (safe_vector_operand): Use CONST0_RTX.
6072         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
6073         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
6074         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
6075         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
6076         special cases.
6077         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
6078         (IX86_BUILTIN_CMPNGESS): New.
6079         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
6080         (attr type): Add sselog1.
6081         (attr unit, attr memory): Handle it.
6082         (movti, movti_internal, movti_rex64): Move near other integer moves.
6083         (movtf, movtf_internal): Move near other fp moves.
6084         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
6085         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
6086         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
6087         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
6088         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
6089         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
6090         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
6091         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
6092         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
6093         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
6094         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
6095         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
6096         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
6097         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
6098         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
6099         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
6100         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
6101         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
6102         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
6103         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
6104         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
6105         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
6106         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
6107         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
6108         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
6109         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
6110         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
6111         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
6112         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
6113         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
6114         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
6115         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
6116         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
6117         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
6118         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
6119         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
6120         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
6121         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
6122         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
6123         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
6124         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
6125         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
6126         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
6127         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
6128         same time.
6129         (SSEPUSH, push<SSEPUSH>): Remove.
6130         (MMXPUSH, push<MMXPUSH>): Remove.
6131         (sse_movaps, sse_movaps_1, sse_movups): Remove.
6132         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
6133         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
6134         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
6135         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
6136         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
6137         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
6138         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
6139         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
6140         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
6141         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
6142         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
6143         (ppro_sse_log_V4SF): Handle sselog1.
6144         * config/i386/predicates.md (const_0_to_1_operand): New.
6145         (const_0_to_255_mul_8_operand): New.
6146         (const_1_to_31_operand): Rename from const_int_1_31_operand.
6147         (const_2_to_3_operand, const_4_to_7_operand): New.
6148         * config/i386/sse.md: New file.
6149         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
6150         (sse_movups): Rename from sse_movups_1.
6151         (sse_loadlss): Rename from sse_loadss_1.
6152         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
6153         from the name.
6154         (negv4sf2): Use ix86_expand_fp_absneg_operator.
6155         (absv4sf2, negv2df, absv2df): New.
6156         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
6157         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
6158         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
6159         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
6160         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
6161         (sse3_addsubv4sf3): Model correctly.
6162         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
6163         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
6164         (sse_movhlps): Model with vec_select+vec_concat.
6165         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
6166         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
6167         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
6168         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
6169         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
6170         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
6171         sse2_pshufhw_1): Likewise.
6172         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
6173         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
6174         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
6175         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
6176         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
6177         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
6178         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
6179         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
6180         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
6181         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
6182         sminv8hi3): Mark commutative
6183         operands.  Use ix86_binary_operator_ok.
6184         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
6185         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
6186         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
6187         sse2_punpcklqdq): Allow operand2 in memory.
6188         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
6189         sse2_movsd): Add memory alternatives.
6190         (sse_storelps): Turn expander into an insn; split after reload.
6191         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
6192         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
6193
6194 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6195
6196         * configure.ac (DWARF-2 debug_line): Use objdump.
6197         * configure: Regenerate.
6198
6199 2005-01-08  Jeff Law  <law@redhat.com>
6200             Diego Novillo  <dnovillo@redhat.com>
6201
6202         PR tree-optimization/18241
6203         * tree-nrv.c (tree_nrv): Ignore volatile return values.
6204         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
6205         statements with volatile operands.
6206         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
6207         operands after marking a statement with has_volatile_ops.
6208
6209 2005-01-08  Roger Sayle  <roger@eyesopen.com>
6210
6211         * tree.c (int_fits_type_p): Always honor integer constant
6212         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
6213
6214 2005-01-08  Roger Sayle  <roger@eyesopen.com>
6215
6216         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
6217         the latent bug in rtl_delete_block has been resolved.
6218
6219 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
6220
6221         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
6222         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
6223
6224 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
6225
6226         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
6227         library as @multilib_dir@/$(SHLIB_SONAME).
6228
6229 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6230
6231         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
6232         * configure: Regenerate.
6233
6234 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
6235
6236         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
6237         TYPE_MODE.
6238
6239 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
6240
6241         PR target/13674
6242         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
6243         Convert non-word aligned offset address using ld/std into
6244         indirect address.
6245
6246 2005-01-07  Richard Henderson  <rth@redhat.com>
6247
6248         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
6249
6250 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
6251
6252         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
6253
6254 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
6255
6256         PR tree-optimization/19283
6257         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
6258         is not shorter than the original type.
6259
6260         PR rtl-optimization/19012
6261         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
6262
6263         PR rtl-optimization/18861
6264         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
6265         (FULL_STATE): Define.
6266         (mark_tablejump_edge): New function.
6267         (purge_dead_tablejump_edges): New function.
6268         (find_bb_boundaries): Use it.
6269
6270         PR tree-optimization/18828
6271         * builtins.c (expand_builtin_next_arg): Remove argument and all
6272         the argument checking.
6273         (expand_builtin): Adjust caller.
6274         (expand_builtin_va_start): Likewise.  Remove error for too many
6275         arguments.
6276         (fold_builtin_next_arg): Issue error for too many arguments.
6277         After checking arguments, replace them with magic arguments that
6278         prevent further checking of the args.
6279
6280 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6281
6282         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
6283
6284 2005-01-06  Roger Sayle  <roger@eyesopen.com>
6285
6286         PR target/6077
6287         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
6288         and %{.S:...} (and their negative variants) to test whether the
6289         input file is assembler or pre-processed-assembler independent of
6290         the actual filename extension.
6291
6292 2005-01-06  Roger Sayle  <roger@eyesopen.com>
6293
6294         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
6295         of sign or zero extended values.
6296
6297 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
6298
6299         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
6300         for IBM long double format correctly.
6301
6302 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
6303
6304         Fix PR tree-optimization/18792
6305
6306         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
6307         to first_loop_depth, and use loop depth instead of loop number.
6308         (build_classic_dir_vector): Ditto.
6309         (compute_data_dependences_for_loop): Use depth, not loop number.
6310         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
6311         number. Pass in loops, instead of loop numbers.
6312         (gather_interchange_stats): Ditto.
6313         (linear_transform_loops): Ditto.
6314
6315 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
6316
6317         PR rtl-opt/13299
6318         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
6319         biv_fits_mode_p, extension_within_bounds_p): New functions.
6320         (check_ext_dependent_givs): Use them.
6321
6322 2005-01-06  Roger Sayle  <roger@eyesopen.com>
6323
6324         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
6325         more than one barrier, in which case we should delete them all.
6326
6327 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
6328
6329         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
6330
6331 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
6332
6333         Fix PR middle-end/19286
6334         Fix PR debug/19267
6335         * dwarf2out.c (gen_subprogram_die): If we've already tried to
6336         output this subprogram, simply ignore this attempt to do it again.
6337         (add_abstract_origin_attribute): Don't abort trying to add the abstract
6338         origin attribute if it's not possible.
6339         (gen_block_die): Don't ignore subblocks of "unused" blocks.
6340         (decls_for_scope): Ditto.
6341         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
6342         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
6343
6344 2005-01-05  Richard Henderson  <rth@redhat.com>
6345
6346         PR target/11327
6347         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
6348         (bdesc_2arg): Use it.
6349         (ix86_expand_binop_builtin): Force operands into registers
6350         when optimizing.
6351         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
6352         ix86_expand_sse_compare, ix86_expand_sse_comi,
6353         ix86_expand_builtin): Likewise.
6354
6355 2005-01-05  Richard Henderson  <rth@redhat.com>
6356
6357         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
6358         and VEC_SELECT.
6359         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
6360         (mulv4hi3): Set itanium_class mmmul.
6361         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
6362         (fpack): Rename from fpack_sfsf.
6363
6364 2005-01-05  Richard Henderson  <rth@redhat.com>
6365
6366         PR rtl-opt/10692
6367         * reload1.c (do_input_reload): Restrict the optimization deleteing
6368         a previous output reload to RELOAD_FOR_INPUT.
6369
6370 2005-01-05  Steven Bosscher  <stevenb@suse.de>
6371
6372         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
6373         comment that we fall through after case.
6374         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
6375         (distribute_links): Likewise.
6376         * cse.c (cse_insn): Likewise.
6377         * cselib.c (cselib_invalidate_mem): Likewise.
6378         * df.c: Update comments at the top of the file.
6379         (read_modify_subreg_p): Update comments here too.
6380         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
6381         * flow.c (mark_set_1): Likewise.
6382         (mark_used_regs): Likewise.
6383         * gcse.c (mems_conflict_for_gcse_p): Likewise.
6384         (canon_list_insert): Likewise.
6385         (mark_set): Likewise.
6386         (try_replace_reg): Likewise.
6387         (store_killed_in_insn): Likewise.
6388         * loop.c (count_one_set): Likewise.
6389         (basic_induction_var): Likewise.
6390         * postreload-gcse.c (find_mem_conflicts): Likewise.
6391         * postreload.c (reload_combine_note_store): Likewise.
6392         (move2add_note_store): Likewise.
6393         * reload.c (find_equiv_reg): Likewise.
6394         (mark_referenced_resources): Likewise.
6395         * rtlanal.c (set_noop_p): Likewise.
6396         (note_stores): Likewise.
6397         (note_uses): Likewise.
6398         * sched-deps.c (sched_analyze_1): Likewise.
6399         * sched-rgn.c (check_live_1): Likewise.
6400         (update_live_1): Likewise.
6401         * config/i860/i860.c: Likewise.
6402
6403         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
6404         an lvalue.
6405         (ZERO_EXTRACT): Mention that this one can be an lvalue.
6406
6407         * doc/rtl.texi: Update documentation for bit-fields and SET.
6408
6409 2005-01-05  Roger Sayle  <roger@eyesopen.com>
6410
6411         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
6412
6413 2005-01-05  Jan Hubicka  <jh@suse.cz>
6414             Richard Henderson  <rth@redhat.com>
6415
6416         PR target/18910
6417         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
6418         with an offset.
6419
6420 2005-01-05  Richard Henderson  <rth@redhat.com>
6421
6422         PR target/12902
6423         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
6424         (sse_shufps): Change operand 3 to const_int_operand.
6425         (sse2_storelps): Fix typo in template.
6426         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
6427         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
6428         (ix86_expand_builtin): Likewise.
6429
6430 2005-01-05  Julian Brown  <julian@codesourcery.com>
6431
6432         * config/arm/arm.c (arm_return_in_memory): Treat complex types
6433         as aggregates for AAPCS ABIs.
6434
6435 2005-01-05  Stan Shebs  <shebs@apple.com>
6436
6437         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
6438         Mach-O getters if ppc64.
6439         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
6440         size argument.
6441         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
6442         signed four-byte field for global code case.
6443         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
6444
6445 2005-01-05  Roger Sayle  <roger@eyesopen.com>
6446
6447         PR middle-end/19100
6448         * c-common.c: Include real.h.
6449         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
6450         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
6451         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
6452         * Makefile.in (c-common.o): Update dependencies.
6453
6454 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
6455
6456         * c-parse.in (asm_string): Add trailing semicolon.
6457
6458 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
6459
6460         * c-parse.in (asm_string): New.  Don't allow wide strings in
6461         'asm'.
6462         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
6463         asm_string instead of STRING.
6464
6465 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
6466
6467         * c-typeck.c (constructor_no_implicit): Remove.
6468         (set_designator, process_init_element): Don't check
6469         constructor_no_implicit.
6470
6471 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
6472             Kaz Kojima  <kkojima@gcc.gnu.org>
6473
6474         PR target/16482
6475         * lcm.c (create_pre_exit): New.
6476         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
6477         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
6478
6479 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
6480
6481         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
6482         -msoft-float in target_float_switch.
6483         * arm.c (arm_override_options): Fix processing of target_float_switch.
6484
6485 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
6486
6487         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
6488         preferencing.
6489
6490 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
6491
6492         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
6493         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
6494
6495 2005-01-04  Roger Sayle  <roger@eyesopen.com>
6496
6497         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
6498         if deleting the then-block allows the test-block to fallthru to the
6499         else-block.
6500
6501 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
6502
6503         PR c/19152
6504         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
6505         after the full declaration if the are in two different TUs.
6506
6507 2005-01-04  Richard Henderson  <rth@redhat.com>
6508
6509         PR tree-opt/19158
6510         * tree-sra.c (generate_one_element_init): Just
6511         call gimplify_and_add.
6512         (generate_element_init): Record the
6513         new referenced variables and mark them for renaming
6514         and split out to ...
6515         (generate_element_init_1): This.
6516         (scalarize_init): Don't call push_gimplify_context/
6517         pop_gimplify_context.
6518
6519 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
6520
6521         * toplev.c (get_src_pwd): Handle failure of getpwd().
6522
6523 2005-01-04  Roger Sayle  <roger@eyesopen.com>
6524
6525         * fold-const.c (fold_single_bit_test): Delete unreachable handling
6526         of TRUTH_NOT_EXPR.
6527         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
6528         all the cases handled by it are inverted by invert_truthvalue.
6529
6530 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6531
6532         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
6533         (save_register_windowsi): Likewise.
6534
6535 2005-01-04  Richard Henderson  <rth@redhat.com>
6536
6537         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
6538
6539 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
6540
6541         PR middle-end/17767
6542         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
6543         any simplifications of vector mode comparison operators.
6544         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
6545
6546 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
6547             Devang Patel  <dpatel@apple.com>
6548
6549         PR tree-optimization/18308
6550         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
6551         the operands before creating a new expression.
6552         * dojump.c (do_jump): Make drop_through_label available
6553         for all cases.  Add expansion of COND_EXPR.
6554
6555 2005-01-04  Ira Rosen  <irar@il.ibm.com>
6556
6557         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
6558         INTEGER_CST instead of TREE_CONSTANT.
6559         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
6560         instead of TREE_CONSTANT.
6561         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
6562         instead of TREE_CONSTANT.
6563
6564 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6565
6566         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
6567
6568 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
6569
6570         PR target/19240
6571         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
6572         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
6573
6574 2005-01-03  Richard Henderson  <rth@redhat.com>
6575
6576         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
6577         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
6578         fold_convert_const_real_from_real): Split out from ...
6579         (fold_convert_const): ... here.
6580
6581 2005-01-03  Richard Henderson  <rth@redhat.com>
6582
6583         PR target/19235
6584         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
6585         (mov<MMXMODEI>_internal): Likewise.
6586         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
6587         Add V2SF case; use it for SSE1; don't use TI.
6588         (movdf_integer): Likewise.
6589         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
6590
6591 2005-01-03  Ira Rosen  <irar@il.ibm.com>
6592
6593         * tree-vectorizer.c (vect_strip_conversions): New function.
6594         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
6595         check for binary class.
6596
6597 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
6598
6599         Fix PR debug/17924
6600         Fix PR debug/19191
6601         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
6602         is a decl.
6603         * gimple-low.c (mark_blocks_with_used_vars): New function.
6604         (mark_blocks_with_used_subblocks): Ditto.
6605         (mark_used_blocks): Ditto.
6606         (pass_mark_used_blocks): New pass.
6607         * tree-inline.c: Include debug.h.
6608         (expand_call_inline): Call outlining_inline_function here.
6609         * tree-optimize.c (init_tree_optimization_passes): Add
6610         pass_mark_used_blocks.
6611         * tree-pass.h (pass_mark_used_blocks): New.
6612         * Makefile.in (tree-inline.o): Add debug.h dependency.
6613
6614 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
6615
6616         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
6617         VAR_DECLs to have weak_import attribute.
6618
6619         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
6620         'struct ucontext'.
6621
6622 2004-01-03  Steven Bosscher  <stevenb@suse.de>
6623
6624         * passes.c (rest_of_compilation): Don't run regmove if only
6625         flag_expensive_optimizations, require flag_regmove instead.
6626
6627 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6628
6629         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
6630         register "sparc".
6631         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
6632         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6633         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
6634         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6635
6636 2005-01-03  Richard Henderson  <rth@redhat.com>
6637
6638         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
6639         (ia64_const_ok_for_letter_p): New.
6640         (ia64_const_double_ok_for_letter_p): New.
6641         (ia64_extra_constraint): New.
6642         (ia64_expand_vecint_compare): New.
6643         (ia64_expand_vcondu_v2si): New.
6644         (ia64_expand_vecint_cmov): New.
6645         (ia64_expand_vecint_minmax): New.
6646         (ia64_print_operand): Add 'v'.
6647         (ia64_preferred_reload_class): New.
6648         (ia64_vector_mode_supported_p): New.
6649         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
6650         (PREFERRED_RELOAD_CLASS): Move to function.
6651         (CONST_OK_FOR_LETTER_P): Move to function.
6652         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
6653         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
6654         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
6655         (EXTRA_CONSTRAINT): Move to function.
6656         * config/ia64/ia64.md: Include vect.md.
6657         (itanium_class): Add mmalua.
6658         (type): Handle it.
6659         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
6660         (1b_mmalua): New.
6661         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
6662         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
6663         CONST0_RTX.
6664         (const_int_2bit_operand): New.
6665         (fr_reg_or_0_operand): New.
6666         * config/ia64/ia64-modes.def: Add vector modes.
6667         * config/ia64/ia64-protos.h: Update.
6668         * config/ia64/vect.md: New file.
6669
6670 2005-01-03  Richard Henderson  <rth@redhat.com>
6671
6672         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
6673
6674 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
6675
6676         PR target/19236
6677         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
6678         to SFmode.
6679         (log1pdf2): Change mode of operands[0,1] to DFmode.
6680
6681 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6682
6683         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
6684         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
6685         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
6686         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
6687         SPARC_RELAXED_ORDERING.
6688
6689 2005-01-03  Richard Henderson  <rth@redhat.com>
6690             Uros Bizjak  <uros@kss-loka.si>
6691
6692         PR target/14631
6693         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
6694         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
6695         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
6696         handling.
6697         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
6698         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
6699         const_pow2_1_to_128_operand): New predicates.
6700
6701 2005-01-02  Greg McGary  <greg@mcgary.org>
6702
6703         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
6704         anonymous decls.
6705         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
6706         object.  [ptr_type]: Remove unused variable.
6707         Remember nearest addressable array-element or record-component
6708         when checking bitfield components.  Tolerate empty BIND_EXPR.
6709
6710 2005-01-01  Richard Henderson  <rth@redhat.com>
6711
6712         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
6713         that don't narrow the value.  Fail for other conversions.
6714
6715 2005-01-01  Richard Henderson  <rth@redhat.com>
6716
6717         PR c/19031
6718         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
6719         * c-lang.c (finish_file): Don't do it here.
6720         * objc/objc-act.c (objc_finish_file): Likewise.
6721
6722         * cgraph.c (decl_assembler_name_equal): New.
6723         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
6724         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
6725         * cgraph.h (struct cgraph_varpool_node): Add next.
6726         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
6727         * varasm.c (assemble_alias): Mark the target as needed.
6728
6729 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
6730
6731         PR middle-end/19221
6732         * function.c (get_arg_pointer_save_area): Use entry_of_function
6733         instead of get_insns.
6734
6735 2005-01-01  Roger Sayle  <roger@eyesopen.com>
6736             Andrew Pinski  <pinskia@physics.uc.edu>
6737             James E. Wilson  <wilson@specifixinc.com>
6738
6739         PR rtl-optimization/12092
6740         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
6741         is zero.
6742
6743 2005-01-01  Roger Sayle  <roger@eyesopen.com>
6744             Olivier Hainque  <hainque@act-europe.fr>
6745
6746         * tree.c (int_fits_type_p): A narrower type always fits in a
6747         wider one, except for negative values into unsigned types.
6748
6749 2005-01-01  Roger Sayle  <roger@eyesopen.com>
6750
6751         * tree.c (int_fits_type_p): Compare the result of force_fit_type
6752         with the original constant rather than require TREE_OVERFLOW.
6753
6754 2005-01-01  Steven Bosscher  <stevenb@suse.de>
6755
6756         PR middle-end/17544
6757         * c-decl.c (finish_function): If compiling C99, annotate the
6758         compiler generated return with the current file name and line 0.
6759         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
6760         the source line is greater than 0.
6761         (remove_bb): Likewise.
6762
6763 See ChangeLog.12 for earlier changes.