c-common.def (GOTO_STMT, LABEL_STMT): Remove.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2004-06-16  Richard Henderson  <rth@redhat.com>
2
3         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
4         * c-common.c (c_add_case_label): Use LABEL_EXPR.
5         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
6         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
7         * c-dump.c (c_dump_tree): Likewise.
8         * c-gimplify.c (c_gimplify_stmt): Likewise.
9         * c-pretty-print.c (pp_c_statement): Likewise.
10         * c-parse.in (stmt): Use GOTO_EXPR.
11         (label): Use LABEL_EXPR.
12         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
13         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
14
15 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
16
17         * cfgcleanup.c (try_simplify_condjump): Update test to make
18         sure we have a conditional branch around am unconditional branch.
19
20 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
21
22         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
23         
24 2004-06-16  Dale Johannesen  <dalej@apple.com>
25
26         * loop.c (loop_givs_reduce): Avoid miscompilation of
27         loops entered at bottom.
28
29 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
30
31         * cfglayout.c (fixup_reorder_chain): Handle case where the
32         destination of E_FALL is EXIT_BLOCK_PTR.
33
34 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
35
36         PR target/15653
37         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
38         after shifts before asm.
39
40 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
41
42         PR tree-optimization/15993
43         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
44         destination is unchanged.
45
46 2004-06-16  Andreas Jaeger  <aj@suse.de>
47
48         * doc/install.texi (Configuration): Update description for
49         --enable-version-specific-runtime-libs.
50
51 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
52
53         * doc/install.texi: boehm-gc now uses automake 1.8.5.
54
55 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
56
57         * toplev.h (rest_of_compilation): Adjust prototype.
58
59 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
60
61         * coverage.c: Remove argument to rest_of_compilation.
62         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
63         * passes.c (rest_of_compilation): Remove argument.
64         (pass_rest_of_compilation): New.
65         (rest_of_handle_final, rest_of_handle_delay_slots,
66         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
67         rest_of_handle_machine_reorg, rest_of_handle_regrename
68         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
69         rest_of_handle_regmove, rest_of_handle_tracer
70         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
71         rest_of_handle_web, rest_of_handle_branch_prob
72         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
73         rest_of_handle_addressof, rest_of_handle_jump_bypass
74         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
75         Check that the two arguments are actually superfluous.
76         * tree-optimize.c (register_dump_files): Add properties argument.
77         Track validity of passes.  Only initialize dump files for
78         tree-based passes.  Store the full set of provided passes in
79         the pass.
80         (init_tree_optimization_passes): Register pass_expand and
81         pass_rest_of_compilation.
82         (execute_one_pass): Do not track the presence of required properties
83         here.  Set in_gimple_form.  Do not update current_properties.
84         (current_properties): Remove.
85         (set_save_expr_context): Remove.
86         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
87         expand to RTL here, and do not call rest_of_compilation.  Push
88         GGC context even before gimplification.
89         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
90         (pass_expand, pass_rest_of_compilation): Declare.
91
92 2004-06-15  Jeff Law  <law@redhat.com>
93
94         * fold-const.c (swap_tree_comparison): No longer static.
95         (tree_swap_operands_p): Similarly.  Return true if both operands
96         are SSA_NAMEs and the first operand has a higher version number than
97         the second operand.
98         * tree.h (swap_tree_comparison): Prototype.
99         (tree_swap_operands_p): Prototype.
100         * tree-ssa-operands.c (get_expr_operands): For commutative
101         operators and relational comparisons, canonicalize the
102         order of the operands.
103
104 2004-06-15  Richard Henderson  <rth@redhat.com>
105
106         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
107         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
108         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
109         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
110         (finish_fname_decls, fname_decl): Use statement_lists.
111         (c_expand_expr_stmt): Don't set last_expr_type.
112         (c_type_hash): Fix indentation.
113         (c_safe_from_p): Don't follow TREE_CHAIN.
114         (c_tree_chain_matters_p): Remove.
115         * c-common.def (SCOPE_STMT): Remove.
116         (CLEANUP_STMT): Redefine to contain its own body.
117         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
118         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
119         Add x_cur_stmt_list.
120         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
121         (cur_stmt_list): New.
122         (STATEMENT_LIST_STMT_EXPR): New.
123         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
124         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
125         (CLEANUP_BODY): New.
126         (CLEANUP_DECL): Move to operand 2.
127         (c_common_stmt_codes): Remove SCOPE_STMT.
128         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
129         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
130         (c_push_function_context, c_pop_function_context): Don't save it.
131         (finish_decl): Set TREE_USED on the decl for a cleanup.
132         Use push_cleanup.
133         (store_parm_decls): Use statement lists.
134         (finish_function): Remove compstmt rule workaround.  Use statement
135         lists.  Call finish_fname_decls after finalizing the body.
136         (c_begin_compound_stmt): Move to c-typeck.c.
137         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
138         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
139         (c_genericize): Invoke them.
140         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
141         (c_build_bind_expr): Export.
142         (gimplify_block, gimplify_cleanup): Remove.
143         (gimplify_condition): Use gimplify_stmt.
144         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
145         (gimplify_if_stmt): Remove recursion hack.
146         (c_gimplify_expr): Remove STMT_EXPR handling.
147         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
148         (is_last_stmt_of_scope): Remove.
149         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
150         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
151         c_end_compound_stmt.
152         * c-objc-common.c (build_cdtor): Likewise.
153         * c-parse.in (primary): Use c_finish_stmt_expr.
154         (push_scope, pop_scope): Remove.
155         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
156         (c99_block_end, compstmt): Use c_end_compound_stmt.
157         (c99_block_lineno_labeled_stmt): Likewise.
158         (compstmt_primary_start): Use c_begin_stmt_expr.
159         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
160         (do_stmt_start): Fill in body directly.
161         (lineno_stmt): Avoid setting lineno on constants.
162         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
163         Remove SCOPE_STMT.
164         * c-semantics.c (begin_stmt_tree): Remove.
165         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
166         (add_stmt): Use statement lists.
167         (add_scope_stmt, finish_stmt_tree): Remove.
168         (push_cleanup): New.
169         * c-tree.h: Move some decls from c-common.h.
170         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
171         (do_case, c_finish_case): Likewise.
172         (c_finish_then): Take body for then as argument.
173         (c_finish_else): Similarly.
174         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
175         c_finish_for_stmt_incr, c_finish_for_stmt): New.
176         (c_begin_stmt_expr, c_finish_stmt_expr): New.
177         (c_begin_compound_stmt): Do scope management.
178         (c_end_compound_stmt): New.
179         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
180         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
181         Look through exception handling constructs.
182         (gimplify_bind_expr): Accept temporary argument.
183         (gimplify_target_expr): Special case BIND_EXPR bodies.
184         (gimplify_expr): Handle fallback == fb_none like a statement.
185         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
186         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
187         * langhooks.h (tree_chain_matters_p): Remove.
188         * stub-objc.c (objc_clear_super_receiver): New.
189         * tree-gimple.h (voidify_wrapper_expr): Update decl.
190         (append_to_statement_list, append_to_statement_list_force): Move
191         to tree-iterator.h.
192         * tree-inline.c (expand_call_inline): Update call.
193         (clone_body): Use statement lists.
194         (walk_tree): Don't check tree_chain_matters_p.
195         (copy_tree_r): Likewise.
196         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
197         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
198         * tree-iterator.h (append_to_statement_list,
199         append_to_statement_list_force): Moved from tree-gimple.h.
200         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
201         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
202         (objc_enter_block): Likewise.
203         (objc_exit_block): Use c_end_compound_stmt.
204         (objc_build_try_enter_fragment): Add #error and comment for
205         rewriting for OBJCPLUS.
206         (objc_build_extract_fragment, objc_build_try_epilogue,
207         objc_build_catch_stmt, objc_build_finally_prologue,
208         objc_build_finally_epilogue): Update for C statement builders.
209         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
210         Remove.
211
212 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
213
214         * df.c (df_reg_clobber_gen): Removed.
215         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
216         Make more effective for hard regs.
217         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
218
219 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
220
221         * c-pragma.h (c_lex_string_translate): Change type to int.
222         * c-parse.in: Change all assignments of c_lex_string_translate
223         to true and false to 1 and 0.
224         * c-lex.c (c_lex_string_translate): Likewise.
225         (lex_string): Convert string without translation in the -1
226         case.
227
228 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
229
230         * convert.h: Add include guards
231
232 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
233
234         * tree-flow-inline.h: Document all functions.
235
236 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
237
238         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
239         * tree-dfa.c (create_stmt_ann): Ditto.
240         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
241         * tree-inline.c (estimate_num_insns_1): Ditto.
242         * tree.c (tree_size): Ditto.
243         (make_node_stat): Ditto.
244         (tree_node_structure): Ditto.
245         (ephi_node_elt_check_failed): Remove.
246         (is_essa_node): Ditto.
247         * tree.def (EPHI_NODE): Ditto.
248         (EEXIT_NODE): Ditto.
249         (EUSE_NODE): Ditto.
250         (EKILL_NODE): Ditto.
251         * tree.h (EREF_NODE_CHECK): Remove.
252         (EPHI_NODE_ELT_CHECK): Ditto.
253         (struct tree_eref_common): Ditto.
254         (struct tree_euse_node): Ditto.
255         (struct ephi_arg_d): Ditto.
256         (struct tree_ephi_node): Ditto.
257         (ephi_node_elt_check_failed): Remove prototype.
258         (is_essa_node): Ditto.
259         (enum tree_node_structure_enum): Remove TS_E*_NODE.
260         (union tree_node): Remove E*_NODE uses.
261
262 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
263
264         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
265         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
266         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
267         Likewise.
268         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
269         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
270         expand_builtin_strcmp, expand_builtin_strncmp,
271         expand_builtin_frame_address): Likewise.
272         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
273         insert_one_insn): Likewise.
274         * calls.c (prepare_call_address, precompute_register_parameters,
275         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
276         * cfganal.c (flow_active_insn_p): Likewise.
277         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
278         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
279         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
280         make_extraction, recog_for_combine, gen_lowpart_for_combine,
281         simplify_comparison, record_dead_and_set_regs_1,
282         record_dead_and_set_regs, record_promoted_value,
283         check_promoted_subreg, get_last_value_validate, get_last_value,
284         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
285         unmentioned_reg_p_1): Likewise.
286         * conflict.c (mark_reg): Likewise.
287         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
288         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
289         merge_equiv_classes, flush_hash_table, invalidate,
290         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
291         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
292         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
293         record_jump_cond, cse_insn, addr_affects_sp_p,
294         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
295         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
296         cse_cc_succs, cse_condition_code_reg): Likewise.
297         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
298         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
299         cselib_record_set, cselib_record_sets): Likewise.
300         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
301         dbxout_block): Likewise.
302         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
303         * dojump.c (do_jump): Likewise.
304         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
305         is_based_loc, rtl_for_decl_location): Likewise.
306         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
307         set_decl_incoming_rtl, mark_user_reg): Likewise.
308         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
309         copy_to_suggested_reg, allocate_dynamic_stack_space,
310         probe_stack_range, hard_function_value): Likewise.
311         * expmed.c (store_bit_field, store_fixed_bit_field,
312         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
313         extract_split_bit_field, expand_divmod, emit_store_flag_force):
314         Likewise.
315         * expr.c (convert_move, convert_modes,
316         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
317         use_group_regs, emit_move_insn, emit_move_insn_1,
318         compress_float_constant, push_block, emit_single_push_insn,
319         emit_push_insn, get_subtarget, expand_assignment, store_expr,
320         store_constructor, store_field, force_operand, safe_from_p,
321         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
322         Likewise.
323         * final.c (profile_function, final_scan_insn, alter_subreg,
324         get_mem_expr_from_op, output_asm_operand_names, output_operand,
325         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
326         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
327         find_regno_partial, propagate_one_insn, init_propagate_block_info,
328         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
329         attempt_auto_inc, find_auto_inc, mark_used_regs,
330         count_or_remove_death_notes_bb): Likewise.
331         * function.c (find_temp_slot_from_address, update_temp_slot_address,
332         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
333         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
334         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
335         purge_single_hard_subreg_set, instantiate_decl,
336         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
337         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
338         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
339         expand_function_start, diddle_return_value, clobber_return_register,
340         expand_function_end, keep_stack_depressed, handle_epilogue_set,
341         update_epilogue_consts): Likewise.
342         * genemit.c (gen_exp, gen_insn): Likewise.
343         * genrecog.c (make_insn_sequence): Likewise.
344         * global.c (global_conflicts, expand_preferences, mark_reg_store,
345         mark_reg_conflicts, set_preference, reg_becomes_live,
346         build_insn_chain, mark_reg_change): Likewise.
347         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
348         Likewise.
349         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
350         Likewise.
351         * integrate.c (copy_rtx_and_substitute, try_constants,
352         subst_constants, mark_stores, allocate_initial_values): Likewise.
353         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
354         delete_computation, rtx_renumbered_equal_p, true_regnum,
355         reg_or_subregno): Likewise.
356         * lcm.c (reg_dies, reg_becomes_live): Likewise.
357         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
358         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
359         wipe_dead_reg, no_conflict_p): Likewise.
360         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
361         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
362         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
363         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
364         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
365         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
366         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
367         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
368         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
369         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
370         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
371         try_swap_copy_prop): Likewise.
372         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
373         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
374         Likewise.
375         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
376         reload_cse_simplify_operands, reload_combine,
377         reload_combine_note_store, reload_combine_note_use,
378         reload_cse_move2add, move2add_note_store): Likewise.
379         * print-rtl.c (print_rtx): Likewise.
380         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
381         contains_pseudo, handle_asm_insn): Likewise.
382         * ra-debug.c (ra_print_rtx_object, dump_constraints,
383         dump_static_insn_cost): Likewise.
384         * ra-rewrite.c (slots_overlap_p, emit_colors,
385         remove_suspicious_death_notes): Likewise.
386         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
387         register_operand, scratch_operand, nonmemory_operand,
388         constrain_operands): Likewise.
389         * reg-stack (check_asm_stack_operands, remove_regno_note,
390         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
391         subst_asm_stack_regs): Likewise.
392         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
393         record_address_regs, reg_scan_mark_refs): Likewise.
394         * regmove.c (discover_flags_reg, replacement_quality,
395         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
396         fixup_match_1): Likewise.
397         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
398         kill_set_value, copyprop_hardreg_forward_1): Likewise.
399         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
400         reload_inner_reg_of_subreg, can_reload_into, push_reload,
401         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
402         operands_match_p, decompose, find_reloads, find_reloads_toplev,
403         find_reloads_address, subst_indexed_address, find_reloads_address_1,
404         find_reloads_subreg_address, find_replacement,
405         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
406         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
407         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
408         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
409         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
410         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
411         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
412         do_output_reload, emit_reload_insns, gen_reload,
413         delete_address_reloads_1, inc_for_reload): Likewise.
414         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
415         update_reg_unused_notes, fill_slots_from_thread): Likewise.
416         * resource.c (update_live_status, mark_referenced_resources,
417         mark_set_resources, mark_target_live_regs): Likewise.
418         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
419         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
420         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
421         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
422         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
423         parms_set, find_first_parameter_load, keep_with_call_p,
424         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
425         num_sign_bit_copies1): Likewise.
426         * rtlhooks.c (gen_lowpart_general): Likewise.
427         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
428         sched_analyze): Likewise.
429         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
430         Likewise.
431         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
432         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
433         simplify_binary_operation, simplify_const_relational_operation,
434         simplify_subreg): Likewise.
435         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
436         expand_end_stmt_expr, expand_return, expand_decl,
437         expand_anon_union_decl): Likewise.
438         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
439         find_splittable_regs, find_splittable_givs, find_common_reg_term,
440         loop_iterations): Likewise.
441         * var-tracking.c (variable_union, variable_part_different_p,
442         variable_different_p, count_uses, add_uses, add_stores,
443         compute_bb_dataflow, set_variable_part, delete_variable_part,
444         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
445         Likewise.
446         * varasm.c (assemble_variable): Likewise.
447
448 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
449
450         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
451         definition.
452         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
453         #undef and #if 0'd definition.
454
455 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
456
457         * combine.c (distribute_notes): Comment typo fix.
458
459 2004-06-15  Roger Sayle  <roger@eyesopen.com>
460
461         * expmed.c (synth_mult): Mask bits of the multiplier to the
462         machine mode of the multiplication.  Don't consider shifts
463         by more than (or equal to) the width of the operation's mode.
464
465 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
466
467         * doc/install.texi: Yet another update for autoconf
468         and automake versions.
469
470 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
471
472         * function.h (struct function): Remove cannot_inline field.
473         (current_function_cannot_inline): Remove.
474         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
475         Simplify conditionals to ignore warn_return_type.
476         * tree-optimize.c (tree_rest_of_compilation): Do not reset
477         DECL_DEFER_OUTPUT.
478         * objc/objc-act.c (build_module_descriptor, finish_method_def):
479         Do not set current_function_cannot_inline.
480
481 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
482
483         * cfglayout.c (fixup_reorder_chain): Handle case where the
484         destination of E_TAKEN is EXIT_BLOCK_PTR.
485
486 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
487
488         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
489
490 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
491
492         * fold-const.c (operand_equal_p): Update comment.
493
494 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
495
496         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
497         (INCOMING_RETURN_ADDR_RTX): Define.
498         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
499         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
500         __builtin_return_address(0).
501         (m32r_return_addr): Added for __builtin_return_address(0).
502         (m32r_reload_lr): Ditto.
503
504         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
505
506 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
507
508         * doc/install.texi (Prerequisites): Update libbanshee,
509         fastjar, libcpp, libjava/libltdl entries to
510         automake 1.8.5.
511
512 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
513             Olivier Hainque  <hainque@act-europe.fr>
514
515         * function.c (fixup_var_refs): Also adjust the start of sequence
516         after fixing up the insns.
517
518 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
519
520         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
521
522 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
523
524         * doc/install.texi (Prerequisites): Update libstdc++ entry to
525         automake 1.8.5.
526
527 2004-06-14  Eric Christopher  <echristo@redhat.com>
528
529         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
530         to -mtpf-trace (-mno-tpf-trace).
531         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
532         documentation.
533
534 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
535
536         * real.c: Fix bit count in head comment.
537
538 2004-06-14  Jeff Law  <law@redhat.com>
539
540         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
541         PHIs where the destination or an argument is marked with
542         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
543
544 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
545
546         PR middle-end/15945
547         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
548         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
549
550 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
551
552         * opts.sh (var_args): Fix regexp.
553
554 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
555
556         PR target/15178
557         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
558
559 2004-06-14  Paul Brook  <paul@codesourcery.com>
560
561         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
562
563 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
564
565         * Makefile.in (FLAGS_H): New.
566         (flags.h): Replace by FLAGS_H.
567         * c.opt: Document Var, VarExists, Init and Report attributes.
568         * common.opt: Fill the values of the attributes.
569         * diagnostic.c (flag_fatal_errors): Do not define.
570         * except.c (flag_non_call_exceptions): Do not define.
571         * flags.h: Include options.h.  Remove declarations conflicting with
572         the automatically defined ones.
573         * opts.c: Remove automatically defined variables.
574         (handle_option): Perform default initialization.
575         (common_handle_option): Do not handle options covered by the
576         default initialization.
577         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
578         fields.
579         (CL_REPORT): New.
580         * opts.sh: Generate variable declarations, handle CL_REPORT.
581         * toplev.c: Remove automatically defined variables.
582         (f_options): Removed.
583         (print_switch_values): Use cl_options instead of f_options.
584         * toplev.h (version_flag): Declaration removed.
585
586 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
587
588         * config/sparc/sparc.h: Correct comment about availability of
589         little endian option.
590
591         * config.gcc: Remove sparc64-*-aout*.
592         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
593         * config/sparc/sp64-aout.h: Remove.
594         * config/sparc/aout.h: Remove.
595
596 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
597
598         * config/s390/s390.c: Include "tree-gimple.h".
599         (s390_gimplify_va_arg): New function.
600         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
601         (s390_va_arg): Remove.
602         * config/s390/s390-protos.h (s390_va_arg): Remove.
603         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
604
605 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
606
607         * basic-block.h (could_fall_through): Declare.
608         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
609         Fail if the source already has a fallthrough edge to the exit
610         block pointer.
611         (could_fall_through): New function.
612         * cfgbuild.c (make_edges): Check if we already have a fallthrough
613         edge to the exit block pointer.
614         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
615         not called before reload has completed.
616         Handle special case of first block having a fall-through exit edge.
617         (cfg_layout_finalize): Don't call it before reload or if we have
618         rtl epilogues.
619         (fixup_reorder_chain): A fall through to the exit block does not
620         require the block to come last.  Add sanity checks.
621         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
622         edges to the exit block.
623         * function.c (cfglayout.h): #include.
624         (thread_prologue_and_epilogue_insns): If we have neither return nor
625         epilogue, but a fall through to the exit block from mid-function,
626         force a non-fall-through exit.
627         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
628
629 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
630
631         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
632         for power5 and rs64a.  Correct condition for default.  Correct power3,
633         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
634
635 2004-06-13  Steven Bosscher <stevenb@suse.de>
636
637         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
638         Revert previous change, don't use CALL_P.
639
640 2004-06-13  Jason Merrill  <jason@redhat.com>
641
642         * tree.h: Move std_gimplify_va_arg_expr protoype here.
643         * tree-gimple.h: From here.
644
645 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
646
647         Fix PR tree-optimization/15979
648         Fix PR tree-optimization/15981
649         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
650         try to insert values undefined along some path.
651
652 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
653
654         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
655         are available everywhere too.
656
657 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
658
659         * fold-const.c (fold_checksum_tree <case 't'>): Only
660         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
661         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
662         EXPR is an INTEGERAL_TYPE or a scalar float type.
663
664 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
665
666         * tree-sra.c (tree_sra): Update documentation.
667
668 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
669
670         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
671         function_types_compatible_p, type_lists_compatible_p): Remove
672         flags parameter.
673         * c-tree.h (comptypes): Likewise.
674         (COMPARE_STRICT): Remove.
675         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
676         callers changed.
677
678 2004-06-13  Eric Christopher  <echristo@redhat.com>
679
680         * c-decl.c (diagnose_mismatched_decls): Improve error message.
681         Remove unused code.
682         * c-typeck.c (comptypes): Add location in standard we're checking.
683
684 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
685
686         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
687         version 3.3.4.
688
689 2004-06-12  Roger Sayle  <roger@eyesopen.com>
690
691         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
692         index by machine mode.
693         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
694         tables inside the loop over machine modes.
695         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
696         expand_divmod): Index shift*_cost by the appropriate machine mode.
697
698 2004-06-12  Eric Christopher  <echristo@redhat.com>
699
700         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
701         * config/s390/s390.md: Ditto.
702         * config/s390/s390.c: Ditto.
703         (s390_frame_info): Conditionalize frame and setup info on
704         TARGET_TPF_PROFILING.
705         (s390_arg_frame_offset): Ditto.
706
707 2004-06-12  Roger Sayle  <roger@eyesopen.com>
708
709         * fold-const.c (omit_two_operands): New function.
710         * tree.h (omit_two_operands): Prototype here.
711         * builtins.c (fold_builtin_unordered_cmp): New function to lower
712         C99 unordered comparison builtins to the appropriate tree nodes.
713         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
714         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
715         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
716         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
717         (simplify_builtin_memcmp, simplify_builtin_strncmp,
718         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
719         omit_two_operands function to build the required COMPOUND_EXPRs.
720
721 2004-06-12  Steven Bosscher <stevenb@suse.de>,
722             Andreas Jaeger  <aj@suse.de>
723
724         * gcse.c (record_set_info): Use predicates like REG_P.
725         (mems_conflict_for_gcse_p): Likewise.
726         (load_killed_in_block_p): Likewise.
727         (hash_expr_1): Likewise.
728         (insert_set_in_table): Likewise.
729         (gcse_constant_p): Likewise.
730         (hash_scan_set): Likewise.
731         (hash_scan_insn): Likewise.
732         (canon_list_insert): Likewise.
733         (record_last_mem_set_info): Likewise.
734         (record_last_set_info): Likewise.
735         (compute_hash_table_work): Likewise.
736         (mark_set): Likewise.
737         (mark_clobber): Likewise.
738         (mark_oprs_set): Likewise.
739         (compute_transp): Likewise.
740         (find_avail_set): Likewise.
741         (cprop_insn): Likewise.
742         (do_local_cprop): Likewise.
743         (cprop): Likewise.
744         (find_implicit_sets): Likewise.
745         (find_bypass_set): Likewise.
746         (bypass_conditional_jumps): Likewise.
747         (insert_insn_end_bb): Likewise.
748         (pre_insert_copy_insn): Likewise.
749         (compute_transpout): Likewise.
750         (next_ls_expr): Likewise.
751         (invalidate_any_buried_refs): Likewise.
752         (compute_ld_motion_mems): Likewise.
753         (reg_set_info): Likewise.
754         (reg_clear_last_set): Likewise.
755         (find_moveable_store): Likewise.
756         (compute_store_table): Likewise.
757         (find_loads): Likewise.
758         (store_killed_in_insn): Likewise.
759         (insert_insn_start_bb): Likewise.
760         (reg_set_between_after_reload_p): Likewise.
761         (reg_used_between_after_reload_p): Likewise.
762         (is_jump_table_basic_block): Likewise.
763         (gcse_after_reload): Likewise.
764         (hash_scan_set_after_reload): Likewise.
765         (compute_hash_table_after_reload): Likewise.
766
767 2004-06-12  Steven Bosscher  <stevenb@suse.de>
768
769         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
770         (INSN_P): Don't look at the rtx code class, just explicitly
771         check for one of the tree RTX_INSN codes.
772
773 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
774
775         * c-typeck.c (default_function_array_conversion): Use
776         build_pointer_type not TYPE_POINTER_TO.
777
778 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
779
780         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
781         * configure, config.in: Regenerate.
782         * system.h: Unconditionally define bool as unsigned char,
783         BOOL_BITFIELD as unsigned int.
784         * domwalk.h: Use BOOL_BITFIELD.
785
786 2004-06-12  Andreas Jaeger  <aj@suse.de>
787
788         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
789         * libgcc-darwin.ver: Likewise.
790
791 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
792
793         * reload.c (find_reloads): Force reload for pseudo registers on big
794         endian machines.
795
796 2004-06-11  Steven Bosscher <stevenb@suse.de>
797
798         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
799         Don't try to mark anything control dependent on the entry or
800         exit blocks.
801
802 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
803
804         Fix Bug 15899
805         Fix Bug 15460
806         * tree.h (SSA_NAME_VALUE): New macro.
807         (struct tree_ssa_name): Add value_handle member.
808         * tree-ssa-pre.c: Replaced.
809         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
810         (struct cst_ann_d): New.
811         (struct expr_ann_d): New.
812         (union tree_ann_d): Add cst_ann, expr_ann.
813         * tree-dfa.c (create_cst_ann): New function.
814         (create_expr_ann): Ditto.
815         * tree-flow-inline.h (cst_ann): New function.
816         (expr_ann): Ditto.
817         (get_cst_ann): Ditto.
818         (get_expr_ann): Ditto..
819
820 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
821
822         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
823         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
824         _U_Qfcmp library function.
825         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
826         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
827
828         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
829         unspec used for loading address from DLT.
830         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
831         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
832         Don't use short code sequence when loading the address of a nonlocal
833         label.
834         (nonlocal_goto): New expander.
835         (indirect_goto): New jump pattern for nonlocal gotos.
836         (short_jump): Remove extra whitespace.
837         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
838         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
839         pattern.
840
841 2004-06-11  Roger Sayle  <roger@eyesopen.com>
842
843         * expmed.c (synth_mult): Add an additional MODE argument for the
844         machine mode of the multiplication.  Update recursive calls.  Use
845         mode instead of word_mode for determining operation costs.
846         (choose_mult_variant): Update calls to synth_mult with "mode".
847
848 2004-06-11  Richard Henderson  <rth@redhat.com>
849
850         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
851         and makes_aliased_stores.
852
853 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
854
855         * doc/install.text (--enable-shared): Fix typo.
856
857 2004-06-11  Richard Henderson  <rth@redhat.com>
858
859         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
860         argument.  Use internal post for call to gimplify_expr.  Tidy
861         rounded type size computation.
862         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
863         get_initialized_tmp_var.
864
865 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
866
867         * doc/install.texi (--enable-shared): Update libobjc's shared library
868         status.  Remove reference to libf2c.
869
870 2004-06-11  Jason Merrill  <jason@redhat.com>
871
872         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
873         * config/i386/i386.c (ix86_va_arg): Remove.
874         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
875         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
876         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
877         * config/alpha/alpha.c (alpha_va_arg): Remove.
878         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
879         * config/sparc/sparc.c (sparc_va_arg): Remove.
880
881         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
882         assignment might throw.
883         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
884         expressions.
885
886 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
887
888         PR 15886:
889         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
890
891 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
892
893         * doc/install.texi (Prerequisites): Update documentation of
894         required versions of autoconf and automake.  Remove mention of
895         libf2c.
896
897 2004-06-11  Jason Merrill  <jason@redhat.com>
898
899         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
900         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
901
902 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
903
904         * typeclass.h: Add GPL plus exception license.  Add include
905         guard.
906
907 2004-06-10  Jason Merrill  <jason@redhat.com>
908
909         * gimplify.c (gimplify_modify_expr): Don't force a temporary
910         of an aggregate_value_p type.
911
912 2004-06-10  Jeff Law  <law@redhat.com>
913
914         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
915         code when we are in gimple form.
916
917 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
918
919         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
920         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
921         (highest_ssa_version): Remove.
922         * tree-outof-ssa.c (new_temp_expr_table): Replace
923         highest_ssa_version with num_ssa_names.
924         (dump_replaceable_exprs): Likewise.
925         (rewrite_vars_out_of_ssa): Likewise.
926         * tree-ssa-ccp.c (initialize): Likewise
927         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
928         * tree-ssa-dce.c (tree_dce_init): Likewise.
929         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
930         * tree-ssa-live.c (create_ssa_var_map): Likewise.
931         (dump_var_map): Likewise.
932         * tree-ssa.c (verify_ssa): Likewise.
933         (kill_redundant_phi_nodes): Likewise.
934         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
935         * tree-ssanames.c: Include tree-flow.h
936         (ssa_names): New varray.
937         (init_ssa_names): Initialize ssa_names.
938         Reserve the first slot of the ssa_names table.
939         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
940         Assign version numbers using num_ssa_names.
941
942 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
943
944         * doc/sourcebuild.texi (Front End): Add details of more
945         installation documentation required.
946
947 2004-06-10  Brian Booth  <bbooth@redhat.com>
948
949         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
950         of V_MAY_DEF and V_MUST_DEF.
951         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
952         num_vdefs to num_v_may_defs.
953         (compute_immediate_uses_for_stmt): Rename occurences of vdef
954         to v_may_def.
955         (redirect_immediate_uses): Ditto.
956         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
957         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
958         Also add code to sum up the number of v_must_defs.
959         (vdefs_disappeared_p): Replace with...
960         (v_may_defs_disappeared_p): This.
961         (v_must_defs_disappeared_p): New function.
962         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
963         Also add code to mark new variables found in V_MUST_DEFs for
964         renameing.
965         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
966         vdef_ops to v_may_def_ops.
967         (get_vdef_ops): Replace with...
968         (get_v_may_def_ops): This.
969         * tree-flow-inline.h (get_vdef_ops): Replace with...
970         (get_v_may_def_ops): This.
971         (get_v_must_def_ops): New function.
972         (get_vdef_result_ptr): Replace with...
973         (get_v_may_def_result_ptr): This.
974         (get_vdef_op_ptr): Ditto with...
975         (get_v_may_def_op_ptr); This.
976         (get_v_must_def_op_ptr): New function.
977         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
978         to v_may_def. Also add code to mark statements with
979         V_MUST_DEFs as definition sites.
980         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
981         add code to register new V_MUST_DEFs made by the statement.
982         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
983         (check_replaceable): Rename occurences of vdef to v_may_def. Also
984         add check for V_MUST_DEFs.
985         (find_replaceable_in_bb): Ditto.
986         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
987         to v_may_def. Also add code to dump V_MUST_DEFs.
988         * tree-sra.c (mark_all_vdefs): Replace with...
989         (mark_all_v_may_defs): This.
990         (mark_all_v_must_defs): New function.
991         (create_scalar_copies): Replace call to mark_all_vdefs with
992         calls to mark_all_v_may_defs and mark_all_v_must_defs.
993         (scalarize_structures): Rename occurences of vdef to v_may_def.
994         Also add a check for V_MUST_DEFs.
995         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
996         * tree-ssa-alias.c (global_var): Update comment.
997         (compute_may_aliases): Ditto.
998         (compute_points_to_and_addr_escape): Rename occurences of vdef
999         to v_may_def. Also add code to mark variables in V_MUST_DEF
1000         operands as being written to.
1001         (group_aliases): Update comment.
1002         (maybe_create_global_var): Ditto.
1003         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1004         Also add a check for V_MUST_DEFs on GIMPLE registers.
1005         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1006         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1007         to v_may_def. Also add code to mark all V_MUST_DEF operands
1008         VARYING.
1009         (initialize): Ditto.
1010         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1011         code to update SSA_NAMEs in V_MUST_DEFs.
1012         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1013         to v_may_def.
1014         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1015         occurences of vdef to v_may_def. Also add code to mark statements
1016         with V_MUST_DEFs as necessary.
1017         (propagate_necessity): Rename occurences of vdef to v_may_def.
1018         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1019         occurences of vdef to v_may_def. Also add code to mark operands
1020         in V_MUST_DEFs for renaming.
1021         (eliminate_redundant_computations): Rename occurences of vdef
1022         to v_may_def.
1023         (record_equivalences_from_stmt): Rename occurences of vdef
1024         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1025         (optimize_stmt): Remove unnesessary variable vdefs. Update
1026         comment.
1027         (register_definitions_for_stmt): Rename occurences of vdef
1028         to v_may_def. Also add code to register definitions made with
1029         V_MUST_DEFs.
1030         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1031         (fix_stmt_v_may_defs): This.
1032         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1033         (dse_optimize_stmt): Ditto.
1034         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1035         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1036         used in virtual operators.
1037         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1038         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1039         renaming.
1040         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1041         definitions.
1042         (build_vdefs): Renamed to...
1043         (build_v_may_defs): This.
1044         (build_v_must_defs): New variable.
1045         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1046         v_may_def_ops.
1047         (append_vdef): Replace with...
1048         (append_v_may_def): This.
1049         (append_v_must_def): New function.
1050         (NUM_FREE): Increment for V_MUST_DEF
1051         (optype_freelist): Increment its size for V_MUST_DEF
1052         (allocate_vdef_optype): Replace with...
1053         (allocate_v_may_def_optype): This.
1054         (allocate_v_must_def_optype): New function.
1055         (free_vdefs): Replace with...
1056         (free_v_may_defs): This.
1057         (free_v_must_defs): New function.
1058         (remove_vdefs): Replace with...
1059         (remove_v_may_defs): This.
1060         (remove_v_must_defs): New function.
1061         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1062         add code to initialize build_v_must_defs.
1063         (finalize_ssa_vdefs): Replace with...
1064         (finalize_ssa_v_may_defs): This.
1065         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1066         (finalize_ssa_v_must_defs): New function.
1067         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1068         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1069         (verify_start_operands): Rename occurences of vdef to v_may_def.
1070         Also add check for build_v_must_defs.
1071         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1072         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1073         killing definitions.
1074         (get_expr_operands): Update comment and use opf_kill_def for
1075         killing definitions.
1076         (add_stmt_operand): Replace code that appends VDEFs with code
1077         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1078         otherwise.
1079         (add_call_clobber_ops): Update comments.
1080         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1081         (v_may_def_optype_d): This.
1082         (v_must_def_optype_d): New structure.
1083         (VDEF_OPS): Replace with...
1084         (V_MAY_DEF_OPS): This.
1085         (STMT_VDEF_OPS): Same with...
1086         (STMT_V_MAY_DEF_OPS): This.
1087         (NUM_VDEFS): And...
1088         (NUM_V_MAY_DEFS): This.
1089         (VDEF_RESULT_PTR): As well as...
1090         (V_MAY_DEF_RESULT_PTR): This.
1091         (VDEF_RESULT): Same goes for...
1092         (V_MAY_DEF_RESULT): This.
1093         (VDEF_OP_PTR): And...
1094         (V_MAY_DEF_OP_PTR): This.
1095         (VDEF_OP): And...
1096         (V_MAY_DEF_OP): This.
1097         (V_MUST_DEF_OPS): New macro.
1098         (STMT_V_MUST_DEF_OPS): Ditto.
1099         (NUM_V_MUST_DEFS): Ditto.
1100         (V_MUST_DEF_OP_PTR): Ditto.
1101         (V_MUST_DEF_OP): Ditto.
1102         (remove_vdefs): Replace signature with...
1103         (remove_v_may_defs): This.
1104         (remove_v_must_defs): New function signature.
1105         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1106         with calls to remove_v_may_defs and remove_v_must_defs.
1107         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1108         Also add code that marks left occurences of operands in V_MUST_DEFs.
1109         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1110         to v_may_def. Also add check for V_MUST_DEFs.
1111         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1112
1113 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1114
1115         PR target/15653
1116         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1117         insn.
1118
1119 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1120
1121         PR web/15263
1122         * doc/install.texi: Remove superfluous linebreak.
1123
1124 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1125
1126         * builtins.c (expand_builtin): Fall back to library function call for
1127         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1128         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1129         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1130         IMAGPART_EXPR respectively.
1131
1132 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1133
1134         * sh.c (dump_table): New argument start.  Changed caller.
1135         (fixup_mova): New function.
1136         (find_barrier): Use it.
1137         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1138         If the label a mova refers to is above the mova itself, change
1139         the mova into a load.
1140         * sh.md (*casesi_worker): Rename to:
1141         (casesi_worker_1).
1142         (casesi_worker_2): New insn.
1143
1144 2004-06-10  Jason Merrill  <jason@redhat.com>
1145
1146         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1147         hook signature.
1148         * tree-gimple.h: Adjust.
1149         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1150         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1151         Use fold_convert.
1152         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1153         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1154         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1155         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1156         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1157         Gimplify valist rather than calling stabilize_va_list.
1158
1159 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1160
1161         * Makefile.in (df.o): Remove fibheap dependency.
1162         * df.h: Do not include sbitmap.h.
1163         (struct ref): New field "data".
1164         (DF_REF_DATA): New accessor macro.
1165         (struct df): Field "dom" removed.
1166         (df_analyze_subcfg): New function.
1167         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1168         (transfer_function): ... new type.
1169         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1170         (iterative_dataflow): ... new function.
1171         (enum set_representation, struct dataflow): New.
1172         * df.c: Do not include fibheap.h.
1173
1174         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1175         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1176         prune_to_subcfg, df_bb_modify): New functions.
1177         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1178         df_refs_update, df_reg_table_realloc, df_ref_create,
1179         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1180         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1181         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1182
1183         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1184         (df_rd_transfer_function, df_ru_transfer_function,
1185         df_lr_transfer_function): Type of bitmaps changed to void *.
1186         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1187         (hybrid_search): ... new function.
1188         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1189         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1190         a worklist.  Do not process basic blocks unnecessarily.
1191
1192 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1193
1194         * fold-const.c (fold_abs_const): Make extern.
1195         * tree.h (fold_abs_const): Prototype here.
1196         * builtins.c (fold_builtin_fabs): New function to transform
1197         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1198         (fold_builtin_abs): New function to transform abs, labs, llabs
1199         and imaxabs builtins into ABS_EXPR tree nodes.
1200         (expand_builtin): Fall back to a function call for abs, labs,
1201         llabs and imaxabs builtins that survive constant folding.
1202         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1203         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1204
1205 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1206
1207         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1208         leaf function without unwind info at RP 0.
1209
1210 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1211
1212         PR c++/14791
1213         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1214         (fileptr_type_node): Define.
1215         * tree.c (build_common_tree_nodes_2): Initialize
1216         fileptr_type_node to ptr_type_node.
1217         * c-common.c (c_common_nodes_and_builtins): For C++, make
1218         fileptr_type_node a distinct type copy.
1219         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1220         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1221         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1222         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1223         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1224         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1225         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1226         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1227         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1228         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1229         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1230         the above *FILEPTR* types instead of *PTR*.
1231
1232 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1233
1234         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1235         match.
1236
1237 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1238
1239         * fold-const.c (fold_not_const): New function.
1240         (fold) <ABS_EXPR>: Don't bother testing wins.
1241         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1242         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1243
1244 2004-06-09  Richard Henderson  <rth@redhat.com>
1245
1246         PR middle-end/15228
1247         * function.c (assign_parms): Always set_mem_align with the computed
1248         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1249
1250 2004-06-09  Richard Henderson  <rth@redhat.com>
1251
1252         PR opt/15108
1253         * tree-tailcall.c (find_tail_calls): Don't check early for
1254         tail_recursion failure.
1255
1256 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1257
1258         Move SSA_NAME annotations into tree_ssa_name.
1259
1260         * tree-dfa.c (create_ssa_name_ann): Remove.
1261         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1262         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1263         (struct ssa_name_ann_d): Remove.
1264         (union tree_ann_d): Update.
1265         (ssa_name_ann_t): Remove.
1266         * tree-ssa-alias.c: (get_ptr_info): New local function.
1267         Replace references to ssa_name_ann_t with struct ptr_info_def.
1268         * tree-ssa-operands.c (get_expr_operands): Likewise.
1269         * tree.h (SSA_NAME_PTR_INFO): Define.
1270         (struct ptr_info_def): Declare.
1271         (struct tree_ssa_name): Add field 'ptr_info'.
1272
1273 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1274
1275         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1276         misplaced ')'.
1277
1278 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1279
1280         * config/i386/k6.md: Rewrite using the DFA model.
1281         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1282         cost of load-operation insns for the K6.
1283         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1284         (ia32_multipass_dfa_lookahead): Likewise.
1285
1286 2004-06-09  Richard Henderson  <rth@redhat.com>
1287
1288         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1289         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1290
1291 2004-06-09  Richard Henderson  <rth@redhat.com>
1292
1293         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1294
1295 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1296
1297         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1298         (CPP_ID_DATA_H): New.
1299         (gtype-desc.o): Update dependencies.
1300         (GTFILES): Use CPP_ID_DATA_H.
1301
1302 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1303
1304         Revert:
1305         PR c++/15815
1306         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1307         * doc/extend.texi: Deprecate #pragma interface and #pragma
1308         implementation.
1309
1310 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1311
1312         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1313
1314 2004-06-09  Richard Henderson  <rth@redhat.com>
1315
1316         * basic-block.h (struct edge_def): Add goto_locus.
1317         * tree-cfg.c (make_goto_expr_edges): Set it.
1318         (disband_implicit_edges): Use it.
1319         * tree-pretty-print.c (dump_implicit_edges): Print it.
1320
1321 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1322
1323         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1324
1325 2004-06-08  Jason Merrill  <jason@redhat.com>
1326
1327         Gimplify VA_ARG_EXPR into simpler forms.
1328         * target.h: Add gimplify_va_arg_expr hook.
1329         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1330         * fold-const.c (build_fold_addr_expr)
1331         (build_fold_addr_expr_with_type): Move from gimplify.c.
1332         * tree.h: Declare them.
1333         * gimplify.c (gimplify_and_add): New fn.
1334         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1335         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1336         (gimplify_expr): Use build_fold_*.
1337         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1338         don't know how to gimplify it.
1339         * builtins.c (std_gimplify_va_arg_expr): New fn.
1340         (dummy_object): New static fn.
1341         (gimplify_va_arg_expr): New fn.
1342         (stabilize_va_list): Use build_fold_*.
1343         * tree-gimple.h: Declare new fns.
1344         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1345         (ix86_gimplify_va_arg): New fn.
1346         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1347         (ia64_gimplify_va_arg): New fn.
1348         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1349         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1350         * alias.c (get_varargs_alias_set): Just return 0 for now.
1351
1352         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1353
1354 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1355
1356         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1357         of convert.
1358         * tree-inline.c (setup_one_parameter): Likewise.
1359         * tree-sra.c (csc_build_component_ref): Likewise.
1360         * tree-ssa-ccp.c (ccp_fold): Likewise.
1361         * tree-ssa-copy.c (cprop_operand): Likewise.
1362         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1363         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1364
1365 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1366
1367         PR rtl-optimization/15521:
1368         * sched-int.h (in_post_call_group_p): Change type to enum.
1369         * sched-deps.c (sched_analyze_insn):
1370         (sched_analyze): When in_post_call_group_p is post_call_initial,
1371         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1372         and also reset in_post_call_group_p to post_call.
1373         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1374         initialize in_post_call_group_p as post_call_initial.
1375         (init_deps): initialize in_post_call_group_p to not_post_call.
1376
1377 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1378
1379         PR ada/6637
1380         * doc/install.texi: List ada, libada as options to --enable-shared
1381
1382 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1383
1384         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1385         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1386         config.in entries.
1387         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1388         if hard links are not available.
1389         * configure: Regenerate.
1390         * config.in: Regenerate.
1391
1392 2004-06-08  Per Bothner  <per@bothner.com>
1393
1394         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1395
1396 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1397
1398         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1399         Correct formatting.
1400
1401 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1402
1403         PR target/15790
1404         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1405
1406 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1407
1408         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1409         POINTER_TYPE and INTEGER_TYPE.
1410
1411 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1412
1413         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1414         defined.
1415
1416 2004-06-08  Jeff Law  <law@redhat.com>
1417
1418         * doc/contrib.texi: Add entries for Stefan Olsson and
1419         Ola Ronnerup.
1420
1421 2004-06-08  DJ Delorie  <dj@redhat.com>
1422
1423         * toplev.c (floor_log2_wide): Replace loop with faster bit
1424         operations.
1425         (exact_log2_wide): Define in terms of the above.
1426         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1427         available.
1428
1429 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1430
1431         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1432         Make sure that we are in INDIRECT mode when getting the
1433         stub name.
1434
1435 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1436
1437         * h8300.md (extendqisi2_h8300): Add constraints.
1438         (ldm_h8300s_4_normal): Fix typo.
1439
1440 2004-06-08  Richard Henderson  <rth@redhat.com>
1441
1442         * gimple-low.c (struct lower_data): Replace the_return_label and
1443         one_return_stmt with return_statements.
1444         (lower_function_body): Process the entire list of return_statements.
1445         (lower_return_expr): Check source value before unifying return_exprs.
1446         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1447         for !aggregate_value_p.
1448         * tree-gimple.c: Update RETURN_EXPR grammer.
1449
1450 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1451
1452         PR target/15598
1453         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1454
1455 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1456
1457         PR rtl-optimization/15717
1458         * config/i386/i386.c (legitimate_constant_p): Do not allow
1459         x - symbol_ref.
1460
1461 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1462
1463         * gimplify.c (copy_if_shared_r): Revert:
1464         2004-05-21  Richard Henderson  <rth@redhat.com>
1465         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1466
1467 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1468
1469         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1470         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1471         (init_expmed): Initialize these cost arrays as appropriate.
1472         (store_bit_field, extract_bit_field): Correct whitespace.
1473         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1474         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1475         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1476         word_mode or compute_mode as appropriate.
1477
1478 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1479
1480         PR target/15783
1481         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1482         parameter.  Enumerate the registers inside the PARALLEL.
1483         (function_arg): Adjust call to function_arg_union_value.
1484         (function_value): Likewise.
1485
1486         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1487
1488 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1489
1490         * real.c (real_copysign): New function to implement libm's copysign.
1491         * real.h (real_copysign): Prototype here.
1492         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1493         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1494         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1495         fold_builtin_isdigit): Add function prototypes.
1496         (fold_builtin_copysign): New function to fold copysign, copysignf
1497         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1498         constant arguments at compile-time using real_copysign.  Fold
1499         copysign(X,Y) as fabs(X) if Y is always non-negative.
1500         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1501         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1502
1503 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1504
1505         * tree.c (iterative_hash_expr): Use real_hash.
1506
1507 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1508
1509         PR c/14765
1510         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1511         NULL_TREE.
1512
1513 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1514
1515         PR c++/15815
1516         * doc/extend.texi: Deprecate #pragma interface and #pragma
1517         implementation.
1518
1519 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1520
1521         PR middle-end/15666
1522         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1523         builtin decl as well.
1524
1525 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1526
1527         PR c/14649
1528         * c-typeck.c (require_constant_value, require_constant_elements):
1529         Move declarations to the top of the file.
1530         (build_function_call): If we require a constant value, fold with
1531         fold_initializer.  If the result is a constant, and the function
1532         wasn't called using __builtin_foo, issue a pedantic warning.
1533         (build_unary_op): If we require a constant value, fold tree with
1534         fold_initializer.
1535         (build_binary_op): Use require_constant_value to determine whether
1536         to call fold or fold_initializer.
1537
1538 2004-06-07  Richard Henderson  <rth@redhat.com>
1539
1540         * gimple-low.c (struct lower_data): Add the_return_label and
1541         one_return_stmt.
1542         (lower_function_body): Initialize and use them.
1543         (lower_return_expr): New.
1544         (lower_stmt): Call it.
1545         * gimplify.c (gimplify_return_expr): Force the argument to be either
1546         null or a result_decl.
1547         * tree-gimple.c: Update gimple grammer to match.
1548         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1549         coalescing of result_decls.
1550
1551 2004-06-07  Richard Henderson  <rth@redhat.com>
1552
1553         PR rtl-opt/15193
1554         * expmed.c (extract_bit_field): Fix vector_extract return.
1555
1556         * config/i386/i386.md (negv4sf2): New pattern.
1557
1558 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1559
1560         PR c++/15337
1561         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1562         message.
1563
1564 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1565
1566         * config.in: Regenerate.
1567
1568 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1569
1570         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1571         SWITCH_LABELS are always sorted.
1572
1573 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1574
1575         * hooks.c (hook_int_void_1): New generic hook.
1576         * hooks.h (hook_int_void_1): Add prototype.
1577         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1578         Define to hook_int_void_1.
1579         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1580         with dummies for the new one.
1581
1582 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1583
1584         * tree.h (lvalue_or_else): Delete function prototype.
1585         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1586
1587 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1588
1589         PR target/14542
1590         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1591         a live change of a register after peephole replacement.
1592
1593 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1594
1595         PR c/13519
1596         * c-typeck.c (composite_type, common_pointer_type): New functions.
1597         (common_type): Split parts into composite_type and
1598         common_pointer_type.  Ensure that arithmetic operations return
1599         unqualified types without attributes.  Don't make composite type
1600         of signed enum and compatible integer be unsigned.
1601         (build_conditional_expr, build_binary_op): Use
1602         common_pointer_type.
1603         * c-decl.c (merge_decls): Use composite_type.
1604         * c-tree.h (composite_type): Declare.
1605
1606 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1607
1608         PR target/14457
1609         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1610         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1611         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1612         (inhibit_libc): Must define.
1613         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1614         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1615         ("xorhi3"): Likewise.
1616
1617 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1618
1619         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1620         always_inline pass.
1621
1622 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1623
1624         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1625         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1626
1627 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1628
1629         * regclass.c (init_reg_sets): Check for missing registers in target
1630         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1631
1632 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1633
1634         * Makefile.in (MKDEPS_H): New shorthand.
1635         (c-opts.o): Update dependencies.
1636         * c-opts.c: Include mkdeps.h.
1637         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1638         not cpp_add_dependency_target.
1639
1640 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1641
1642         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1643         * config/v850/v850.md: Convert to DFA scheduler description.
1644
1645 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1646
1647         PR fortran/15478
1648         * doc/install.texi: Document GMP as prerequisite. Document
1649         --with-gmp and --with-gmp-dir configure options.
1650         * fortran/gfortran.texi: Remove section "Compiling and testing",
1651         remove TOC reference to it.
1652
1653 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1654
1655         * combine.c(simplify_shift_const): Check shift amount is a
1656         CONST_INT.
1657
1658 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1659
1660         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1661         opening asm_out_file.
1662         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1663         reading asm_out_file. Replace fflush after reading asm_out_file
1664         with fseek.
1665         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1666         default and add to HOST_HOOKS_INITIALIZER.
1667         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1668         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1669         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1670         to set mmi.offset padding.
1671          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1672         $(srcdir)/config/i386/winnt.c.
1673         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1674         (i[34567]86-*-uwin*): Likewise.
1675         *i[34567]86-*-interix3*): Likewise.
1676         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1677         * config/i386/host-mingw32.c: New file.
1678         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1679         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1680         (extern_head): Likewise.
1681         (struct export_list) Likewise.
1682         (export_head): Likewise.
1683         (i386_pe_record_external_function): Use ggc_alloc.
1684         (i386_pe_record_exported_symbol): Likewise.
1685         Include "gt-winnt.h" at end.
1686         * doc/hostconfig.texi: Document
1687         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1688
1689 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1690
1691         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1692         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1693         trailing whitespace before EOLs and before TABs.
1694         (MAX_CODE_ALIGN): Remove unused macro.
1695         (CALL_USED_REGISTERS): Reformat and add comments.
1696
1697 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1698
1699         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1700         to enumerate -lmudflap* and dependencies when linking.
1701
1702 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1703
1704         PR target/15822
1705         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1706
1707 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1708
1709         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1710         * genconditions.c (write_header): Back out removal of reload.h.
1711
1712 2004-06-04  Jan Hubicka  <jh@suse.cz>
1713
1714         Re-apply hopefully fixed patch:
1715         * i386.md (UNSPECV_EH_RETURN): Kill.
1716         (eh_return): Use jump_insn.
1717         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1718
1719 2004-06-04  Jeff Law  <law@redhat.com>
1720
1721         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1722
1723 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1724
1725         * except.c (for_each_eh_region): New function.
1726         * except.h (for_each_eh_region): Add a prototype for it.
1727         * tree-cfg.c (update_eh_labels): New function, callback for
1728         for_each_eh_region.
1729         (label_for_bb): Make global static, unfortunately.
1730         (cleanup_dead_labels): Also update label references for
1731         exception regions.
1732
1733 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1734
1735         * config/mips/mips.c (struct irix_section_align_entry): Fix
1736         GTY marker.
1737
1738 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1739
1740         * toplev.c (check_global_declarations): Don't ask for
1741         DECL_ASSEMBLER_NAME unless the function really is declared
1742         static and not defined.
1743
1744 2004-06-03  Matt Austern  <austern@apple.com>
1745
1746         PR c++/15428
1747         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1748         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1749         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1750         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1751         documentation to reflect the new macro name and to clarify its
1752         meaning.
1753
1754 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1755
1756         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1757
1758 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1759
1760         * config/darwin.c (machopic_indirect_data_reference): Copy
1761         the SYMBOL_REF_DECL from the original RTX for the new
1762         non-lazy pointer RTX.
1763
1764 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1765
1766         * tree.h: Remove include of version.h
1767         * c-cppbuiltin.c: Include version.h
1768         * diagnostic.c: Include version.h
1769         * dwarf2out.c: Include version.h
1770         * toplev.c: Include version.h
1771         * vmsdbgout.c: Include version.h
1772         * Makefile.in: Remove dependency on version.h from TREE_H, and
1773         add dependencies to required .o targets
1774
1775 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1776
1777         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1778         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1779         (TARGET_H): Add insn-modes.h.
1780         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1781         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1782         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1783         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1784         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1785         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1786         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1787         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1788         CFGLAYOUT_H.
1789         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1790         Replace ra.h with RA_H.
1791         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1792         insn-recog.o): Replace resource.h with RESOURCE_H.
1793         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1794         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1795         with SCHED_INT_H.
1796         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1797         ra-rewrite.o): Replace df.h with DF_H.
1798         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1799         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1800         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1801         (insn-conditions.o): Remove unused reload.h.
1802         * cfglayout.h: Add include guard.  Include basic-block.h.
1803         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1804         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1805         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1806         basic-block.h.
1807         * genconditions.c:  Remove reload.h.
1808         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1809         hard-reg-set.h, insn-modes.h.
1810         * resource.h: Add include guard.  Include hard-reg-set.h.
1811         * sched-int.h:  Add include guard.  Include insn-attr.h,
1812         basic-block.h, rtl.h.
1813         * target.h: Add include guard.  Include insn-modes.h.
1814         * tree-ssa-live.h: Include partition.h.
1815
1816 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1817                 Kenneth Zadeck <zadeck@naturalbridge.com>
1818
1819         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1820         (add_var_to_ssa_edges_worklist): Add value argument.
1821         Update callers.
1822         Use new worklist.
1823         (process_ssa_edge_worklist): New function.
1824         (tree_ssa_ccp): Move worklist processing core to
1825         process_ssa_edge_worklist, and just call that for the two worklists.
1826
1827 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1828
1829         * basic-block.c (tail_recursion_label_list): Don't declare.
1830         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1831         accordingly.
1832         * cfgbuild.c (find_label_refs): Remove.
1833         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1834         * cfgcleanup.c (tail_recursion_label_p): Remove.
1835         (merge_blocks_move): Do not check for tail recursion.
1836         (try_optimize_cfg): Likewise.
1837         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1838         * cfgrtl.c (tail_recursion_label_list): Remove.
1839         * except.c (remove_unreachable_regions): Don't handle
1840         CALL_PLACEHOLDER insns.
1841         (convert_from_eh_region_ranges_1, can_throw_internal,
1842         can_throw_external): Likewise.
1843         * function.c (free_after_compilation): Don't clear
1844         x_tail_recursion_label.
1845         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1846         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1847         (reorder_blocks_1): Likewise.
1848         * function.h (struct function): Remove x_tail_recursion_label
1849         member.  Don't define tail_recursion_label.
1850         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1851         * print-rtl.c (print_rtx): Likewise.
1852         * rtl.def (CALL_PLACEHOLDER): Remove.
1853         * rtl.h (sibcall_use_t): Remove enum.
1854         (optimize_sibling_and_tail_recursive_calls,
1855         replace_call_placeholder): Remove function prototypes.
1856         * stmt.c (tail_recursion_args): Remove.
1857         (optimize_tail_recursion): Remove.
1858         (expand_return): Don't check for possible tail recursion.
1859         * tree.h (optimize_tail_recursion): Remove prototype.
1860
1861 2004-06-02  Jan Hubicka  <jh@suse.cz>
1862
1863         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1864         return_stmt.
1865
1866 2004-06-02  Jason Merrill  <jason@redhat.com>
1867
1868         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1869         Do include c-parse.in.
1870
1871 2004-06-02  Eric Christopher  <echristo@redhat.com>
1872
1873         * c-typeck.c (common_type): Don't lose type qualifiers
1874         when creating new variants.
1875
1876 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1877
1878         PR tree-optimization/14042
1879         PR tree-optimization/14729
1880         PR tree-optimization/14736
1881         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1882         Check the type which the pointer points to
1883         instead of the pointer types.
1884
1885 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1886
1887         PR tree-optimization/15738.
1888         * builtins.c (fold_builtin_strchr): Transform
1889         strrchr (s, '\0') to strchr (s, '\0').
1890
1891 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1892
1893         * i386.c (ix86_adjust_cost): Don't increase the cost for
1894         load+operation for PROCESSOR_PENTIUMPRO, it is already
1895         modelled in the DFA description
1896
1897 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1898
1899         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1900         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1901         (ALIAS_H, EMIT_RTL_H): New.
1902         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1903         (cfgcleanup.o): Add EMIT_RTL_H.
1904         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1905         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1906         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1907         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1908         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1909         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1910         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1911         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1912         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1913         set_mem_size): Move to emit-rtl.h.
1914         * emit-rtl.h: New.
1915         * alias.h: New.
1916
1917 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1918
1919         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1920         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1921         Adjust recursive calls to self.
1922         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1923
1924 2004-06-01  Richard Henderson  <rth@redhat.com>
1925             Andrew Pinski  <pinskia@physics.uc.edu>
1926
1927         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1928         (primary): Handle offsetof.  Add error productions for faux functions.
1929         Move component_ref objc checking to build_component_ref.
1930         (reswords): Add offsetof.
1931         (rid_to_yy): Add offsetof.
1932         * c-tree.h (build_offsetof): Declare.
1933         * c-common.h (objc_is_public): Declare.
1934         * c-typeck.c (build_component_ref): Check objc_is_public.
1935         (build_offsetof): New.
1936         * stub-objc.c (objc_is_public): New.
1937         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1938         from is_public.
1939         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1940         * doc/extend.texi (Offsetof): Move from C++ section to C section
1941         and rewrite for __builtin_offsetof.
1942
1943 2004-06-01  Peter Barada  <peter@the-baradas.com>
1944             Peter Jakubek  <peter@laseranimation.com>
1945
1946         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1947         a scratch to perform an add to memory.
1948
1949 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1950
1951         PR target/14018
1952         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1953         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1954         m68k_align_funcs): Remove.
1955         (override_options): Remove code to handle -malign-* options.
1956         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1957         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1958         (m68k_align_loops_string, m68k_align_jumps_string,
1959         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1960         m68k_align_funcs): Remove definitions.
1961
1962 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1963
1964         PR target/15626
1965         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1966         by the Sun linker in conjunction with the Sun assembler.
1967         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1968
1969 2004-06-01  Jeff Law  <law@redhat.com>
1970
1971         * stmt.c (expand_decl): Be more selective about calling
1972         mark_reg_pointer.
1973
1974 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1975
1976         PR objc/7993
1977         * objc-act.c (is_private): Do not emit the 'instance variable %s
1978         is declared private' error.
1979         (is_public): Emit the error after calling is_private.
1980         (lookup_objc_ivar): If the instance variable is private, return 0
1981         - the instance variable is invisible here.
1982
1983 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1984
1985         * doc/invoke.texi (-static-libgcc): Explicitly mention
1986         non-GNU linkers.
1987
1988 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1989
1990         PR target/12968
1991         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1992
1993 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1994
1995         PR c/15749
1996         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1997         misuses of structures with flexible array members if
1998         in_system_header.
1999
2000 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2001
2002         PR target/15693
2003         * config/sparc/sparc.c (compare_operand): New predicate.
2004         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2005         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2006         operand is a ZERO_EXTRACT and the second operand is not zero,
2007         force the former to a register.
2008         (cmpdi expander): Likewise.
2009
2010 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2011
2012         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2013         looks at.
2014         * alias.c (alias_invariant_size): Make alias_invariant_size
2015         static, fix GTY marker.
2016
2017 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2018
2019         PR tree-optimization/15743.
2020         * builtins.c (fold_builtin_1): Fold index() and rindex().
2021
2022 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2023
2024         PR middle-end/15069
2025         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2026         into "X < 0" (where C is the signbit) if X's type is a full mode.
2027
2028 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2029
2030         * pa.md: Disable the peephole2 patterns that generate indexed
2031         floating-point stores when indexing is disabled.
2032
2033 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2034
2035         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2036         (pp_c_right_bracket): Likewise.
2037         (pp_c_star): Likewise.
2038         (pp_c_ampersand): Define.
2039         * c-pretty-print.h (pp_c_left_bracket): Declare.
2040         (pp_c_right_bracket): Likewise.
2041         (pp_c_star): Likewise.
2042         (pp_c_ampersand): Likewise.
2043
2044 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2045
2046         * config/sol2.h (__enable_execute_stack): ANSIfy function
2047         definition.
2048
2049 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2050
2051         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2052         HAVE_DOS_BASED_FILESYSTEM.
2053
2054 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2055
2056         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2057         Only look at case labels if the immediate dominator is also
2058         the only predecessor.  Don't look for more case labels if the
2059         first seen is a case range.
2060
2061 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2062
2063         * builtins.c: Add a prototype for fold_builtin_strchr().
2064
2065 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2066
2067         Revert this patch:
2068         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2069
2070         * combine.c (gen_binary): Remove.
2071         (known_cond, simplify_shift_const
2072         find_split_point, combine_simplify_rtx,
2073         simplify_if_then_else, simplify_set,
2074         simplify_logical, expand_field_assignment,
2075         extract_left_shift, force_to_mode,
2076         if_then_else_cond, apply_distributive_law,
2077         simplify_and_const_int, simplify_shift_const,
2078         gen_lowpart_for_combine, simplify_comparison,
2079         reversed_comparison): Replace with
2080         simplify_gen_binary, simplify_gen_relational or
2081         distribute_and_simplify_rtx.
2082         (distribute_and_simplify_rtx): New function.
2083
2084 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2085
2086         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2087         when generating PIC code.
2088
2089 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2090
2091         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2092         (c_expand_body): here.
2093         (c_expand_decl): Move to ...
2094         * c-common.c (c_expand_decl): Here and remove check for nested
2095         functions.
2096         * c-common.h (c_expand_decl): Add prototype.
2097         * c-tree.h (c_expand_decl): Remove.
2098
2099 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2100
2101         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2102         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2103         fold_mathfn_compare, fold_inf_compare, fold,
2104         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2105         Use constant_boolean_node where appropriate.  Don't bother using
2106         fold_convert on the second argument to omit_one_operand.
2107
2108 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2109
2110         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2111         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2112         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2113         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2114         Add missing (but documented) tree nodes to the index.
2115
2116 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2117
2118         PR tree-optimization/14819
2119         * builtins.c (fold_builtin_strchr): New.
2120         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2121         with fold_builtin_strchr().
2122
2123 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2124
2125         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2126         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2127         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2128         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2129         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2130         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2131         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2132         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2133         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2134         formatting.
2135
2136 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2137
2138         * gimplify.c (sort_case_labels): New.  Split out from...
2139         (gimplify_switch_expr): ...here.  Use it.
2140         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2141         the SWITCH_EXPR created here before leaving the function.
2142         * tree.c (sort_case_labels): Add prototype.
2143
2144 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2145
2146         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2147         of BOOLEAN_TYPE.
2148
2149 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2150
2151         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2152         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2153         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2154         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2155         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2156         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2157         comment typos.  Follow spelling conventions.
2158
2159 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2160
2161         * gengtype-yacc.y: Add NESTED_PTR token.
2162         (option): Record `nested_ptr' option.
2163         * gengtype-lex.l: Handle `nested_ptr' keyword.
2164         * gengtype.c (walk_type): Process `nested_ptr' option.
2165         * gengtype.h (struct nested_ptr_data): New.
2166         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2167         * stringpool.c (struct string_pool_data): Make 'entries' point to
2168         ht_identifier instead of tree.
2169         (gt_pch_save_stringpool): Don't adjust pointers.
2170         (gt_pch_restore_stringpool): Call ht_load.
2171
2172 2004-05-29  Jason Merrill  <jason@redhat.com>
2173
2174         * gimplify.c (gimplify_expr): Don't build a statement list
2175         if no gimplification was necessary.
2176
2177 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2178
2179         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2180         and %> as well as %'.
2181         * c-format.c: Use %< and %>.
2182         (gcc_diag_char_table, gcc_cdiag_char_table,
2183         gcc_cxxdiag_char_table): Update.
2184
2185 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2186
2187         * c-typeck.c (common_type): Correct comment.
2188
2189 2004-05-29  Peter Barada  <peter@the-baradas.com>
2190
2191         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2192         * config/m68k/m68k.c (const_method): Likewise.
2193         * config/m68k/m68k.c (const_int_cost): Likewise.
2194         * config/m68k/m68k.c (const_int_cost): Likewise.
2195         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2196
2197 2004-05-29  Peter Barada  <peter@the-baradas.com>
2198
2199         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2200         addressing.
2201         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2202         movsi,movhi,movqi insn patterns.
2203
2204 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2205
2206         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2207
2208         PR target/15720
2209         * config/darwin.c (machopic_indirect_call_target): Copy
2210         the SYMBOL_REF_DECL from the original RTX for the new
2211         stub RTX.
2212
2213 2004-05-28  DJ Delorie  <dj@redhat.com>
2214
2215         * stor-layout.c (place_field): Revert erroneous commit.
2216
2217 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2218
2219         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2220         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2221         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2222         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2223         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2224         vec_ste): Remove type checks for integral parameters and literals
2225         from '..._args_eq' macros.
2226
2227 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2228
2229         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2230
2231 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2232
2233         * testsuite/g++.dg/charset/function.cc: New.
2234
2235         * testsuite/gcc.dg/charset/function.c: New.
2236
2237         * c-decl.c (c_make_fname_decl): Free return value from
2238         fname_as_string.
2239
2240         * cp/decl.c (cp_make_fname_decl): Free return value from
2241         fname_as_string.
2242
2243         * c-common.c (fname_as_string): Translate if necessary.
2244
2245 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2246
2247         * stringpool.c: Add comments to PCH saving/restoring routines.
2248
2249 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2250
2251         * c-common.c (c_estimate_num_insns_1): Kill.
2252         (c_estimate_num_insns): Kill.
2253         * c-common.h (c_estimate_num_insns): Kill.
2254
2255         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2256         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2257         Remove comment about not checking for
2258         _POSIX_PRIORITY_SCHEDULING.
2259         * gthr-posix.c: Likewise.
2260
2261 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2262             Roger Sayle  <roger@eyesopen.com>
2263
2264         PR rtl-optimization/15649
2265         Add LTGT_EXPR and improve pretty-printing of unordered
2266         comparisons.
2267         * c-common.c (c_common_truthvalue_conversion):
2268         Handle LTGT_EXPR.
2269         * c-typeck.c (build_binary_op): Likewise.
2270         * dojump.c (do_jump): Likewise.
2271         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2272         * predict.c (tree_predict_by_opcode): Likewise.
2273         * real.c (real_compare): Likewise.
2274         * tree-cfg.c (verify_expr): Likewise.
2275         * tree-inline.c (estimate_num_insns_1): Likewise.
2276         * tree-pretty-print.c (dump_generic_node): Likewise.
2277         Handle ORDERED_EXPR, UNORDERED_EXPR.
2278         (op_symbol): Print unordered comparisons differently
2279         than ordered ones.
2280         * tree.def (LTGT_EXPR): New '<' tree code.
2281         * doc/c-tree.texi (Expressions): Document floating-point
2282         comparison nodes.
2283
2284         Fold comparisons between floating point values.
2285         * fold-const.c (enum comparison_code): New, from
2286         #define'd constants.  Define compcodes for unordered
2287         comparisons and for invalid transformations.
2288         (invert_tree_comparison): Add "honor_nans" parameter.
2289         (fold_truthop): Revamp to work on floating-point types too.
2290         (comparison_to_compcode): Support unordered comparisons.
2291         Use new enum comparison_code.
2292         (compcode_to_comparison): Likewise.
2293         (combine_compcodes): New function.
2294         (invert_truthvalue): Let invert_tree_comparison decide
2295         whether it is valid to fold the comparison.  Fold ORDERED
2296         and UNORDERED even if flag_unsafe_math_optimizations is off,
2297         and the remaining even if flag_unsafe_math_optimizations
2298         is off but we are under -fno-trapping-math.
2299         (fold_relational_const): Integer modes do not honor NaNs.
2300
2301 2004-05-28  Paul Brook  <paul@codesourcery.com>
2302
2303         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2304
2305 2004-05-28  Paul Brook  <paul@codesourcery.com>
2306
2307         * config/arm/arm.c (thumb_force_lr_save): New function.
2308         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2309         thumb_output_function_prologue): Use it.
2310         (thumb_expand_prologue): Set lr_save_eliminated.
2311
2312 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2313
2314         * config/mips/mips.md (extendsidi2): Tie the source and destination
2315         of the register alternative.  Split it into nothing.
2316
2317 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2318
2319         * rtl.h (skip_consecutive_labels): Declare.
2320         * emit-rtl.c (skip_consecutive_labels): New function.
2321         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2322         * jump.c (follow_jumps): Say what null return values mean.
2323
2324 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2325
2326         PR target/13250
2327         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2328
2329 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2330
2331         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2332         libgcc-std.ver.
2333         * config/sh/libgcc-std.ver: New file.
2334
2335 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2336
2337         * except.c: Revert change of 2004-05-26.
2338         * config/i386/i386.md: Revert change of 2004-05-27.
2339
2340 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2341
2342         * configure.ac: Remove --enable-tree-browser option.
2343         Define TREEBROWSER when ac_tree_checking is defined.
2344         * configure: Rebuilt.
2345
2346 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2347
2348         * expr.c (store_constructor): Restore sanity check on
2349         the size of the type before clearing.
2350
2351 2004-05-27  Jan Hubicka  <jh@suse.cz>
2352
2353         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2354
2355 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2356
2357         * combine.c (gen_binary): Remove.
2358         (known_cond, simplify_shift_const
2359         find_split_point, combine_simplify_rtx,
2360         simplify_if_then_else, simplify_set,
2361         simplify_logical, expand_field_assignment,
2362         extract_left_shift, force_to_mode,
2363         if_then_else_cond, apply_distributive_law,
2364         simplify_and_const_int, simplify_shift_const,
2365         gen_lowpart_for_combine, simplify_comparison,
2366         reversed_comparison): Replace with
2367         simplify_gen_binary, simplify_gen_relational or
2368         distribute_and_simplify_rtx.
2369         (distribute_and_simplify_rtx): New function.
2370         * simplify-rtx.c (simplify_binary_operation):
2371         Use nonzero_bits to simplify ANDs where we are
2372         turning off bits already known to be off in OP0.
2373
2374 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2375
2376         PR target/14478
2377         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2378
2379 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2380
2381         PR middle-end/14084
2382         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2383         to size of decl.
2384
2385 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2386
2387         PR/14924
2388         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2389
2390 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2391
2392         * tree.h: Fix comment typo.
2393
2394 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2395
2396         * gimplify.c (compare_case_labels): New function.
2397         (gimplify_switch_expr): Sort case labels, and make sure the
2398         last label in the label vector is the default case.
2399         * tree-cfg.c (group_case_labels): New function.
2400         (build_tree_cfg): Cleanup redundant labels and group case labels
2401         before creating edges.
2402         (cleanup_dead_labels): Handle GOTO_EXPRs.
2403         (find_case_label_for_value): Use a binary search to find the
2404         case label for the given value.
2405         * tree-gimple.c: Mention that labels are sorted, and that the
2406         last label must be the default.
2407
2408 2004-05-27  Jan Hubicka  <jh@suse.cz>
2409
2410         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2411
2412 2004-05-27  Jan Hubicka  <jh@suse.cz>
2413
2414         * i386.md (UNSPECV_EH_RETURN): Kill.
2415         (eh_return): Use jump_insn.
2416         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2417
2418 2004-05-26  Jan Hubicka  <jh@suse.cz>
2419
2420         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2421         not loop optimizing.
2422
2423 2004-05-26  Jan Hubicka  <jh@suse.cz>
2424
2425         * except.c (can_throw_internal):  Notice RESX instructions.
2426
2427 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2428
2429         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2430         of the two sizes to assemble_integer.
2431
2432 2004-05-25  Paul Brook  <paul@codesourcery.com>
2433
2434         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2435         pointless #ifdef.
2436
2437 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2438
2439         * Makefile.in (top_builddir): Define to .
2440
2441 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2442
2443         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2444         top-level detects, except when in-tree ld is being cross-built.
2445         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2446         then AS only if target is host.
2447         * configure: Rebuilt.
2448
2449 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2450
2451         * global.c (global_alloc): Call make_accurate_live_analysis.
2452         (record_one_conflict): Remove dead code.
2453         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2454         (bb_info): New structure.
2455         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2456         (allocate_bb_info, free_bb_info, mark_reg_change,
2457         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2458         modify_bb_reg_pav, calculate_reg_pav,
2459         make_accurate_live_analysis): New functions.
2460
2461 2004-05-25  Devang Patel  <dpatel@apple.com>
2462
2463         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2464         xrealloc.
2465         (end_alias_analysis): Use ggc_free instead fo free.
2466
2467 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2468
2469         PR target/15546
2470         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2471         as needed to be outputted.
2472
2473 2004-05-25  Jan Hubicka  <jh@suse.cz>
2474
2475         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2476
2477 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2478         Mostafa Hagog  <mustafa@il.ibm.com>
2479
2480         * Makefile.in (modulo-sched.o, ddg.o): New.
2481         * ddg.h, ddg.c, modulo-sched.c: New files.
2482         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2483         internals to "dupicate_insn".
2484         (duplicate_insn): New function.
2485         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2486         declarations.
2487         * common.opt (fmodulo-sched): New flag.
2488         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2489         Remove static and forward declaration.
2490         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2491         functions.
2492         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2493         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2494         declarations.
2495         * flags.h (flag_modulo_sched): New flag.
2496         * opts.c (common_handle_option): Handle modulo-sched flag.
2497         * params.def (max-sms-loop-number, sms-max-ii-factor,
2498         sms-dfa-history, sms-loop-average-count-threshold): New
2499         parameters.
2500         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2501         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2502         parameters.
2503         * passes.c ("sms", "sms-vcg"): New dumps.
2504         (rest_of_handle_sched): Call sms_schedule.
2505         * rtl.h (sms_schedule): New declaration.
2506         * timevar.def (TV_SMS): New.
2507         * toplev.c (flag_modulo_sched): Initialize.
2508         (f_options): Handle -fmodulo-sched option.
2509         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2510         * docs/passes.texi: Document new SMS pass.
2511
2512 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2513
2514         * Makefile.in (OBJS): Add rtlhooks.o.
2515         (rtlanal.o): Depend on function.h.
2516         (cse.o): Depend on rtlhooks-def.h.
2517         (combine.o): Depend on rtlhooks-def.h.
2518         (rtlhooks.o): New rule.
2519         * combine.c: Include rtlhooks-def.h.
2520         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2521         num_sign_bit_copies, cached_num_sign_bit_copies,
2522         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2523         (reg_nonzero_bits_for_combine,
2524         reg_num_sign_bit_copies_for_combine): New functions holding
2525         the remnants of the above.
2526         (combine_rtl_hooks): New.
2527         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2528         * cse.c: Include rtlhooks-def.h.
2529         (cse_rtl_hooks): New.
2530         (cse_main): Set rtl_hooks instead of gen_lowpart.
2531         * emit-rtl.c (gen_lowpart): Remove.
2532         (gen_lowpart_general): Move to rtlhooks.c.
2533         * rtl.h (nonzero_bits, num_sign_bit_copies,
2534         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2535         (gen_lowpart_general): Remove.
2536         (gen_lowpart): Temporarily redefine as a macro.
2537         * rtlanal.c: Include function.h.
2538         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2539         num_sign_bit_copies, cached_num_sign_bit_copies,
2540         num_sign_bit_copies1): New, from combine.c.
2541         * rtlhooks.c: New file.
2542         * rtlhooks-def.h: New file.
2543
2544 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2545
2546         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2547         to support 32-bit -mint8 mode.
2548
2549         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2550         option in the AVR architecture.
2551
2552 2004-05-24  Mike Stump  <mrs@apple.com>
2553
2554         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2555
2556 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2557
2558         * intl.h (open_quote, close_quote): New.
2559         * intl.c (open_quote, close_quote): New.
2560         (gcc_init_libintl): Set them.
2561         * pretty-print.c: Include "intl.h".
2562         (pp_base_format_text): Support 'q' format flag and %` and %'
2563         formats.  Use ' instead of ` in comments.
2564         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2565         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2566         foramt_types_orig): Describe these new formats.
2567         (decode_format_attr, check_function_format,
2568         check_format_info_main): Use these new formats.
2569         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2570         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2571         check these formats to 3.5.
2572
2573 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2574
2575         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2576         (BACKEND): Reflect this.
2577         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2578         (LIBS): Likewise.
2579
2580 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2581
2582         PR tree-optimization/14197
2583         * builtins.c: Include "tree-gimple.h"
2584         (readonly_data_expr): Use get_base_address.  Make sure to call
2585         decl_readonly_section only on trees it can handle.
2586         * tree-gimple.c (get_base_address): Accept STRING_CST and
2587         CONSTRUCTOR expressions.
2588         * Makefile.in: Update dependencies.
2589
2590 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2591
2592         Move libcpp to the toplevel.
2593         * Makefile.in: Remove references to libcpp files,
2594         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2595         and change hashtable.h to that.
2596         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2597         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2598         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2599         * configure: Regenerate.
2600         * config.in: Regenerate.
2601         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2602         * cppcharset.c: Removed.
2603         * cpperror.c: Removed.
2604         * cppexp.c: Removed.
2605         * cppfiles.c: Removed.
2606         * cpphash.c: Removed.
2607         * cpphash.h: Removed.
2608         * cppinit.c: Removed.
2609         * cpplex.c: Removed.
2610         * cpplib.c: Removed.
2611         * cpplib.h: Removed.
2612         * cppmacro.c: Removed.
2613         * cpppch.c: Removed.
2614         * cpptrad.c: Removed.
2615         * cppucnid.h: Removed.
2616         * cppucnid.pl: Removed.
2617         * cppucnid.tab: Removed.
2618         * hashtable.c: Removed.
2619         * hashtable.h: Removed.
2620         * line-map.c: Removed.
2621         * line-map.h: Removed.
2622         * mkdeps.c: Removed.
2623         * mkdeps.h: Removed.
2624         * stringpool.h: Include symtab.h instead of hashtable.h.
2625         * tree.h: Include symtab.h instead of hashtable.h.
2626         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2627
2628 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2629
2630         * gcc.c (struct prefix_list): Add forward declaration.
2631         (do_spec_path): New function, extracted from...
2632         (do_spec_1) <'D'>: ... here.  Drop support for
2633         SPACE_AFTER_L_OPTION.
2634         (do_spec_1) <'I'>: Use do_spec_path.
2635         (process_command): Do not store the 'include' suffix
2636         in include_prefixes.
2637         * system.h: Poison SPACE_AFTER_L_OPTION.
2638
2639 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2640
2641         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2642         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2643
2644 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2645
2646         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2647         Update based on printed manual.  Enable setting of offsets for
2648         FSFPRINT and move it to gcc-common.texi.
2649         * doc/gcc.texi: Update FSF printing details.
2650         * doc/gccint.texi: Remove FSF printing details.
2651
2652 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2653
2654         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2655
2656 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2657
2658         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2659         expand_builtin_strrchr, expand_builtin_strpbrk,
2660         expand_builtin_mempcpy, expand_builtin_memcmp,
2661         expand_builtin_strcmp, expand_builtin_strncmp,
2662         expand_builtin_strcat, std_expand_builtin_va_start,
2663         std_expand_builtin_va_arg, expand_builtin_va_copy,
2664         expand_builtin_signbit, fold_builtin_cabs,
2665         fold_builtin_logarithm, fold_builtin_mempcpy,
2666         fold_builtin_signbit, fold_builtin_isascii,
2667         fold_builtin_toascii, fold_builtin_isdigit,
2668         fold_builtin_1, build_function_call_expr,
2669         simplify_builtin_strchr, simplify_builtin_strrchr,
2670         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2671         simplify_builtin_memcmp, simplify_builtin_strcmp,
2672         simplify_builtin_strncmp, simplify_builtin_strncat,
2673         simplify_builtin_strspn, simplify_builtin_strcspn,
2674         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2675         to build with calls to build2, build3 or omit_one_operand.
2676
2677 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2678
2679         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2680         section when generating EABI code.
2681
2682 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2683
2684         PR 15546
2685         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2686         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2687
2688 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2689
2690         * c-common.c (c_common_truthvalue_conversion): Handle
2691         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2692         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2693         i.e. set the type to truthvalue_type_node and return.
2694
2695 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2696
2697        * tree.h (struct tree_decl): Add possibly_inlined bit.
2698         (DECL_POSSIBLY_INLINED): New accessor macro.
2699         * cgraph.h: Remove declaration of cgraph_inline_hash.
2700         * cgraph.c: Remove definition of cgraph_inline_hash.
2701         (hash_node): Revert to hashing DECL_UID.
2702         (eq_node): Take two pointers to cgraph_node structures.
2703         Compare DECL_UIDs.
2704         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2705         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2706         hash on DECL_UID.
2707         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2708         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2709         (cgraph_node): Allocate a temporary node on the stack, fill in
2710         its DECL field, and pass that to htab_find_slot.
2711         (cgraph_varpool_node): Likewise.
2712         (cgraph_function_possibly_inlined_p): If global info is ready,
2713         return the DECL_POSSIBLY_INLINED bit.
2714         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2715         instead of mucking with cgraph_inline_hash.
2716
2717 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2718
2719         * doc/contrib.texi: Add g77 contributors.
2720
2721 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2722
2723         * calls.c (initialize_argument_information): Forbid sibcalls if a
2724         callee-copied argument is stored in the current function's frame.
2725
2726 2004-05-22  Eric Christopher  <echristo@redhat.com>
2727
2728         * fix-header.c (read_scan_file): Update for add_path change.
2729
2730 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2731
2732         * c.opt (Wmissing-include-dirs): New.
2733         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2734         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2735         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2736         * c-incpath.h (add_path): Add fourth (bool) argument.
2737         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2738         (add_standard_paths): Likewise.
2739         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2740         is used and the directory was user-supplied via -I.
2741         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2742         using add_cpp_dir_path ().
2743         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2744         (struct cpp_dir): Add user_supplied_p.
2745         * doc/invoke.texi (Warning Options): Document new option.
2746
2747 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2748
2749         * fold-const.c (fold_read_from_constant_string): Convert result to
2750         requested type.
2751
2752 2004-05-21  Richard Henderson  <rth@redhat.com>
2753
2754         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2755         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2756         Don't mark VA_ARG_EXPRs volatile here.
2757         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2758
2759 2004-05-21  Richard Henderson  <rth@redhat.com>
2760
2761         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2762         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2763
2764 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2765
2766         * fold-const.c (fold, fold_relational_hi_lo,
2767         nondestructive_fold_binary_to_constant,
2768         fold_read_from_constant_string): Use fold_convert instead of convert.
2769         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2770         simplify_builtin_strchr, simplify_builtin_strrchr,
2771         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2772
2773 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2774
2775         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2776         is NULL.
2777
2778 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2779
2780         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2781         override sparc.h definition.
2782
2783 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2784
2785         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2786         get_unwidened, get_narrower): Replace build with build2.
2787         * fold-const.c (negate_expr, associate_trees, size_binop,
2788         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2789         pedantic_omit_one_operand, distribute_bit_expr,
2790         make_bit_field_ref, optimize_bit_field_compare,
2791         decode_field_reference, range_binop, make_range,
2792         build_range_check, fold_range_test, fold_truthop,
2793         optimize_minmax_comparison, extract_muldiv_1,
2794         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2795         fold_inf_compare, fold_single_bit_test, fold,
2796         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2797         Likewise replace build with either build2 or build3.
2798
2799 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2800
2801         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2802         * calls.c (prepare_call_address): Don't test
2803         NO_RECURSIVE_FUNCTION_CSE.
2804         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2805         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2806         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2807         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2808         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2809         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2810         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2811         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2812         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2813         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2814         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2815         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2816         Likewise.
2817         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2818         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2819         * doc/tm.texi (Costs): Remove documentation for
2820         NO_RECURSIVE_FUNCTION_CSE.
2821
2822 2004-05-20  Paul Brook  <paul@codesourcery.com>
2823
2824         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2825         * unwind-dw2.c (extract_cie_info): Ditto.
2826         (_Unwind_FrameState): Change retaddr_column to word type.
2827
2828 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2829
2830         PR middle-end/3074
2831         * fold-const.c (strip_compound_expr): Delete function.
2832         (count_cond): Delete function.
2833         (fold_binary_op_with_conditional_arg): Only perform transformations
2834         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2835         when a is constant.  This greatly simplifies this routine.
2836
2837         * tree.c (saved_expr_p): Delete function.
2838         * tree.h (saved_expr_p): Delete function prototype.
2839
2840 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2841
2842         * common.opt (ftree-loop-optimize): Remove.
2843
2844 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2845
2846         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2847         (NM_FOR_TARGET): Use := and $(shell).
2848         (mainversion): Remove unused variable.
2849
2850 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2851
2852         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2853         sequence containing the insn to be deleted, always reemit it.
2854
2855 2004-05-20  Richard Henderson  <rth@redhat.com>
2856
2857         PR 15454
2858         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2859         * function.c (expand_function_start): Expand static_chain_decl by hand.
2860         * gimplify.c (create_tmp_var_name): Export.
2861         * tree-gimple.h (create_tmp_var_name): Declare.
2862
2863 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2864
2865         * rs6000.c (print_operand) <case 'z'>: Call
2866         mark_decl_referenced before assemble_name.
2867
2868 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2869
2870         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2871         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2872         (cgraph_varpool_node): Hash on the pointer to the decl, not
2873         the DECL_UID.  Fixes 64-bit bootstrap failure.
2874
2875 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2876
2877         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2878         we don't earlyclobber operands used in the second insn.
2879
2880 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2881
2882         * tree-mudflap.c: Formatting fixes.
2883
2884 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2885
2886         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2887         * gengtype.c (open_base_files): Include reload.h in ifiles.
2888         * reload.h (reg_equiv_memory_loc_varray): Declare.
2889         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2890         (init_reload): Initialize it.
2891         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2892         reg_equiv_memory_loc_varray to size 0.
2893         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2894         growing reg_equiv_memory_loc_varray to the desired size.
2895         * passes.c (rest_of_handle_old_regalloc): Likewise.
2896         * reload.c: Amend comment on calling init_reload.
2897
2898 2004-05-20  Nick Clifton  <nickc@redhat.com>
2899
2900         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2901         with 'TRAMP' in the body of the macro definition.
2902
2903 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2904
2905         PR target/15383
2906         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2907         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2908         cmptf_libfunc isn't set.
2909         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2910         conventions.
2911         (ia64_sysv4_init_libfuncs): New.
2912
2913         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2914         ia64_sysv4_init_libfuncs.
2915
2916 2004-05-20  Falk Hueffner  <falk@debian.org>
2917
2918         PR other/15526
2919         * libgcc2.c (__mulvsi3): Fix overflow test.
2920
2921 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2922
2923         PR c/14171
2924         * reg-stack.c (nan): Rename to ...
2925         (not_a_num): Here.
2926         (reg_to_stack): Rename nan to not_a_num.
2927         (subst_stack_regs_pat): Likewise.
2928         (convert_regs_entry): Likewise.
2929         (convert_regs_1): Likewise.
2930
2931         * tree-cfg.c (find_case_label_for_value): Replace call to
2932         simple_cst_equal with tree_int_cst_equal.
2933
2934 2004-05-19  Jeff Law <law@redhat.com>
2935
2936         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2937         If the operand is for a use, then strip away the SSA_NAME, do not
2938         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2939         (mark_def_sites): Appropriately pass additional argument to
2940         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2941         then set the VDEF_RESULT to the VDEF_OP.
2942         (set_def_block): Strip away any SSA_NAME to get to the real
2943         underlying variable.
2944
2945         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2946         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2947         BB directly.
2948
2949 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2950
2951         PR c++/15463
2952         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2953         result of inverse.
2954
2955         PR rtl-optimization/15274
2956         * loop-iv.c (determine_max_iter, shorten_into_mode,
2957         iv_number_of_iterations): Handle constants correctly.
2958         * rtl.h (get_mode_bounds): Declaration changed.
2959         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2960         the target mode.
2961
2962         PR rtl-optimization/14692
2963         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2964         (unswitch_single_loop): Work correctly when may_unswitch_on
2965         returns a folded constant.
2966
2967         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2968         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2969         comparisons with mode bounds.
2970
2971         * function.c (struct temp_slot): Add new field prev.
2972         (free_after_compilation, init_temp_slots): Free new fields.
2973         (cut_slot_from_list, insert_slot_to_list,
2974         temp_slots_at_level, max_slot_level, move_slot_to_level,
2975         make_slot_available): New functions.
2976         (assign_stack_temp_for_type, combine_temp_slots,
2977         find_temp_slot_from_address, preserve_temp_slots,
2978         preserve_rtl_expr_result, free_temp_slots,
2979         free_temps_for_rtl_expr, pop_temp_slots): Work with
2980         the new structure of lists.
2981         (mark_all_temps_used): Removed.
2982         * function.h (struct function): Field x_temp_slots
2983         replaced by x_used_temp_slots and x_avail_temp_slots.
2984         (temp_slots): Replaced by ...
2985         (used_temp_slots, avail_temp_slots): New.
2986         * tree.h (mark_all_temps_used): Declaration removed.
2987
2988         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2989         simplify_using_assignment): Take the expression out of
2990         the expr_list wrapper.
2991
2992         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2993         infinite loops.
2994
2995 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2996
2997         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2998         costs should be based on code size when optimizing for size.
2999
3000 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3001
3002         * fold-const.c: Remove non-printable character 160.
3003
3004 2004-05-19  Nick Clifton  <nickc@redhat.com>
3005
3006         * doc/invoke.texi (ARM Options): Fix typo.
3007         Remove descrption of -mshort-load-bytes and
3008         -mno-short-load-bytes.
3009
3010         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3011         missing parenthesis.
3012         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3013         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3014
3015 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3016
3017         * expr.c (store_constructor): Build loop start and end by hand
3018         instead of via loop functions from stmt.c.
3019         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3020         Remove the code to expand them.
3021
3022         * stmt.c (loop_stack): Remove this and everything related.
3023         (struct nesting, enum nesting_desc): Update.
3024         (expand_fixup): Likewise.
3025         (expand_loop_start, expand_start_loop_continue_elsewhere,
3026         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3027         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3028         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3029         expand_exit_something): Remove.
3030         * tree.h: Remove prototypes.
3031
3032 2004-05-18  Mike Stump  <mrs@apple.com>
3033             Devang Patel  <dpatel@apple.com>
3034
3035         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3036         if this label is for eh.
3037         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3038         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3039         * dwarf2out.c (output_call_frame_info): Likewise.
3040         * output.h (default_emit_unwind_label): Likewise.
3041         * target.h (unwind_label): Likewise.
3042         * varasm.c (default_emit_unwind_label): Likewise.
3043
3044         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3045         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3046         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3047         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3048         DEBUG_RANGES_SECTION): Define.
3049
3050 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3051
3052         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3053         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3054         (cgraph_varpool_node):
3055         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3056         (cgraph_function_possibly_inlined_p): Use the decl itself for
3057         the key, not DECL_ASSEMBLER_NAME.
3058         (change_decl_assembler_name): No need to muck with the hash tables.
3059         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3060         Delete.
3061         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3062         for the key, not DECL_ASSEMBLER_NAME.
3063         * cgraph.h: Remove prototypes of deleted functions.
3064         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3065         (mark_decl_referenced): New function.
3066         * tree.h: Prototype mark_decl_referenced.
3067         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3068         mark_decl_referenced before assemble_name.
3069         * c-decl.c (finish_decl): Use mark_decl_referenced.
3070
3071 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3072             Jeff Law <law@redhat.com>
3073
3074         * tree-ssa-phiopt.c (abs_replacement): New function.
3075         (empty_block_p): New function extracted from...
3076         (candidate_bb_for_phi_optimization): Break out empty block test.
3077         (conditional_replacement): Use empty_block_p.
3078         (value_replacement): Similarly.
3079
3080         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3081         * tree-ssa-phiopt.c: Include flags.h.
3082         (conditional_replacement): Remove argument names from prototype.
3083         Minor formatting and comment fixes.
3084         (tree_ssa_phiopt): If conditional_replacement returns false, then
3085         call value_replacement.
3086         (value_replacement): New function.
3087
3088 2004-05-18  Jeff Law  <law@redhat.com>
3089
3090         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3091         from conditional_replacement.
3092         (candidate_bb_for_phi_optimization): Similarly.
3093         (conditional_replacement): Use replace_phi_with_stmt and
3094         candidate_bb_for_phi_optimization.
3095
3096         * tree-ssa-phiopt.c: Fix various formatting issues.
3097
3098 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3099
3100         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3101         s390_expand_cmpmem): Do not use expand_start_loop and
3102         expand_end_loop, instead build the loop manually.
3103
3104 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3105
3106         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3107         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3108
3109 2004-05-17  Jeff Law  <law@redhat.com>
3110
3111         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3112         * flags.h (flag_delete_null_pointer_checks): Here.
3113         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3114         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3115         (add_phi_arg, remove_phi_arg_num): Similarly.
3116         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3117         property into PHI nodes.
3118         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3119         (record_equivalences_from_phis): If all PHI arguments are known to be
3120         nonzero, then the result must be nonzero as well.
3121         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3122         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3123         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3124         as appropriate.
3125         * tree.h (PHI_ARG_NONZERO): Define.
3126         (phi_arg_d): Add nonzero flag.
3127
3128 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3129
3130         * f: Entire directory removed
3131
3132         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3133         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3134         (g77_integer_type_node, g77_uinteger_type_node)
3135         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3136         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3137         the above set of variables.
3138
3139         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3140         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3141         to g77 manual.
3142
3143 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3144
3145         PR tree-optimization/15438
3146         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3147         attributed functions as pure or const.
3148
3149 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3150
3151         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3152         from source code with errors.
3153
3154 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3155
3156         Enable tree browser for all front ends.
3157         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3158         (BACKEND): ...to here.
3159
3160 2004-05-17  Jan Hubicka  <jh@suse.cz>
3161
3162         * i386.c (construct_container): Do not produce BLKmode registers.
3163         (classify_argument): Properly compute alignment of complex types.
3164
3165 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3166
3167         PR target/15084
3168         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3169         and renamed to movdi_insv_1_rex64.
3170         (insv): Support SImode for 32bit and DImode for 64bit.
3171
3172 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3173
3174         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3175         (TARGET_SWITCHES): Remove debugg.
3176         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3177         TARGET_64BIT.
3178         (subdi3): Replace the define_expand with a define_insn, the latter
3179         renamed from subdi3_internal_3.
3180         (negdi2): Likewise negdi2_internal_2.
3181         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3182         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3183         and associated define_splits.
3184         (adddi3_internal): Renamed from adddi3_internal_3.
3185         (ashldi3_internal): Likewise ashldi3_internal4.
3186         (ashrdi3_internal): Likewise ashrdi3_internal4.
3187         (lshrdi3_internal): Likewise lshrdi3_internal4.
3188
3189 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3190
3191         * optabs.c (expand_unop): Try implementing negation using subtraction
3192         from zero.
3193
3194 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3195
3196         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3197         SAR register.
3198
3199 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3200
3201         PR target/10982
3202         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3203         (ne_zeroextractsi_shifted): New pattern.
3204         (ite_ne_zeroextractsi): New pattern.
3205         (ite_ne_zeroextractsi_shifted): New pattern.
3206
3207 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3208
3209         * c-gimplify.c (c_genericize):
3210         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3211         * c-parse.in <expr_no_commas>: Likewise.
3212         <if_prefix>: Likewise.
3213         <select_or_iter_stmt>: Likewise.
3214         * expr.c (expand_var, expand_expr_real_1): Likewise.
3215         * expr.h (expand_expr): Make it a static inline function.
3216         Move prototype for expand_expr_real up before this.
3217         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3218         Likewise.
3219         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3220         gimplify_asm_expr, gimplify_expr): Likewise.
3221         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3222         dump_function_to_file): Likewise.
3223         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3224         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3225         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3226         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3227         Likewise.
3228         * tree-optimize.c (execute_one_pass): Likewise.
3229         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3230         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3231
3232         * objc/objc-act.c (objc_build_try_enter_fragment,
3233         objc_build_try_epilogue, objc_build_catch_stmt,
3234         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3235         with lang_hooks.foo ().
3236
3237 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3238
3239         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3240         that simplify_builtin doesn't destructively modify its argument.
3241
3242 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3243
3244         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3245         implementations for ARM and Thumb.
3246         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3247
3248 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3249
3250         * prefix.c (update_path): Replace PREFIX with KEY only
3251         when it matches a full directory name in PATH.
3252
3253 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3254
3255         * arm.h (TARGET_APCS_32): Delete.
3256         (TARGET_MMU_TRAPS): Delete.
3257         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3258         define __APCS_26__.
3259         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3260         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3261         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3262         (prog_mode_type): Delete.
3263         (PROMOTE_MODE): Always promote unsigned for HImode.
3264         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3265         (MASK_RETURN_ADDR): Simplify.
3266         * arm.c (arm_prgmode): Delete.
3267         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3268         (print_multi_reg, output_return_instruction): Simplify.
3269         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3270         (arm_return_addr): Simplify.
3271         * arm.md (prog_mode): Delete.
3272         (conds): Simplify.
3273         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3274         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3275         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3276         (loadhi_shiftpredec): Delete.
3277         (peephole for post-increment on HImode load): Delete.
3278         * arm/crtn.asm: (FUNC_END): Simplify.
3279         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3280         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3281         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3282         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3283         MULTILIB_DEFAULTS as required.
3284         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3285         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3286         variables as required.
3287         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3288
3289 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3290
3291         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3292         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3293         count to 8 to handle n_reg > 2.
3294
3295 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3296
3297         * doc/extend.texi: Update WG14 URL.
3298
3299 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3300
3301         * basic-block.h (life_analysis, delete_noop_moves):
3302         Update prototypes.
3303         * bt-load.c (branch_target_load_optimize): Don't take the
3304         insns stream as an argument.  Update the life_analysis calls.
3305         * combine.c (combine_instructions): Update delete_noop_moves
3306         calls.
3307         * flow.c (notice_stack_pointer_modification): Don't take the
3308         insns stream as an argument.  Work on the flow graph.
3309         (life_analysis): Likewise.
3310         (delete_noop_moves): Likewise.
3311         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3312         (rest_of_handle_life): Update life_analysis call.
3313         (rest_of_compilation): Likewise, and also update
3314         branch_target_load_optimize call.
3315         * ra.c (reg_alloc): Update life_analysis call.
3316         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3317         the insns stream as an argument.
3318         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3319         call.
3320         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3321         prototypes.
3322         * value-profile.c (branch_prob): Update life_analysis call.
3323         * web.c (web_main): Work on the CFG, not on the insns stream.
3324
3325         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3326         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3327         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3328
3329 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3330
3331         PR c/15444
3332         * c-format.c (avoid_dollar_number): New function.
3333         (check_format_info_main): Call avoid_dollar_number when operand
3334         numbers might occur but has_operand_number == 0.
3335
3336 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3337
3338         * arm.md (all peephole2 patterns): Use predicates that validate
3339         register classes as appropriate.
3340
3341 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3342
3343         PR opt/14472
3344         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3345         ignore type conversions that do not inhibit tail calling.
3346         (find_tail_calls): Likewise.
3347
3348 2004-05-14  Jeff Law  <law@redhat.com>
3349
3350         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3351         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3352         bypassed virtuals into vars_to_rename just before into-ssa pass.
3353
3354         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3355         so that it picks up more opportunities to eliminate ABS expressions
3356         or turn them into negations.
3357
3358 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3359
3360         * passes.c (rest_of_handle_null_pointer): Remove.
3361         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3362         (rest_of_compilation): Likewise.
3363         * rtl.h (delete_null_pointer_checks): Remove prototype.
3364         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3365         Remove declarations.
3366         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3367         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3368         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3369         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3370         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3371         one_classic_gcse_pass, invalidate_nonnull_info,
3372         delete_null_pointer_checks_1, delete_null_pointer_checks,
3373         expr_reached_here_p_work): Remove.
3374         (gcse_main): Do not perform classic GCSE when optimizing for size.
3375         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3376         are never used.
3377
3378 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3379
3380         PR optimization/14466
3381         * tree-complex.c (make_temp): Remove.
3382         (gimplify_val): Replace make_temp with make_rename_temp
3383         and add NULL as the second argument.
3384         (expand_complex_div_wide): Likewise.
3385         * tree-dfa.c (make_rename_temp): New function.
3386         * tree-flow.h (make_rename_temp): Declare.
3387         * tree-sra.c (make_temp): Remove.
3388         (lookup_scalar): Replace make_temp with make_rename_temp.
3389         (create_scalar_copies): Likewise.
3390         * tree-ssa-phiopt.c (conditional_replacement): When we
3391         get non gimple create a temporary variable to hold the
3392         casted expression.
3393
3394 2004-05-14  Paul Brook  <paul@codesourcery.com>
3395
3396         * stor-layout.c (update_alignment_for_field): Use
3397         targetm.align_anon_bitfield.
3398         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3399         (TARGET_INITIALIZER): Use it.
3400         * target.h (struct gcc_target): Add align_anon_bitfield.
3401         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3402         (TARGET_ALIGN_ANON_BITFIELD): Define.
3403         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3404
3405 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3406
3407         * tree.def (documentation): Remove mention of class 'b'.
3408         (BLOCK): Now in class 'x'.
3409         * c-common.c (verify_tree): Remove case 'b'.
3410         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3411         * calls.c (calls_function_1): Control cannot get past the switch
3412         when exp is a BLOCK.
3413         * print-tree.c (print_node): Move code for class 'b' to the class
3414         'c'/'x' switch, as case BLOCK.
3415         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3416         (unsafe_for_reeval, substitute_placeholder_in_expr)
3417         (stabilize_reference_1): Remove case 'b'.
3418         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3419         of something being 'b' to tests for TREE_CODE of something being
3420         BLOCK.
3421         * tree-ssa-operands.c (get_expr_operands): Likewise.
3422
3423 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3424
3425         * tree-gimple.c: Rename from tree-simple.c.
3426         * tree-gimple.h: Rename from tree-simple.h.
3427         * c-gimplify.c: Rename from c-simplify.c
3428         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3429         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3430         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3431         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3432         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3433         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3434         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3435         Update.
3436
3437 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3438
3439         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3440
3441 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3442
3443         * tree-ssa.c (delete_tree_ssa): XFREE
3444         bitmaps allocated with BITMAP_XMALLOC.
3445
3446         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3447         idfs_cache at the end of the function.
3448
3449         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3450         at the end of the function.
3451
3452         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3453         el at the end of the function.
3454
3455         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3456         bitmaps allocated with BITMAP_XMALLOC.
3457
3458         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3459         the end.
3460
3461         * final.c (shorten_branches): Free uid_shuid before
3462         reallocating it.
3463
3464         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3465
3466 2004-05-13  Jeff Law  <law@redhat.com>
3467
3468         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3469         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3470         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3471
3472         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3473         rather than iterating through the blocks testing each bit in
3474         livein to initialize the worklist.
3475         (mark_def_sites): Remove useless checks of KILLS for virtual
3476         operands.
3477
3478         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3479         new parameters for the statement and variable worklist as well
3480         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3481         worklist recording interesting variables in the variable worklist
3482         and bitmap.  Handle casts between integral and boolean types.
3483         (substitute_single_use_vars): Accept new parameters for the statement
3484         and variable worklist.  When a substitution is made add a new
3485         entry to the statement worklist.  Handle casts between integral
3486         and boolean types.
3487         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3488         worklists to children.  Iterate until the statement worklist
3489         is empty.
3490
3491 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3492
3493         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3494         the end of the block.
3495
3496         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3497         with BITMAP_XMALLOC.
3498
3499         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3500         with BITMAP_XMALLOC.
3501
3502         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3503         Free nonzero_vars at the end of the function.
3504
3505         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3506         need to generate code instead of a NOP_EXPR.
3507
3508 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3509
3510         * gcc.c (default_compilers): Fill out initializers for new Fortran
3511         entries.
3512
3513 2004-05-13  Paul Brook  <paul@codesourcery.com>
3514
3515         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3516
3517 2004-05-13  Paul Brook  <paul@codesourcery.com>
3518
3519         * config/arm/arm.c (arm_default_short_enums): New function.
3520         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3521
3522 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3523
3524         Merge from tree-ssa-20020619-branch.
3525
3526         * Makefile.in (reload1.o-warn): Add.
3527         (tree-alias-ander.o-warn): Add.
3528         (GMPLIBS): Define.
3529         (GMPINC): Define.
3530         (BANSHEELIB): Define.
3531         (BANSHEEINC): Define.
3532         (TREE_DUMP_H): Define.
3533         (TREE_SIMPLE_H): Define.
3534         (TREE_FLOW_H): Define.
3535         (LIBDEPS): Add BANSHEELIB.
3536         (INCLUDES): Add BANSHEEINC and GMPINC.
3537         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3538         c-mudflap.o and c-pretty-print.o.
3539         (C_OBJS): Remove c-pretty-print.o.
3540         (OBJS-common): Remove sibcall.o.
3541         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3542         tree-ssa.o, tree-optimize.o, tree-simple.o,
3543         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3544         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3545         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3546         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3547         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3548         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3549         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3550         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3551         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3552         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3553         tree-profile.o.
3554         (OBJC-archive): Add tree-nomudflap.o.
3555         (cc1): Add dependency on @TREEBROWSER@.
3556         (c-decl.o): Add dependency on TREE_DUMP_H.
3557         (c-dump.o): Likewise.
3558         (c-common.o): Add dependency on tree-iterator.h
3559         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3560         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3561         (tree.o): Add dependency on tree-iterator.h,
3562         BASIC_BLOCK_H and TREE_FLOW_H.
3563         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3564         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3565         (tree-alias-type.o, tree-alias-ander.o,
3566         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3567         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3568         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3569         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3570         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3571         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3572         tree-nested.o, tree-iterator.o, tree-dfa.o,
3573         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3574         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3575         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3576         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3577         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3578         tree-sra.o, tree-complex.o, tree-profile.o,
3579         rtl-profile.o): New rules.
3580         (function.o): Add dependency on basic-block.h
3581         (expr.o): Add dependency on tree-iterator.h.
3582         (sibcall.o): Remove.
3583         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3584         (cfg.o): Add dependency on TIMEVAR_H.
3585         (cfghooks.o): Add dependency on TREE_FLOW_H.
3586         (reg-stack.o): Add dependency on basic-block.h.
3587         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3588         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3589         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3590         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3591         tree-alias-type.h, tree-alias-common.h,
3592         tree-alias-type.c, tree-alias-common.c,
3593         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3594         rtl-profile.c and tree-nested.c.
3595         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3596         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3597         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3598         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3599         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3600         * basic-block.h: Include predict.h
3601         (struct edge_def): Add GTY marker.
3602         Change field 'insns' to be a union of tree and rtx.
3603         (EDGE_TRUE_VALUE): Define.
3604         (EDGE_FALSE_VALUE): Define.
3605         (EDGE_EXECUTABLE): Define.
3606         (struct bb_ann_d): Forward declare.
3607         (struct basic_block_def): Add GTY marker.
3608         Remove fields head_tree and end_tree.
3609         Add fields stmt_list, rbi and tree_annotations.
3610         (struct reorder_block_def): Define.
3611         (basic_block_info): Add GTY marker.
3612         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3613         variables instead of macros.
3614         (flow_call_edges_add): Remove declaration.
3615         (make_eh_edge): Remove declaration.
3616         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3617         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3618         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3619         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3620         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3621         (try_redirect_by_replacing_jump): Modfiy return type to
3622         edge instead of bool.
3623         * bb-reorder.c (copy_bb): Call duplicate_block
3624         instead of cfg_layout_duplicate_bb.
3625         (copy_bb_p): Call can_duplicate_block_p instead of
3626         cfg_layout_can_duplicate_bb_p.
3627         * bitmap.c (bitmap_first_set_bit): Abort if word
3628         wasn't found.
3629         (bitmap_last_set_bit): Likewise.
3630         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3631         (DEF_FUNCTION_TYPE_3): Add.
3632         * builtins.c (c_strlen): Make extern.
3633         (builtin_save_expr): New.
3634         (expand_builtin_nonlocal_goto): New.
3635         (expand_builtin_constant_p): Remove.
3636         (expand_builtin_mathfn): Call builtin_save_expr instead
3637         of save_expr.
3638         (expand_builtin_mathfn_2): Likewise.
3639         (expand_builtin_strcmp): Likewise.
3640         (expand_builtin_strncmp): Likewise.
3641         (expand_builtin_strcat): Likewise.
3642         (fold_builtin_cabs): Likewise.
3643         (expand_builtin_alloca): Don't trigger if -fmudflap is
3644         given.
3645         (build_string_literal): Set TREE_INVARIANT on new node.
3646         (expand_builtin_profile_fun): New.
3647         (round_trampoline_addr): New.
3648         (expand_builtin_init_trampoline): New.
3649         (expand_builtin_adjust_trampoline): New.
3650         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3651         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3652         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3653         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3654         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3655         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3656         Handle.
3657         (fold_builtin_expect): New.
3658         (fold_builtin_isascii): Don't return non-constant results
3659         in GIMPLE form.
3660         (fold_builtin_isdigit): Likewise.
3661         (fold_builtin_1): New.
3662         (fold_builtin): Call it.
3663         (build_function_call_expr): Update call to build a new
3664         CALL_EXPR.
3665         (purge_builtin_constant_p): Remove.
3666         (simplify_builtin, simplify_builtin_memcmp,
3667         simplify_builtin_strcmp, simplify_builtin_strncmp,
3668         simplify_builtin_strpbrk, simplify_builtin_strstr,
3669         simplify_builtin_strchr, simplify_builtin_strrchr,
3670         simplify_builtin_strcat, simplify_builtin_strncat,
3671         simplify_builtin_strspn, simplify_builtin_strcspn,
3672         simplify_builtin_next_arg, simplify_builtin_va_start,
3673         simplify_builtin_sprintf): New.
3674         * builtins.def (BUILT_IN_STACK_ALLOC,
3675         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3676         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3677         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3678         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3679         * c-common.c: Include tree-iterator.h and hashtab.h.
3680         (lang_statement_code_p): Declare.
3681         (lang_gimplify_stmt): Declare.
3682         (fix_string_type): Set TREE_INVARIANT for value.
3683         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3684         (c_type_hash): New.
3685         (c_common_get_alias_set): Handle multiple type nodes
3686         referring to "the same" type, currently for C90 only.
3687         (c_add_case_label): Use create_artificial_label.
3688         (finish_label_address_expr): Don't set TREE_CONSTANT on
3689         result.
3690         (c_expand_expr): Don't handle STMT_EXPR.
3691         (handle_alias_attribute): Marke aliased variables to be
3692         TREE_STATIC.
3693         (handle_nonnull_attribute): Initialize arg_num.
3694         (check_function_nonnull): Likewise.
3695         (c_walk_subtrees): New.
3696         (c_estimate_num_insns_1): Don't handle
3697         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3698         (c_decl_uninit_1): Remove.
3699         (c_decl_uninit): Remove.
3700         (c_warn_unused_result): New.
3701         * c-common.def (ASM_STMT): Change number of operands
3702         to 4.
3703         (FILE_STMT): Remove.
3704         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3705         Remove.
3706         (lang_gimplify_stmt): Add.
3707         (expand_stmt): Remove.
3708         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3709         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3710         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3711         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3712         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3713         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3714         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3715         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3716         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3717         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3718         genrtl_compound_stmt, genrtl_asm_stmt,
3719         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3720         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3721         c_tree_chain_matters_p, c_warn_unused_result,
3722         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3723         Declare.
3724         * c-convert.c (convert): Make convert work when
3725         converting to compatible types across translation unit.
3726         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3727         tree-simple.h, diagnostic.h and tree-dump.h
3728         (merge_decls): Initialize oldtype to NULL.
3729         (finish_decl): Use DECL_HARD_REGISTER instead of
3730         DECL_C_HARD_REGISTER.
3731         (check_bitfield_type_and_width): Check for null
3732         lang_type_specific when check the precision of an enum.
3733         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3734         in a pointer-to-array declarator.
3735         (finish_struct): Clear allocated struct lang_type.
3736         (finish_enum): Set enum_min and enum_max.  Set
3737         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3738         not to the enumerators.
3739         (set_decl_nonlocal): New.
3740         (store_parm_decls): Use it via walk_tree.
3741         (c_finalize): New.
3742         (finish_function): When !targetm.have_ctors_dtors,
3743         record static constructors and destructors here...
3744         (c_expand_body_1): ... not here.
3745         (c_expand_decl): Rename from c_expand_decl_stmt.
3746         Handle all C-specific expansion semantics.
3747         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3748         STMT_LINENO.
3749         * c-format.c (handle_format_arg_attribute): Initialize
3750         format_num.
3751         * c-lang.c: Include tree-inline.h
3752         (LANG_HOOKS_EXPAND_DECL,
3753         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3754         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3755         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3756         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3757         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3758         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3759         (c_types_compatible_p): New.
3760         * c-mudflap.c: New file.
3761         * c-objc-common.c: Include tree-mudflap.h
3762         (start_cdtor, finish_cdtor): Collapse
3763         together into
3764         (build_cdtor): ...here.  Update to construct a complete tree
3765         for the function.  No need to call push_scope, pop_scope, or
3766         clear_last_expr, or set current_function_cannot_inline.
3767         (c_missing_noreturn_ok_p): Change prototype to return
3768         bool.
3769         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3770         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3771         opts.c.
3772         (c_common_post_options): Don't ever use rtl inlining.
3773         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3774         * c-pragma.c (handle_pragma_redefine_extname): Define
3775         always.
3776         (init_pragma): Activate #pragma redefine_extname for mudflap.
3777         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3778         (pp_c_initializer): Accept any type CONSTRUCTOR.
3779         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3780         COMPLEX_TYPE.
3781         (decl_name_str): New local function.
3782         (pp_c_direct_declarator): Call it.
3783         (pp_c_primary_expression): Call it.
3784         (pp_c_id_expression): Call it.
3785         (pp_c_statement): Call it.
3786         (print_c_tree): Create new pp object.
3787         * c-pretty-print.h (pp_c_tree_decl_identifier,
3788         print_c_tree): Declare.
3789         * c-semantics.c: Include langhooks.h
3790         (lang_expand_stmt, lang_expand_decl_stmt,
3791         find_reachable_label_1, find_reachable_label,
3792         expand_unreachable_if_stmt, expand_unreachable_stmt,
3793         genrtl_do_stmt_1): Remove.
3794         (begin_stmt_tree): Don't check for changed filename.
3795         Call annotate_with_locus.
3796         (finish_stmt_tree): Don't set line for end of function.
3797         (build_stmt): Don't check type nodes for
3798         side effects.
3799         (build_stmt): Set TREE_SIDE_EFFECTS.
3800         Set EXPR_LOCUS instead of STMT_LINENO.
3801         (lang_expand_stmt, lang_expand_decl_stmt,
3802         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3803         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3804         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3805         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3806         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3807         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3808         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3809         find_reachable_label_1, expand_unreachable_if_stmt,
3810         expand_unreachable_stmt): Remove.
3811         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3812         * c-simplify.c: New file.
3813         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3814         (struct lang_type): Add fields enum_min and enum_max.
3815         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3816         (c_expand_decl, c_missing_noreturn_ok_p,
3817         c_types_compatible_p): Declare.
3818         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3819         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3820         (default_function_array_conversion): Rely on build to
3821         set TREE_CONSTANT.
3822         (parser_build_binary_op, pointer_diff): Likewise.
3823         (build_unary_op, build_binary_op): Likewise.
3824         (build_array_ref):
3825         (build_external_ref): Set TREE_INVARIANT.
3826         (build_c_cast, pop_init_level): Likewise.
3827         (process_init_element): Use ASM_VOLATILE_P.
3828         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3829         (c_finish_case): Call c_do_switch_warnings.
3830         * c.opt (fdump-): Remove.
3831         * calls.c (try_to_integrate): Remove.
3832         (prepare_call_address): Replace fndecl arg with a
3833         precomputed static chain value.
3834         (emit_call_1): New argument for full call expr.
3835         (flags_from_decl_or_type): Call special_function_p.
3836         (initialize_argument_information): Add argument
3837         may_tailcall.
3838         (purge_reg_equiv_notes): New.
3839         (expand_call): Do not try to expand calls inline.
3840         (fixup_tail_calls): New.
3841         * cfg.c: Include timevar.h and ggc.h.
3842         (bb_pool, edge_pool): Remove.
3843         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3844         (entry_exit_blocks): Remove.
3845         (rbi_pool): Declare.
3846         (init_flow): Do not create pools.
3847         Allocate entry/exit block.
3848         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3849         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3850         (unlink_block): Clear b->prev_bb and b->next_bb.
3851         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3852         (dump_flow_info): Work on trees too.
3853         (dump_cfg_bb_info): New.
3854         (brief_dump_cfg): New.
3855         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3856         (find_edge): New.
3857         * cfgbuild.c (rtl_make_eh_edge): Rename from
3858         make_eh_edge.  Update all users.
3859         (find_basic_blocks): Don't call VARRAY_FREE on
3860         basic_block_info.
3861         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3862         and newpos2.
3863         (delete_unreachable_blocks): Return changed status.
3864         (merge_seq_blocks): New.
3865         * cfghooks.c: Include tree-flow.h
3866         (tree_register_cfg_hooks, ir_type): New.
3867         (redirect_edge_and_branch): Change return type to edge.
3868         (predict_edge, predicted_by_p, can_duplicate_block_p,
3869         duplicate_block, block_ends_with_call_p,
3870         block_ends_with_condjump_p, flow_call_edges_add): New.
3871         * cfghooks.h (redirect_edge_and_branch): Change return
3872         type to edge.
3873         (predict_edge, predicted_by_p, can_duplicate_block_p,
3874         duplicate_block, block_ends_with_call_p,
3875         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3876         (redirect_edge_and_branch): Change return type to edge.
3877         (struct cfg_hooks): Add fields block_ends_with_call_p,
3878         block_ends_with_condjump_p, flow_call_edges_add,
3879         predict_edge, predicted_by_p, can_duplicate_block_p and
3880         duplicate_block.
3881         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3882         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3883         (fixup_reorder_chain): Use initialize_bb_rbi.
3884         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3885         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3886         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3887         (insn_locators_initialize): Use new info about blocks.
3888         * cfglayout.h (typedef struct reorder_block_def): Moved to
3889         basic_block.h.
3890         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3891         removed.
3892         * cfgloop.c: Include tree.h and tree-flow.h.
3893         * cfgloop.h (create_loop_notes): Declare.
3894         * cfgloopmanip.c (create_loop_notes): New.
3895         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3896         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3897         and duplicate_block fields.
3898         (create_basic_block_structure): Don't look at
3899         RTX_INTEGRATED_P.
3900         (rtl_block_ends_with_call_p): New.
3901         (rtl_block_ends_with_condjump_p): New.
3902         (need_fake_edge_p): Moved from cfganal.c.
3903         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3904         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3905         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3906         (cfg_layout_rtl_cfg_hooks): Ditto.
3907         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3908         functions to be reachable.
3909         * cgraphunit.c (decide_is_function_needed):
3910         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3911         inline functions don't need to be output.
3912         (cgraph_assemble_pending_functions): Don't do anything
3913         special for nested functions.
3914         (cgraph_mark_functions_to_output): Likewise.
3915         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3916         (cgraph_analyze_function): Use estimate_num_insns.
3917         (cgraph_mark_functions_to_output): Likewise.
3918         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3919         (cgraph_expand_function): Allow functions to not be
3920         emitted.
3921         (cgraph_remove_unreachable_nodes):
3922         (cgraph_recursive_inlining_p): Simplify.
3923         (lookup_recursive_calls,
3924         cgraph_decide_recursive_inlining): New.
3925         (cgraph_decide_inlining_*): Update calls of
3926         cgraph_mark_inline.
3927         * combine.c (get_pos_from_mask): Always set *plen.
3928         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3929         ftree-based-profiling, ftree-ccp, ftree-ch,
3930         ftree-combine-temps, ftree-copyrename, ftree-dce,
3931         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3932         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3933         ftree-lrs): Add.
3934         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3935         Undefine.
3936         * configure.ac: Add --enable-tree-browser option.
3937         Add --with-libbanshee option.
3938         Add GMPLIBS and GMPINC.
3939         * configure: Regenerate.
3940         * coverage.c (tree_ctr_tables): New.
3941         (coverage_counter_alloc): Use it.
3942         (build_ctr_info_value): Ditto.
3943         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3944         (tree_coverage_counter_ref): New.
3945         * coverage.h (coverage_counter_ref): Remove declaration.
3946         (rtl_coverage_counter_ref): Declare.
3947         (tree_coverage_counter_ref): Declare.
3948         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3949         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3950         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3951         (struct cse_basic_block_data): Rename enum values to not
3952         conflict with profile.h; update all uses.
3953         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3954         in comments.
3955         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3956         * diagnostic.h (debug_output_buffer, dump_generic_node,
3957         print_generic_stmt, print_generic_stmt_indented,
3958         print_generic_expr, print_generic_decl,
3959         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3960         Declare.
3961         * dominance.c: Cache immediate dominators.
3962         * domwalk.c: New file.
3963         * domwalk.h: New file.
3964         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3965         (gen_subprogram_die): Generate a DIE for a named
3966         return value.
3967         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3968         (add_location_or_const_value_attribute): Likewise.
3969         (add_bound_info): Likewise.
3970         (gen_decl_die): Likewise.
3971         * emit-rtl.c (maybe_set_first_label_num): New.
3972         (copy_most_rtx): Don't copy the integrated flag.
3973         Copy the new return_val flag.
3974         * et-forest.c (MAX_NODES): Define.
3975         (record_path_before_1): Abort if len is greater than
3976         MAX_NODES.
3977         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3978         gen_eh_region_catch, gen_eh_region_allowed,
3979         gen_eh_region_must_not_throw, get_eh_region_number,
3980         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3981         set_eh_region_tree_label, expand_resx_expr): New.
3982         (expand_eh_region_start, expand_start_catch): Use them.
3983         (expand_end_catch): Tidy.
3984         (note_eh_region_may_contain_throw): Take region argument.
3985         (note_current_region_may_contain_throw): New.
3986         (get_exception_filter): Export.
3987         (collect_eh_region_array): Export.
3988         (remove_unreachable_regions): Check ERT_TRY based on reachability
3989         of catches, not reachability of continue_label.  Never remove
3990         ERT_MUST_NOT_THROW regions.
3991         (collect_rtl_labels_from_trees): New.
3992         (convert_from_eh_region_ranges): Use it.
3993         (connect_post_landing_pads): Handle dying cleanups.
3994         (struct reachable_info): Add callback data.
3995         (add_reachable_handler): Invoke the callback.
3996         (foreach_reachable_handler): New.
3997         (reachable_handlers): Use it.
3998         (arh_to_landing_pad, arh_to_label): New.
3999         (can_throw_internal_1): Split out from can_throw_internal.
4000         (can_throw_external_1): Similarly.
4001         * except.h: Update.
4002         * explow.c (emit_stack_save): Remove savearea mode check.
4003         (update_nonlocal_goto_save_area): New.
4004         (allocate_dynamic_stack_space): Use it.
4005         (probe_stack_range): Never emit loop notes.
4006         * expmed.c (extract_fixed_bit_field): Always propagate the
4007         target for the shift if it is a REG.
4008         * expr.c: Include tree-iterator.h
4009         (is_zeros_p): Remove.
4010         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4011         (count_type_elements): New.
4012         (mostly_zeros_p): Use them.
4013         (expr_wfl_stack): Remove.
4014         (convert_move): Do nothing if to and from are the same.
4015         (emit_block_move_via_loop): Don't emit LOOP notes.
4016         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4017         (emit_move_insn_1): Don't generate inline warnings.
4018         (expand_vars, expand_var): Split from ...
4019         (expand_expr_1): ... here.
4020         (expand_expr_real, expand_expr_real_1):  Use new macros
4021         EXPR_LOCATION and EXPR_HAS_LOCATION.
4022         * expr.h (simplify_builtin_fputs,
4023         simplify_builtin_strcpy, simplify_builtin_strncpy,
4024         expand_var, fixup_tail_calls,
4025         update_nonlocal_goto_save_area): Declare.
4026         (lookup_static_chain, expand_inline_function,
4027         mark_seen_cases): Remove.
4028         (prepare_call_address): Change type of 2nd argument to
4029         rtx.
4030         * final.c (profile_function): Update static chain test.
4031         (final): Don't look at RTX_INTEGRATED_P.
4032         * flags.h (flag_mudflap, flag_mudflap_threads,
4033         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4034         flag_tree_dce, flag_tree_combine_temps,
4035         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4036         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4037         flag_tree_points_to): Declare.
4038         (enum pta_type): Declare.
4039         * flow.c (lang_missing_noreturn_ok_p): Remove.
4040         (check_function_return_warnings): Remove.
4041         (update_life_info): Update comments.
4042         (free_basic_block_vars): Don't call VARRAY_FREE for
4043         basic_block_info.
4044         (regno_uninitialized): Remove.
4045         * fold-const.c (int_const_binop): Make extern.
4046         (non_lvalue): Rely on build to set TREE_CONSTANT.
4047         (operand_equal_p): Replace only_const argument with
4048         flags.  Allow pure functions if OEP_PURE_SAME.
4049         (fold): Use OEP_ONLY_CONST.
4050         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4051         boolean type.
4052         (fold_relational_hi_lo,
4053         nondestructive_fold_binary_to_constant,
4054         nondestructive_fold_unary_to_constant,
4055         fold_read_from_constant_string): New.
4056         * function.c (struct function): Remove calls_constant_p.
4057         (current_function_calls_constant_p): Remove.
4058         (inline_function_decl): Remove.
4059         (put_var_into_stack): Don't use it.
4060         (fix_lexical_addr): Likewise.
4061         (inline_function_decl): Remove extern declaration.
4062         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4063         (trampolines_created): Move to varasm.c.
4064         (free_after_compilation): Update for removed fields.
4065         (allocate_struct_function): Likewise.
4066         (delete_handlers, lookup_static_chain): Remove.
4067         (fix_lexical_addr): Don't consider non-local variable refs.
4068         (trampoline_address): Remove.
4069         (round_trampoline_addr): Move to builtins.c.
4070         (adjust_trampoline_addr): Remove.
4071         (expand_function_start): Update for changes to static chain
4072         and nonlocal goto handling.
4073         (initial_trampoline): Move to varasm.c.
4074         (expand_function_end): Don't build trampolines or kill
4075         unreferenced nonlocal goto labels.
4076         (free_after_compilation): Don't set it.
4077         (expand_function_end): Likewise.
4078         (setjmp_vars_warning): Rename from
4079         uninitialized_vars_warning, remove uninitialized vars warning.
4080         (uninitialized_vars_warning): Remove old comment
4081         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4082         and do not call the langhook.
4083         (expand_function_start, expand_function_end): Don't do
4084         function instrumentation here.
4085         (clear_block_marks): Rename from reorder_blocks_0, export.
4086         (blocks_nreverse): Export.
4087         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4088         of rtl.
4089         (reset_block_changes, record_block_change, finalize_block_changes,
4090         check_block_change, free_block_changes): New functions.
4091         (assign_parms): Setting of current_function_stdarg
4092         moved ...
4093         (allocate_struct_function): ... here.
4094         * function.h (struct function): Remove x_nonlocal_labels,
4095         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4096         x_context_display, x_trampoline_list, needs_context.
4097         Add static_chain_decl, nonlocal_goto_save_area.
4098         (struct function): Remove x_clobber_return_insn.
4099         Add tail_call_emit field, last_label_uid,
4100         unexpanded_var_list, dont_emit_block_notes,
4101         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4102         (clear_block_marks): Declare.
4103         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4104         (mfwrap_spec, mflib_spec): Declare.
4105         (cpp_unique_options, cc1_options): Ditto.
4106         (default_compilers): Add .F and .f90.
4107         (static_specs): Add mfwrap and mflib.
4108         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4109         CONSTANT_RTX_P.
4110         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4111         Update to match insns field in struct edge_def.
4112         * gdbinit.in (pgs, pge): Define.
4113         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4114         instead of the integrated flag.
4115         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4116         * gengtype-yacc.y (bitfieldlen): Add empty action.
4117         (struct_fields): Accept unnamed bitfields.
4118         (bitfieldlen): Split from ...
4119         (bitfieldopt): ... here.
4120         * gengtype.c (ifiles): Add tree-alias-type.h and
4121         tree-flow.h.
4122         * genrecog.c (validate_pattern): Do not handle
4123         CONSTANT_P_RTX.
4124         * gimple-low.c: New file.
4125         * gimplify.c: New file.
4126         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4127         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4128         * ifcvt.c (dead_or_predicable): Initialize local variable
4129         'earliest'.
4130         * input.h (expr_wfl_stack): Remove.
4131         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4132         (setup_initial_hard_reg_value_integration): Likewise.
4133         (initialize_for_inline): Likewise.
4134         (note_modified_parmregs): Likewise.
4135         (integrate_parm_decls): Likewise.
4136         (process_reg_param): Likewise.
4137         (save_parm_insns): Likewise.
4138         (copy_insn_list): Likewise.
4139         (copy_insn_notes): Likewise.
4140         (compare_blocks): Likewise.
4141         (find_block): Likewise.
4142         (inlining): Likewise.
4143         (function_cannot_inline_p): Likewise.
4144         (parmdecl_map): Likewise.
4145         (in_nonparam_insns): Likewise.
4146         (save_for_inline): Likewise.
4147         (FIXED_BASE_PLUS): Likewise.
4148         (expand_inline_function): Likewise.
4149         (copy_rtx_and_substitute): Don't look at map->integrating,
4150         map->inline_target, and inlining, since we are never copying
4151         for integrating.
4152         Don't abort on RTX_INTEGRATED_P.
4153         (old_fun): Remove.
4154         (output_inline_function): Remove.
4155         * integrate.h (struct inline_map): Remove fields integrating,
4156         block_map, leaf_reg_map, inline_target, and local_return_label.
4157         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4158         copy_loop_headers, never_reached_warning): Removed.
4159         (any_uncondjump_p): Reject nonlocal goto.
4160         * langhooks-def.h (lhd_types_compatible_p,
4161         lhd_expand_decl, lhd_gimplify_expr): Declare.
4162         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4163         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4164         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4165         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4166         LANG_HOOKS_GIMPLIFY_EXPR,
4167         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4168         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4169         LANG_HOOKS_GIMPLIFY_EXPR,
4170         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4171         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4172         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4173         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4174         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4175         LANG_HOOKS_DECL_UNINIT,
4176         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4177         * langhooks.c: Include tree-simple.h.
4178         (lhd_expand_decl): New.
4179         (lhd_types_compatible_p): New.
4180         (lhd_decl_uninit): Remove.
4181         (lhd_gimplify_expr): New.
4182         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4183         Remove.
4184         (struct lang_hooks_for_functions): Add field
4185         missing_noreturn_ok_p.
4186         (struct lang_hooks): Add field expand_decl,
4187         types_compatible_p, gimplify_expr and
4188         gimple_before_inlining.
4189         Remove fields decl_uninit and rtl_expand
4190         * opts.c (decode_options): Set flag_tree_ccp,
4191         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4192         flag_tree_pre, flag_tree_ter,
4193         flag_tree_live_range_split, flag_tree_sra,
4194         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4195         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4196         OPT_fmudflapth, OPT_fmudflapir,
4197         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4198         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4199         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4200         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4201         OPT_ftree_points_to_ and OPT_ftree_pre.
4202         * output.h (regno_uninitialized, find_basic_blocks,
4203         cleanup_cfg, delete_unreachable_blocks,
4204         check_function_return_warnings): Remove.
4205         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4206         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4207         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4208         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4209         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4210         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4211         Define.
4212         * passes.c (rest_of_decl_compilation):
4213         (rest_of_handle_sibling_calls): Remove.
4214         (rest_of_handle_inlining): Remove.
4215         (rest_of_handle_gcse): Do not run
4216         purge_builtin_constant_p.
4217         (rest_of_compilation): Update.
4218         Do not call copy_loop_headers.
4219         Do rtl-based profiling only when
4220         !flag_tree_based_profiling.  Register rtl-based profiling
4221         hooks.
4222         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4223         (predicted_by_p): Rename to ...
4224         (rtl_predicted_by_p): .. this one; make global
4225         (tree_predicted_by_p): New.
4226         (dump_prediction): Add FILE argument.
4227         (predict_edge): Rename to ...
4228         (rtl_predict_edge): .. this one.
4229         (tree_predict_edge): New.
4230         (combine_predictions_for_insn): Update calls of predict_edge.
4231         (predict_loops): Break out from ...
4232         (estimate_probability): ... here; update comments; move updating
4233         of unknown probabilities from ...
4234         (estimate_bb_frequencies): ... here.
4235         (combine_predictions_for_bb): New.
4236         (tree_predict_by_opcode): New.
4237         (tree_estimate_probability): New.
4238         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4239         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4240         * predict.h: Add include guard.
4241         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4242         * pretty-print.c (pp_write_text_to_stream): Make extern.
4243         * pretty-print.h (pp_write_text_to_stream): Declare.
4244         * print-rtl.c (print_rtx): Don't print the integrated flag.
4245         Print the return_val flag.
4246         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4247         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4248         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4249         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4250         * profile.c: Include cfghooks.h, tree-flow.h.
4251         (profile_hooks): New.
4252         (profile_dump_file): New.
4253         (instrument_edges): Use hooks instead of RTL-specific code.
4254         (instrument_values): Ditto.
4255         (get_exec_counts): Ditto.
4256         (compute_branch_probabilities): Ditto.
4257         (compute_value_histograms): Ditto.
4258         (branch_prob): Ditto.
4259         (find_spanning_tree): Ditto.
4260         (end_branch_prob): Ditto.
4261         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4262         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4263         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4264         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4265         (tree_register_profile_hooks): New.
4266         (rtl_register_profile_hooks): New.
4267         * ra-rewrite.c (rewrite_program): Clear variable info.
4268         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4269         * regs.h: Add include guards.
4270         * reload.c (decompose): Clear val using memset.
4271         * rtl.def (CONSTANT_P_RTX): Remove.
4272         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4273         (copy_loop_headers): Remove.
4274         (struct rtx_def): Replace the integrated flag with the
4275         return_val flag.
4276         (maybe_set_first_label_num): Declare.
4277         (init_branch_prob): Move declaration to value-prof.h.
4278         (end_branch_prob): Ditto.
4279         (branch_prob): Ditto.
4280         (never_reached_warning): Don't declare it.
4281         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4282         (hoist_insn_to_edge): Update to match field insns in
4283         struct edge_def.
4284         * sbitmap.c (sbitmap_realloc): New.
4285         * sbitmap.h (sbitmap_realloc): Declare.
4286         * sibcall.c: Remove file.
4287         * simplify-rtx.c (simplify_rtx): Do not handle
4288         CONSTANT_P_RTX.
4289         * stmt.c (parse_output_constraint): Don't warn for read-write
4290         memory operand.
4291         (tail_recursion_args): Use types_compatible_p langhook.
4292         (force_label_rtx): Don't look at inline_function_decl.
4293         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4294         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4295         (declare_nonlocal_label): Remove.
4296         (expand_goto): Don't handle nonlocal gotos.
4297         (expand_nl_handler_label): Remove.
4298         (expand_nl_goto_receivers): Remove.
4299         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4300         update_nonlocal_goto_save_area.
4301         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4302         (warn_if_unused_value): Likewise.
4303         (expand_start_loop, expand_loop_continue_here,
4304         expand_end_loop): Don't create loop notes.
4305         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4306         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4307         (expand_end_case_type): Don't do warn_switch handling.
4308         (pushcase, pushcase_range) Update add_case_node calls.
4309         (add_case_node): Add dont_expand_label argument.
4310         (same_case_target_p): Don't search rtl.
4311         (expand_start_bindings_and_block, expand_end_bindings):
4312         Don't emit block notes when dont_emit_block_notes.
4313         (using_eh_for_cleanups_p): Export.
4314         (expand_return): Allow any typed rhs.
4315         (expand_stack_alloc): New.
4316         (expand_stack_save, expand_stack_restore): New.
4317         (containing_blocks_have_cleanups_or_stack_level): New
4318         function.
4319         (asm_op_is_mem_input): New fn.
4320         (expand_asm_expr): New fn.
4321         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4322         nodes.
4323         * stor-layout.c (layout_type): Just return if type is
4324         error_mark_node.
4325         (update_alignment_for_field): Export.
4326         (variable_size): We don't care about global_bindings_p if
4327         the frontend doesn't want a list of the expressions.
4328         * system.h: Poison INTEGRATE_THRESHOLD.
4329         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4330         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4331         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4332         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4333         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4334         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4335         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4336         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4337         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4338         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4339         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4340         TV_CONTROL_DEPENDENCES): Define.
4341         * toplev.c: Include tree-alias-common.h
4342         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4343         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4344         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4345         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4346         flag_tree_combine_temps, flag_tree_ter,
4347         flag_tree_live_range_split, flag_tree_dom,
4348         flag_tree_copyrename, flag_tree_dse): Declare.
4349         (f_options): Add tree-based-profiling, tree-gvn,
4350         tree-pre, tree-ccp, tree-dce,
4351         tree-dominator-opts, tree-copyrename, tree-dse,
4352         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4353         (wrapup_global_declarations): Don't output nested inlined functions.
4354         (general_init): Call init_tree_optimization_passes.
4355         (process_options): Sorry for -ftree-based-profiling plus
4356         -ftest-coverage or -fprofile-values.
4357         * toplev.h (init_tree_optimization_passes,
4358         flag_tree_based_profiling): Declare.
4359         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4360         * tree-alias-ander.c: New file.
4361         * tree-alias-ander.h: New file.
4362         * tree-alias-common.c: New file.
4363         * tree-alias-common.h: New file.
4364         * tree-alias-type.c: New file.
4365         * tree-alias-type.h: New file.
4366         * tree-browser.c: New file.
4367         * tree-browser.def: New file.
4368         * tree-cfg.c: New file.
4369         * tree-complex.c: New file.
4370         * tree-dfa.c: New file.
4371         * tree-dump.c (dump_enable_all): New.
4372         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4373         (dump_node): Remove const from field suffix and swtch.
4374         (dump_files): Add null entry, .generic, .nested, .vcg,
4375         .xml and a match-all entry.
4376         (extra_dump_files, extra_dump_files_in_use,
4377         extra_dump_files_alloced): Declare
4378         (dump_option_value_info): Add raw, details, stats,
4379         blocks, vops, lineno, uid and all.
4380         (dump_register): New.
4381         (get_dump_file_info): New.
4382         (dump_begin): Call it.
4383         Do nothing for TDI_none.
4384         (dump_begin): Include phase number in dump filename.
4385         (dump_enable_all): New.
4386         (dump_switch_p_1): Split out from dump_switch_p.
4387         (dump_switch_p): Handle extra_dump_files.
4388         Start our scan at TDI_none + 1.
4389         If -fdump-tree-all was given, call dump_enable_all.
4390         * tree-dump.h: Include splay-tree.h.
4391         (dump_function, dump_function_to_file, dump_register):
4392         Declare.
4393         * tree-eh.c: New file.
4394         * tree-flow-inline.h: New file.
4395         * tree-flow.h: New file.
4396         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4397         * tree-inline.h (walk_tree,
4398         walk_tree_without_duplicates): Move to tree.h.
4399         (estimate_num_insns): Declare.
4400         * tree-into-ssa.c: New file.
4401         * tree-iterator.c: New file.
4402         * tree-iterator.h: New file.
4403         * tree-mudflap.c: New file.
4404         * tree-mudflap.h: New file.
4405         * tree-nested.c: New file.
4406         * tree-nomudflap.c: New file.
4407         * tree-nrv.c: New file.
4408         * tree-optimize.c (dump_flags, vars_to_rename,
4409         in_gimple_form, all_passes, pass_gimple,
4410         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4411         (execute_gimple, execute_rebuild_bind,
4412         gate_all_optimizations, execute_del_cfg,
4413         register_one_dump_file, register_dump_files, dup_pass_1,
4414         init_tree_optimization_passes, execute_todo,
4415         execute_one_pass, execute_pass_list): New.
4416         (clear_decl_rtl): Remove.
4417         (tree_rest_of_compilation): Update to use tree
4418         optimizers.
4419         * tree-outof-ssa.c: New file.
4420         * tree-pass.h: New file.
4421         * tree-phinodes.c: New file.
4422         * tree-pretty-print.c: New file.
4423         * tree-profile.c: New file.
4424         * tree-simple.c: New file.
4425         * tree-simple.h: New file.
4426         * tree-sra.c: New file.
4427         * tree-ssa-alias.c: New file.
4428         * tree-ssa-ccp.c: New file.
4429         * tree-ssa-copy.c: New file.
4430         * tree-ssa-copyrename.c: New file.
4431         * tree-ssa-dce.c: New file.
4432         * tree-ssa-dom.c: New file.
4433         * tree-ssa-dse.c: New file.
4434         * tree-ssa-forwprop.c: New file.
4435         * tree-ssa-live.c: New file.
4436         * tree-ssa-live.h: New file.
4437         * tree-ssa-loop.c: New file.
4438         * tree-ssa-operands.c: New file.
4439         * tree-ssa-operands.h: New file.
4440         * tree-ssa-phiopt.c: New file.
4441         * tree-ssa-pre.c: New file.
4442         * tree-ssa.c: New file.
4443         * tree-ssanames.c: New file.
4444         * tree-tailcall.c: New file.
4445         * tree.c: Include tree-iterator.h, basic-block.h and
4446         tree-flow.h.
4447         (tree_node_kind): Add phi_nodes and ssa names.
4448         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4449         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4450         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4451         <'c'> Set TREE_INVARIANT.
4452         (copy_node_stat): Abort if trying to copy a
4453         STATEMENT_LIST.
4454         Clear TREE_VISITED.
4455         Clear annotation field.
4456         (build_constructor): Copy TREE_INVARIANT from vals.
4457         Don't clear TREE_CONSTANT.
4458         (expr_first, expr_last, expr_length): Remove.
4459         (staticp): Pass unknown component references to the language.
4460         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4461         (skip_simple_arithmetic): Likewise.
4462         (stabilize_reference_1): Likewise.
4463         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4464         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4465         STATEMENT_LIST.
4466         (lhd_unsave_expr_now): Remove.
4467         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4468         (recompute_tree_invarant_for_addr_expr): New.
4469         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4470         Call recompute_tree_invarant_for_addr_expr.
4471         Set TREE_INVARIANT accordingly.
4472         (build2_stat): Don't handle CALL_EXPR.
4473         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4474         (build_expr_wfl): Remove.
4475         (annotate_with_file_line, annotate_with_locus): New.
4476         (simple_cst_equal): Call simple_cst_list_equal to compare
4477         CONSTRUCTOR_ELTS pointers.
4478         (iterative_hash_expr): Don't hash types associated
4479         with conversions.  Instead hash on the signedness of the
4480         toplevel object and the operand of the conversion.
4481         (dump_tree_statistics): Call ssanames_print_statistics
4482         and phinodes_print_statistics.
4483         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4484         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4485         needs_to_live_in_memory): New.
4486         (initializer_zerop): Handle VECTOR_CST.  Don't check
4487         AGGREGATE_TYPE_P for CONSTRUCTOR.
4488         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4489         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4490         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4491         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4492         (CALL_EXPR): Add another operand.
4493         (EXPR_WITH_FILE_LOCATION): Remove.
4494         (SWITCH_EXPR): Add another operand.
4495         * tree.h: Update various comments.
4496         (union tree_ann_d): Forward declare.
4497         (struct tree_common): Add fields nowarning_flag,
4498         invariant_flag and visited.
4499         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4500         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4501         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4502         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4503         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4504         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4505         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4506         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4507         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4508         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4509         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4510         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4511         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4512         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4513         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4514         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4515         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4516         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4517         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4518         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4519         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4520         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4521         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4522         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4523         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4524         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4525         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4526         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4527         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4528         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4529         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4530         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4531         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4532         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4533         TDF_UID,): Define.
4534         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4535         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4536         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4537         EXPR_WFL_SET_LINECOL): Remove.
4538         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4539         make_phi_node, init_phinodes, fini_phinodes,
4540         release_phi_node, phinodes_print_statistics,
4541         init_ssanames, fini_ssanames, make_ssa_name,
4542         release_ssa_name, ssanames_print_statistics,
4543         annotate_with_file_line, build_empty_stmt,
4544         annotate_with_locus, expr_only, categorize_ctor_elements,
4545         count_type_elements, add_var_to_bind_expr, is_essa_node,
4546         expand_stack_alloc, expand_stack_save,
4547         expand_stack_restore, add_case_node, operand_equal_p,
4548         nondestructive_fold_unary_to_constant,
4549         nondestructive_fold_binary_to_constant,
4550         fold_read_from_constant_string, int_const_binop,
4551         strip_float_extensions, simplify_builtin, c_strlen,
4552         recompute_tree_invarant_for_addr_expr,
4553         needs_to_live_in_memory, make_vector,
4554         setjmp_vars_warning, update_alignment_for_field,
4555         expand_asm_expr, asm_op_is_mem_input,
4556         containing_blocks_have_cleanups_or_stack_level,
4557         create_artificial_label, gimplify_function_tree,
4558         get_name, unshare_expr, walk_tree,
4559         walk_tree_without_duplicates, in_gimple_form): Declare.
4560         (struct tree_exp): Add fields locus and block.
4561         (struct tree_ssa_name, struct edge_def, struct
4562         tree_phi_node, struct tree_eref_common, struct
4563         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4564         union alias_var_def, struct tree_statement_list_node,
4565         struct tree_statement_list, enum operand_equal_flag): Declare.
4566         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4567         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4568         TS_STATEMENT_LIST.
4569         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4570         euse and stmt_list.
4571         (function_cannot_inline_p, uninitialized_vars_warning,
4572         save_for_inline, output_inline_function, all_cases_count,
4573         check_for_full_enumeration_handling,
4574         declare_nonlocal_label): Remove.
4575         (enum tree_dump_index): Add TDI_none, TDI_tu,
4576         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4577         * unroll.c (unroll_loop): Don't clear map->inline_target.
4578         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4579         function.
4580         * value-prof.c (value_prof_hooks): New.
4581         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4582         Move rtl-specific bits in from branch_prob.
4583         (value_profile_transformations): Rename to
4584         rtl_value_profile_transformations.
4585         (struct value_prof_hooks): New.
4586         (rtl_value_prof_hooks): New.
4587         (rtl_register_value_prof_hooks): New.
4588         (tree_find_values_to_profile): New stub.
4589         (tree_value_profile_transformations): New stub.
4590         (tree_value_prof_hooks): New stub.
4591         (tree_register_value_prof_hooks): New stub.
4592         (find_values_to_profile): New.
4593         (value_profile_transformations): New.
4594         * value-prof.h: Add multiple inclusion guard.
4595         (struct histogram_value): Change rtx fields to void *.
4596         (rtl_register_value_prof_hooks): New declaration.
4597         (tree_register_value_prof_hooks): New declaration.
4598         (find_values_to_profile): New declaration.
4599         (free_profiled_values): New declaration.
4600         (value_profile_transformations): New declaration.
4601         (struct profile_hooks): New declaration.
4602         (init_branch_prob): Declaration moved from rtl.h.
4603         (branch_prob): Declaration moved from rtl.h.
4604         (end_branch_prob): Declaration mooved from rtl.h.
4605         (tree_register_profile_hooks): New declaration.
4606         (rtl_register_profile_hooks): New declaration.
4607         (tree_profile_hooks): New declaration.
4608         (rtl_profile_hooks): New declaration.
4609         * varasm.c: Include tree-mudflap.h.
4610         (TRAMPOLINE_ALIGNMENT): Remove.
4611         (make_decl_rtl): Call mudflap_enqueue_decl.
4612         (assemble_static_space):
4613         (assemble_trampoline_template): Set and return
4614         TRAMPOLINE_ALIGNMENT.
4615         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4616         Add entry for 'tree *'.
4617         Add entry for struct edge_def *.
4618         (varray_copy): New.
4619         * varray.h (enum varray_data_enum): Add
4620         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4621         VARRAY_DATA_TREE_PTR.
4622         (union varray_data_tag): Corresponding changes.
4623         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4624         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4625         VARRAY_EDGE, VARRAY_TREE_PTR,
4626         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4627         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4628         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4629
4630         * config/*/*: Various updates for changed macros, tree
4631         codes, etc.  Check ChangeLog.tree-ssa.
4632
4633         * doc/cfg.texi: New file.
4634         * doc/tree-ssa.texi: New file.
4635         * doc/c-tree.texi: Document new codes.
4636         * doc/gccint.texi: Include new files.
4637         * doc/install.texi: Document new features.
4638         * doc/invoke.texi: Document new switches.
4639         * doc/passes.texi: Document new passes.
4640         * doc/rtl.texi: Update changed RTL codes.
4641         * doc/sourcebuild.texi: Update build instructions.
4642         * doc/standards.texi: Document Fortran changes.
4643         * doc/tm.texi: Update.
4644
4645 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4646
4647         Replace several arrays with a struct of arrays.
4648         * combine.c (struct reg_stat): New.
4649         (init_reg_last_arrays): Renamed to...
4650         (init_reg_last): ...this.  Callers adjusted.
4651         (reg_stat): New.
4652         (combine_instructions): Allocate it and use it.
4653         (reg_last_death, reg_last_set, reg_last_set_value,
4654         reg_last_set_label, reg_last_set_table_tick,
4655         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4656         reg_last_set_mode, reg_last_set_nonzero_bits,
4657         reg_last_set_sign_bit_copies): Replace throughout
4658         with items of reg_stat.
4659
4660 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4661
4662         PR optimization/15100
4663         * combine.c (distribute_notes): Don't create a dangling
4664         REG_LIBCALL/REG_RETVAL note.
4665
4666 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4667
4668         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4669
4670         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4671         negv2si2.
4672
4673 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4674
4675         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4676
4677 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4678
4679         * doc/gty.texi (GTY Options): Clarify example.
4680
4681 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4682
4683         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4684         Add const qualifier to altivec vector type if one is needed.
4685
4686 2004-05-11  Paul Brook  <paul@codesourcery.com>
4687
4688         * flags.h (flag_short_enums): Update comment.
4689         * opts.c (decode_options): Set flag_short_enums to 2.
4690         * toplev.c (flag_short_enums): Update comment.
4691         (process_options): Call default_short_enums target hook.
4692
4693 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4694
4695         PR target/14063
4696         * config/rs6000/altivec.md (altivec_dssall):
4697         Change to unspec_volatile.
4698         (altivec_dss): Likewise.
4699
4700 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4701
4702         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4703         vnor.
4704         ("one_cmplv8hi2"): Same.
4705         ("one_cmplv4si2"): Same.
4706
4707 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4708
4709         PR target/15130
4710         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4711         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4712         into account.  Compute the correct number of general registers
4713         for the return value.  Generate a special push/pop sequence when
4714         failing to get a temporary register for non SHmedia epilogue.
4715         (sh_expand_epilogue): Add an argument to show whether it's for
4716         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4717         -1 if needed.
4718         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4719         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4720         with 1.
4721         (epilogue): Call sh_expand_epilogue with 0.
4722
4723 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4724
4725         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4726         goto a cleanup label.  After the cleanup, free the allocated memory.
4727
4728 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4729
4730         * config/rs6000/altivec.h (vec_sld): Add overloads for
4731         argument/return types of 'vector bool int', 'vector bool short'
4732         and 'vector bool char'.
4733
4734 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4735
4736         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4737         nested function.
4738
4739 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4740
4741         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4742         treating missing ones as "".
4743         * config/mips/mips.md: Remove constraints from match_operands and
4744         match_scratches if they appear in define_expands (except reload*),
4745         define_peephole2s, define_splits or attribute specifications.
4746         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4747         constraint strings.
4748
4749 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4750
4751         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4752         AltiVec vectors.
4753         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4754         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4755         byte boundary.  Remove useless code.  Add function comment.
4756         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4757         call to where it belongs.
4758         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4759         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4760         (rs6000_va_arg): Adjust for AltiVec change.
4761
4762 2004-05-10  Paul Brook  <paul@codesourcery.com>
4763
4764         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4765         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4766         (TARGET_DOUBLEWORD_ALIGN): Use it.
4767         (WCHAR_TYPE): Define.
4768         (WCHAR_SIZE_TYPE): Define.
4769         (SIZE_TYPE): Define.
4770
4771 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4772
4773         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4774         when size is 8 bytes.
4775         (function_arg_advance): Account for stack space used by AltiVec
4776         args when -mabi=altivec.  Simplify alignment calculations.  For
4777         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4778         (function_arg): Similarly.
4779         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4780         not AltiVec ABI.
4781         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4782         Correct alignment, and align before testing reg count.  Remove
4783         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4784         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4785         TARGET_FPRS here..
4786         (rs6000_function_value): .. not here before call.
4787
4788 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4789
4790         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4791
4792 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4793
4794         PR 15007
4795         * c-decl.c (current_file_decl): Rename to all_translation_units,
4796         adjust comment.
4797         (pop_scope): If popping file_scope, construct a
4798         TRANSLATION_UNIT_DECL and make it the context of all the
4799         symbols in the scope.
4800         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4801         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4802         anything to current_file_decl.
4803         (pushdecl_top_level): Likewise.
4804         (store_parm_decls_newstyle): Adjust check for nested function.
4805         (c_write_global_declarations): Update for renamed variable.
4806
4807 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4808
4809         * config/rs6000/rs6000-protos.h
4810         (rs6000_conditional_register_usage): Protoize.
4811
4812         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4813
4814         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4815         function.
4816
4817 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4818
4819         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4820         where op is a comparison operator and C1 and C2 are integer constants
4821         into a range check.
4822         (fold): Call fold_div_compare.
4823
4824 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4825
4826         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4827         problems with earlier versions of the GNU compiler.
4828
4829 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4830
4831         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4832         Declare.
4833
4834         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4835         (rs6000_hard_regno_mode_ok): New.
4836         (rs6000_init_hard_regno_mode_ok): New.
4837         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4838
4839         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4840         result.
4841
4842 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4843
4844         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4845         define as macros #ifdef __APPLE_ALTIVEC__.
4846
4847 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4848
4849         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4850         Generate appropriate parallels for vector arguments
4851         passed to vararg functions. (function_arg): make the call
4852         to rs6000_mixed_function_arg for vector args as needed.
4853
4854 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4855
4856         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4857         EABI_FLOAT_VARARGS_P.
4858
4859 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4860
4861         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4862         * config/mips/mips.c (override_options): Disable branch likely
4863         instructions if TUNE_MIPS5500.
4864
4865 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4866
4867         * config/mips/mips.c (override_options): Allow the hi and lo registers
4868         to store any integral mode, not just MODE_INTs.
4869
4870 2004-05-07  Paul Brook  <paul@codesourcery.com>
4871
4872         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4873         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4874         (TARGET_DOUBLEWORD_ALIGN): Use it.
4875         (WCHAR_TYPE): Define.
4876         (WCHAR_SIZE_TYPE): Define.
4877         (SIZE_TYPE): Define.
4878
4879 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4880
4881         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4882         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4883
4884 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4885
4886         * loop-doloop.c (doloop_valid_p): Make sure that body
4887         gets freed.
4888
4889 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4890
4891         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4892         declaration.
4893         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4894         (sparc_skip_caller_unimp): New global variable.
4895         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4896         Use it instead of SKIP_CALLERS_UNIMP_P.
4897         * config/sparc/sparc.md (call expander): Add sanity check.
4898         (call_address_struct_value_sp32): Re-sync with expander.
4899         (call_symbolic_struct_value_sp32): Likewise.
4900         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4901         of custom predicate.
4902
4903 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4904
4905         PR c++/14962
4906         * c-pragma.c (handle_pragma_redefine_extname): Only change
4907         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4908
4909 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4910
4911         * optabs.h (enum optab_index): Add new OTI_log1p.
4912         (log1p_optab): Define corresponding macro.
4913         * optabs.c (init_optabs): Initialize log1p_optab.
4914         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4915         patterns.
4916         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4917         using log1p_optab.
4918         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4919         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4920
4921         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4922
4923         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4924         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4925         Prototype here.
4926         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4927         x87's fyl2xp1 instruction.
4928         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4929         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4930         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4931         log1p  and log1pl built-ins as inline x87 intrinsics.
4932
4933 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4934
4935         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4936         * config/arm/freebsd.h: Likewise.
4937         * config/ia64/freebsd.h: Likewise.
4938         * config/sparc/freebsd.h: Likewise.
4939
4940 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4941
4942         PR optimization/15296
4943         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4944         getting last consecutive label at a branch.
4945         (relax_delay_slots): Similar, near top of loop.
4946
4947 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4948
4949         PR target/15202
4950         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4951         register to general register.
4952
4953 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4954
4955         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4956         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4957         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4958         (STACK_BOUNDARY): Delete.
4959
4960 2004-05-06  Stuart Hastings  <stuart@apple.com>
4961
4962         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4963         mistakenly clobbered by 1.423.
4964
4965 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4966
4967         * doc/invoke.texi: Document -mvr4130-align.
4968         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4969         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4970         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4971         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4972         * config/mips/mips.md: Include sched-int.h.
4973         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4974         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4975         (override_options): Enable -mvr4130-align at -O3 and above.
4976         (mips_sim_insn): New variable.
4977         (mips_sim): New structure.
4978         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4979         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4980         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4981         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4982         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4983         (mips_reorg): Call vr4130_align_insns.
4984         (vr4130_last_insn): New variable.
4985         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4986         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4987         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4988         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4989         (mips_use_dfa_pipeline_interface): Return true for the same.
4990         * config/mips/4130.md: New file.
4991         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4992         "mult;mflo" into "mtlo;macc".
4993         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4994         target of maccs.
4995         (*msac_using_macc): New pattern.
4996
4997 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4998
4999         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5000         (ir_vr55_hilo): Split into...
5001         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5002         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5003         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5004         Add various multiplication bypasses.
5005         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5006         multiplication.
5007
5008 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5009
5010         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5011         attribute to "XF".
5012
5013 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5014
5015         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5016         (fmod_optab, drem_optab): Define corresponding macros.
5017         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5018         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5019         using fmod?f3 and drem?f3 patterns.
5020         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5021         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5022         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5023         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5024         flag_unsafe_math_optimizations is set.
5025
5026         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5027         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5028
5029         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5030         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5031         Prototype here.
5032         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5033         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5034         fprem and fprem1 instructions.
5035         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5036         Rename insn definition to x86_fnstsw_1.
5037         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5038         x87 instructions.
5039         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5040         and fmodl built-ins as inline x87 intrinsics.
5041         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5042         and dreml built-ins as inline x87 intrinsics.
5043
5044 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5045
5046         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5047
5048 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5049
5050         PR driver/9822
5051         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5052
5053 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5054
5055         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5056         representation.
5057
5058 2004-05-06  Paul Brook  <paul@codesourcery.com>
5059
5060         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5061         (arm_coproc_mem_operand): ... To this.
5062         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5063         (arm_legitimate_index_p): Ditto.
5064         (vfp_mem_operand): Rename ...
5065         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5066         (vfp_secondary_reload_class): Use it.
5067         (output_move_double): Use doubleword load/store instructions.
5068         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5069         * config/arm/arm.h (TARGET_LDRD): Define.
5070         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5071         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5072         New splitter for invalid doubleword loads.
5073         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5074         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5075         * doc/md.texi: Document Uy constraint.
5076
5077 2004-05-05  Jan Hubicka  <jh@suse.cz>
5078
5079         PR opt/14980
5080         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5081         inline clones.
5082
5083 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5084
5085         PR target/15290
5086         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5087         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5088
5089 2004-05-05  Mike Stump  <mrs@apple.com>
5090
5091         * config/darwin-c.c (add_framework): Copy the directory name as it
5092         can be freed later.  Also, ensure we always allocate enough room
5093         for the cached framework information.
5094         (find_subframework_header): Keep track of the directory where the
5095         subframework header was found.
5096         (framework_construct_pathname): Speed up by not trying to re-add a
5097         framework.
5098         * cppfiles.c (search_path_exhausted): Arrange for the missing
5099         header callback to be able to set the directory where the header
5100         was found.
5101         (cpp_get_dir): Add.
5102         * cpplib.h (missing_header_cb): Add a parameter.
5103         (cpp_get_dir): Add.
5104
5105 2004-05-03  Mike Stump  <mrs@apple.com>
5106
5107         * doc/invoke.texi (Directory Options): Document -iquote.
5108         * doc/cpp.texi: Likewise.
5109         * doc/cppopts.texi: Likewise.
5110         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5111         (c_common_handle_option): Likewise.
5112         * c.opt (iquote): Add.
5113         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5114         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5115
5116         * c-opts.c (case OPT_I): Deprecate -I- support.
5117         * doc/invoke.texi: Likewise.
5118         * doc/cpp.texi: Likewise.
5119         * doc/cppopts.texi: Likewise.
5120
5121 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5122
5123         * basic-block.h (free_basic_block_vars): Update prototype.
5124         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5125         argument.
5126         (life_analysis): Update call.
5127         * ifcvt.c (if_convert): Likewise.
5128         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5129         * passes.c (rest_of_handle_final): Likewise.
5130         (rest_of_compilation): Likewise.
5131         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5132
5133         * emit-rtl.c (next_real_insn): Use INSN_P.
5134         (prev_real_insn): Likewise.
5135
5136 2004-05-05  Eric Christopher  <echristo@redhat.com>
5137
5138         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5139         representation.
5140
5141 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5142
5143         * config/rs6000/rs6000.c (build_opaque_vector_type):
5144         New function.
5145         (rs6000_init_builtins): Use it.
5146
5147 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5148
5149         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5150         (func_table): Change type from char ** to vms_func_ref.
5151         (write_rtnbeg):  Update to reflect func_table change.  Use
5152         fde->funcdef_number instead of rtnnum in output.
5153         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5154
5155 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5156             Richard Henderson  <rth@redhat.com>
5157
5158         PR target/14899
5159
5160         * c-common.c (vector_types_convertible_p): New function.
5161         * c-typeck.c (comptypes): Recurse on vector types.
5162         (convert_for_assignment): Use vector_types_convertible_p.
5163         (digest_init): Use vector_types_convertible_p to check
5164         validness of constant vector initializers; otherwise treat
5165         them as scalars.
5166         * tree.c (make_or_reuse_type): New.
5167         (build_common_tree_nodes): Use it.
5168         * cp/call.c (standard_conversion): Likewise.
5169         * cp/typeck.c (comptypes): Recurse on vector types.
5170         (convert_for_assignment): Use vector_types_convertible_p.
5171
5172 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5173
5174         * config/mips/mips.c (override_options): Default to no
5175         generation of branch-likely operations when tuning for
5176         CPUs where they tend to have a negative performance impact
5177         (e.g., SB-1).
5178
5179 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5180
5181         * expr.c (store_constructor_field): Don't call store_constructor
5182         if bitsize is not a multiple of a byte.
5183
5184 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5185
5186         * reload1.c (inherit_piecemeal_p): New function.
5187         (emit_reload_insns): When reloading a group of hard registers, use
5188         inherit_piecemeal_p to decide whether the values of individual hard
5189         registers can be inherited.
5190
5191 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5192
5193         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5194         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5195         * config/t-linux (LIB2ADDEHDEP): Likewise.
5196
5197 2004-05-04  Paul Brook  <paul@codesourcery.com>
5198
5199         * config/arm/crti.asm: Push an even number of registers.
5200         * config/arm/crtn.asm: And restore them.  Load via sp.
5201
5202 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5203
5204         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5205         Collect overhead information.
5206         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5207         parameter and pass it through.
5208         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5209         MEM_STAT_DECL parameter and pass it through.
5210         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5211         MEM_STAT_DECL parameter and pass it through.
5212
5213 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5214
5215         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5216
5217         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5218
5219         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5220         rs6000_hard_regno_nregs.
5221
5222 2004-05-03  Eric Christopher  <echristo@redhat.com>
5223
5224         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5225         prologue insn instead of setting up call.
5226         (s390_emit_epilogue): Ditto.
5227         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5228         (define_constants): Add numbers for above patterns.
5229
5230 2004-05-03  Eric Christopher  <echristo@redhat.com>
5231
5232         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5233         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5234         * config/s390/s390-protos.h: Prototype.
5235
5236 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5237
5238         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5239         assignment.
5240
5241 2004-05-03  Eric Christopher  <echristo@redhat.com>
5242
5243         * config/mips/mips.md: Fix branch length attribute definition.
5244
5245 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5246
5247         * config.gcc: Remove --enable-altivec support.
5248
5249         * config/rs6000/altivec-defs.h: Remove.
5250
5251 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5252
5253         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5254         * fixinc/fixincl.x: Regenerate.
5255
5256 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5257
5258         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5259         definition.
5260         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5261         float_truncate insn.
5262         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5263         (logb?f2): Reimplement expanders with float_truncate insn.
5264
5265 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5266
5267         PR 14718
5268         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5269         force_type_die for CONST_DECL.
5270
5271 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5272             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5273
5274         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5275         tm-dwarf2.h to tm_file.
5276         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5277         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5278         (ASM_DEBUG_SPEC): Delete.
5279
5280 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5281
5282         * optabs.h (enum optab_index): Add new OTI_expm1.
5283         (expm1_optab): Define corresponding macro.
5284         * optabs.c (init_optabs): Initialize expm1_optab.
5285         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5286         patterns.
5287         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5288         using expm1_optab.
5289         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5290         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5291
5292         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5293         to implement expm1, expm1f and expm1l built-ins as inline x87
5294         intrinsics.
5295
5296 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5297
5298         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5299         * config/frv/frv.md (*return_true, *return_false): New patterns.
5300
5301 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5302
5303         * rtl.h (PHI_NODE_P): Remove.
5304
5305 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5306
5307         PR middle-end/14988
5308         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5309         when passed -2 as 'align'.
5310         (put_var_into_stack): Use 'bool' as the type for the three local
5311         predicates.  Adjust calls to put_reg_into_stack.
5312         When passed a CONCAT, instruct put_reg_into_stack to use
5313         a consecutive stack slot for the second part.
5314         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5315         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5316         parameters.  Retrieve the register mode from 'reg'.
5317         When consecutive_p is true, instruct assign_stack_local_1 to use
5318         BITS_PER_UNIT alignment.
5319         (put_addressof_into_stack): Use 'bool' as the type for the two
5320         local predicates. Adjust call to put_reg_into_stack.
5321
5322 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5323
5324         * fold-const.c (fold_convert_const, fold): Add missing
5325         FIX_ROUND_EXPR case.
5326
5327 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5328
5329         * configure.ac (FLEX, BISON): Only use tools from the build tree
5330         if build equals host.
5331         * configure: Rebuilt.
5332
5333         * config/frv/frv-protos.h (frv_expand_epilogue,
5334         frv_expand_fdpic_call): Add bool argument.
5335         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5336         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5337         (frv_expand_epilogue): Use new argument to decide whether to emit
5338         return instruction or copy the return address to LR.
5339         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5340         sibcalls.
5341         (sibcall_operand): New.
5342         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5343         PLUS nor LABEL_REF.  Add sibcall_operand.
5344         * config/frv/frv.md (call, call_value): Pass false to
5345         frv_expand_fdpic_call.
5346         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5347         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5348         sibcall_value_internal, sibcall_value_fdpicdi): New.
5349         (return_unsigned_true, return_unsigned_false): New.
5350         (epilogue): Adjust call to frv_expand_epilogue.
5351         (sibcall_epilogue): New.
5352
5353         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5354         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5355         before redefining them.
5356
5357 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5358
5359         * builtins.c (fold_fixed_mathfn): New function.
5360         (fold_builtin_lround, fold_builtin): Use it.
5361
5362 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5363
5364         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5365         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5366
5367 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5368
5369         * config/cris/cris.h: Revert my "fix comment typos" patch.
5370
5371 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5372
5373         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5374
5375 2004-05-01  Falk Hueffner  <falk@debian.org>
5376
5377         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5378         builtin_insll): Disallow 0 as first input operand.
5379
5380 2004-05-01  Falk Hueffner  <falk@debian.org>
5381
5382         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5383
5384 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5385
5386         PR middle-end/15054
5387         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5388         on a TARGET_EXPR temp.
5389         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5390         TARGET_EXPR temp slots.
5391
5392 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5393
5394         * simplify-rtx.c (simplify_ternary_operation): When
5395         converting an IF_THEN_ELSE to a relational op, return
5396         correct mode.
5397
5398 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5399
5400         * builtins.c (fold_builtin_round): Fix comment typo.
5401         (fold_builtin_lround): New function.
5402         (fold_builtin): Use it.
5403
5404 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5405
5406         PR target/11608
5407         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5408         more like the one in config/dbxelf.h.
5409
5410 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5411
5412         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5413         and adjust definition accordingly.
5414         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5415         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5416         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5417         VECTOR_TYPE.
5418
5419 2004-04-30  Jason Merrill  <jason@redhat.com>
5420
5421         PR c++/14587
5422         * config/i386/winnt.c (associated_type): Look for attributes on
5423         the TYPE_MAIN_VARIANT of *this.
5424         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5425         apply the attributes to the variants.
5426
5427 2004-04-30  Paul Brook  <paul@codesourcery.com>
5428
5429         * config.gcc: Simplify arm --with-{cpu,tune} test.
5430         * config/arm/arm-cores.def: Document whitespace restrictions.
5431
5432 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5433
5434         PR other/1963
5435         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5436
5437 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5438             DJ Delorie  <dj@redhat.com>
5439
5440         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5441         (DWARF2_DEBUGGING_INFO): Define to enable.
5442         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5443         DWARF2.
5444         * configure.ac (Target-specific assembler checks)
5445         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5446         relocs.
5447         * configure: Regenerate.
5448         * config.in: Likewise.
5449
5450         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5451         (ASM_OUPUT_DWARF_OFFSET): Define.
5452
5453 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5454
5455         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5456         (s390_emit_call): New function prototype added.
5457         (s390_tls_get_offset): Function removed.
5458         * config/s390/s390.c (s390_function_ok_for_sibcall,
5459         s390_call_saved_register_used_p): New functions.
5460         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5461         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5462         (s390_emit_tls_call_insn): New function.
5463         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5464         emit_call_insn.
5465         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5466         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5467         added.
5468         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5469         register number used to hold the target address for sibcalls.
5470         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5471         New expanders.
5472         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5473         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5474         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5475         Expanders removed.
5476         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5477         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5478         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5479         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5480         new parameter.
5481
5482 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5483
5484         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5485         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5486         reg-stack.c, varasm.c, config/alpha/ev4.md,
5487         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5488         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5489         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5490         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5491         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5492         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5493         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5494         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5495         comment typos.
5496
5497 2004-04-30  Paul Brook  <paul@codesourcery.com>
5498
5499         * config.gcc: Default ep9312 to hard-float.
5500         * config/arm/arm-cores.def: Add ARCH field.
5501         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5502         (arm_arch_cirrus): New variable.
5503         (all_cores): Set and use arch.
5504         (all_architectures): Ditto.
5505         (arm_arch_name): New variable.
5506         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5507         Set and use arm_arch_cirrus.
5508         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5509         (enum processor_type): Update ARM_CORE define.
5510         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5511         (CPP_SPEC): Remove %(cpp_cpu_arch).
5512         (CPP_ARCH_DEFAULT_SPEC): Remove.
5513         (CPP_CPU_ARCH_SPEC): Remove.
5514         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5515         (FPUTYPE_DEFAULT): Don't define here.
5516
5517 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5518
5519         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5520         updates too.
5521
5522 2004-04-30  Paul Brook  <paul@codesourcery.com>
5523
5524         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5525
5526 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5527
5528         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5529         vec_sububs.
5530         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5531         duplicates.
5532
5533 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5534
5535         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5536         atan2?f3 expanders.
5537
5538 2004-04-29  Nick Clifton  <nickc@redhat.com>
5539
5540         Bug 14093
5541         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5542         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5543         Delete static from definition.
5544         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5545
5546 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5547
5548         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5549         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5550         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5551         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5552
5553 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5554
5555         * commom.opt (Wfatal-errors): Add it.
5556         * diagnostic.c (flag_fatal_errors): Define it.
5557         (diagnostic_action_after_output): Check for flag_fatal_errors.
5558         * flags.h (flag_fatal_errors): Declare it.
5559         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5560         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5561
5562 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5563
5564         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5565         blocks which have kill flag set.
5566
5567 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5568
5569         * configure.ac (--with-as): Abort if user-supplied assembler
5570         cannot be executed.
5571         (--with-ld): Likewise for the linker.
5572         * configure: Regenerate.
5573
5574 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5575
5576         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5577         isn't NULL before using it.
5578
5579 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5580
5581         PR target/15189
5582         * config/mips/mips.md (load_df_low): Use default length.
5583         (load_df_high, store_df_high): Likewise.
5584
5585 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5586
5587         * config/mips/mips.md, config/mips/sb1.md,
5588         config/rs6000/rs6000.c: Fix comment typos.
5589
5590 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5591
5592         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5593         Fix comment typos.
5594
5595 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5596
5597         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5598         (delete_if_ordinary): Use above macro.
5599         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5600         Update copyright.
5601         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5602
5603 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5604
5605         * c-decl.c (get_parm_info): Use the correct tag keywords when
5606         warning about type declarations in prototypes.
5607
5608 2004-04-29  Paul Brook  <paul@codesourcery.com>
5609
5610         * config.gcc: Pull list of cores from arm-cores.def.
5611
5612 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5613
5614         * combine.c (combine_simplify_rtx): Adjust call to use
5615         simplify_relational_operation.  Do not use SELECT_CC_MODE
5616         when a comparison already has a MODE_CC mode.
5617
5618 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5619
5620         (simplify_set): simplify_relational_operation may now
5621         return another relational expression.
5622         * cse.c (fold_rtx): simplify_relational_operation now
5623         takes of computing the comparison mode.
5624         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5625         remove dead code.
5626         (do_compare_rtx_and_jump): Likewise.
5627         * integrate.c (subst_constants): simplify_relational_operation
5628         may now return another relational expression.
5629         * simplify-rtx.c (simplify_gen_relational): Move most code to
5630         the new simplify_relational_operation and
5631         simplify_relational_operation_1 functions.
5632         (simplify_relational_operation): Rewritten.
5633         (simplify_relational_operation_1): New function.
5634         (simplify_ternary_operation): simplify_relational_operation
5635         may now return another relational expression.
5636         (simplify_rtx): Remove unnecessary temp variable.
5637
5638 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5639
5640         * reg-stack.c (swap_to_top): New function.
5641         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5642         swap_to_top().
5643         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5644         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5645         UNSPEC_FSCALE_EXP.
5646
5647         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5648         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5649         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5650         x87's fscale insn.
5651         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5652         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5653         patterns.
5654
5655 2004-04-28  Serge Belyshev  <1319@bot.ru>
5656
5657         PR 14944
5658         * coverage.c (read_counts_file): Fix usage of warning () call.
5659         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5660
5661 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5662
5663         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5664         options with "-" in the option index.
5665         (SPARC Options): Likewise.
5666         (M32R/D Options): Likewise.
5667
5668 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5669
5670         * convert.c (convert_to_integer): Convert (long)round -> lround,
5671         etc.
5672
5673 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5674
5675         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5676         Return false if we do not have fp register.
5677         (addrs_ok_for_quad_peep): Rename to ...
5678         (mems_ok_for_quad_peep): this.
5679         Add check for volatile memory.
5680         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5681         Rename to ...
5682         (mems_ok_for_quad_peep): this.
5683         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5684         to peephole2's.
5685         (lfq_power2): New instruction.
5686         (stfq_power2): Likewise.
5687
5688 2004-04-28  Jan Hubicka  <jh@suse.cz>
5689
5690         PR c/15004
5691         * function.c (do_warn_unused_parameter): Break out form ...
5692         (expand_function_end): ... here; warn only when not using cgraphunit.
5693         * function.h (do_warn_unused_parameter): Declare.
5694         * cgraphunit.c: Include function.h.
5695         (cgraph_finalize_function): Do unused parameter warning.
5696         * Makefile.in (cgraphunit.o): Depend on function.h
5697
5698 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5699
5700         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5701         calling install-info on $(DESTDIR)$(infodir)/dir already being
5702         present.
5703
5704 2004-04-28  Paul Brook  <paul@codesourcery.com>
5705
5706         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5707
5708 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5709
5710         * gcse.c (find_moveable_store): Do not accept store insns with
5711         REG_EH_REGION note.
5712
5713 2004-04-28  Paul Brook  <paul@codesourcery.com>
5714
5715         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5716         * function.c (assign_temp): Ditto.
5717         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5718
5719 2004-04-28  Paul Brook  <paul@codesourcery.com>
5720
5721         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5722
5723 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5724
5725         * var-tracking.c (variable_different_p): Add a parameter
5726         compare_current_location, compare current location of variable parts
5727         if it is true.
5728         (dataflow_set_different_1): Pass compare_current_location == false.
5729         (dataflow_set_different_2): Pass compare_current_location == false.
5730         (emit_notes_for_differences_1): Pass compare_current_location == true.
5731
5732 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5733
5734         * config/s390/s390.md ("casesi"): Mark jump table access as
5735         non-trapping and unchanging.
5736
5737 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5738
5739         PR debug/14829
5740         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5741         callers.
5742         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5743         number for indexing hard_regno_nregs array.
5744
5745 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5746
5747         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5748         * config/darwin-crt2.c: Only have contents on __ppc__.
5749
5750 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5751
5752         * config/xtensa/xtensa.c (call_insn_operand): Check
5753         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5754         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5755         * config/xtensa/xtensa.md (call, call_value): Likewise.
5756
5757 2004-04-27  Wu Yongwei  <adah@sh163.net>
5758
5759         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5760         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5761         (__gthread_mutex_init_function): Replace CreateMutex with
5762         initialization of custom mutex using CreateSemaphore.
5763         (__gthread_mutex_lock): Use InterlockedIncrement.
5764         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5765         (__gthread_mutex_unlock): Use InterlockedDecrement and
5766         ReleaseSemaphore to unlock
5767         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5768         __gthread_mutex_lock, __gthread_mutex_trylock,
5769         __gthread_mutex_unlock): Adjust to match inline versions in
5770         gthr-win32.h.
5771
5772 2004-04-27  Paul Brook  <paul@codesourcery.com>
5773
5774         * config/arm/arm.c (arm_promote_prototypes): New function.
5775         (TARGET_PROMOTE_PROTOTYPES): Use it.
5776
5777 2004-04-27  Paul Brook  <paul@codesourcery.com>
5778
5779         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5780
5781 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5782
5783         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5784         correctly output .pdesc directive before .end.
5785
5786 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5787
5788         Bug 14927
5789         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5790         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5791
5792 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5793
5794         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5795         * config/pa/pa-hpux10.h: Likewise.
5796         * config/pa/pa-hpux11.h: Likewise.
5797
5798 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5799
5800         * doc/invoke.texi (Overall Options): Document default for -o
5801         for PCH files.
5802
5803 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5804
5805         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5806         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5807         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5808
5809 2004-04-26  Paul Brook  <paul@codesourcery.com>
5810
5811         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5812
5813 2004-04-26  Paul Brook  <paul@codesourcery.com>
5814
5815         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5816
5817 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5818
5819         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5820         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5821         X % -1 as 0.
5822
5823 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5824
5825         PR bootstrap/15141
5826         * except.c (connect_post_landing_pads): Delete insns after the
5827         barrier when generating a unwind_resume_libfunc call.
5828
5829 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5830
5831         PR/c++ 15119
5832         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5833         for TARGET_EXPR.
5834
5835 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5836
5837         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5838         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5839         inhibit_libc is defined.
5840
5841 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5842
5843         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5844         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5845         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5846         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5847         (mips_adjust_cost): Move later in file, next to other sched hooks.
5848         (mips_macc_chains_last_hilo): New variable.
5849         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5850         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5851         * config/mips/mips.md (may_clobber_hilo): New attribute.
5852
5853 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5854             Bruce Korb  <bkorb@gnu.org>
5855
5856         * fixinc/inclhack.def (aix_syswait_2): New fix.
5857         * fixinc/fixincl.x: Regenerate.
5858         * fixinc/tests/base/sys/wait.h: Update for new test.
5859
5860 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5861
5862         PR target/14960
5863         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5864         to non_fixed_size, and leave out fixed_size from the sum.
5865         (generate_set_vrsave): Correct clobbers.
5866         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5867         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5868         (rs6000_libcall_value): Likewise.
5869         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5870         (FUNCTION_ARG_REGNO_P): Likewise.
5871
5872 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5873
5874         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5875         is a CONST_INT.
5876         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5877         with NARROW_OP1 instead of OP1.
5878
5879 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5880
5881         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5882         and __s390x__ hosts.
5883
5884 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5885
5886         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5887         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5888         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5889         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5890         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5891         * builtins.c (expand_builtin_fork_or_exec): New.
5892         (expand_builtin): Call it.
5893         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5894         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5895         * c-common.c (PID_TYPE): New macro.
5896         (c_common_nodes_and_builtins): Initialize pid_type_node.
5897         * calls.c (special_function_p): Do not handle fork and exec.
5898         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5899         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5900         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5901         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5902         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5903         * tree.h (enum tree_index): Add TI_PID_TYPE.
5904         (pid_type_node): New macro.
5905         (ECF_FORK_OR_EXEC): Removed.
5906
5907 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5908
5909         PR optimization/13985
5910         * cfgloopmanip.c (fix_loop_placements): New prototype.
5911         Call fix_bb_placements on the preheader of loops that have
5912         been reparented.
5913         (remove_path): Adjust call to fix_loop_placements.
5914
5915 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5916
5917         * config/darwin7.h: New file.
5918         * config.gcc (*-*-darwin*): Add darwin7.h if the
5919         version is greater than 6.
5920         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5921         (MATH_LIBRARY): Wrap in ifdefs.
5922
5923 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5924
5925         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5926         loading iWMMXt registers with a frame pointer.  Use post-increment
5927         without a frame pointer.
5928         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5929
5930 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5931
5932         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5933         mode" rather than "-funit-at-a-time" since -O2 enables it
5934         without requiring -f* options.  Refer to -fprofile-generate and
5935         -fprofile-use correctly.  Move -funit-at-a-time among options
5936         enabled by -O.  Add information about unit-at-a-time caveats.
5937
5938 2004-04-22  Per Bothner  <per@bothner.com>
5939
5940         * line-map.h (struct line_maps):  New field highest_line.
5941         (linemap_position_for_column):  Make non-inline function.
5942         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5943         * line-map.c (linemap_init):  Clear highest_line field.
5944         (linemap_add):  Set highest_line field.
5945         (linemap_line_start):  Minor optimization - use highest_line field.
5946         Reduce maximum column hint to 10000.  Update highest_line field.
5947         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5948         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5949         line_table->highest_line.
5950         (saved_line):  Remove unused field.
5951         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5952         Use  line_table's highest_line field instead of cpp_reader's line.
5953         * cpplib.c (start_directive):  Likewise use highest_line field.
5954         (do_line, do_linemarker):  Likewise just use newest map.
5955         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5956         * cpperror.c (cpp_error):  Likewise use highest_line field.
5957         * cppfiles.c (open_file_failed:  Likewise.
5958         (cpp_make_system_header):  Likewise use newest map and highest_line.
5959         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5960         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5961         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5962         _cpp_lex_direct):  Likewise use highest_line.
5963         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5964         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5965         and use newest map.
5966         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5967         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5968         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5969
5970 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5971
5972         PR bootstrap/14992
5973         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5974         * config/linux.h (USE_LD_AS_NEEDED): Define.
5975         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5976         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5977         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5978         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5979         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5980         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5981         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5982
5983 2004-04-22  Per Bothner  <per@bothner.com>
5984
5985         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5986         Fixes PR preprocessor/15067.
5987
5988 2004-04-23  Andreas Schwab  <schwab@suse.de>
5989
5990         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5991         avoid aliasing warning.
5992
5993 2004-04-22  Jan Hubicka  <jh@suse.cz>
5994             Mostafa Hagog <mustafa@il.ibm.com>
5995
5996       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5997       * cfgloopanal.c (expected_loop_iterations): Change the return value
5998
5999 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6000
6001         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6002         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6003         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6004         traces.
6005
6006 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6007
6008         Revert
6009         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6010
6011                 * var-tracking.c (variable_part_different_p): Variable parts
6012                 differ when the most recent locations differ.
6013
6014 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6015
6016         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6017         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6018         (embedded_pic_offset): Delete.
6019         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6020         MASK_* constants.
6021         (TARGET_EMBEDDED_PIC): Delete.
6022         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6023         (ASM_SPEC): Remove -membedded-pic.
6024         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6025         (ASM_OUTPUT_CASE_LABEL): Likewise.
6026         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6027         * config/mips/windiss.h (ASM_SPEC): Likewise.
6028         * config/mips/mips.c (struct machine_function): Remove
6029         embedded_pic_fnaddr_rtx.
6030         (TARGET_ENCODE_SECTION_INFO): Remove override.
6031         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6032         (override_options): Remove -membedded-pic handling.
6033         (print_operand): Remove handling of '%S'.
6034         (mips_select_section: Remove -membedded-pic handling.
6035         (mips_encode_section_info): Delete.
6036         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6037         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6038         -membedded-pic handling.
6039         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6040
6041 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6042
6043         * var-tracking.c (frame_base_decl): Remove useless GTY.
6044
6045 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6046
6047         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6048         user wants altivec and e500 instructions.
6049
6050 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6051
6052         PR target/14813
6053         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6054         in .init_array section to ...
6055         * config/ia64/crtbegin.asm: Here.
6056
6057         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6058         and hidden if HAVE_INITFINI_ARRAY is defined.
6059
6060 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6061
6062         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6063         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6064         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6065         (fp_register_operand, lo_operand): New.
6066         (mips_rtx_costs): Add TUNE_SB1 support.
6067         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6068         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6069         (mips_multipass_dfa_lookahead): New.
6070         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6071         TUNE_SB1): New.
6072         (TARGET_SWITCHES): Add -mfp-exceptions support.
6073         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6074         (BRANCH_COST): Fix whitespace.
6075         * config/mips/mips.md: Include sb1.md.
6076         * config/mips/sb1.md: New file.
6077         * doc/invoke.texi: Document -mfp-exceptions.
6078
6079         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6080         comment.
6081         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6082         (fixincl.o-warn): Delete.
6083
6084 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6085
6086         * config/rs6000/rs6000 (print_operand) ['z']:
6087         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6088
6089 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6090
6091         * config.gcc: Support --with-arch=iwmmxt for ARM.
6092
6093 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6094
6095         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6096         in two more places; remove unneeded force_reg
6097
6098 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6099
6100         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6101         for TARGET_MACHO.
6102         (print_operand): For TARGET_MACHO check to see if we need a stub
6103         and output one if we need it.
6104
6105         PR debug/15033
6106         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6107         rtl.
6108
6109 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6110
6111         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6112         (vall_value_gp): Likewise.
6113
6114 2004-04-20  DJ Delorie  <dj@redhat.com>
6115
6116         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6117         variables stored in word registers, then in memory.
6118
6119 2004-04-20  Eric Christopher  <echristo@redhat.com>
6120
6121         * cp/parser.c (cp_parser_declaration): Move translate
6122         up before tokens are lexed.
6123
6124 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6125
6126         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6127         (asin_optab, acos_optab): Define corresponding macros.
6128         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6129         * genopinit.c (optabs): Implement asin_optab and acos_optab
6130         using asin?f2 and acos?f2 patterns.
6131         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6132         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6133         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6134         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6135
6136         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6137         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6138         acos, acosf and acosl built-ins as inline x87 intrinsics.
6139
6140 2004-04-20  Paul Brook  <paul@codesourcery.com>
6141
6142         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6143
6144 2004-04-20  Paul Brook  <paul@codesourcery.com>
6145
6146         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6147
6148 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6149
6150         Revert part of 2004-04-17 change that moved -frename-registers
6151         to -O1.  -frename-registers is buggy.
6152
6153         * toplev.c (flag_rename_registers): Initialize to 0.
6154         * doc/invoke.texi (Optimize options): Move -frename-registers
6155         to "Not triggered by any -O level" section.  Adjust commentary
6156         accordingly.
6157
6158 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6159
6160         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6161
6162 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6163
6164         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6165         for mflo and mfhi instructions.
6166         (mips_output_move): Remove mflo and mfhi handling.
6167         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6168         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6169         Likewise various define_peephole2s.
6170         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6171         alternatives.
6172         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6173         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6174         (mfhilo_di, mfhilo_si): New patterns.
6175
6176 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6177
6178         * function.c (assign_parms): Force
6179         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6180
6181 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6182
6183         * var-tracking.c (variable_part_different_p): Variable parts differ
6184         when the most recent locations differ.
6185
6186 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6187
6188         * rtl.h (reg_set_last): Delete declaration.
6189         * rtlanal.c (reg_set_last): Delete.
6190
6191 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6192
6193         * fold-const.c (fold_convert): Make function extern/public.
6194         * tree.h (fold_convert): Prototype here.
6195         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6196         expand_builtin_strrchr, expand_builtin_strpbrk,
6197         expand_builtin_mempcpy, expand_builtin_bcopy,
6198         expand_builtin_bzero, expand_builtin_memcmp,
6199         expand_builtin_strcmp, expand_builtin_strncmp,
6200         stabilize_va_list, expand_builtin_sprintf,
6201         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6202         fold_builtin_exponent, fold_builtin_mempcpy,
6203         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6204         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6205         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6206
6207 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6208
6209         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6210         (move_from_CR_gt_bit): New.
6211         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6212         E500.
6213         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6214         E500.
6215
6216         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6217         (tstsfeq_gpr): Same.
6218         (cmpsfgt_gpr): Same.
6219         (tstsfgt_gpr): Same.
6220         (cmpsflt_gpr): Same.
6221         (tstsflt_gpr): Same.
6222         (e500_cceq_ior_compare): New.
6223         (e500_flip_gt_bit): New.
6224
6225         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6226         (print_operand): Add 'c' and 'D'.
6227         (rs6000_generate_compare): Rewrite to generate correct rtl.
6228         (rs6000_emit_sCOND): Handle E500.
6229         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6230         (output_e500_flip_gt_bit): New.
6231
6232         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6233         Protoize.
6234
6235 2004-04-19  Eric Christopher  <echristo@redhat.com>
6236
6237         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6238
6239 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6240
6241         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6242         fix information.
6243
6244 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6245
6246         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6247         download URL.
6248
6249 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6250
6251         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6252         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6253
6254 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6255
6256         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6257         (fold_builtin): Update caller to match.
6258
6259         PR bootstrap/15009
6260         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6261
6262         PR bootstrap/14999
6263         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6264
6265 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6266
6267         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6268
6269         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6270         (expand_mult_highpart_optab): Likewise.
6271         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6272
6273 2004-04-19  Paul Brook  <paul@codesourcery.com>
6274
6275         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6276         floatunssisf2, floatunssidf2): New patterns.
6277
6278 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6279
6280         PR other/14918
6281         * doc/invoke.texi (-fprofile-generate): Document requirement to
6282         use -fprofile-generate when linking.
6283
6284         * doc/extend.texi (Strong Using): Warn users against using this
6285         feature.
6286
6287 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6288
6289         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6290         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6291         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6292         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6293         constant.  Propogate change throughout file.
6294         (struct machine_function): Remove insns_len.
6295         (mips_string_length, mips16_strings, string_constants): Delete.
6296         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6297         when generating mips16 code.  Remove special mips16 treatment of
6298         string constants.
6299         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6300         to have the form LABEL+CONSTANT.
6301         (mips_symbolic_address_p): Fix comment.
6302         (m16_usym8_4, m16_usym5_4): Delete.
6303         (mips_output_function_epilogue): Remove mips16 string handling.
6304         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6305         (mips_select_section, mips_encode_section_info): Remove mips16
6306         string handling.
6307         (struct mips16_constant_pool): New.
6308         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6309         sorted into order of ascending mode size.  Keep track of the highest
6310         possible start address, taking padding and the masking of the base PC
6311         value into account.
6312         (dump_constants_1): New function, split out from dump_constants.
6313         Handle vector constants.  Use gen_consttable_{int,float} rather than
6314         separate functions for each mode.
6315         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6316         rather than separate functions for each alignment.
6317         (mips_find_symbol): Delete.
6318         (mips16_insn_length): New function, split out from
6319         mips16_lay_out_constants.
6320         (mips16_rewrite_pool_refs): New function.
6321         (mips16_lay_out_constants): Rework. Remove string handling.
6322         Always create an inline constant pool.
6323         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6324         (UNSPEC_ALIGN): New constants.
6325         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6326         (UNSPEC_ALIGN_[248]): Delete.
6327         (consttable_int, consttable_float, align): New patterns.
6328         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6329
6330 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6331
6332         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6333         __unn_args_eq.
6334
6335 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6336
6337         PR target/14715
6338         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6339         with STARTING_FRAME_OFFSET.
6340
6341 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6342
6343         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6344         * config/mips/mips.c (macc_msac_operand): New function.
6345         * config/mips/mips.md (*msac): Move after *macc.
6346         (*msac2): New.  Generalize macc-related peepholes so that they apply
6347         to msac too.
6348
6349 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6350
6351         * opts.c (decode_options): Do not enable flag_rename_registers
6352         and flag_web at -O3.
6353         * toplev.c (flag_rename_registers): Initialize
6354         flag_rename_registers and flag_web to
6355         AUTODETECT_FLAG_VAR_TRACKING.
6356         (default_debug_hooks): New global.
6357         (process_options): Initialize default_debug_hooks.  Warn if
6358         -fvar-tracking specified but not supported by the current
6359         debug format.  Do not run var tracking at -O0 or if not
6360         supported by the current debug format, even if
6361         -fvar-tracking was given.  If -fno-rename-registers
6362         is not specified, always run register renaming if var
6363         tracking is supported by the default debugging information
6364         format for the target, and we are at -O1 or higher; similarly
6365         for -fweb, but only at -O2 or higher.
6366         * doc/invoke.texi (Optimize Options): Document this.
6367
6368 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6369
6370         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6371         * configure: Regenerate.
6372
6373 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6374
6375         * gcc.c (used_arg): Check whether an option has been removed.
6376
6377 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6378
6379         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6380         debugging on Solaris 7 and up.
6381
6382 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6383
6384         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6385         IRIX 5 port.
6386         Remove -save-temps workaround, handled automatically.
6387         Require GNU binutils 2.15 for debugging.
6388         Remove SGI make warnings since GNU make is now required.
6389         (Specific, mips-sgi-irix6): Some markup fixes.
6390         Describe MIPSpro C problems and workarounds.
6391         Mention working O32 ABI support.
6392         Recommend GNU as 2.15 for O32 with debugging.
6393         Remove description of fixed structure pass/return bug.
6394
6395 2004-04-16  DJ Delorie  <dj@redhat.com>
6396
6397         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6398         TYPE_FIELDS.
6399         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6400
6401 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6402
6403         * pa.md: Remove unnecessary declarations for asm_out_file.
6404
6405         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6406         SAR register.  Fix comment.
6407         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6408         (%cr11).
6409
6410         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6411
6412 2004-04-16  Nick Clifton  <nickc@redhat.com>
6413
6414         * config/arm/arm.c (arm_override_options): Revert previous patch.
6415         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6416         be safely built.
6417
6418 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6419
6420         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6421         bug.
6422         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6423         TARGET_DEFAULT): Changed. Ditto.
6424         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6425         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6426         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6427         (TARGET_ENDIAN_DEFAULT): Added.
6428
6429 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6430
6431         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6432         ATTR_CONST_NOTHROW_LIST.
6433
6434 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6435
6436         PR/middle-end 14915
6437         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6438         BITS_BIG_ENDIAN.
6439
6440 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6441
6442         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6443
6444 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6445
6446         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6447
6448 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6449
6450         * libada-mk.in: New file.
6451         * configure.ac: Create libada-mk from libada-mk.in.
6452         * configure: Regenerate.
6453
6454 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6455
6456         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6457         (logb_optab, ilogb_optab): Define corresponding macros.
6458         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6459         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6460         using logb?f2 and ilogb?i2 patterns.
6461         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6462         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6463         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6464         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6465
6466         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6467         and UNSPEC_XTRACT_EXP.
6468
6469         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6470         patterns to implement fxtract x87 instruction.
6471         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6472         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6473         intrinsics.
6474         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6475         x87's fxtract insn.
6476
6477 2004-04-14  Eric Christopher  <echristo@redhat.com>
6478
6479         * config/mips/t-elf: Enable multilibs by default.
6480
6481 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6482
6483         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6484         previous fix to check HAVE_return at runtime too.
6485
6486 2004-04-14  Nick Clifton  <nickc@redhat.com>
6487
6488         * config/arm/arm.c (arm_override_options): If the user has not
6489         specified an ABI, then default to AAPCS for the iWMMXt processor.
6490         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6491         * config/arm/t-xscale-coff: Likewise.
6492
6493 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6494
6495         * builtins.c (fold_builtin_isdigit): New.
6496         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6497         * defaults.h: Add TARGET_DIGIT0 and sort.
6498         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6499
6500 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6501
6502         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6503         `mathfn_built_in' to determine the new builtin.
6504         * fold-const.c (fold): Likewise.
6505
6506 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6507
6508         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6509         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6510         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6511         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6512         (ASM_SPEC): Update accordingly.
6513         * config/mips/mips.c: Update after above renaming.
6514         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6515         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6516
6517 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6518
6519         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6520         increment errorcount and return false instead of true.
6521
6522 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6523
6524         * optabs.c (expand_twoval_unop): Reorder function arguments.
6525         * builtins.c (expand_builtin_mathfn_3): Update calls to
6526         expand_twoval_unop.
6527
6528         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6529         and UNSPEC_TAN_TAN. Add missing comment.
6530
6531         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6532         patterns to implement fptan x87 instruction.
6533         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6534         and tanl built-ins as inline x87 intrinsics. Define corresponding
6535         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6536         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6537         x87's fptan insn.
6538
6539 2004-03-13  Richard Henderson  <rth@redhat.com>
6540
6541         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6542         for LABEL_REFs.
6543
6544         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6545         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6546         * doc/invoke.texi: Update to match.
6547
6548         * varasm.c (unlikely_text_section): Use assemble_align instead of
6549         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6550         correct alignment argument.
6551
6552 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6553
6554         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6555         after setting reg_last_reload_reg for optional output reloads.
6556
6557 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6558
6559         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6560         Definition of these two macros are corrected by adding
6561         matchine right paren.
6562
6563 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6564
6565         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6566
6567 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6568
6569         * config/i386/i386.c (output_387_reg_move): New function.
6570         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6571         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6572         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6573         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6574         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6575
6576 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6577
6578         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6579         TYPE_DECL.
6580         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6581         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6582         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6583         Use skip_simple_arithmetic to find SAVE_EXPR.
6584         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6585         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6586         Properly chain multiple pointers.
6587         (copy_tree_r): Copy a TYPE_DECL.
6588         * tree.c (variably_modified_type_p): Add some missing tests and
6589         make some other minor changes.
6590         * tree.h (force_type_save_exprs): New declaration.
6591
6592 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6593
6594         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6595         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6596         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6597         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6598         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6599         x%-1 into 0 (or x&0 if x has side-effects).
6600
6601 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6602
6603         * config/rs6000/rs6000.md: Document why a pattern is not
6604         available.
6605
6606         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6607         of floats on the E500.
6608         (branch_positive_comparison_operator): Do not allow NE even on the
6609         E500.
6610
6611 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6612
6613         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6614         in_text_unlikely_section to in_unlikely_text_section.
6615
6616 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6617
6618         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6619         calling convention to allow a NULL_TREE to be returned.  Factor
6620         sanity checks from callers, return NULL_TREE when appropriate.
6621         (fold): Handle COMPOUND_EXPR operands of binary expressions
6622         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6623         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6624         calls to fold_binary_op_with_conditional_arg.
6625
6626 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6627
6628         * config/mips/iris5.h (current_section_flags):  Add
6629         in_unlikely_executed_text and default case.
6630
6631 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6632
6633         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6634         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6635         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6636         HAVE_return and place it around the place where it is needed.
6637
6638 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6639
6640         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6641         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6642         and NORMAL_TEXT_SECTION_NAME.
6643         (unlikely_text_section): Check targetm.have_named_sections
6644         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6645         instead of SECTION_FORMAT_STRING.
6646         * config/mips/iris5.h (current_section_name): Add
6647         in_unlikely_executed_text case and move the abort into the switch.
6648         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6649         (NORMAL_TEXT_SECTION_NAME): Remove.
6650         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6651         (SECTION_FORMAT_STRING): Remove.
6652         * defaults.h (SECTION_FORMAT_STRING): Remove.
6653         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6654         (SECTION_FORMAT_STRING): Remove.
6655
6656 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6657
6658         * c-typeck.c (common_type): Prefer long long to long when same
6659         precision.
6660
6661 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6662
6663         PR 14887
6664         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6665         mode argument.
6666         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6667         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6668
6669 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6670
6671         * simplify-rtx.c (mode_signbit_p): New function to check whether
6672         an RTX is an immediate constant that represents the most significant
6673         bit of a given machine mode.
6674         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6675         C is the sign bit.
6676         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6677         when C2 is the sign bit.
6678         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6679         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6680         sign bit.
6681
6682 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6683
6684         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6685         TYPE_MODE.
6686
6687 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6688
6689         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6690         of TREE_READONLY for types.
6691
6692 2004-04-09  Caroline Tice  <ctice@apple.com>
6693
6694         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6695         (struct basic_block_def):  Add new field, partition.
6696         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6697         definitions.
6698         (partition_hot_cold_basic_blocks): Add extern function
6699         declaration.
6700         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6701         include statements.
6702         (N_ROUNDS): Increase the maximum number of rounds by 1.
6703         (branch_threshold): Add array value for new round.
6704         (exec_threshold): Add array value for new round.
6705         (push_to_next_round_p): New function.
6706         (add_unlikely_executed_notes): New function.
6707         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6708         (mark_bb_for_unlikely_executed_section): New function.
6709         (add_labels_and_missing_jumps): New function.
6710         (add_reg_crossing_jump_notes): New function.
6711         (fix_up_fall_thru_edges): New function.
6712         (find_jump_block): New function.
6713         (fix_crossing_conditional_branches): New function.
6714         (fix_crossing_unconditional_branches): New function.
6715         (fix_edges_for_rarely_executed_code): New function.
6716         (partition_hot_cold_basic_blocks): New function.
6717         (find_traces):  Add an extra round for partitioning hot/cold
6718         basic blocks.
6719         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6720         and only cold blocks, into the last (extra) round of collecting traces.
6721         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6722         over crossing edges.
6723         (bb_to_key):  Add code to correctly identify cold blocks when
6724         doing partitioning.
6725         (connect_traces): Modify to connect all the non-cold traces first, then
6726         go back and connect up all the cold traces.
6727         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6728         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6729         entry and exit blocks.
6730         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6731         if we are doing hot/cold partitioning.
6732         * cfgcleanup.c (cfglayout.h): Add new include statement.
6733         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6734         that cross section boundaries.
6735         (try_forward_edges): Likewise.
6736         (merge_blocks_move_predecessor_nojumps): Likewise.
6737         (merge_blocks_move_successor_nojumps): Likewise.
6738         (merge_blocks_move): Likewise.
6739         (try_crossjump_to_edge): Modify to not attempt after we have done
6740         the block partitioning.
6741         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6742         cross section boundaries.
6743         (try_optimize_cfg): Likewise.
6744         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6745         jumps that cross section boundaries.
6746         * cfglayout.c (flags.h): Add new include statement.
6747         (update_unlikely_executed_notes):  New function.
6748         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6749         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6750         updated appropriately.
6751         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6752         introduced by this optimization.
6753         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6754         extern function declaration.
6755         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6756         list of notes that can be deleted.
6757         (create_basic_block_structure):  Add initialization for partition field.
6758         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6759         section boundaries.
6760         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6761         cross section boundaries.
6762         (commit_one_edge_insertion): Add code so newly created basic block
6763         ends up in correct (hot or cold) section.  Modify to disallow
6764         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6765         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6766         crosses section boundaries.
6767         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6768         cross section boundaries.
6769         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6770         ends up in correct section, with correct notes attached.
6771         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6772         optimization.
6773         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6774         the end of functions are written into the correct (hot or cold)
6775         section.
6776         (dbx_source_file): Add code so writing debug file information
6777         doesn't incorrectly change sections.
6778         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6779         in partitioning hot/cold basic blocks into separate sections.
6780         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6781         section partitioning.
6782         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6783         conditional branches can span all of memory.
6784         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6785         unconditional branches can span all of memory.
6786         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6787         (final_scan_insn):  Add code to check for NOTE instruction indicating
6788         whether basic block belongs in hot or cold section, and to make sure
6789         the current basic block is being written to the appropriate section.
6790         Also added code to ensure that jump table basic blocks end up in the
6791         correct section.
6792         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6793         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6794         one of the branches has a jump that crosses between sections.
6795         (find_if_case_2): Likewise.
6796         (ifcvt): Modify to not attempt to mark loop exit edges after
6797         hot/cold partitioning has occurred.
6798         * opts.c (decode_options): Code to handle new flag,
6799         flag_reorder_blocks_and_partition; also to turn it off if
6800         flag_exceptions is on.
6801         (common_handle_option): Code to handle new flag,
6802         flag_reorder_blocks_and_partition.
6803         * output.h (unlikely_text_section): New extern function declaration.
6804         (in_unlikely_text_section): New extern function declaration.
6805         * passes.c (rest_of_handle_stack_regs):  Add
6806         flag_reorder_blocks_and_partition as an 'or' condition for calling
6807         reorder_basic_blocks.
6808         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6809         as an 'or' condition for calling reorder_basic_blocks.
6810         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6811         * print-rtl.c (print_rtx): Add code for handling new note,
6812         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6813         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6814         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6815         cross between section boundaries.
6816         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6817         indicating the basic block containing it belongs in the cold section.
6818         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6819         between hot and cold sections.
6820         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6821         initialize this flag, and to tie it to the command-line option
6822         freorder-blocks-and-partition.
6823         * varasm.c (cfglayout.h):  Add new include statement.
6824         (unlikely_section_label_printed):  New global variable, used for
6825         determining when to output section name labels for cold sections.
6826         (in_section):  Add in_unlikely_executed_text to enum data structure.
6827         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6828         NORMAL_TEXT_SECTION_NAME macros.
6829         (unlikely_text_section):  New function.
6830         (in_unlikely_text_section):  New function.
6831         (function_section):  Add code to make sure beginning of function is
6832         written into correct section (hot or cold).
6833         (assemble_start_function):  Add code to make sure stuff is written to
6834         the correct section.
6835         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6836         to an if statement that was checking 'in_text_section'.
6837         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6838         condition to an if statement that was checking 'in_text_section'.
6839         (default_section_type_flags_1):  Add check: if in cold section
6840         flags = SECTION_CODE.
6841         * config/darwin.c (darwin_asm_named_section):  Modify to use
6842         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6843         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6844         specifically for the i386.
6845         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6846         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6847         text string to something more informative.
6848         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6849         (SECTION_FORMAT_STRING):  Add new definition.
6850         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6851         '!in_unlikely_text_section' as an 'and' condition to an if statement
6852         that was already checking '!in_text_section'.
6853         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6854         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6855         sure these are properly defined for linux on ppc.
6856         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6857         for this new flag.
6858         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6859         reg_note.
6860         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6861         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6862         these new macros.
6863
6864 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6865
6866         * function.c (gen_mem_addressof): When changing the RTX from a REG
6867         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6868
6869 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6870
6871         PR target/14888
6872         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6873         truncxfdf2_noop): Provide dummy "fmov" implementations.
6874
6875 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6876
6877         * gcc.c (default_compilers): Add missing initializers.
6878
6879         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6880         Return 1 if file was successfully mapped.
6881
6882 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6883
6884         PR pch/13419
6885         PR pch/14137
6886         Radar #: 3315288
6887         * doc/invoke.texi (Precompiled Headers): Suggest -o
6888         to put an output file in a particular place.  Be more detailed
6889         about which options affect PCH validity and which options
6890         might not work.
6891         * c-pch.c (pch_matching): New.
6892         (MATCH_SIZE): New.
6893         (struct c_pch_validity): New field 'match'.
6894         (pch_init): Handle pch_matching.
6895         (c_common_valid_pch): Check pch_matching.
6896
6897         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6898
6899 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6900
6901         * doc/invoke.texi (Precompiled Headers): Warn about known
6902         problems.
6903
6904 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6905
6906         PR c++/14808
6907         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6908         to 1 if ASM_OUTPUT_DEF is defined.
6909         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6910         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6911         Set to non-zero iff not a one_only decl.
6912
6913 2004-04-08  Paul Brook  <paul@codesourcery.com>
6914
6915         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6916
6917 2004-04-08  Paul Brook  <paul@codesourcery.com>
6918
6919         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6920         PROMOTE_FOR_CALL_ONLY.
6921         * config/arm/arm-protos.h (arm_function_value): Declare.
6922         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6923         (TARGET_PROMOTE_PROTOTYPES): Return false.
6924         (arm_function_value): New function.
6925         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6926         (FUNCTION_VALUE): Call arm_function_value.
6927         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6928         (PROMOTE_FUNCTION_MODE): ... to this.
6929         (PROMOTE_FOR_CALL_ONLY): Remove.
6930         * config/mmix/mmix.h: Likewise.
6931         * config/s390/s390.h: Likewise.
6932         * config/sparc/sparc.h: Likewise.
6933         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6934         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6935         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6936         (PROMOTE_FOR_CALL_ONLY): Remove.
6937
6938 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6939
6940         PR ada/14538
6941         * ada/5rosinte.adb: Remove fake mprotect() body.
6942         * ada/5rosinte.ads: Add SA_SIGINFO.
6943         * ada/5rtpopsp.adb: Rewrite to use new interface.
6944         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6945         is tested before more complex ones which mix UNIX and embedded
6946         systems in the conditional.
6947
6948 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6949
6950         PR ada/14665
6951         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6952         filenames which end in .exe or have versioning suffixes like VMS.
6953
6954 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6955
6956         PR target/10129
6957         * config/darwin.c (darwin_encode_section_info): When the decl has
6958         a DECL_INITIAL, it is only defined also when it is not a common.
6959
6960 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6961
6962         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6963         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6964
6965 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6966
6967         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6968         global register variables.
6969
6970 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6971
6972         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6973         rpc_xdr_lvalue_cast_b): New fixes.
6974         * fixinc/fixincl.x: Regenerate.
6975         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6976
6977 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6978
6979         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6980         to power4 and power5 entries.
6981
6982 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6983
6984         * c-common.h (pending_lang_change): Mark for PCH.
6985
6986 2004-04-07  Caroline Tice  <ctice@apple.com>
6987
6988         * gcc.c (main): Move 'break' in main loops (on an error)
6989         to wait until error processing has occurred.
6990
6991 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6992
6993         * config.gcc: Stop changing enable_threads midstream.
6994         Replace uses of enable_threads_flag with enable_threads.
6995         * configure.ac: Replace uses of enable_threads_flag with
6996         enable_threads.  Improve autoconf quotation in one place.
6997         * configure: Regenerate.
6998
6999 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7000
7001         * builtins.c: Implement support for sincos function.
7002         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7003         BUILT_IN_COS{,F,L}.
7004         (expand_builtin_mathfn_3): New function.
7005         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7006         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7007         flag_unsafe_math_optimization is set.
7008
7009         * optabs.h (enum optab_index): Add new OTI_sincos.
7010         (sincos_optab): Define corresponding macro.
7011
7012         * optabs.c (init_optabs): Initialize sincos_optab.
7013         (expand_twoval_unop): New function.
7014
7015         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7016         patterns.
7017
7018         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7019         and UNSPEC_SINCOS_SIN.
7020
7021         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7022         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7023         built-ins as inline x87 intrinsics. Define splits for
7024         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7025         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7026         sincos patterns.
7027         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7028         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7029
7030         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7031         x87's fsincos insn.
7032
7033 2004-04-06  Devang Patel  <dpatel@apple.com>
7034
7035         PR 14467
7036         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7037
7038 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7039
7040         * doc/install.texi: Update HP-UX 11 installation procedure.
7041
7042 2004-04-06  Paul Brook  <paul@codesourcery.com>
7043
7044         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7045
7046 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7047
7048         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7049         when the TLS address is generated by a function call.
7050         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7051         (tls_local_dynamic): Likewise.
7052
7053 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7054
7055         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7056         and TYPE_VOLATILE.
7057
7058 2004-04-05  Caroline Tice  <ctice@apple.com>
7059
7060         * gcc.c (combine_flag): New global variable, for new driver option.
7061         (struct compiler): Add two new fields, to be used when
7062         combining multiple input files in a single pass (IMA).
7063         (default_compilers):  Add values for the new fields to all
7064         compiler entries. Modify the "@c" compiler entry for doing IMA
7065         properly with "-save-temps" and the "combine" flag.
7066         (option_map):  Add new driver option, "--combine", to tell driver
7067         to pass multiple input files to compiler at one time.
7068         (have_o_argbuf_index): New global variable.
7069         (store_arg): Modify to assign value to have_o_argbuf_index.
7070         (struct infile):  Add three new fields, to help with IMA.
7071         (display_help): Add help for new "combine" option.
7072         (process_command): Remove local variable have_o; add code to check
7073         for new "combine" option; remove assignment to combine_inputs.
7074         (do_spec_1):  Modify to deal with IMA better.
7075         (main): Make variable 'lang_n_infiles' local to entire function
7076         rather than to a single block.  Use flag combine_flag to
7077         determine whether to do IMA or not; Modify loop initializing
7078         infiles to deal properly with linker files.
7079         Add code for doing preprocessing in presence of
7080         IMA with "-save-temps" flag.  Modify "main" loop to handle
7081         multiple input files, in multiple languages, with or without
7082         preprocessing,  gracefully.
7083         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7084         re-set it to same directory it's previously been set to (avoid
7085         irritating, meaningless warning messages when doing IMA with
7086         save-temps).
7087         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7088         remove documentation about IMA that is no longer accurate; Add
7089         documentation explaining what "-combine" does.
7090         * ada/lang-specs.h: Add initialization values for new fields in
7091         "struct compiler".
7092         * cp/lang-specs.h: Likewise.
7093         * f/lang-specs.h: Likewise.
7094         * java/lang-specs.h: Likewise.
7095         * objc/lang-specs.h: Likewise.
7096         * treelang/lang-specs.h: Likewise.
7097
7098 2004-04-05  David Edelsohn
7099
7100         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7101         symbol handling.
7102
7103 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7104             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7105
7106         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7107         * pa.md: Use replace_equiv_address to retain the attributes of the
7108         memory operands used in the split and peephole2 patterns for optimizing
7109         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7110
7111 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7112
7113         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7114         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7115         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7116         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7117         PARM_DECL.
7118         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7119         for a type.
7120         * print-tree.c (print_node): Properly handle side-effects, readonly,
7121         and constant flags.
7122         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7123         and TREE_CONSTANT if not a type.
7124         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7125         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7126         (NON_TYPE_CHECK): New macro.
7127         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7128
7129 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7130
7131         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7132         to DWARF2_DEBUG unconditionally.
7133         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7134
7135 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7136             Nathanael Nerode  <neroden@gcc.gnu.org>
7137
7138         PR target/14548
7139         * config.host: Set the shell variable host_can_use_collect2.
7140         Set it to yes by default, and to no for alpha*-dec-*vms*,
7141         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7142         * configure.ac: Set and substitute the shell variable collect2.
7143         Give an error if use_collect2 is yes and host_can_use_collect2 is
7144         no.
7145         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7146         uses.  Initialize to @collect2@.
7147         (STAGESTUFF): Remove $(USE_COLLECT2).
7148         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7149         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7150         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7151         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7152         * configure: Regenerate.
7153
7154 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7155
7156         * simplify-rtx.c (simplify_binary_operation): Constant fold
7157         DIV, MOD, UDIV and UMOD using div_and_round_double.
7158
7159 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7160
7161         PR c++/14804
7162         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7163         RECORD_TYPEs.
7164
7165 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7166
7167         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7168         documentation.
7169
7170 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7171
7172         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7173         updating the REG_EQUAL note on an insn's libcall_insn.
7174
7175 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7176
7177         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7178
7179 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7180
7181         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7182         with reorder_operands_p.
7183
7184 2004-04-03  Jan Hubicka  <jh@suse.cz>
7185
7186         * md.texi (vec_set, vec_extract, vec_init): Document.
7187
7188 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7189
7190        * opts.c (decode_options): Do function inlining with very small
7191        max-inline-insns-* parameters when optimizing for size.
7192
7193 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7194
7195         * config/i386/i386.h (TARGET_NOCONA): New macro.
7196         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7197         (processor_type): Add PROCESSOR_NOCONA.
7198
7199         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7200
7201         * config/i386/i386.c (nocona_cost): New variable.
7202         (m_NOCONA): New macro.
7203         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7204         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7205         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7206         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7207         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7208         x86_decompose_lea, x86_arch_always_fancy_math_387,
7209         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7210         x86_ext_80387_constants, x86_four_jump_limit):
7211         (override_options): Add nocona_cost to processor_target_table.
7212         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7213         (incdec_operand): Prevent inc/dec generation for Nocona too.
7214         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7215
7216 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7217
7218         * rtlanal.c (find_reg_note): Manually
7219         unswitch the loop.
7220
7221 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7222
7223         * genemit.c (gen_split): Change prototype of generated code.
7224         * genrecog.c (write_action): Adjust prototype for and calls to
7225         gen_split_*.
7226         * gensupport.c (struct queue_elem): Add split field.
7227         (queue_pattern): Return a value.  Clear the split field.
7228         (process_rtx): Maintain an association between an insn and the
7229         split generated from it for a define_insn_and_split.
7230         (process_one_cond_exec): Generate a new split for a
7231         define_insn_and_split.
7232         * config/arm/arm-protos.h (arm_split_constant): Add insn
7233         parameter.
7234         (emit_constant_insn): New function.
7235         (arm_gen_constant): Use it.
7236         * config/arm/arm.md: Adjust calls to arm_split_constant.
7237
7238 2004-04-02  Jan Hubicka  <jh@suse.cz>
7239
7240         * cgraph.c: Add overall comment.
7241         (cgraph_inline_hash): New global variable.
7242         (cgraph_create_node): Break out from ...
7243         (cgraph_node): ... here.
7244         (cgraph_edge): New function.
7245         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7246         (cgraph_remove_edge): Accept edge, intead of source and destination.
7247         (cgraph_redirect_edge_callee): New.
7248         (cgraph_remove_node): Update all new datastructures.
7249         (cgraph_record_call, cgraph_remove_call): Kill.
7250         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7251         (dump_cgraph): ... here.
7252         (cgraph_function_possibly_inlined_p): Use new hashtable.
7253         (cgraph_clone_edge, cgraph_clone_node): New.
7254         * cgraph.h: Include hashtab.h
7255         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7256         fields, add inlined_to pointer.
7257         (cgraph_node): Add pointer to next_clone.
7258         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7259         (cgraph_remove_call, cgraph_record_call): Kill.
7260         (cgraph_inline_hash): Declare.
7261         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7262         cgraph_redirect_edge_callee): Declare.
7263         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7264         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7265         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7266         * cgraphunit.c: Add overall comment.
7267         (cgraph_optimize_function): Kill.
7268         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7269         (cgraph_finalize_function): Update call of cgraph_remove_node
7270         (record_call_1): Record call sites.
7271         (cgraph_create_edges): Accept node instead of decl argument.
7272         (error_found): New static variable.
7273         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7274         (cgraph_analyze_function): Update for new datastructures.
7275         (cgraph_finalize_compilation_unit): Plug memory leak.
7276         (cgraph_optimize_function): Kill.
7277         (cgraph_expand_function): Do not use cgraph_optimize_function.
7278         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7279         cgraph_inlined_callees): Kill.
7280         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7281         clones.
7282         (estimate_growth): Simplify.
7283         (cgraph_clone_inlined_nodes): New function.
7284         (cgraph_mark_inline_edge): Re-implement.
7285         (cgraph_mark_inline): Likewise.
7286         (cgraph_check_inline_limits): Simplify.
7287         (cgraph_recursive_inlining_p): New.
7288         (update_callee_keys): Break out from ...
7289         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7290         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7291         Likewise.
7292         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7293         list.
7294         (cgraph_preserve_function_body_p): New predicate.
7295         (cgraph_optimize): Verify cgraph.
7296         * function.h (struct function): Add fields saved_tree/saved_args.
7297         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7298         * toplev.c (rest_of_compilation): Do not free cfun.
7299         * tree-inline.c: Include function.h
7300         (struct inline_data): Add saving_p field; replace decl/current_decl by
7301         node/current_node.
7302         (insert_decl_map): New function.
7303         (copy_body_r): Handle saving; update cgraph datastructure.
7304         (copy_body): Handle recursive inlining.
7305         (initialize_inlined_parameters): Likewise.
7306         (expand_call_inline): Propagate node attributes; update cgraph.
7307         (optimize_inline_calls): Verify that datastructure still match.
7308         (save_body): New function.
7309         * tree-inline.h (save_body): New.
7310         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7311         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7312         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7313
7314 2004-04-01  Serge Belyshev  <1319@bot.ru>
7315
7316         PR target/14702
7317         * config/i386/i386.md: fix source operand constraints in
7318         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7319
7320 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7321
7322         * fold-const.c (folda): Preserve types of comparisons.
7323
7324 2004-04-01  Richard Henderson  <rth@redhat.com>
7325
7326         * toplev.c (backend_init): Move init_optimization_passes call ...
7327         (lang_dependent_init): ... here.
7328
7329 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7330             Jakub Jelinek  <jakub@redhat.com>
7331
7332         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7333         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7334         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7335         * configure: Rebuilt.
7336         * config.in: Rebuilt.
7337         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7338         (stage2-start, stage3-start, stage4-start): Likewise.
7339         (stageprofile-start, stagefeedback-start): Likewise.
7340
7341 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7342
7343         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7344         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7345         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7346         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7347         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7348         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7349         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7350         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7351         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7352         * config/sparc/t-linux: Removed.
7353
7354 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7355
7356         PR c++/14755
7357         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7358         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7359
7360 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7361
7362         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7363         * stor-layout.c (layout_decl): Likewise.
7364         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7365         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7366         * print-tree.c (print_node): Handle various used of unsigned_flag.
7367         * tree.def (BIT_FIELD_REF): Update comment.
7368         * tree.h (TREE_UNSIGNED): Deleted.
7369         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7370
7371 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7372
7373         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7374         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7375         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7376         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7377         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7378         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7379         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7380         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7381         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7382         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7383         REAL_TYPE, not INTEGER_TYPE.
7384         (layout_type, case VECTOR_TYPE): Simplify code.
7385         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7386         * tree.h: Update comments.
7387         (STRIP_NOPS): Use TYPE_UNSIGNED.
7388         (TYPE_UNSIGNED): New macro.
7389         (TYPE_TRAP_SIGNED): Remove now redundant check.
7390         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7391
7392 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7393
7394         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7395
7396 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7397
7398         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7399         Add darwin-fpsave.asm, darwin-vecsave.asm,
7400         and darwin-world.asm.
7401         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7402         as the asm files contain altivec instructions.
7403         * config/rs6000/darwin-fpsave.asm: New file.
7404         * config/rs6000/darwin-vecsave.asm: New file.
7405         * config/rs6000/darwin-world.asm: New file.
7406
7407 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7408
7409         * gengtype-yacc.y (option, stringseq): Add missing
7410         terminating semicolon.
7411
7412 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7413
7414         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7415         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7416         tls_dtprel_ha_32, tls_dtprel_ha_64,
7417         tls_dtprel_lo_32, tls_dtprel_lo_64,
7418         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7419         tls_tprel_ha_32, tls_tprel_ha_64,
7420         tls_tprel_lo_32, tls_tprel_lo_64,
7421         tls_got_tprel_32, tls_got_tprel_64,
7422         tls_tls_32, tls_tls_64): Replace register_operand with
7423         gpc_reg_operand.
7424
7425 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7426
7427         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7428         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7429         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7430         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7431         *ctrdi_internal6): Replace register_operand with
7432         nonimmediate_operand.
7433
7434 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7435
7436         * fold-const.c (fold): Reassociate multiply expression
7437         with an adjacent non-multiply expression to use
7438         architecture's multiply-add instruction.
7439
7440 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7441
7442         * gengtype.c (create_option): New function.
7443         * gengtype.h: Prototype it.
7444         * gengtype-yacc.y (stringseq): New rule.
7445         (option): Use create_option.  Add new bare ID production.  Use
7446         stringseq, not STRING directly.
7447
7448         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7449         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7450         * varray.h, config/alpha/alpha.c:
7451         Use new shorter form of GTY markers.
7452
7453         * doc/gty.texi: Rewrite.
7454
7455 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7456
7457         * config/darwin.c (machopic_function_base_name):
7458         Remove current_name and getting the name of the
7459         current function.
7460
7461 2004-03-30  Nick Clifton  <nickc@redhat.com>
7462
7463         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7464         range, and increase the forward branch range, to allow for
7465         the fact that the PC will be off by 4.
7466
7467 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7468
7469         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7470
7471 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7472
7473         * config/rs6000/rs6000.c (output_vec_const_move):
7474         Find all cases of EASY_VECTOR_15_ADD_SELF.
7475         (easy_vector_constant_add_self): Accept
7476         all vector constant loadable by vsplt* and vadd*.
7477         (easy_vector_same): Use easy_vector_splat_const.
7478         (easy_vector_const): Use easy_vector_splat_const.
7479         (easy_vector_splat_const): New function.
7480         (gen_easy_vector_constant_add_self): New function.
7481
7482         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7483         New prototype.
7484
7485         * config/rs6000/altivec.md (movv4si splitter): Change to
7486         emit move insn with halfed vector constant.
7487         (*movv8hi splitter): Likewise.
7488         (*movv16qi splitter): Likewise.
7489
7490 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7491
7492         PR 11591
7493         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7494         Allow any offset to argument pointer in no-strict case.
7495
7496 2004-03-30  Jan Hubicka  <jh@suse.cz>
7497
7498         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7499         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7500         dump file in non-unit-at-a-time mode.
7501
7502 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7503
7504         * config/cris/cris.h: Correct #ifdef to test for
7505         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7506         HAVE_AS_MUL_BUG_ABORT_OPTION.
7507
7508 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7509
7510         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7511         the address inside the old RTL.
7512
7513 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7514
7515         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7516         (struct c_binding, struct c_scope): Add chain_next
7517         attributes to GTY markers.
7518         (struct lang_identifier, struct lang_tree_node): Define
7519         here...
7520         * c-tree.h: ... not here.  No longer need to declare struct
7521         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7522         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7523         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7524
7525         PR 14734, 11944
7526         * c-decl.c (get_parm_info): If error_mark_node is encountered
7527         in the bindings chain, unbind and discard it; don't abort.
7528
7529 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7530             Dorit Naishlos <dorit@il.ibm.com>
7531
7532         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7533         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7534
7535 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7536
7537         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7538
7539         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7540         (m68hc11_attribute_table): New attribute "page0" to mark a global
7541         variable as being allocated from within page0 section.
7542         (m68hc11_encode_label): New function.
7543         (m68hc11_strip_name_encoding): New function.
7544         (m68hc11_page0_symbol_p): New function.
7545         (m68hc11_indirect_p): Accept global variables marked in page0.
7546         (m68hc11_encode_section_info): Lookup "page0" attribute.
7547
7548         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7549         represents access to page0 variables.
7550
7551         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7552         ("*logicalsi3_silshl16_zext"): Likewise.
7553         ("*ashldi3_const32"): Likewise.
7554         (peephole2 ashift): Likewise.
7555
7556 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7557
7558         * c-tree.h (C_DECL_REGISTER): New.
7559         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7560         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7561         (build_array_ref, c_mark_addressable): Set and use it.
7562         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7563         Allow structures with volatile fields to be declared register.
7564         Don't check TREE_ADDRESSABLE before warning about taking address
7565         of register.
7566         * c-decl.c (finish_decl): Don't allow structures with volatile
7567         fields to be placed in named register.
7568         * doc/trouble.texi: Remove reference to structures with volatile
7569         fields in registers.
7570
7571 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7572
7573         * function.c (thread_prologue_and_epilogue): Move
7574         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7575         before the epilogue.
7576
7577 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7578
7579         * expr.c (store_constructor): Use gen_int_mode to correctly
7580         sign-extend CONST_INT value.
7581
7582 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7583
7584         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7585         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7586         * doc/extend.texi: Likewise.
7587
7588 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7589
7590         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7591           with TYPE_ORIG_SIZE_TYPE.
7592
7593 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7594
7595         PR 14219
7596         * c-typeck.c (build_binary_op): Do not allow comparisons of
7597         vectors.
7598
7599 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7600
7601         * config.gcc: Remove sparc-tti-*.
7602         * config/sparc/pbd.h: Delete.
7603
7604         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7605         * config/sparc/aout.h: Likewise.
7606
7607         * config/sparc/sparc.h: Remove if 0'd code.
7608         * config/sparc/sparc.md (call): Remove if 0'd code.
7609         (call_value): Likewise.
7610         (nonlocal_goto): Likewise.
7611         (unimp_insn): Delete.
7612
7613 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7614
7615         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7616         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7617
7618 2004-03-25  Richard Henderson  <rth@redhat.com>
7619
7620         PR 11527
7621         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7622         rather than later.
7623
7624 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7625
7626         * builtins.c (fold_builtin): Fix error in last change.
7627
7628 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7629
7630         * config/mips/mips.h: Formatting fix.
7631
7632 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7633
7634         * builtins.def: Add ctype builtins.
7635         * doc/extend.texi: Likewise.
7636
7637 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7638
7639         * builtins.c (fold_builtin): Add new builtin optimizations for
7640         sqrt and/or cbrt.
7641         * fold-const.c (fold): Likewise.
7642
7643 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7644
7645         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7646         (rs6000_sched_groups): New variable.
7647         (processor_target_table): Add power5.
7648         (rs6000_override_options): Set rs6000_sched_insert_nops,
7649         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7650         from rs6000_sched_groups.
7651         (output_cbranch): Use rs6000_always_hint.
7652         (rs6000_variable_issue): Use rs6000_sched_groups.
7653         (rs6000_adjust_cost): Add CPU_POWER5.
7654         (is_microcoded_insn): Use rs6000_sched_groups.
7655         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7656         Return 2 for POWER5 cracked instructions.
7657         (is_cracked_insn): Use rs6000_sched_groups.
7658         (is_branch_slot_insn): Use rs6000_sched_groups.
7659         (rs6000_issue_rate): Add CPU_POWER5.
7660         (rs6000_sched_finish): Use rs6000_sched_groups.
7661         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7662         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7663         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7664         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7665         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7666         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7667         * config/rs6000/power5.md: New file.
7668         * doc/invoke.texi: Add power5 option.
7669
7670 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7671
7672         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7673         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7674         * doc/invoke.texi: Fix a typo.
7675
7676 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7677
7678         PR optimization/9707.
7679         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7680         of recursing if both children are single-valued cases with no
7681         children.
7682
7683 2004-03-25  Paul Brook  <paul@codesourcery.com>
7684
7685         * config/arm/arm.c (vfp_print_multi): Remove.
7686         (arm_output_fldmx): New function.
7687         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7688         (arm_expand_prologue): Update to match.
7689         (arm_get_vfp_saved_size): New Function.
7690         (arm_get_frame_offsets): Use it.
7691         (arm_output_epilogue): Use new functions.
7692
7693 2004-03-24  Richard Henderson  <rth@redhat.com>
7694
7695         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7696         (reg_known_value, reg_known_value_size): Likewise; make static.
7697         (reg_known_equiv_p): Make static.
7698         (clear_reg_alias_info): Update for new indexing.
7699         (get_reg_known_value, set_reg_known_value): New.
7700         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7701         (canon_rtx): Use them.
7702         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7703         Don't play queer offsetting games with reg_known_value and
7704         reg_known_equiv_p.
7705         (end_alias_analysis): Free reg_known_value with gc.
7706         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7707         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7708         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7709         functions instead.
7710
7711 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7712
7713         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7714         config/i386/mmintrin.h: Update copyright.
7715
7716 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7717
7718         * configure.ac: Add --enable-werror-always (for top level bootstrap
7719         support).
7720         * configure: Regenerate.
7721
7722 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7723
7724         * objc/objc-act.c (objc_comptypes): Treat comparisons
7725         between 'Class' and '<class> *' as explicitly invalid.
7726
7727 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7728
7729         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7730         (-fprofile-values): Add enabled with profile-{generate,use}.
7731         (-fvpt): Same.
7732         (-ftracer): Add enabled with profile-use.
7733         (-funit-at-a-time): Add enabled at -O2,-O3.
7734         (-funroll-loops): Add enabled with profile-use.
7735         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7736         (max-gcse-passes): Mention default.
7737         (max-cse-path-length): Mention default.
7738
7739 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7740
7741         * Makefile.in (STRICT2_WARN): Reorder.
7742         * configure.ac: Check for -Wold-style-definition, and use it
7743         in strict1_warn if it's available.
7744         * configure: Regnerate.
7745
7746 2004-03-24  Paul Brook  <paul@nowt.org>
7747
7748         * config.gcc <arm>: Add --with-abi=
7749         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7750         thumb_far_jump_used): Remove prototypes.
7751         (arm_needs_doubleword_align): Add prototype.
7752         (thumb_compute_initial_elimination_offset): Ditto.
7753         * config/arm/arm.c (arm_get_frame_offsets): New function.
7754         (use_return_insn, output_return_instruction, arm_output_epilogue,
7755         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7756         arm_expand_prologue, thumb_expand_epilogue): Use it.
7757         (arm_abi, target_abi_name, all_arm_abis): New variables.
7758         (arm_override_options): Set them.  Set structure padding for AAPCS.
7759         (arm_return_in_memory): Update ABI check.
7760         (arm_init_cumulative_args): Initialize can_split.
7761         (arm_needs_doubleword_align): New function.
7762         (arm_function_arg): Don't split args after pushing to stack. Handle
7763         doubleword/even reg alignment.
7764         (arm_va_arg): Handle all doubleword aligned args.
7765         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7766         on ABI, not CPU.
7767         (arm_compute_save_reg0_reg12_mask): Fix comment.
7768         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7769         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7770         value for alignment.
7771         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7772         to match.
7773         (thumb_compute_initial_elimination_offset): New function.
7774         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7775         unneccessary rounding.
7776         * config/arm/arm.h (target_abi_name): Declare.
7777         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7778         arm_abi_type, ARM_DEFAULT_ABI): Define.
7779         (ARM_FLAG_ATPCS): Remove.
7780         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7781         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7782         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7783         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7784         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7785         Contitionalize on ABI, not CPU.
7786         (struct arm_stack_offsets): Define.
7787         (struct machine_function): Add stack_offsets.  Remove frame_size.
7788         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7789         pushed.
7790         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7791         doubleword alignment.
7792         (THUMB_INITIAL_ELIMINATION_OFFSET,
7793         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7794         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7795         * config/arm/arm.md (align_8): Enable for all targets.
7796         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7797         (ARM_DEFAULT_ABI): Define.
7798         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7799         -mstructure-size-boundary.
7800
7801 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7802
7803         * configure.ac: Check for -Wno-variadic-macros; don't use
7804         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7805         and if it's available, use it.  Also, clean up check for
7806         -Wno-long-long.
7807         * configure: Regenerate.
7808
7809 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7810
7811         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7812         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7813         (MULTILIB_DEFAULTS): Use it.
7814         (MIPS_CPU_STRING_DEFAULT): Remove.
7815         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7816         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7817         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7818         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7819         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7820         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7821         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7822         accordingly.
7823
7824 2004-03-24  DJ Delorie  <dj@redhat.com>
7825             Richard Sandiford  <rsandifo@redhat.com>
7826
7827         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7828         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7829         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7830         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7831         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7832         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7833         if TARGET_FIX_VR4122.
7834         * config/mips/mips.md (define_attr length): Account for nops inserted
7835         after macc and dmult when using -mfix-vr4122-bugs.
7836         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7837         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7838         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7839         * config/mips/vr4122-div.S: New file.
7840         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7841
7842 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7843
7844         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7845         (TARGET_MIPS4130): New macro.
7846         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7847         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7848         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7849         with PROCESSOR_R4130.
7850         * config/mips/mips.md (define_attr cpu): Add r4130.
7851         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7852
7853 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7854             Richard Sandiford  <rsandifo@redhat.com>
7855
7856         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7857
7858 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7859
7860         PR preprocessor/14438
7861         * cpplib.c (do_pragma): Remove line_change call after pragma
7862         handler.
7863
7864 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7865
7866         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7867         declarations.
7868
7869 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7870
7871         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7872         if flag_unsafe_math_optimizations.
7873         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7874         and TARGET_80387 expand using truncdfsf2_noop pattern.
7875         (truncxfsf2): Likewise using truncxfsf2_noop.
7876         (truncxfdf2): Likewise using truncxfdf2_noop.
7877         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7878
7879 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7880
7881         * hooks.c (hook_constcharptr_tree_null): New hook.
7882         * hooks.h (hook_constcharptr_tree_null): New prototype.
7883         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7884         * target.h (mangle_fundamental_type): New target hook.
7885         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7886         target hook at rs6000_mangle_fundamental_type.
7887         (rs6000_mangle_fundamental_type): New function.
7888         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7889
7890 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7891
7892         PR 12267, 12391, 12560, 13129, 14114, 14133
7893         * c-tree.h: Forward declare struct c_binding.  Declare
7894         c_override_bindings_to_false.  Update prototypes.
7895         (struct lang_identifier): Update comments.  Change fields to be
7896         struct c_binding *.
7897         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7898         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7899         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7900         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7901         * c-common.h: Update prototypes.
7902         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7903         names_last, parms, parms_last, tags, and shadowed fields.  Add
7904         bindings and depth fields.
7905         (scope_freelist): Move to more appropriate location.
7906         (c_print_identifier): Update for changes to struct lang_identifier.
7907         (objc_mark_locals_volatile): Update for new bindings structures.
7908         (global_bindings_p): Honor c_override_global_bindings_to_false.
7909         (pushlevel): Rename to push_scope; take no arguments; use the
7910         scope_freelist; initialize scope->depth and check for overflow.
7911         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7912         structures.
7913         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7914         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7915         Improve some commentary.  Adjust handling of forward parm decls.
7916         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7917         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7918         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7919         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7920         decls.  Rewrite for new bindings structures.  Improve commentary.
7921         Eliminate the copy_node call.
7922         (implicit_decl_warning): Use the "diag" idiom (as seen in
7923         locate_old_decl) to reduce code duplication; call locate_old_decl
7924         if appropriate.  Relocate to remove need for forward declaration.
7925         (implicitly_declare): Adjust for new bindings structures.  Kludge
7926         around Objective-C not-really-builtin functions.
7927         (undeclared_variable): Improve diagnostics.  If current_function_decl
7928         is nonnull but current_function_scope is null, use current_scope.
7929         Use bind.
7930         (lookup_tag): Adjust for new bindings structures.  Kludge around
7931         Objective-C's tag declarations that wind up in the external scope.
7932         (lookup_name): Adjust for new bindings structures.  Kludge around
7933         c-common.c's pseudo-typedefs that wind up in the external scope.
7934         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7935         second argument indicating the scope to examine; rewrite for
7936         new bindings structures.
7937         (c_init_decl_processing): Adjust for renamed functions.  Do not
7938         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7939         First scope pushed is the external scope, not the global scope.
7940         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7941         for new data structures.  Keep track of builtins that should be
7942         made visible automatically.
7943         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7944         expand_decl.
7945         (grokparms): Return 0 if arg_types is error_mark_node.
7946         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7947         reversed sense.  Rewrite for new bindings structures.  Do not
7948         leave any decls in the scope, to prevent pop_scope from doing
7949         contradictory things with them.
7950         (finish_struct, finish_enum): Remove redundant diagnostics.
7951         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7952         Mark location where -pedantic changes the meaning of the program.
7953         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7954         parameter decls into the function's scope structure using bind.
7955         Warn here about function definitions in the wrong style.
7956         Adjust diagnostics.
7957         (store_parm_decls): Correct the determination of whether a
7958         function was defined with a prototype.
7959         (c_write_global_declarations): Operate on all file decls and on
7960         the external scope.  Split body of the loop to...
7961         (c_write_global_declarations_1): ... this new function, to avoid
7962         code duplication.
7963         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7964         (make_scope, pop_scope, in_parm_level_p, set_block)
7965         (any_external_decl, record_external_decl, bind_label, getdecls)
7966         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7967         (c_reset_state): Delete.
7968         (visible_builtins, c_override_global_bindings_to_false)
7969         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7970         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7971         (external_scope, binding_freelist, bind, free_binding_and_advance)
7972         (push_file_scope, pop_file_scope): New.
7973         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7974         (define_label, c_make_fname_decl, finish_decl)
7975         (mark_forward_parm_decls, build_compound_literal)
7976         (grokdeclarator, start_function, check_for_loop_decls)
7977         (identifier_global_value, record_builtin_type): Minor adjustments
7978         for new bindings structures.  Improve diagnostics and commentary.
7979         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7980         pushlevel/poplevel respectively.
7981         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7982         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7983         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7984         correct loop over multiple translation units; call fatal_error if
7985         requested to compile more than one file at once.  (This disables
7986         IMA temporarily - an up-front error being preferable to a crash.)
7987         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7988         (all actions): Adjust calls to pushlevel/poplevel.
7989         (parsing_iso_function_signature): Delete.
7990         (extdef_1): Fold into extdef.
7991         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7992         warn here about function definitions in the wrong style.
7993         (after_tyle_declarator, parm_declarator_starttypename)
7994         (parm_declarator_nostarttypename, notype_declarator): Remove
7995         commented-out productions.
7996         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7997         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7998         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7999         to suppress -Wold-style-definition after this error.
8000         (c_parse_file): Don't clear the binding stack or call
8001         finish_fname_decls here.  Correct comment.
8002         * c-typeck.c (same_translation_unit_p): Export.
8003         (common_type): Use c_override_global_bindings_to_false, not
8004         pushlevel/poplevel/declare_parm_level.
8005         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8006         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8007         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8008         * objc/objc-lang.c: Likewise.
8009         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8010         get_parm_info.
8011         (OBJC_VOID_AT_END): Delete; replace all uses
8012         with void_list_node.
8013         (generate_forward_declaration_to_string_table): Delete.
8014         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8015
8016         * coverage.c (create_coverage): Don't pushdecl anything.
8017         * langhooks.c (lhd_clear_binding_stack): Call
8018         lang_hooks.decls.poplevel, not poplevel.
8019         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8020         circular list rather than going into an infinite loop.
8021
8022 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8023
8024         * optabs.c (expand_binop): When synthesizing double word rotates
8025         from single word shifts, use a new register target if the provided
8026         target is not a REG already.
8027
8028 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8029
8030         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8031         * c-common.c (handle_mode_attribute): Add extra arg to
8032         build_pointer_type_for_mode and build_reference_type_for_mode.
8033         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8034         for INTEGER_CST.
8035         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8036         Chain pointers via TYPE_NEXT_PTR_TO.
8037         (build_reference_type_for_mode): Similarly.
8038         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8039         and build_reference_type_for_mode.
8040         (tree_check4_failed): New function.
8041         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8042         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8043         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8044         Add check.
8045
8046 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8047
8048         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8049         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8050         when both A and B are nonnegative.
8051         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8052         nonzero.
8053
8054 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8055
8056         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8057         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8058
8059 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8060
8061         PR optimization/14669
8062         * fold-const.c (fold): Only unwiden integer comparisons for equality
8063         and inequality operators, or when the signedness doesn't change.
8064
8065 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8066
8067         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8068         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8069         * config/sparc/t-linux: New file.
8070
8071 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8072
8073         * gcse.c (can_assign_to_reg_p): New function, split out from...
8074         (want_to_gcse_p): ...here.
8075         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8076         the rhs of a store.
8077
8078 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8079
8080         * c-typeck.c (same_translation_unit_p): Fix pasto.
8081
8082 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8083
8084         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8085         (PARAM_MAX_SCHED_REGION_INSNS): New.
8086         * sched-rgn.c: Include params.h
8087         (MAX_RGN_BLOCKS): Delete.
8088         (MAX_RGN_INSNS): Delete.
8089         (too_large): Return bool.  Convert to PARAM_VALUE.
8090         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8091         * doc/invoke.texi (param): Document max-sched-region-blocks and
8092         max-sched-region-insns.
8093
8094 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8095
8096         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8097         for base types.
8098
8099 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8100
8101         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8102         change.
8103
8104 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8105
8106         PR c/14069
8107         * c-decl.c (finish_struct): Change type of incorrect flexible array
8108         field into error_mark_node.
8109
8110 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8111
8112         PR target/14580
8113         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8114         who are not local for Darwin PIC.
8115
8116 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8117
8118         * regrename.c (regrename_optimize): Set regs_ever_live for all
8119         registers introduced as replacement.
8120
8121 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8122
8123         PR middle-end/14470
8124         * expr.c (mark_queue): New function.
8125         (emit_insns_enqueued_after_mark): New function replacing
8126         emit_queue.  Clear the body of emitted queued insns.
8127         (emit_queue): Call emit_insns_enqueued_after_mark.
8128         (store_expr): Mark the increment queue on entry.  Emit
8129         only the incrementations queued when expanding the source.
8130
8131 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8132
8133         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8134         of top level bootstrap, and consistency).  Reindent.
8135         * configure: Regenerate.
8136
8137 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8138
8139         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8140         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8141         unnecessary casts.
8142
8143 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8144
8145         PR target/14291
8146         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8147         __MINGW32__.
8148
8149 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8150
8151         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8152         to nonimmediate_operand.
8153         ("*doloop_di"): Likewise.
8154
8155 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8156
8157         * real.h (struct real_value): Use the same type for all
8158         bitfields.  Rename exp to uexp.
8159         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8160         Adjust all uses of exp...
8161         * builtins.c: ... here, ...
8162         * emit-rtl.c: ... here, and ...
8163         * real.c: ... and here.
8164
8165 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8166
8167         * pretty-print.c (pp_base_maybe_space): New function.
8168         * pretty-print.h (pp_base_maybe_space): Declare.
8169         (pp_maybe_space): New macro.
8170
8171 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8172
8173         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8174
8175 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8176
8177         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8178         of using register multiplication cost.
8179         (expand_mult): Adapt choose_mult_variant call.
8180         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8181         of MODE; pass appropriate cost bound.  Adjust result when
8182         performing signed multiplication by a negative constant.
8183         Don't use intermediate modes larger than word_mode.
8184
8185 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8186
8187         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8188         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8189         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8190         * explow.c (expr_size): Likewise.
8191         * expr.h (placeholder_list, find_placeholder): Deleted.
8192         * expr.c (store_constructor): Likewise.
8193         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8194         (placeholder_list, find_placeholder): Deleted.
8195         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8196         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8197         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8198         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8199         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8200         Likewise.
8201         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8202         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8203         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8204         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8205         Clean up by using first_rtl_op.
8206         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8207         (substitute_placeholder_in_expr): New function.
8208         * tree.def (WITH_RECORD_EXPR): Deleted.
8209         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8210         (substitute_placeholder_in_expr): New.
8211
8212 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8213
8214         * dojump.c (prefer_and_bit_test): Fix which part of
8215         the and_test is replaced.
8216
8217 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8218
8219         * frontends.texi: Add missing line.
8220
8221 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8222             Chris Devers  <cdevers@pobox.com>
8223             Joseph S. Myers  <jsm@polyomino.org.uk>
8224
8225         * doc/frontends.texi: Rewrite.
8226         * doc/gcc.texi: Update last modification date.
8227
8228 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8229
8230         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8231         message before redirecting the edge.
8232
8233 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8234
8235         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8236         flag.
8237         * explow.c (force_not_mem): Set REG_POINTER flag according to
8238         MEM_POINTER one.
8239         * rtl.h (MEM_POINTER): New macro.
8240         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8241         for MEM_POINTER.
8242
8243 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8244
8245         PR target/13889
8246         * cse.c (fold_rtx): Avoid substituting constants into unary
8247         conversion operations.
8248
8249 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8250
8251         * fold-const.c (fold): Replace "expr" with "t".
8252
8253 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8254
8255         PR c/12373
8256         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8257         DECL_ORIGINAL_TYPE if there isn't one.
8258
8259 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8260
8261         * fold-const.c (fold): Replace "final_type" with "type".
8262         Remove variable "final_type".
8263
8264 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8265
8266         * fold-const.c (fold): Constify "type".
8267         Replace "TREE_TYPE (t)" with "type".
8268
8269 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8270
8271         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8272         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8273         via (*targetm.foo) () with targetm.foo ().
8274
8275 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8276
8277         PR other/14630
8278         * doc/install.texi: Add info directory category and entry.
8279
8280 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8281
8282         * fold-const.c (fold): Replace "t" with "tem" where it is used
8283         as a temporary variable.  Remove "orig_t" and all of its uses.
8284
8285 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8286
8287         * fold-const.c (fold): Remove variable "invert".
8288         Move the handling of relational expressions that can be folded
8289         to a constant ...
8290         (fold_relational_const): ... here.
8291         (tree_expr_nonzero_p): New.
8292
8293 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8294
8295         PR c/14635
8296         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8297         DEF_GCC_BUILTIN.
8298
8299 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8300
8301         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8302         (GTFILES): Add $(srcdir)/dojump.h.
8303         (gt-dojump.h): New dependency.
8304         * dojump.c (and_reg, and_test, shift_test): New static variables.
8305         (prefer_and_bit_test): New function.
8306         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8307
8308 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8309
8310         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8311         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8312         reorg.c, tree.h: Fix comment typos.
8313
8314 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8315
8316         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8317         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8318         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8319         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8320         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8321         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8322         targetm.foo ().
8323
8324 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8325
8326         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8327         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8328         always_inline attribute.
8329         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8330         Treat expansion as completed even if literal argument is
8331         invalid (so that other expansions are not tried in vain).
8332
8333 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8334
8335         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8336         const0_rtx.
8337
8338 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8339
8340         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8341         ...
8342         (fold_abs_const): ... here.
8343
8344 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8345
8346         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8347
8348 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8349
8350         PR target/11520
8351         * config/avr/avr.md ("call_insn"): Handle explicit integer
8352         specially.
8353         (call_value_insn): Likewise.
8354
8355 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8356
8357         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8358
8359 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8360
8361         * fold-const.c (negate_expr): Move the handling of constants
8362         ...
8363         (fold_negate_const): ... here.
8364
8365 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8366
8367         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8368         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8369         * tree.c (debug_no_type_hash): Deleted.
8370         (type_hash_canon): Abort if passed a variant.
8371         Check lang_hooks.types.hash_types.
8372         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8373         (build_array_type): Remove unnecessary allocation of pointer type.
8374         (build_complex_type): Properly qualify resulting type.
8375
8376 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8377
8378         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8379
8380 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8381
8382         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8383         (expand_mult): ...here.
8384         (extract_high_half): New, split out from expand_mult_highpart.
8385         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8386         (expand_highpart): Evaluate the cost of a shift/add sequence,
8387         then see if any of the specialized optabs are cheaper.
8388
8389 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8390
8391         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8392
8393 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8394
8395         * convert.c (convert_to_real): Add more math builtins.
8396
8397 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8398
8399         * convert.c (convert_to_real): Reformat using switch stmt.
8400
8401 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8402
8403         * c-common.c (pointer_int_sum): Do not complain about using
8404         pointers to pointers-to-members.
8405
8406 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8407
8408         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8409         have moved to the target hooks structure".
8410
8411 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8412
8413         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8414         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8415         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8416         Likewise.
8417         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8418         Likewise.
8419         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8420         rm7_fp_quick): Likewise.
8421         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8422         rm9k_fquick): Likewise.
8423         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8424         Likewise.
8425         (ir_sr70_icmp): Delete.
8426
8427 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8428
8429         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8430         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8431         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8432         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8433         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8434         Protect with proper check.
8435         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8436         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8437         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8438         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8439         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8440         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8441         not TYPE_FIELDS.
8442         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8443
8444 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8445
8446         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8447         dest is set between beginning and current insn.
8448
8449 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8450
8451         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8452         visible "static" identifiers "extern" in a local scope.
8453         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8454         post-increments/decrements.
8455
8456 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8457
8458         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8459         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8460         (xtensa_va_start): Remove assignment to current_function_arg_words.
8461
8462 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8463
8464         * alias.c (record_set): Detect the case where a register is assigned
8465         a new value that has the same base term as the old one.
8466
8467 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8468
8469         * doloop.c: Removed.
8470         * loop-doloop.c: New file.
8471         * Makefile.in (doloop.o): Remove.
8472         (loop-doloop.o): New.
8473         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8474         * cfgloopanal.c (get_loop_level): New function.
8475         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8476         is leaved immediatelly.
8477         * loop.c (strength_reduce): Do not call doloop optimization.
8478         * loop.h (LOOP_BCT): Removed.
8479         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8480         (rest_of_handle_loop2): Call doloop_optimize_loops.
8481         (rest_of_compilation): Test for optimizations moved to
8482         rest_of_handle_loop2.
8483
8484 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8485
8486         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8487         for mixed mode.
8488         (rs6000_emit_prologue): Ditto.
8489         (rs6000_emit_epilogue): Ditto.
8490         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8491         macro for mixed mode.
8492
8493 2004-03-18  Jan Hubicka  <jh@suse.cz>
8494
8495         * predict.c (propagate_freq): Compute correctly frequency of
8496         EXIT_BLOCK.
8497
8498 2004-03-17  Eric Christopher  <echristo@redhat.com>
8499
8500         * builtins.c (apply_args_size): Use reg_raw_mode.
8501         (apply_result_size): Ditto.
8502
8503 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8504
8505         PR target/14620
8506         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8507
8508 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8509
8510         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8511         32-bit builds when defaulting to 32-bit.
8512
8513 2004-03-17  Jan Hubicka  <jh@suse.cz>
8514
8515         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8516         array.
8517
8518 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8519
8520         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8521         (hazard_nop): Change type to nop.
8522         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8523         Fix all uses.  Change arith to multi if more than one insn emitted.
8524         * config/mips/5400.md (ir_vr54_arith): Likewise.
8525         * config/mips/5500.md (ir_vr55_arith): Likewise.
8526         * config/mips/7000.md (rm7_int_other): Likewise.
8527         * config/mips/9000.md (rm9k_int): Likewise.
8528         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8529
8530 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8531
8532         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8533         to hold the subtype tree instead of recomputing it several times.
8534
8535 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8536
8537         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8538         CC_INVERT.
8539         * config/mn10300/mn10300.md (cc): Remove "invert".
8540
8541 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8542
8543         * builtins.c (integer_valued_real_p): Add builtin rint.
8544         (fold_builtin): Likewise.
8545         * convert.c (convert_to_real): Likewise.
8546
8547         * convert.c (convert_to_real): Fix typos in `long double'
8548         builtins.
8549
8550 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8551
8552         PR c++/14481
8553         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8554         generated COMPOUND_EXPRs.
8555
8556 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8557
8558         * config/h8300/t-rtems (h8300-*-rtems*): New.
8559
8560 2004-03-16  Eric Christopher  <echristo@redhat.com>
8561
8562         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8563
8564 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8565
8566         * config/i386/i386-protos.h: Add a prototype for
8567         ix86_reverse_condition.
8568         * config/i386/i386.c (ix86_reverse_condition): New.
8569         * config/i386/i386.h (REVERSE_CONDITION): Use
8570         ix86_reverse_condition.
8571         * config/i386/i386.md: Use ix86_reverse_condition instead of
8572         REVERSE_CONDITION.
8573
8574 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8575
8576         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8577
8578 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8579
8580         PR bootstrap/12974
8581         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8582
8583 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8584
8585         * c-common.c (c_common_type_for_mode): Build vector types on
8586         demand.
8587         (handle_mode_attribute): Deprecate using the mode attribute
8588         to create vector types.  Fix indentation.
8589         (vector_type_node_list): Remove.
8590         (handle_vector_size_attribute): Create vector types on demand.
8591         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8592         * c-typeck.c (comptypes): Make vector types compatible if they
8593         have the same underlying mode.
8594         (convert_for_assignment): Use comptypes to convert between
8595         vector types.
8596         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8597         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8598         vector types.
8599         * tree.h: Remove vector types.
8600         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8601         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8602         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8603         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8604         * doc/extend.texi (Vector Types): Document how to use the
8605         vector_size attribute to create vectors, rather than mode.
8606
8607         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8608         * config/i386/emmintrin.h: Likewise.
8609         * config/i386/mmintrin.h: Likewise.
8610         * config/i386/xmmintrin.h: Likewise.
8611         * config/sh/ushmedia.h: Likewise.
8612
8613 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8614
8615         * config/freebsd-spec.h, config/arc/arc-protos.h,
8616         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8617         config/arm/linux-gas.h, config/arm/semi.h,
8618         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8619         config/ia64/freebsd.h, config/mips/7000.md,
8620         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8621         config/sparc/pbd.h: Update copyright.
8622
8623 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8624
8625         PR target/14577
8626         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8627
8628 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8629
8630         * combine.c (combine_simplify_rtx): Remove the "last"
8631         parameter and its documentation.  Adjust recursive calls.
8632         (simplify_logical): Always perform the only simplification
8633         controlled by "last", if the simplified expression is
8634         actually different.
8635         (try_combine): Do not pass the "last" parameter to
8636         combine_simplify_rtx.
8637
8638 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8639
8640         PR target/14599
8641         * config/mips/mips.md (UNSPEC_GP): New constant.
8642         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8643         an UNSPEC instead of (reg $gp).
8644         (mips16_gp_pseudo_reg): Change accordingly.
8645         (print_operand): Print $gp directly when handling CONST_GP_P.
8646
8647 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8648
8649         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8650         * longlong.h: Make code 68060 clean when compiling for m68060.
8651
8652 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8653
8654         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8655         * doc/md.texi: Clarify description of "i" constraint.
8656
8657 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8658
8659         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8660         Split store into store, fpstore, fpidxstore.  Fix all uses.
8661         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8662         Likewise.
8663         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8664         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8665         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8666         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8667         ir_sr70_fstore): Likewise.
8668
8669 2004-03-15  Richard Henderson  <rth@redhat.com>
8670
8671         PR middle-end/14535
8672         * except.c (collect_one_action_chain): Record action for cleanup
8673         outer of exception spec.
8674
8675 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8676
8677         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8678         Fix the check for abort and only do the mmap if we can.
8679
8680 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8681
8682         * config/sparc/sparc.h: Rework comments about the code model
8683         in 64-bit environment and the mode 'Pmode'.
8684         * doc/invoke.texi (SPARC options): Rework description of the
8685         different code models supported in 64-bit environment.
8686
8687 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8688
8689         * defaults.h (REVERSIBLE_CC_MODE): Define.
8690         * jump.c (reversed_comparison_code_parts): Don't check if
8691         REVERSIBLE_CC_MODE is defined.
8692
8693 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8694
8695         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8696         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8697         hosthooks.h, params.h, ra-colorize.c, web.c,
8698         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8699         config/avr/avr-protos.h, config/avr/avr.md,
8700         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8701         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8702         config/i386/freebsd.h, config/i386/freebsd64.h,
8703         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8704         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8705         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8706         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8707         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8708         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8709         config/sparc/aout.h, config/sparc/freebsd.h,
8710         config/sparc/litecoff.h, config/vax/vax-protos.h,
8711         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8712         copyright.
8713
8714 2004-03-15  Paul Brook  <paul@codesourcery.com>
8715
8716         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8717
8718 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8719
8720         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8721         (pp_c_cv_qualifier): Document.
8722         (pp_c_space_for_pointer_operator): Likewise.
8723         (pp_c_integer_constant): Likewise.
8724         (pp_c_identifier): Likewise.
8725         (pp_c_init_declarator): Don't print function body.
8726
8727 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8728
8729         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8730         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8731         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8732         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8733         wording and grammar.
8734
8735 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8736
8737         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8738         with lang_hooks.foo ().
8739         * builtins.c (expand_builtin_va_arg): Likewise.
8740         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8741         c_common_type_for_mode, c_common_nodes_and_builtins,
8742         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8743         * c-convert.c (convert): Likewise.
8744         * c-format.c (check_format_types): Likewise.
8745         * c-objc-common.c (c_tree_printer): Likewise.
8746         * c-typeck.c (build_unary_op, build_conditional_expr,
8747         build_binary_op): Likewise.
8748         * calls.c (try_to_integrate, expand_call,
8749         emit_library_call_value_1): Likewise.
8750         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8751         Likewise.
8752         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8753         cgraph_expand_function): Likewise.
8754         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8755         * coverage.c (build_fn_info_type, build_ctr_info_type,
8756         build_gcov_info, create_coverage): Likewise.
8757         * dbxout.c (dbxout_init): Likewise.
8758         * diagnostic.c (diagnostic_report_current_function): Likewise.
8759         * dojump.c (do_jump): Likewise.
8760         * dwarf2out.c (dwarf2_name): Likewise.
8761         * except.c (init_eh): Likewise.
8762         * explow.c (expr_size, int_expr_size): Likewise.
8763         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8764         Likewise.
8765         * expr.c (store_expr, store_constructor, safe_from_p,
8766         expand_expr_real, do_store_flag, try_casesi): Likewise.
8767         * function.c (push_function_context_to, pop_function_context_from,
8768         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8769         put_var_into_stack, allocate_struct_function, current_function_name):
8770         Likewise.
8771         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8772         Likewise.
8773         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8774         lhd_print_error_function): Likewise.
8775         * opts.c (handle_option, decode_options): Likewise.
8776         * passes.c (open_dump_file): Likewise.
8777         * print-tree.c (print_node): Likewise.
8778         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8779         expand_decl_cleanup, emit_case_nodes): Likewise.
8780         * stor-layout.c (variable_size): Likewise.
8781         * toplev.c (announce_function, wrapup_global_declarations,
8782         check_global_declarations, compile_file, default_tree_printer,
8783         process_options, lang_dependent_init, finalize): Likewise.
8784         * tree-dump.c (dequeue_and_dump): Likewise.
8785         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8786         initialize_inlined_parameters, declare_return_variable,
8787         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8788         walk_tree, copy_tree_r): Likewise.
8789         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8790         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8791         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8792         variably_modified_type_p, dump_tree_statistics): Likewise.
8793         * varasm.c (assemble_variable, compare_constant, copy_constant,
8794         force_const_mem, compute_reloc_for_constant, output_constant,
8795         output_addressed_constants, initializer_constant_valid_p): Likewise.
8796
8797 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8798
8799         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8800
8801 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8802
8803         * doc/install.texi: Reflect autoconf and automake version for
8804         libffi. Update autoconf version to 2.59.
8805
8806 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8807
8808         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8809         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8810         make_range, build_range_check, fold_range_test, unextend,
8811         constant_boolean_node, fold_binary_op_with_conditional_arg,
8812         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8813         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8814         with lang_hooks.foo ().
8815
8816 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8817
8818         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8819
8820 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8821
8822         * doc/install.texi: Note status of -fnew-ra.
8823
8824 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8825
8826         PR middle-end/14470
8827         * expr.c (store_expr): Call emit_queue before generating the move
8828         from the temporary to the original target.  Protect the temporary
8829         from emit_queue.
8830
8831 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8832
8833         PR target/14533
8834         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8835         other than UNSPEC_GOTOFF.
8836
8837 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8838
8839         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8840         to arm_legitimate_index_p.  Update all callers with SET as default
8841         value.
8842         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8843         range if OUTER is a sign-extend operation on QImode.  Correctly
8844         reject shift operations on sign-extended QImode addresses.
8845         (bad_signed_byte_operand): Delete.
8846         (arm_extendqisi_mem_op): New function.
8847         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8848         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8849         constraints.
8850         (CONSTRAINT_LEN): New.
8851         (EXTRA_CONSTRAINT): Delete.  Replace with...
8852         (EXTRA_CONSTRAINT_STR): ... this.
8853         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8854         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8855         is now always default.
8856         (define_splits for bad sign-extend loads): Delete.
8857         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8858         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8859         Rework 'U' constraint to 'Uv'.
8860         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8861         arm_extendqisi_mem_op.
8862         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8863         Add Uq constraint.
8864
8865 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8866
8867         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8868         with targetm version.
8869
8870         PR target/14567
8871         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8872         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8873         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8874         Update all users of RS6000_ARG_SIZE.
8875         (function_arg_advance): Count fregno using mode size.
8876         (function_arg): Handle long double split over regs and memory.
8877         (function_arg_partial_nregs): Likewise.
8878         (rs6000_va_arg): Repackage complex args.
8879
8880 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8881
8882         PR target/14047
8883         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8884         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8885         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8886
8887 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8888
8889         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8890         prototype.
8891         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8892         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8893
8894 2003-03-12  Andrew Pinski  <apinski@apple.com>
8895
8896         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8897         Use ret instead of result. Use addr instead of base.
8898
8899 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8900
8901         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8902         fixes required by libstdc++ and update installation instructions
8903         for libstdc++.a.
8904
8905 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8906
8907         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8908         leading '@' on fastcall symbols before stripping suffix.
8909
8910 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8911
8912         * combine.c (unmentioned_reg_p): New function to check whether an
8913         expression is a "specialization" of another, i.e. that there are
8914         no registers or memory references mentioned in the first that don't
8915         appear in the second.
8916         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8917         (combine_instructions): Also try combining instructions using the
8918         REG_EQUAL note from a preceding log-linked instruction.
8919
8920 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8921
8922         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8923
8924 2004-03-12  Matt Austern  <austern@apple.com>
8925
8926         * target.h (struct gcc_target): New target hook, unwind_label.
8927         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8928         * output.h (default_emit_unwind_label): New function.
8929         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8930         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8931         (TARGET_SUPPORTS_HIDDEN): New target macro.
8932         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8933         that corresponds to this FDE.
8934         (FRAME_BEGIN_LABEL): Allow target to override default label.
8935         (output_call_frame_info): If FDEs are linknonce, then use extra
8936         indirection for FDE encoding, output a label for each FDE, and
8937         output an empty label for each function without an FDE.
8938         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8939         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8940         decls with DECL_ONE_ONLY set, if that macro is defined.
8941         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8942         for a SUPPORTS_ONE_ONLY target.
8943         * config/darwin-protos.h (darwin_unique_section): Declare.
8944         (darwin_asm_named_section): Likewise.
8945         (darwin_section_type_flags): Likewise.
8946         (darwin_non_lazy_pcrel): Likewise.
8947         (darwin_emit_unwind_label): Likewise.
8948         (darwin_make_decl_one_only): Likewise.
8949         * config/darwin.c (machopic_finish): Get rid of tweak that
8950         eliminate stubs for symbols that are defined.
8951         (darwin_encode_section_info): Don't treat weak functions as defined.
8952         (darwin_make_decl_one_only): Define.
8953         (darwin_asm_named_section): Likewise.
8954         (darwin_section_type_flags): Likewise.
8955         (darwin_unique_section): Likewise.
8956         (darwin_emit_unwind_label): Likewise.
8957         (darwin_non_lazy_pcrel): Likewise.
8958         (darwin_asm_output_dwarf_delta): Difference between two labels is
8959         local only if both labels are local.
8960         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8961         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8962         (TARGET_SUPPORTS_HIDDEN): Likewise.
8963         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8964         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8965         (FRAME_BEGIN_LABEL): Likewise.
8966         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8967         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8968         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8969         (TARGET_ASM_UNIQUE_SECTION): Define.
8970         (EH_FRAME_SECTION_NAME): Define.
8971         (EH_FRAME_SECTION_ATTR): Likewise.
8972         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8973         (TARGET_ASM_NAMED_SECTION): Likewise.
8974         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8975         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8976         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8977         TARGET_ASM_EMIT_UNWIND_LABEL.
8978
8979 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8980
8981         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8982         existing exp10* case.
8983         (expand_builtin): Likewise.
8984
8985 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8986
8987         * doc/tm.texi (registers) <Values in Registers>: Add
8988         entry for REGMODE_NATURAL_SIZE.
8989
8990 2004-03-12  Richard Henderson  <rth@redhat.com>
8991
8992         PR target/14547
8993         * target.h (struct gcc_target): Move calls substructure before
8994         booleans.  Add split_complex_arg.
8995         * function.c (assign_parms, split_complex_args): Use it.
8996         * calls.c (expand_call): Likewise.
8997         (split_complex_values): Likewise.  Check for splittable types
8998         before allocating memory.
8999         (split_complex_types): Likewise.
9000         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9001         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9002         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9003         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9004         (TARGET_SPLIT_COMPLEX_ARG): New.
9005         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9006         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9007         (rs6000_override_options): Zap it for non-AIX.
9008         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9009         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9010         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9011         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9012         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9013         SPLIT_COMPLEX_ARGS entry.
9014
9015 2004-03-11  Richard Henderson  <rth@redhat.com>
9016
9017         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9018         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9019         (alpha_emit_xfloating_arith): Update to match.
9020         (alpha_emit_xfloating_compare): Likewise.
9021         (alpha_emit_xfloating_cvt): Likewise.
9022         (alpha_emit_xfloating_libcall): Take already built symbol,
9023         mark call const.
9024         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9025         op1 in a register.
9026
9027 2004-03-11  Richard Henderson  <rth@redhat.com>
9028
9029         PR target/14539
9030         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9031
9032         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9033
9034 2004-03-11  Richard Henderson  <rth@redhat.com>
9035
9036         PR middle-end/14477
9037         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9038
9039 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9040
9041         PR target/14262
9042         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9043         defined, pass small BLKmode values in registers in the low-order part.
9044
9045 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9046
9047         * combine.c (if_then_else_cond): Check for NULL return value of
9048         simplify_gen_subreg.
9049
9050 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9051
9052         PR target/14496
9053         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9054         TARGET_SINGLE_FLOAT.
9055
9056 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9057
9058         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9059         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9060         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9061         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9062
9063 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9064
9065         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9066         -((int)X>>C) where C is an integer constant one bit less than the
9067         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9068         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9069
9070         * simplify-rtx.c (simplify_unary_operation): Also implement the
9071         above transformations at the RTL level.
9072
9073 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9074
9075         * real.c (encode_ibm_extended): Do round low word.
9076
9077 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9078
9079         * config/arm/arm.md (is_xscale): Comment this attribute and move
9080         it a bit further up in the file, closer to related attributes.
9081
9082 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9083
9084         * config/host-solaris.c (sol_gt_pch_use_address): Add
9085         missing terminating marker to comment.
9086
9087 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9088
9089         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9090         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9091         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9092         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9093         move_operand as source predicate in all cases.
9094         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9095         Test reg_or_0_operand.  Use move_operand as source predicate.
9096         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9097         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9098         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9099         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9100         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9101         Use move_operand as source predicate.  Remove 'K' constraint.
9102         (*movqi_internal): Likewise movqi_internal.
9103         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9104         reg_or_0_operand.  Use move_operand as source predicate.
9105         (*movsf_softfloat): Likewise movsf_internal2.
9106         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9107         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9108         (*movdf_softfloat): Likewise movdf_internal2.
9109         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9110         for DImode if !TARGET_64BIT.
9111         (mips_legitimize_move): Simplify accordingly.
9112
9113 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9114
9115         PR/14362
9116         * var-tracking.c (struct variable_def): Added field refcount.
9117         (variable_htab_free): Decrease the refcount and delete variable
9118         only if there are no more references.
9119         (unshare_variable): New function.
9120         (vars_copy_1): Increase refcount instead of copying the variable.
9121         (variable_union): Share the variables where possible, unshare
9122         the variables if needed.
9123         (variable_different_p): Return false if var1 and var2 are
9124         the same structure.
9125         (variable_was_changed): Init the refcount of new variable.
9126         (set_frame_base_location): Unshare variable if needed.
9127         (set_variable_part): Init the refcount of new variable.
9128         Unshare the variables if needed.
9129         (delete_variable_part): Unshare the variables if needed.
9130         (emit_notes_for_differences_1): Init the refcount of new variable.
9131         (vt_add_function_parameters): Do not add function parameters to
9132         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9133         (vt_initialize): Do not add frame_base_decl to IN set of
9134         ENTRY_BLOCK_PTR because it is unused anyway.
9135
9136 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9137
9138         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9139         (vars_copy): Likewise.
9140         (variable_union): Likewise.
9141         (set_variable_part): Likewise.
9142         (delete_variable_part): Likewise.
9143
9144 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9145
9146         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9147         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9148         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9149         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9150         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9151         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9152         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9153         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9154         config/stormy16/stormy16.c: Fix comment typos and formatting.
9155
9156 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9157
9158         * configure: Regenerate, since I forgot to while committing Paolo's
9159         changes.
9160
9161 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9162
9163         PR ada/14131
9164         Move language detection to the top level.
9165         * configure.ac: Remove code to detect languages,
9166         it now lives exclusively in the top level.
9167         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9168         top level, renamed to ACX_PROG_GNAT.
9169
9170 2004-03-10  Richard Henderson  <rth@redhat.com>
9171
9172         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9173         extra arguments.
9174         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9175         and host_xmake_file fragments.
9176         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9177         (gt_pch_restore): Similarly for gt_pch_use_address.
9178         (default_gt_pch_get_address): New.
9179         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9180         (default_gt_pch_use_address): Split out of gt_pch_restore.
9181         (mmap_gt_pch_use_address): Likewise.
9182         * hooks.c (hook_voidp_size_t_null): Remove.
9183         (hook_bool_voidp_size_t_false): Remove.
9184         * hooks.h: Likewise.
9185         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9186         default_ or mmap_ definitions.
9187         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9188         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9189         and gt_pch_use_address.
9190         * config/host-linux.c, config/host-solaris.c: New files.
9191         * config/x-linux, config/x-solaris: New files.
9192         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9193         Update for changed definition.
9194         (darwin_rs6000_gt_pch_use_address): Likewise.
9195         * doc/hostconfig.texi: Update docs.
9196
9197 2004-03-10  Richard Henderson  <rth@redhat.com>
9198
9199         PR c/14517
9200         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9201         except for pedantic c90 mode.
9202
9203 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9204
9205         * configure.ac: Bump AC_PREREQ to 2.59.
9206         * configure: Regenerate.
9207
9208 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9209
9210         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9211         (exp10_optab, exp2_optab): Define corresponding macros.
9212         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9213         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9214         using exp10?f2 and exp2?f2 patterns.
9215         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9216         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9217         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9218         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9219
9220         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9221         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9222         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9223
9224 2004-03-10  Anthony Green  <green@redhat.com>
9225
9226         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9227
9228 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9229
9230         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9231         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9232         __LONGDOUBLE128.
9233         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9234         TARGET_OS_AIX_CPP_BUILTINS.
9235         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9236         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9237         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9238         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9239         previous change.
9240
9241 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9242
9243         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9244
9245 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9246
9247         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9248         __LONGDOUBLE128 on AIX.
9249
9250 2004-03-10  Andrew Haley  <aph@redhat.com>
9251
9252         PR optimization/14381
9253         * function.c (expand_function_end): Emit a blockage insn before
9254         the epilogue when -fnon-call-exceptions is used.
9255
9256         * except.c (expand_start_all_catch): Make comment more accurate.
9257
9258 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9259
9260         PR target/14480
9261         * config/rs6000/t-rtems: Add missing file on branch.
9262
9263 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9264
9265         * dbxout.c (dbxout_symbol_location): Do not output references
9266         to optimized-out constant pool symbols.
9267
9268 2004-03-10  Andreas Schwab  <schwab@suse.de>
9269
9270         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9271         twon34_r.
9272
9273 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9274
9275         * alias.c (alias_sets_might_conflict_p): New.
9276         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9277         * common.opt (Wstrict-aliasing=): New.
9278         * flags.h (warn_strict_aliasing): Change type to int.
9279         * opts.c (warn_strict_aliasing): Change type to int.
9280         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9281         * tree.h (alias_sets_might_conflict_p): Declare it.
9282         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9283
9284 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9285
9286         PR bootstrap/12371
9287         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9288         (CALL_USED_REGISTERS): Likewise.
9289         (REG_CLASS_CONTENTS): Likewise.
9290         (REG_ALLOC_ORDER): New.
9291         (REGNO_REG_CLASS): Use regno_reg_class.
9292         * config/m68k/m68k.c: Add regno_reg_class array.
9293
9294 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9295
9296         * config/ia64/ia64.md (divsi3): Fix algorithm.
9297           (udivsi3): Ditto.
9298           (setf_exp_xf): Remove '*' from name.
9299         * testsuite/gcc.dg/20040309-1.c: New test.
9300
9301 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9302
9303         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9304         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9305         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9306         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9307         (sparc_aout_select_rtx_section): Don't check
9308         SUNOS4_SHARED_LIBRARIES.
9309         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9310
9311 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9312
9313         PR other/14474
9314         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9315         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9316         INTERNALS".
9317
9318 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9319
9320         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9321         (LIBGCC_SPEC): Update to match.
9322
9323 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9324
9325         * c-decl.c (last_function_parms, last_function_parm_tags)
9326         (last_function_parm_others, current_function_parms)
9327         (current_function_parm_tags, current_function_parm_others):
9328         Delete.
9329         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9330         New macros.
9331         (grokdeclarator): For function definitions, save the arg-info
9332         block from the declarator in DECL_ARGUMENTS.
9333         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9334         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9335         contains only PARM_DECLs.  Improve diagnostics.
9336         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9337         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9338         (store_parm_decls_newstyle): Take the function to operate on,
9339         and an arg-info block, as arguments; don't get anything from
9340         current_function_* globals.
9341         (store_parm_decls_oldstyle): Likewise.
9342         (store_parm_decls): Pass fndecl and its arg-info block down to
9343         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9344         argument lists through store_parm_decls_newstyle to reduce
9345         overhead.
9346         (pushdecl): Comment on the problems with the call to copy_node.
9347         Clear DECL_ARGUMENTS of the old node after copying it, if it
9348         is an arg-info block instead of a chain of decls.
9349         (start_function): Do not manipulate current_function_parm* or
9350         last_function_parm*.
9351
9352 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9353             Andrew Pinski  <pinskia@physics.uc.edu>
9354
9355         * ifcvt.c (noce_try_sign_mask): New function to transform
9356         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9357         (noce_process_if_block): Call noce_try_sign_mask.
9358
9359 2004-03-09  Andrew Pinski  <apinski@apple.com>
9360
9361         * c-typeck.c (tagged_types_tu_compatible_p):
9362         Fix typo.
9363
9364 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9365
9366         * simplify-rtx.c (simplify_const_relational_operation): New function
9367         renamed from simplify_relational_operation.
9368         (simplify_relational_operation): Change prototype to accept an
9369         additional mode argument.  Call simplify_const_relational_operation.
9370         (simplify_gen_relational): Update simplify_relational_operation call.
9371         (simplify_ternary_operation): Update simplify_relational_operation
9372         subroutine call to use simplify_const_relational_operation instead.
9373
9374         * rtl.h (simplify_const_relational_operation): Prototype here.
9375         (simplify_relational_operation): Add addtional mode argument.
9376
9377         * combine.c (combine_simplify_rtx): Update calls to
9378         simplify_relational_operation.
9379         (simplify_set): Likewise.
9380         (gen_binary): Likewise.
9381         * cse.c (fold_rtx): Likewise.
9382         * dojump.c (compare_from_rtx): Likewise.
9383         (do_compare_rtx_and_jump): Likewise.
9384         * integrate.c (subst_constants): Likewise.
9385         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9386
9387 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9388
9389         * config/m32r/m32r.md: Remove all define_peephole's.
9390
9391 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9392
9393         * config/rs6000/rs6000.md: Remove trailing whitespace.
9394
9395 2004-03-08  Eric Christopher  <echristo@redhat.com>
9396
9397         * Makefile.in (site.exp): Add libiconv variable definition.
9398
9399 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9400
9401         * configure: Regenerate for config/accross.m4 correction.
9402
9403 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9404
9405         PR target/14480
9406         * config/rs6000/t-rtems: Add missing file on branch.
9407
9408 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9409
9410         PR middle-end/14289
9411         * c-typeck.c (c_mark_addressable): A register variable should
9412         be considered global if its not automatic, i.e. TREE_PUBLIC,
9413         TREE_STATIC or DECL_EXTERNAL.
9414         * function.c (put_var_into_stack): Call abort when placing a
9415         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9416
9417 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9418
9419         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9420         ("*extendqisi2_short_displ"): Likewise.
9421
9422 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9423
9424         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9425         (comp_operator): Likewise.
9426         * config/pdp11/pdp11-protos.h: Remove corresponding
9427         prototypes.
9428
9429 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9430
9431         * expr.c (highest_pow2_factor_for_type): Rename into
9432         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9433         TYPE_ALIGN when the target is a COMPONENT_REF.
9434         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9435
9436 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9437
9438         * config/rs6000/rs6000.c: Formatting fix.
9439         (legitimate_offset_address_p): Correct offset range check.
9440
9441         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9442         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9443         and MASK_STRING.
9444
9445 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9446
9447         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9448         for little endian.
9449         ("ashrdi3_no_power"): Disable for little endian.
9450         (ashrdi3): Same.
9451
9452 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9453
9454         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9455         builtins.
9456
9457 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9458
9459         PR target/14471
9460         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9461         case, checking for -no-mul-bug-abort option.
9462         * configure, config.in: Regenerate.
9463         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9464         and -mno-mul-bug-workaround.
9465         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9466         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9467         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9468         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9469         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9470         sure mulu.d is not last on cache-line.
9471         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9472         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9473         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9474         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9475         -mno-mul-bug-workaround.
9476         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9477         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9478         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9479         relation to MULT in head comment.
9480         (cris_op_str): Abort for MULT.
9481         (cris_print_operand) <case '!'>: New case.
9482
9483 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9484
9485         PR debug/11983
9486         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9487         dw_val_class_vec.  Replace use throughout file.
9488         (dw_float_const): Delete.
9489         (dw_vec_const): New.
9490         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9491         throughout file.
9492         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9493         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9494         (size_of_die): Adjust dw_val_class_vec sizing.
9495         (output_die): Output dw_val_class_vec.
9496         (insert_int, extract_int, insert_float): New functions.
9497         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9498         Handle CONST_VECTOR.
9499         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9500
9501 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9502
9503         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9504         AltiVec abi cannot co-exist.
9505
9506         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9507
9508 2004-03-07  Jan Hubicka  <jh@suse.cz>
9509
9510         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9511
9512 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9513
9514         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9515         ("*lshrsi3"): Also accept an immediate for 68HC12.
9516         ("*ashrsi3_const"): Likewise.
9517         ("*ashrsi3"): Likewise.
9518         ("*ashlsi3_const"): Likewise.
9519         ("*ashlsi3"): Likewise.
9520         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9521         comparing with a pop; don't use a split for that.
9522         ("cmphi split"): Disable compare split for 68HC12.
9523
9524         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9525         the status operands if they have side effects.
9526
9527 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9528
9529         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9530         definition.
9531         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9532         config/h8300/h8300.h, config/ia64/ia64.h,
9533         config/mcore/mcore.h, config/mmix/mmix.h,
9534         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9535         config/stormy16/stormy16.h, config/v850/v850.h,
9536         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9537         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9538         definition.
9539
9540 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9541
9542         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9543         <XOR_EXPR>: Fold x ^ x as zero.
9544         <AND_EXPR>: Fold x & x as x.
9545
9546 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9547
9548         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9549         "foo++ == const" into "++foo == const+incr".
9550
9551 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9552
9553         * config/mips/mips.c (mips_in_small_data_p): Return false if
9554         TARGET_ABICALLS.
9555
9556 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9557
9558         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9559         the stack register.
9560         (expand_prologue): Don't make an interrupt or a trap handler a far
9561         symbol.
9562         (m68hc11_initial_elimination_offset): Likewise.
9563
9564 2004-03-06  Richard Henderson  <rth@redhat.com>
9565
9566         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9567
9568 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9569
9570         * config/ns32k/ns32k-protos.h: Add a prototype for
9571         ns32k_notice_update_cc.
9572         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9573         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9574         ns32k_notice_update_cc.
9575
9576 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9577
9578         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9579         "*load_multiple_si"): Allow only if reload_completed.
9580         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9581         Likewise.
9582
9583 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9584
9585         * config/vax/vax-protos.h: Add a prototype for
9586         vax_notice_update_cc.
9587         * config/vax/vax.c (vax_notice_update_cc): New.
9588         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9589         vax_notice_update_cc.
9590
9591 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9592
9593         * collect2.c (main): Only export initfunc and finifunc if
9594         LD_INIT_SWITCH not defined.
9595         (scan_prog_file): Only export constructors and destructors if
9596         LD_INIT_SWITCH not defined.  Only export symbols not found in
9597         shared objects.
9598
9599 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9600
9601         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9602         last.
9603         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9604         from calls to gen_icacheflush.
9605
9606 2004-03-06  Richard Henderson  <rth@redhat.com>
9607
9608         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9609         (TARGET_LONG_DOUBLE_128): New.
9610         (TARGET_SWITCHES): Add long-double-{128,64}.
9611         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9612         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9613         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9614         (WIDEST_HARDWARE_FP_SIZE): New.
9615         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9616         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9617         if TARGET_VAX_FLOAT.
9618         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9619         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9620
9621 2004-03-06  Richard Henderson  <rth@redhat.com>
9622
9623         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9624         botched rtx class conversion.
9625
9626 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9627
9628         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9629         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9630
9631         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9632         macros.
9633         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9634
9635 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9636
9637         PR target/14343
9638         * config/i386/i386.md (movv2di_internal): Conditionalize on
9639         TARGET_SSE, not TARGET_SSE2.
9640
9641 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9642
9643         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9644         duplicated line.
9645
9646 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9647
9648         * builtins.c: Consistently use logN not log* in comments.
9649
9650 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9651
9652         * rtl.h (mem_expr_equal_p): Function prototype added.
9653         * cfgcleanup.c (merge_memattrs): New function.
9654         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9655         * emit-rtl.c (mem_expr_equal_p): New function.
9656
9657 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9658
9659         * objc/objc-act.c (synth_module_prologue): Const-qualify
9660         objc_selector type if using the GNU runtime; fix generated
9661         signatures for objc_msg_lookup and objc_msg_lookup_super
9662         to match what GNU ObjC headers provide; reformat and clean up.
9663         (synth_self_and_ucmd_args): Use previously constructed (and
9664         hence possibly const-qualified) objc_selector type.
9665
9666 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9667
9668         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9669
9670 2004-03-05  Jason Merrill  <jason@redhat.com>
9671
9672         * tree.h (TYPE_HASH): Use TYPE_UID.
9673         (TREE_HASH): New macro with old definition of TYPE_HASH.
9674         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9675         (build_array_type, build_function_type): Likewise.
9676         (build_method_type_directly): Likewise.
9677         (build_offset_type, build_complex_type): Likewise.
9678         (type_hash_list, attribute_hash_list): Likewise. Now static.
9679         * except.c: s/TYPE_HASH/TREE_HASH/.
9680
9681 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9682
9683         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9684         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9685         __va_ndx by 2 words when referencing an argument on the stack.
9686         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9687         words when an arg on the stack is first seen.
9688
9689 2004-03-05  Paul Brook  <paul@codesourcery.com>
9690
9691         * arm.h (ARM_FLAG_VFP): Remove.
9692         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9693         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9694
9695 2004-03-05  Paul Brook  <paul@codesourcery.com>
9696
9697         * function.c (assign_parms): Include pretend alignment offset.
9698
9699 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9700
9701         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9702         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9703
9704 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9705
9706         * configure.ac: When passing --enable-languages to subdir
9707         configure when host != build, make sure we don't pass an empty
9708         value.
9709         * configure: Regenerate.
9710
9711 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9712
9713         PR 13577
9714         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9715         options.
9716
9717 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9718
9719         * simplify-rtx.c (simplify_relational_operation): If
9720         flag_wrapv is set, do not move terms between the two
9721         side of a relational operator.
9722
9723 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9724
9725         * rtlanal.c: Include target.h and output.h
9726         (rtx_cost, address_cost, default_address_cost): Move from...
9727         * cse.c (rtx_cost, address_cost, default_address_cost):
9728         ... this file.
9729         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9730         * Makefile.in: Adjust dependencies.
9731
9732 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9733
9734         * cse.c (cse_end_of_basic_block): Make static.
9735         * local-alloc.c (function_invariant_p): Move to
9736         reload1.c.
9737         * loop.c (libcall_other_reg, record_excess_regs):
9738         Make static.
9739         * reload1.c (function_invariant_p): Moved here
9740         from local-alloc.c, made static.
9741         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9742         libcall_other_reg, record_excess_regs): Remove
9743         declarations.
9744
9745 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9746
9747         * config/m32r/m32r.c (signed_comparison_operator): Add a
9748         missing parenthesis.
9749
9750 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9751
9752         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9753         going to call mmap again.  Read the file into the right place.
9754         Give a fatal error if we have to relocate.
9755
9756 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9757
9758         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9759         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9760
9761 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9762
9763         PR other/14354
9764         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9765         round the same.  When rounding, clear bits that would cause a
9766         second rounding in pack_d.
9767         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9768
9769 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9770
9771         PR c++/14425, c++/14426
9772         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9773         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9774         Change C++ definitions to accept a 'const int' argument;
9775         the prototypes already do.
9776         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9777         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9778         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9779         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9780         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9781         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9782         end in ..._int; change them to accept an int instead of a char
9783         as the last parameter.
9784
9785 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9786
9787         * genmultilib:  Change '=' to '-' when translating option names
9788         to directory names.
9789
9790 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9791
9792         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9793         stack slot for temp used for result of BLKmode but in integral mode.
9794
9795 2004-03-04  Jan Hubicka  <jh@suse.cz>
9796
9797         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9798
9799         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9800         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9801
9802 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9803
9804         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9805         * testsuite/gcc.dg/20040303-1.c: New test.
9806
9807 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9808
9809         * ppro.md: Rewrite as a DFA pipeline description.
9810         * i386.md: Remove all uses of the ppro_uops attribute.
9811         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9812         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9813         ix86_sched_reorder, ix86_variable_issue,
9814         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9815         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9816         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9817         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9818         * athlon.md (athlon_ssecmp_load): Fix comment
9819
9820 2004-03-04  Stuart Hastings  <stuart@apple.com>
9821
9822         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9823
9824 2004-03-04  Stuart Hastings  <stuart@apple.com>
9825
9826         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9827         686, tell Darwin assembler to allow prefetch insns, non-empty def
9828         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9829
9830 2004-03-04  DJ Delorie  <dj@redhat.com>
9831
9832         PR optimization/14282
9833         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9834         between a call and the assignment of its return value.
9835
9836 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9837
9838         * config/h8300/h8300.c: Put a comment for every function.
9839
9840 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9841
9842         * config/h8300/h8300.md: Add comments about peephole2's.
9843
9844 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9845
9846         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9847
9848 2004-03-04  Jan Hubicka  <jh@suse.cz>
9849
9850         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9851         * cselib.c (cselib_record_memory): New static variable.
9852         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9853         Give up on memories when asked for.
9854         (cselib_init): Accept new argument.
9855         * cselib.h (cselib_init): Update prototype.
9856         * gcse.c (local_cprop_pass): Update call of cselib_init.
9857         * loop.c (load_mems): Update call of cselib_init.
9858         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9859         * sched-deps.c (sched_analyze): Update call of cselib_init.
9860
9861 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9862             GP <gp@qnx.com>
9863
9864         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9865         when compiling PIC.
9866
9867 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9868
9869         PR/14362
9870         * var-tracking.c (track_expr_p): Do not track variables which
9871         should be ignored for debugging purposes.
9872
9873 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9874
9875         * real.c (encode_ibm_extended): Don't bother rounding low double.
9876         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9877         when fmt->pnan < fmt->p.
9878
9879 2004-03-04  Eric Christopher  <echristo@redhat.com>
9880
9881         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9882         only range of valid arg registers and fixed_regs.
9883
9884 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9885
9886         PR target/14406
9887         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9888         (abstf2, abstf2_internal): New define_expand.
9889
9890 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9891
9892         PR optimization/14235
9893         * expr.c (convert_move): Copy the source to a new pseudo
9894         when converting from a sub-word source to a larger-than-word
9895         register which conflicts with the source.
9896
9897 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9898
9899         PR 13728
9900         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9901         parameters with the same name, unless one is a forward decl.
9902         Do not issue a redundant-redeclaration warning for forward
9903         decls of parameters.
9904
9905 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9906
9907         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9908         configuration.
9909
9910 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9911
9912         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9913
9914 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9915
9916         * target-def.h (TARGET_OPTF): Delete.
9917         * c-opts.c (TARGET_OPTF): Define.
9918
9919 2004-03-04  Jan Hubicka  <jh@suse.cz>
9920
9921         * cselib.c (cselib_finish): Fix another miss-application of my previous
9922         patch.
9923
9924 2004-03-03  Mike Stump  <mrs@apple.com>
9925
9926         Add framework support for darwin.
9927
9928         * c-incpath.c: Include target.h and machmode.h.
9929         (add_path): Use a consistent style for cpp_dir.  Initialize
9930         p->construct to 0.
9931         (add_cpp_dir_path): New.
9932         (register_include_chains): Add use of extra_includes callback.
9933         (hook_void_int): Add.
9934         (target_c_incpath): Add.
9935         * c-incpath.h (add_cpp_dir_path): New.
9936         (target_c_incpath_s): Add.
9937         (target_c_incpath): Add.
9938         (C_INCPATH_INIT): Add.
9939         * c-opts.c (c_common_missing_argument,
9940         c_common_handle_option): Add -F argument processing.
9941         * c.opt: Add -F argument processing.
9942         * gcc.c (trad_capable_cpp): Add -F argument processing.
9943         * cppfiles.c (find_file_in_dir): Update to use construct
9944         callback.
9945         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9946         cpp_get_prev): New.
9947         (_cpp_find_file): Use search_path_exhausted.
9948         (make_cpp_dir): Initialize construct to 0.
9949         * cpplib.h (missing_header_cb
9950         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9951         (cpp_callbacks): Add missing_header
9952         (cpp_dir): Add construct.
9953         * target-def.h: (TARGET_OPTF): New.
9954         * hooks.c (hook_void_int, hook_void_charptr): Add.
9955         * hooks.h (hook_void_int, hook_void_charptr): Add.
9956         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9957         $(MACHMODE_H) dependencies.
9958         * doc/invoke.texi (Darwin Options): Document -F.
9959         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9960         (TARGET_OPTF): Add.
9961         * fix-header.c (target_c_incpath): Add.
9962
9963         * config/darwin-c.c: Add c-incpath.h include.
9964         (using_frameworks, find_subframework_file,
9965         find_subframework_header, add_system_framework_path,
9966         frameworks_in_use, num_frameworks, max_frameworks,
9967         add_framework, find_framework, struct framework_header,
9968         framework_header_dirs, framework_construct_pathname,
9969         find_subframework_file, add_system_framework_path,
9970         add_framework_path, framework_defaults,
9971         darwin_register_frameworks, find_subframework_header): Add.
9972         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9973         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9974         (CPP_SPEC): Add __APPLE_CC__ support.
9975         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9976
9977 2004-03-04  Jan Hubicka  <jh@suse.cz>
9978
9979         * cselib.c (cselib_finish): Fix miss-application of my previous
9980         patch.
9981
9982 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9983
9984         * hooks.c (hook_tree_tree_identity): New.
9985         * hooks.h: Add a prototype for hook_tree_tree_identity.
9986         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9987         instead of MD_ASM_CLOBBERS.
9988         * system.h (MD_ASM_CLOBBERS): Poison.
9989         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9990         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9991         * target.h (gcc_target): Add md_asm_clobbers.
9992         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9993         (ix86_md_asm_clobbers): New.
9994         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9995         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9996         TARGET_MD_ASM_CLOBBERS.
9997
9998 2004-03-03  Stuart Hastings  <stuart@apple.com>
9999
10000         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10001
10002 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10003
10004         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10005
10006         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10007         (ASM_DOUBLE): Likewise.
10008         (ASM_LONGDOUBLE): Likewise.
10009         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10010
10011 2003-03-03  Richard Henderson  <rth@redhat.com>
10012
10013         PR opt/13862
10014         * cselib.c (cselib_record_sets): Don't record multiple sets in
10015         asm insns.
10016
10017 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10018
10019         * common.opt: Add description of the new -fgcse-after-reload flag.
10020
10021         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10022
10023         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10024         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10025         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10026         get_bb_avail_insn, hash_scan_set_after_reload,
10027         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10028         gcse_after_reload, get_bb_avail_insn): New functions to implement
10029         gcse-after-reload.
10030         (gcse_after_reload_main): New function, the main entry point to
10031         gcse-after-reload.
10032
10033         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10034
10035         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10036
10037         * toplev.c (flag_gcse_after_reload): Initialization.
10038
10039         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10040
10041         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10042         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10043         the gcse after reload optimization.
10044
10045         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10046         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10047         parameters.
10048
10049         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10050
10051 2004-03-03  Nicolas Pitre <nico@cam.org>
10052
10053         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10054         small negative values.
10055
10056 2004-03-03  Jan Hubicka  <jh@suse.cz>
10057
10058         * cselib.c (hash_table):  Remove GTY marker.
10059         (reg_values): Turn into array.
10060         (used_regs): Likewise.
10061         (n_used_regs): New static variable.
10062         (reg_values_old): Kill.
10063         (clear_table): Update uses of arrays.
10064         (cselib_lookup): Likewise.
10065         (cselib_record_set): Likewise.
10066         (cselib_init): Likewise.
10067         (cselib_finish): Likewise.
10068         (cselib_udpate_varray_sizes): Kill.
10069         * cselib.h (cselib_update_varray_sizes): Kill.
10070
10071 2004-03-03  Paul Brook  <paul@codesourcery.com>
10072
10073         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10074
10075 2004-03-03  Jan Hubicka  <jh@suse.cz>
10076
10077         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10078         Rename from ...; make statistics transparent.
10079         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10080         (loc_descriptor): New structure.
10081         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10082         add_statistics):
10083         New static function.
10084         (ggc_record_overhead, dump_statistics): New global function.
10085         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10086         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10087         from ...; accept locations
10088         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10089         ggc_realloc, ggc_alloc_typed):  ... this one.
10090         from ...; accept locations
10091         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10092         ggc_alloc_stat): Rename from ... ; pass locations
10093         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10094         ... this one.
10095         (ggc_alloc_stat): Record overehead.
10096         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10097         ggc_realloc, ggc_alloc_typed):  Turn to macros
10098         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10099         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10100         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10101         * langhooks.h (lhd_make_node): Declare.
10102         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10103         * langhooks.c (lhd_make_node): New.
10104         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10105         locations.
10106         (rtx_alloc, swallow_copy_rtx): ... this one.
10107         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10108         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10109         * toplpev.c (finalize): Dump stats.
10110         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10111         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10112         Rename from ... ; pass locators.
10113         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10114         build?,  build_decl): Declare.
10115         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10116         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10117         Declare.
10118         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10119         build?,  build_decl): New macros.
10120         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10121         * statistics.h: New file.
10122
10123 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10124             Richard Sandiford  <rsandifo@redhat.com>
10125
10126         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10127         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10128         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10129         * config/mips/mips.c (mips_output_division): Fill the branch delay
10130         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10131         TARGET_FIX_R4400.
10132         (mips_output_division): Adjust accordingly.
10133         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10134         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10135
10136 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10137
10138         * alias.c (rtx_equal_for_memref_p): Use predicates
10139         to test rtx classes and new rtx class codes, possibly
10140         splitting conditionals that tested against '<' and 'o'.
10141         * caller-save.c (save_call_clobbered_regs): Likewise.
10142         * combine.c (contains_muldiv, find_split_point, subst,
10143         combine_simplify_rtx, simplify_if_then_else,
10144         simplify_set, simplify_logical, expand_compound_operation,
10145         make_compound_operation, if_then_else_cond, known_cond,
10146         apply_distributive_law, cached_nonzero_bits,
10147         cached_num_sign_bit_copies, simplify_shift_const,
10148         gen_binary, simplify_comparison, update_table_tick,
10149         record_value_for_reg, get_lsat_value_validate): Likewise.
10150         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10151         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10152         Likewise.
10153         * emit-rtl.c (copy_insn_1): Likewise.
10154         * expr.c (force_operand): Likewise.
10155         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10156         * flow.c (notice_stack_pointer_modification_1,
10157         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10158         and_reg_cond, elim_reg_cond): Likewise.
10159         * function.c (update_epilogue_consts): Likewise.
10160         * genattrtab.c (attr_rtx_1): Likewise.
10161         * genopinit.c (gen_insn): Likewise.
10162         * integrate.c (subst_constants): Likewise.
10163         * jump.c (reversed_comparison_code_parts,
10164         reversed_comparison_code, delete_related_insns,
10165         rtx_renumbered_equal_p): Likewise.
10166         * local-alloc.c (block_alloc): Likewise.
10167         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10168         canonicalize_condition): Likewise.
10169         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10170         Likewise.
10171         * optabs.c (add_equal_node, expand_binop): Likewise.
10172         * predict.c (estimate_probability): Likewise.
10173         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10174         * recog.c (validate_replace_rtx_1, comparison_operator,
10175         offsettable_address_p, constrain_operands): Likewise.
10176         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10177         Likewise.
10178         * regclass.c (scan_one_insn): Likewise.
10179         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10180         * regrename.c (kill_autoinc_value): Likewise.
10181         * reload.c (find_reusable_reload, find_reloads,
10182         reg_overlap_mentioned_for_reload_p): Likewise.
10183         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10184         * rtl.c (copy_rtx): Likewise.
10185         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10186         * rtlanal.c (commutative_operand_precedence): Likewise.
10187         * sched-deps.c (conditions_mutex_p): Likewise.
10188         * sched-rgn.c (is_cfg_nonregular): Likewise.
10189         * simplify-rtx.c (simplify_gen_binary,
10190         simplify_gen_relational, simplify_replace_rtx,
10191         simplify_unary_operation, simplify_binary_operation,
10192         simplify_ternary_operation, simplify_rtx): Likewise.
10193         * unroll.c (reg_dead_after_loop): Likewise.
10194         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10195         print_operand): Likewise.
10196         * config/arc/arc.c (proper_comparison_operator): Likewise.
10197         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10198         Likewise.
10199         * config/avr/avr.c (_reg_unused_after): Likewise.
10200         * config/frv/frv.c (frv_ifcvt_modify_tests,
10201         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10202         * config/i386/i386.c (ix86_comparison_operator,
10203         ix86_carry_flag_operator, fcmov_comparison_operator,
10204         arith_or_logical_operator, print_operand,
10205         ix86_expand_binary_operator, ix86_binary_operator_ok):
10206         Likewise.
10207         * config/i386/i386.md: Likewise.
10208         * config/ia64/ia64.c (not_postinc_memory_operand,
10209         ia64_print_operand, update_set_flags, errata_emit_nops):
10210         Likewise.
10211         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10212         CONSTRAINT_OK_FOR_S): Likewise.
10213         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10214         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10215         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10216         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10217         Likewise.
10218         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10219         eqne_comparison_operator, signed_comparison_operator):
10220         Likewise.
10221         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10222         Likewise.
10223         * config/mmix/mmix (mmix_foldable_comparison_operator,
10224         mmix_comparison_operator): Likewise.
10225         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10226         * config/rs6000/rs6000.c (stmw_operation,
10227         branch_comparison_operator, trap_comparison_operator,
10228         ccr_bit): Likewise.
10229         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10230         * config/s390/s390.c (s390_alc_comparison,
10231         s390_slb_comparison):L Likewise.
10232         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10233         Likewise.
10234         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10235         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10236         emit_hard_tfmode_operation, reg_unused_after)
10237         * doc/md.texi, doc/rtl.texi: Likewise.
10238
10239         * ra-debug.c: Add 2004 to list of copyright years.
10240         * unroll.c: Likewise.
10241
10242         * combine.c (simplify_logical): Remove dummy test,
10243         (apply_distributive_law): Fix typo in comment.
10244         GET_CODE (x) == AND so x is a commutative binary op.
10245         * jump.c (delete_related_insns): simplify loop
10246         condition, move testing of RTX codes inside the loop.
10247         (rtx_renumbered_equal_p): do not use RTX_CODE.
10248         * rtl.c (rtx_class): Declare as enum rtx_class.
10249         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10250         Move to RTX_COMM_COMPARE class.
10251         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10252         Move to RTX_CONST_OBJ class.
10253         * rtl.h (enum rtx_class): New declaration,
10254         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10255         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10256         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10257         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10258         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10259         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10260         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10261         OBJECT_P): New macros.
10262         * config/sparc/sparc.c (noov_compare_op): Remove register
10263         from parameter.
10264
10265 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10266
10267         * target.h: Remove texi jargons in comments.
10268
10269 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10270
10271         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10272         threshold to 0x4f.
10273
10274         Revert:
10275         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10276         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10277         as well.
10278         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10279         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10280
10281 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10282
10283         * doc/md.texi (cbranchmode4): New.
10284
10285 2004-03-02  Eric Christopher  <echristo@redhat.com>
10286
10287         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10288         fix_trunc.
10289         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10290         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10291         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10292         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10293
10294 2004-03-02  Richard Henderson  <rth@redhat.com>
10295
10296         PR middle-end/11767
10297         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10298         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10299         before the compare, if flag_non_call_exceptions.
10300
10301 2004-03-02  Richard Henderson  <rth@redhat.com>
10302
10303         PR middle-end/14327
10304         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10305         emitting the label, not after.
10306
10307 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10308
10309         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10310         (m68hc11_mov_addr_mode): Likewise.
10311         (m68hc11_override_options): Initialize them based on target.
10312         (register_indirect_p): Allow a MEM for indirect addressing modes and
10313         use flags to control what is allowed.
10314         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10315         supported addressing modes.
10316         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10317         (go_if_legitimate_address_internal): Likewise.
10318         (m68hc11_indirect_p): Likewise and check the mode.
10319         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10320
10321 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10322
10323         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10324         (expand_builtin_setjmp_setup): Use
10325         targetm.builtin_setjmp_frame_value instead of
10326         BUILTIN_SETJMP_FRAME_VALUE.
10327         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10328         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10329         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10330         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10331         * targhooks.c (default_builtin_setjmp_frame_value): New.
10332         * targhooks.h: Add a prototype for
10333         default_builtin_setjmp_frame_value.
10334         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10335         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10336
10337 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10338
10339         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10340         sequences of moves.
10341         (add peepholes): New peepholes to optimize sequences adding small
10342         constants.
10343         (bset peepholes): New peepholes to transform an OR in a bset form
10344         (bclr peepholes): Likewise for bclr form.
10345         (cmp peepholes): New peepholes to avoid register copies when comparing.
10346
10347 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10348
10349         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10350         to separate push from moves.
10351         ("*pushdf_internal"): Likewise.
10352         ("*pushsf_internal"): Likewise.
10353         ("*pushsi_internal"): Likewise.
10354         ("movdi_internal"): Use define_insn_and_split; non push operand.
10355         ("movdf_internal"): Likewise.
10356         ("movsf_internal"): Likewise.
10357         ("movsi_internal"): Likewise.
10358         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10359         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10360         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10361
10362 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10363
10364         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10365         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10366         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10367         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10368         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10369         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10370         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10371         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10372         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10373         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10374         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10375
10376 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10377
10378         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10379         (SOFT_XY_REGNUM): Define.
10380         (cmp split): Use the above instead of hard coded numbers.
10381         (8-bit op split): No need to check the mode; allow Q_REG.
10382         (ashift split): Adjust the first operand if it uses the SP and we
10383         are pushing the shifted value.
10384         (plus shift split): Fix when a source is in register D+X.
10385         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10386
10387 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10388
10389         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10390         comparing with Z register.
10391
10392 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10393
10394         * cfgloop.h (struct loop_desc): Removed.
10395         (struct loop): Fields simple, desc and has_desc removed.
10396         (simple_loop_p, count_loop_iterations): Declaration removed.
10397         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10398         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10399         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10400         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10401         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10402         simple_condition_p, simple_increment, count_strange_loop_iterations,
10403         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10404         Removed.
10405         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10406
10407 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10408
10409         * genattrtab.c: Don't handle MATCH_INSN.
10410         * genrecog.c: Likewise.
10411         * gensupport.c: Likewise.
10412         * rtl.def (match_insn): Remove.
10413         * doc/md.texi (match_insn, match_insn2): Remove.
10414
10415 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10416
10417         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10418         macro results in memory allocation.
10419
10420 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10421
10422         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10423         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10424         %(fbsd_dynamic_linker),
10425         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10426         config/i386/freebsd.h
10427         * config/arm/freebsd.h: Ditto.
10428         * config/i386/freebsd.h: Ditto.
10429         * config/i386/freebsd64.h: Ditto.
10430         * config/ia64/freebsd.h: Ditto.
10431         * config/rs6000/sysv4.h: Ditto.
10432         * config/sparc/freebsd.h: Ditto.
10433
10434 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10435
10436         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10437
10438 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10439
10440         * rtl.def (define_combine): Remove.
10441
10442 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10443
10444         * config/h8300/h8300.md: Tweak formatting.
10445
10446 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10447
10448         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10449         *cmphi_h8300_znvc.
10450         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10451
10452 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10453
10454         PR bootstrap/14356
10455         * gcc.c (process_command): Remove const-qualification from argv.
10456         (main): Likewise.
10457
10458 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10459
10460         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10461         pushqi1_h8300hs_advanced.  Adjust its caller.
10462         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10463         Adjust its caller.
10464
10465 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10466
10467         * Makefile.in (install-libgcc, install-multilib): Pass
10468         mkinstalldirs var to libgcc.mk.
10469
10470 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10471
10472         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10473         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10474
10475 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10476
10477         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10478         * config/h8300/h8300.md: Split several peephole2's, each into
10479         two.
10480
10481 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10482
10483         * dominance.c (recount_dominator): Handle postdominators.
10484
10485 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10486
10487         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10488         (NUM_SYMBOL_TYPES): Likewise.
10489         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10490         (mips_unspec_address): Declare.
10491         (mips_gotoff_page, mips_gotoff_global): Delete.
10492         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10493         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10494         (mips_symbolic_constant_p, mips_symbolic_address_p)
10495         (mips_symbol_insns): Handle new symbol types.
10496         (general_symbolic_operand): New predicate.
10497         (mips_unspec_address): Make extern.
10498         (mips_gotoff_page, mips_gotoff_global): Delete.
10499         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10500         Handle new symbol types.
10501         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10502         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10503         mips_unspec_address directly.
10504         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10505         the documentation of -mexplicit-relocs.
10506
10507 2004-03-01  Jeff Law  <law@redhat.com>
10508
10509         * fold-const.c (fold): An equality comparison of a non-weak object
10510         against zero has a known result.  Similarly an equality comparison
10511         of the address of two non-weak, unaliased symbols has a known result.
10512
10513         * ggc-page.c (struct page_entry): New field PREV.
10514         (ggc_alloc): Update PREV field appropriately.
10515         (sweep_pages): Likewise.
10516         (ggc_free): Likewise.  Use PREV field rather than loop to
10517         improve ggc_free performance.
10518
10519 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10520
10521         * config/mips/mips.c (mips_output_division): Use the division
10522         instruction to fill the delay slot of a zero check.
10523         (mips_idiv_insns): Adjust accordingly.
10524
10525 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10526
10527         * config.gcc: Create a default tmake_file for linux, and use
10528         it in all but two linux clauses.  Comment those two.
10529
10530 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10531
10532         * combine.c (try_combine):  Do not refer to is_replaced.
10533         (gen_lowpart_for_combine):  Perverse subregs now have a
10534         more politically correct name.
10535         * cse.c (cse_insn): Likewise.
10536         * jump.c: Fix bogus reference to delete_insn.
10537
10538 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10539
10540         PR debug/14328
10541         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10542         constants as signed values.
10543
10544         PR middle-end/13448
10545         * c-tree.h (readonly_warning): Rename to ...
10546         (readonly_error): ... this.
10547         * c-typeck.c (build_unary_op): Adjust accordingly.
10548         (readonly_warning): Rename to ...
10549         (readonly_error): ... this and issue errors, not warnings.
10550         (build_modify_expr): Call readonly_error, not readonly_warning.
10551         (c_expand_asm_operands): Likewise.
10552         * tree-inline.c (optimize_inline_calls): Do not inline functions
10553         after errors have occurred.
10554
10555 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10556
10557         * configure.ac: Rearrange some threading code for clarity;
10558         add section comment.
10559         * configure: Regenerate.
10560
10561 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10562
10563         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10564         typos.
10565         * doc/cppopts.texi: Fix a typo.
10566
10567 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10568
10569         * config/i386/i386.md: Fix formatting.
10570
10571 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10572
10573         * configure.ac: Add some comments delineating sections of code.
10574
10575         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10576
10577         * doc/install.texi: Fix idiot typo in previous commit.
10578
10579         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10580
10581 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10582
10583         * config/h8300/h8300.md: Add comments about peephole2's.
10584
10585 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10586
10587         * config/h8300/h8300.md: Tweak operand numbers of some
10588         peephole2's.
10589
10590 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10591
10592         * config/h8300/h8300.md: Tweak comments about peephole2's.
10593
10594 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10595
10596         PR middle-end/14203
10597         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10598         instead of testing whether DECL_RTL is not NULL.
10599
10600 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10601
10602         * config/sh/sh.c: Fix formatting.
10603
10604 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10605
10606         * config/sh/sh.c: Convert to ISO-C.
10607
10608 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10609
10610         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10611         my previous patch.
10612
10613         * config/darwin.h (machopic_finish): Output stub even if the
10614         symbol is already defined.
10615
10616 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10617
10618         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10619
10620 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10621
10622         * genattr.c (main): Don't define
10623         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10624         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10625         (DFA_PIPELINE_INTERFACE): Likewise.
10626         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10627         (DFA_PIPELINE_INTERFACE): Likewise.
10628
10629 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10630
10631         * config/mips/mips.md (tstsi, tstdi): Delete.
10632
10633 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10634
10635         * config/mips/mips.c (override_options): Remove an obsolete
10636         duplicate definition of the "e" constraint.
10637         * config/mips/mips.h: Update a comment accordingly.
10638
10639 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10640
10641         * config/mips/mips.md: Complete the unfinished R4000
10642         multiply/shift errata workaround.  Improve documentation.
10643         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10644         has a hilo hazard.
10645         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10646         (muldi3, muldi3_internal): Likewise.
10647         (muldi3_internal2): Remove, replacing with...
10648         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10649         (mulsidi3): Take the errata into account.
10650         (mulsidi3_32bit): Remove, replacing with...
10651         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10652         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10653         (umulsidi3): Take the errata into account.
10654         (umulsidi3_32bit): Remove, replacing with..
10655         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10656         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10657         TARGET_FIX_R4000.
10658         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10659         (smuldi3_highpart, umuldi3_highpart): Likewise.
10660         * doc/invoke.texi: Document the errata workaround.
10661
10662 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10663
10664         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10665         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10666         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10667         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10668         * config/mips/mips.c (mips_idiv_insns): New function.
10669         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10670         (mips_output_division): Add a workaround for the R4000 divide/shift
10671         errata.
10672         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10673         the length of an "idiv" instruction.
10674         * doc/invoke.texi: Document the new switches.
10675
10676 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10677
10678         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10679         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10680
10681 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10682
10683         PR optimization/14229
10684         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10685
10686 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10687
10688         * fold-const.c (fold): Strip NOPs that change the signedness
10689         for RSHIFT too.  Expand comment.
10690
10691 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10692
10693         PR optimization/7871
10694         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10695         from or to call insns.
10696
10697 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10698
10699         PR optimization/7871
10700         * flow.c (propagate_one_insn): Interpret calls as setting global
10701         registers, not merely clobbering them.
10702
10703 2004-02-27  Dale Johannesen  <dalej@apple.com>
10704
10705         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10706         config/darwin-protos.h:  Ditto.
10707         config/darwin.h:  Remove call to it.
10708         * combine.c (distribute_notes): Do not place a REG_DEAD note
10709         when value is both set and used.
10710
10711 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10712
10713         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10714         as well.
10715         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10716         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10717
10718 2004-02-27  Andrew Pinski  <apinski@apple.com>
10719
10720         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10721         Speedup common case of the type values being in the same order.
10722
10723 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10724
10725         * config/ia64/ia64.h (no-inline-float-divide): New option.
10726         * config/ia64/ia64.h (no-inline-int-divide): New option.
10727         * config/ia64/ia64.h (no-inline-sqrt): New option.
10728         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10729         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10730         * config/ia64/ia64.c (ia64_override_options): Modify error
10731         checking for inlined division/sqrt.
10732
10733 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10734
10735         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10736         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10737         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10738         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10739         copyright.
10740
10741 2004-02-27  Paul Brook  <paul@codesourcery.com>
10742
10743         * function.c (assign_parms): Don't count pretend args for alignment.
10744
10745 2004-02-27  Richard Henderson  <rth@redhat.com>
10746
10747         * passes.c: New file.
10748         * Makefile.in (OBJS-common): Add it.
10749         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10750         * flags.h (rtl_dump_and_exit): ... here.
10751         * output.h (size_directive_output, last_assemble_variable_decl):
10752         Move from toplev.c.
10753         * rtl.h (reg_alloc): Move from toplev.c.
10754         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10755         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10756         open_dump_file, close_dump_file, rest_of_decl_compilation,
10757         rest_of_type_compilation, rest_of_handle_final,
10758         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10759         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10760         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10761         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10762         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10763         rest_of_handle_tracer, rest_of_handle_if_conversion,
10764         rest_of_handle_if_after_combine, rest_of_handle_web,
10765         rest_of_handle_branch_prob,
10766         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10767         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10768         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10769         rest_of_handle_null_pointer, rest_of_handle_combine,
10770         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10771         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10772         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10773         (decode_d_option): Use enable_rtl_dump_file.
10774         (compile_file, finalize, do_compile): Move profile+combine+graph
10775         cleanup to finish_optimization_passes.
10776         * toplev.h (init_optimization_passes, finish_optimization_passes,
10777         enable_rtl_dump_file): Declare.
10778
10779 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10780             Roger Sayle  <roger@eyesopen.com>
10781
10782         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10783         operands to build a tree with swapped operands.
10784         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10785         'unsignedp' predicate to specify the signedness.
10786
10787 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10788
10789         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10790         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10791         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10792         comment typos and formatting.  Follow spelling conventions.
10793
10794 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10795
10796         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10797         fix_truncsfsi2.
10798
10799         * config/rs6000/spe.md: Delete spe_efsctuiz.
10800         Add spe_fixuns_truncsfsi2.
10801         Add spe_fix_truncsfsi2.
10802
10803 2004-02-26  Eric Christopher  <echristo@redhat.com>
10804
10805         * c-lex.c (c_lex_string_translate): New variable.
10806         (lex_string): Use to determine string translation.
10807         * c-pragma.h: Prototype.
10808         * c-parse.in (start_string_translation): New. Set above.
10809         (stop_string_translation): Ditto.
10810         (attribute, attribute_list, asm_def, asm_stmt,
10811         asm_operand): Use above functions.
10812         * cp/parser.c (cp_parser_declaration): Translate strings
10813         unless token is RID_EXTERN. Set c_lex_string_translate
10814         for recursive use.
10815         (cp_parser_asm_definition): Only translate argument strings
10816         to asms.
10817         (cp_parser_asm_operand_list): Ditto.
10818         (cp_parser_attribute_list): Do not translate attribute strings.
10819
10820 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10821
10822         * stmt.c (expand_start_case_dummy): Remove.
10823         * tree.h: Remove the corresponding prototype.
10824
10825 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10826
10827         * builtins.c (apply_args_register_offset): Remove.
10828         * tree.h: Remove the corresponding prototype.
10829
10830 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10831
10832         * stor-layout.c (is_pending_size): Remove.
10833         * tree.h: Remove the corresponding prototype.
10834
10835 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10836
10837         * recog.c (validate_replace_src): Remove.
10838         * recog.h: Remove the corresponding prototype.
10839
10840 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10841
10842         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10843         MAYBE_REG_PARM_STACK_SPACE.
10844         * function.c: Likewise.
10845         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10846         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10847         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10848         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10849
10850 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10851
10852         * c-decl.c (c_expand_deferred_function): Remove.
10853         * c-tree.h: Remove the corresponding prototype.
10854
10855 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10856
10857         * postreload.c (reload_cse_move2add): Generate just a PLUS
10858         instead of an entire SET.
10859
10860 2004-02-26  Jan Hubicka  <jh@suse.cz>
10861
10862         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10863         /pentium4m.
10864         * i386.c (override_options): Add support for new CPUs.
10865         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10866         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10867         constants.
10868         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10869
10870 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10871
10872         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10873
10874 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10875
10876         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10877         (sparc_emit_fixunsdi): New prototype.
10878         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10879         (sparc_emit_fixunsdi): New function.
10880         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10881         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10882         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10883         to sparc_emit_floatunsdi.
10884         (fixuns_truncsfdi2): New expander.
10885         (fixuns_truncdfdi2): Likewise.
10886
10887 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10888
10889         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10890         unless HAVE_cc0.
10891
10892 2004-02-25  Richard Henderson  <rth@redhat.com>
10893
10894         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10895         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10896         use (op0-op1) == 0 if op0 is a pointer.
10897         * config/alpha/alpha.md (cmpdi): Use some_operand.
10898         (three comparison combine splits): Remove.
10899
10900 2004-02-25  Richard Henderson  <rth@redhat.com>
10901
10902         PR c/12794
10903         * c-common.c (handle_alias_attribute): Reject the attribute if
10904         current_function_decl is set.
10905
10906 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10907
10908         * config.gcc: Add comment describing extra_gcc_objs.
10909         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10910         * configure.ac (extra_gcc_objs): New substitution variable.
10911         (host_extra_gcc_objs): Don't substitute.
10912         * configure: Regenerate.
10913         * Makefile.in: Use extra_gcc_objs.
10914
10915 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10916
10917         * doc/contrib.texi: Add an entry for myself.
10918
10919 2004-02-25  Jan Hubicka  <jh@suse.cz>
10920
10921         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10922         * cfgbuild.c (make_eh_edge):  Make global.
10923         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10924         * except.c (build_post_landing_pads, connect_post_landing_pads,
10925         dw2_build_landing_pads, sjlj_emit_function_enter,
10926         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10927         sjlj_build_landing_pads): Update CFG.
10928         (emit_to_new_bb_before): New function.
10929         (finish_eh_generation): Do not rebuild the CFG.
10930
10931 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10932
10933         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10934         target_cpu_default defines.
10935         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10936         * pa.h (TARGET_DEFAULT): Likewise.
10937
10938 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10939
10940         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10941         comparisons with regard to signedness.
10942
10943 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10944
10945         * arm.c (thumb_legitimize_address): New function.
10946         * arm-protos.h: Prototype it.
10947         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10948         (LEGITIMIZE_ADDRESS): Use it.
10949
10950 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10951
10952         * reload1.c (reload): Only spill eliminable register with multiple
10953         adjacent elimination alternatives if all alternatives fail.
10954
10955 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10956
10957         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10958         is -4095...+4095 inclusive.
10959
10960 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10961
10962         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10963         the bootstrap failure with Sun CC 5.4 and 5.5.
10964
10965 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10966
10967         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10968         which modifies NEWREG.
10969         (cse_condition_code_reg): Update the mode of CC_REG in
10970         CC_SRC_INSN on our own.
10971
10972 2004-02-24  Michael Matz  <matz@suse.de>
10973
10974         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10975         regparm attributes.
10976
10977 2004-02-24  Richard Henderson  <rth@redhat.com>
10978
10979         * toplev.c (dump_file_tbl): Rename from dump_file.
10980         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10981         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10982         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10983         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10984         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10985         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10986         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10987         s/rtl_dump_file/dump_file/g.
10988
10989 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10990
10991         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10992         (spe_fixuns_truncsfsi2): Delete.
10993
10994         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10995         (fixuns_truncsfsi2): Delete.
10996
10997 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10998
10999         PR/14240
11000         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11001
11002 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11003
11004         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11005
11006 2004-02-24  Jason Merrill  <jason@redhat.com>
11007
11008         * tree.c (check_qualified_type): New fn.
11009         (get_qualified_type): Use it.  If type already has the desired
11010         quals, just return it.
11011         * tree.h: Declare it.
11012
11013 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11014
11015         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11016         TARGET_SCHED_FINISH_GLOBAL): New macros.
11017
11018         * target.h (md_init_global, md_finish_global): Function
11019         declarations corresponding to new target macros.
11020
11021         * haifa-sched.c (sched_init, sched_finish): Allow target to
11022         call the new schedular hooks.
11023
11024         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11025         call to update_life_info.
11026
11027         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11028         flag_schedule_insns for SH4.
11029
11030         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11031         find_set_regmode_weight, find_insn_regmode_weight,
11032         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11033         sh_variable_issue, high_pressure, ready_reorder,
11034         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11035         functions used to throttle the insn movement in first
11036         scheduling pass for SH.
11037
11038         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11039         TARGET_SCHED_FINISH_GLOBAL.
11040
11041 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11042
11043         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11044         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11045         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11046         symbols in sections named by the user.
11047         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11048         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11049         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11050         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11051         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11052         the above.
11053         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11054         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11055         one more pseudo to further improve code generation.
11056         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11057         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11058         inside UNSPEC.
11059         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11060         * config/frv/frv.c (frv_legitimate_address_p): Added
11061         allow_double_reg_p argument.  Adjust all callers.  Use it to
11062         decide whether to enable double-register indirect addressing.
11063         (frv_funcdesc_alias_set): Remove.
11064         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11065         register.  Emit movdi_ldd.
11066         (ldd_address_operand): New.
11067         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11068         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11069         (PREDICATE_CODES): Add ldd_address_operand.
11070         * config/frv/frv.md (movdi_ldd): New.
11071         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11072         intermediate computations if possible.
11073         (symGOTOFF2reg_i): Fix harmless typo.
11074         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11075         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11076         relocated p_vaddr to vaddr type.
11077         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11078         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11079         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11080         MEM, or use a funcdesc alias set.  Use regular move instead of
11081         ldd.
11082         (dbl_memory_one_insn_operand): Recognize function descriptors by
11083         type or by alias set, and don't split them.
11084         * config/frv/frv.md (call, call_value): Never use call_internal
11085         for fdpic.
11086         (call_internal, call_value_internal): Never match for FDPIC.
11087         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11088         call_value_fdpicsi): Require FDPIC.
11089         (ldd): Removed.
11090         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11091         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11092         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11093         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11094         FDPIC.  Compute data base address.
11095         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11096         before the other self-specs are processed.
11097         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11098         Build with -fPIC.
11099         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11100         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11101         inhibit_libc is defined.
11102         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11103         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11104         __FRV_FDPIC__.
11105         (__RELOC_POINTER): Define.
11106         (_Unwind_IteratePhdrCallback): Use it.
11107         * config/frv/frv.h (Twrite): Define.
11108         (TRANSFER_FROM_TRAMPOLINE): Use it.
11109         * config/frv/linux.h (INVOKE__main): Undefine.
11110         (Twrite): Override.
11111         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11112         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11113         (-mlibrary-pic): Emphasize that this option generates EABI code.
11114         (-mcpu): Add fr550.
11115         (-mpack): Remove.
11116         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11117         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11118         and CONSTs in FDPIC mode.
11119         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11120         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11121         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11122         constants.
11123         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11124         rather than 'i' constraint for the 2-instruction alternative.
11125         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11126         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11127         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11128         EXTRA_CONSTRAINT_FOR_Y.
11129         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11130         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11131         (addsi3): Change 'Y' constraint to 'Q'.
11132         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11133         * reload.c (CONST_POOL_OK_P): New macro.
11134         (find_reloads): Use it to decide whether a constant can be forced
11135         into memory.
11136         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11137         constant satisfies got12_operand.
11138         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11139         (frv_legitimate_address_p): Check for valid unspec offsets using
11140         got12_operand rather than frv_legitimate_fdpic_operand_p.
11141         (frv_legitimate_fdpic_operand_p): Delete.
11142         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11143         or after reload.
11144         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11145         TARGET_FDPIC.
11146         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11147         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11148         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11149         (frv_fdpic_fptr_operand): Don't declare here.
11150         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11151         rather than fdpic_got12_operand.
11152         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11153         got12_operand and const_unspec_operand.
11154         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11155         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11156         (symbolic_operand): Remove.
11157         (const_unspec_operand): New predicate.
11158         * config/frv/frv.md (*movsi_got): Use got12_operand.
11159         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11160         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11161         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11162         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11163         * config/frv/frv.c (frv_unspec): New structure.
11164         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11165         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11166         validate CONST indices.  Use frv_output_const_unspec to print them.
11167         (frv_print_operand): Update call to unspec_got_name.  Use
11168         frv_output_const_unspec to print constant unspecs.
11169         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11170         Reject UNSPECs otherwise.
11171         (unspec_got_name): Take the relocation number as argument, not an
11172         rtx containing it.
11173         (frv_output_addr_const_extra): Remove, replacing with...
11174         (frv_output_const_unspec): ...this new function.
11175         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11176         (gpr_or_int12_operand): Use fdpic_got12_operand.
11177         (dbl_memory_one_insn_operand): Likewise.
11178         (fdpic_got12_operand): Use frv_const_unspec_p.
11179         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11180         are already legitimate.  Use frv_small_data_reloc_p when deciding
11181         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11182         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11183         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11184         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11185         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11186         label, for real this time.
11187         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11188         representation of visibility.
11189         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11190         such.
11191         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11192         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11193         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11194         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11195         it was explicitly disabled.
11196         (frv_stack_info): There is no need to save the link register in every
11197         frame unless TARGET_LINKED_FP is true.
11198         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11199         frame pointer if the stack pointer might change value.
11200         (frv_return_addr_rtx): Check and process "count" argument.
11201         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11202         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11203         (frv_find_base_term): Declare.
11204         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11205         (FIND_BASE_TERM): Define.
11206         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11207         small_data_register_operand, small_data_symbolic_operand.  Add
11208         symbolic_operand.
11209         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11210         (frv_print_operand_memory_reference, output_move_single): Remove
11211         special handling for unlegitimized sdata addresses.
11212         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11213         and symbolic addresses.
11214         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11215         (frv_find_base_term): New function.
11216         (int_2word_operand): Check specifically for symbolic address constants.
11217         (pic_register_operand, pic_symbolic_operand): Delete.
11218         (small_data_register_operand, small_data_symbolic_operand): Delete.
11219         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11220         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11221         (move_source_operand): Only accept CONSTs if they're a two-insn
11222         symbolic constant.
11223         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11224         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11225         using gen_symGOTOFF2reg*.
11226         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11227         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11228         themselves a cost of 3 insns.
11229         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11230         Change predicate to symbolic_operand.
11231         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11232         (*movsi_lda_sdata): Delete.
11233         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11234         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11235         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11236         frv-*-*linux*.
11237         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11238         label.
11239         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11240         -multilib-library-pic.
11241         (LINK_SPEC): Add -z text for -mfdpic.
11242         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11243         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11244         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11245         Override.
11246         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11247         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11248         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11249         crtstuff-generated files.
11250         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11251         * config.gcc: Add frv-*-*linux*.
11252         * config/frv/linux.h, config/frv/t-linux: New.
11253         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11254         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11255         when -mfdpic even if a linker script is explicitly listed.
11256         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11257         * config/frv/frv.c (frv_override_options): Clear asm_out
11258         unaligned_op for SImode on FDPIC.
11259         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11260         argument passed to decl_readonly_section.
11261         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11262         whole block run with FDPIC even with -fno-PIC.
11263         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11264         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11265         symbol or label plus offset to memory.
11266         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11267         GOTOFF and GPREL for LABEL_REF.
11268         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11269         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11270         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11271         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11272         * doc/invoke.texi: Document them.
11273         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11274         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11275         (frv_splittable_got_operand): Removed.
11276         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11277         LO_SUM.  Add comments.
11278         (frv_override_options): Moved enabling of FDPIC to
11279         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11280         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11281         (frv_legitimize_fdpic_address): Don't duplicate logic in
11282         frv_emit_movsi.
11283         (frv_gen_GPsym2reg): New.
11284         (unspec_got_name): Added gprel.
11285         (frv_expand_fdpic_call): Add support for inlining PLTs.
11286         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11287         (gpr_or_int12_operand): Added GPREL12.
11288         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11289         (small_data_symbolic_operand): Fail if FDPIC.
11290         (fdpic_splittable_got_operand): Removed.
11291         (fdpic_got12_operand): Added GPREL12.
11292         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11293         when appropriate.  Fix sdata GOTOFF.
11294         (frv_legitimate_constant_p): Require legitimate PIC operand for
11295         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11296         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11297         flag_pic case.
11298         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11299         frv_assemble_integer fails.
11300         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11301         (SUBTARGET_DRIVER_SELF_SPECS): New.
11302         (ASM_SPEC): Don't pass -mno-fdpic.
11303         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11304         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11305         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11306         -multilib-library-pic.
11307         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11308         condexec_si_media_operator, condexec_sf_add_operator and
11309         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11310         and condexec_sf_unary_operator.
11311         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11312         New.
11313         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11314         movsi_internal.  Give them internal names.  movsi_got has type
11315         int.
11316         (fdpic got splitters): Remove.
11317         (symGPREL2reg, symGPREL2reg_hilo): New.
11318         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11319         to -mlibrary-pic.  Map -multilib-library-pic to it.
11320         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11321         Document.
11322         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11323         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11324         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11325         (frv_cannot_force_const_mem): New function.
11326         (const_small_data_p, plus_small_data_p): Update comments on sdata
11327         on FDPIC.
11328         (frv_override_options): Set flag_pie for FDPIC too.
11329         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11330         call-saved registers on FDPIC.
11331         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11332         don't force LR to be preserved.
11333         (frv_expand_prologue): Likewise.
11334         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11335         (frv_frame_pointer_required): Don't force it just because the
11336         FDPIC register is used.
11337         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11338         operand only if !condexec_p.
11339         (frv_legitimize_address): Return the FDPIC-legitimized address.
11340         Don't match small data here on FDPIC.
11341         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11342         symbols.  Use TRUE/FALSE instead of 1/0.
11343         (frv_local_funcdesc_p): New.
11344         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11345         immediates when possible.
11346         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11347         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11348         an UNSPEC_GOT.
11349         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11350         12-bit immediates when possible.
11351         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11352         are not legitimate pic operands.
11353         (frv_in_small_data_p): Re-enable for FDPIC.
11354         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11355         (FRV_GLOBAL_P): Removed.
11356         * config/frv/frv.md: Add modes to CONSTs.
11357         (movsi_got): New.
11358         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11359         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11360         (fdpic splittable operations): Match on flag_pic != 1.
11361         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11362         * config/frv/frv.c (frv_asm_out_constructor,
11363         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11364         bytes, not bits.
11365         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11366         * config/frv/frv.c (frv_assemble_integer): Reject complex
11367         expressions referencing function SYMBOL_REFs.
11368         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11369         (move_source_operand): Reject CONSTs that reference function
11370         SYMBOL_REFs on FDPIC.
11371         (frv_emit_movsi): If we get such a CONST, break it up.
11372         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11373         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11374         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11375         MEM.
11376         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11377         (frv_trampoline_size): Increase for FDPIC.
11378         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11379         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11380         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11381         Disable use of GOTOFF for now.
11382         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11383         Disable use of small data in FDPIC for now.
11384         (frv_asm_output_mi_thunk): Implement for FDPIC.
11385         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11386         * config/frv/frv.c (frv_asm_out_constructor): Use
11387         frv_assemble_integer for FDPIC pointers.
11388         (frv_asm_out_destructor): Likewise.
11389         * config/frv/frv.md (ldd): Fix order of operands.  Use
11390         address_operand for input.
11391         2003-09-18  DJ Delorie  <dj@redhat.com>
11392         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11393         (unspec_got_name): Correct typo.
11394         (frv_emit_movsi): Pre-expand splittable GOTs.
11395         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11396         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11397         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11398         * config/frv/t-frv: Add -mfdpic multilibs.
11399         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11400         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11401         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11402         flag_pic, default to 32-bit pics, require DWORD ops.
11403         (frv_override_options): Add W and Z constraints.
11404         (frv_expand_prologue): No pic prologue for -mfdpic.
11405         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11406         (frv_print_operand_memory_reference): Handle GOT constants.
11407         (frv_legitimate_address_p): Allow GOT constants.
11408         (frv_legitimize_address): Handle GOT addresses too.
11409         (frv_legitimate_fdpic_operand_p): New.
11410         (frv_legitimize_fdpic_address): New.
11411         (unspec_got_name): New.
11412         (frv_output_addr_const_extra): New.
11413         (frv_expand_fdpic_call): New.
11414         (frv_fdpic_fptr_operand): New.
11415         (gpr_or_int12_operand): Handle GOT operands.
11416         (int_2word_operand): Handle GOT operands.
11417         (fdpic_operand): New.
11418         (fdpic_splittable_got_operand): New.
11419         (fdpic_got12_operand): New.
11420         (frv_emit_movsi): Handle GOT operands.
11421         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11422         (frv_print_operand): Support 'g' code for GOT operands.
11423         * config/frv/frv-protos.h: Add prototypes as needed.
11424         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11425         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11426         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11427         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11428         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11429         R_FRV_GOTOFFLO): New.
11430         (movsi_high_got, movsi_lo_sum_got): New.
11431         (*movsi_pic): Don't use this splitter for -mfdpic.
11432         (addsi3): Allow GOT references also.
11433         (call, call_value): Handle -mfdpic separately.
11434         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11435         call_value_fdpicsi): New.
11436         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11437         symGOTOFF2reg_i): New.
11438         * config/frv/frv.h (MASK_FDPIC): New.
11439         (TARGET_FDPIC): New.
11440         (TARGET_SWITCHES): Add -mfdpic.
11441         (FDPIC_FPTR_REGNO): New.
11442         (FDPIC_REGNO): New.
11443         (OUR_FDPIC_REG): New.
11444         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11445         FDPIC_CALL_REGS.
11446         (REG_CLASS_NAMES): Likewise.
11447         (REG_CLASS_CONTENTS): Likewise.
11448         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11449         (EXTRA_CONSTRAINT): Add it here.
11450         (FRV_GLOBAL_P): New.
11451         (OUTPUT_ADDR_CONST_EXTRA): New.
11452
11453 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11454
11455         * config/sparc/sparc.h: Remove commented-out definitions of
11456         TARGET_EDOM and GEN_ERRNO_RTX.
11457
11458 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11459
11460         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11461         df_analyse with df_analyze.
11462
11463 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11464
11465         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11466         beginning of block.
11467
11468 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11469
11470         * calls.c (precompute_arguments): Update comment.
11471
11472 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11473
11474         * et-forest.c: Replace et_occurences with et_occurrences.
11475
11476 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11477
11478         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11479         with iv_analyze.
11480
11481 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11482
11483         * config/i386/i386.c: Rename pni to sse3.
11484         * config/i386/i386.h: Likewise.
11485         * config/i386/i386.md: Likewise.
11486         * config/i386/pmmintrin.h: Likewise.
11487         * doc/extend.texi: Likewise.
11488         * doc/invoke.texi: Likewise.
11489
11490 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11491             Kazu Hirata  <kazu@cs.umass.edu>
11492
11493         Remove -fwritable-strings.
11494         * c-common.c (fix_string_type): Don't check
11495         flag_writable_strings.
11496         (fix_string_type): Likewise.
11497         * c-opts.c (set_std_c89): Don't initialize
11498         flag_writable_strings.
11499         (set_std_c99): Likewise.
11500         * common.opt (fwritable-strings): Remove.
11501         * flags.h: Remove the external declaration of
11502         flag_writable_strings.
11503         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11504         Remove.
11505         * toplev.c (flag_writable_strings): Remove.
11506         (f_options): Remove an entry for writable-strings.
11507         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11508         flag_writable_strings.
11509         (compare_constant) <STRING_CST>: Likewise.
11510         (build_constant_desc): Likewise.
11511         * config/darwin.c (machopic_select_section): Likewise.
11512         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11513         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11514         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11515         * config/mips/mips.c (mips_select_section): Likewise.
11516         (mips_encode_section_info): Likewise.
11517         * config/pa/pa.c (pa_select_section): Likewise.
11518         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11519         * config/v850/v850.c (v850_select_section): Likewise.
11520         * doc/invoke.texi (-fwritable-strings): Remove.
11521         (-fno-const-strings): Don't mention -fwritable-strings.
11522         * doc/trouble.texi: Don't mention -fwritable-strings.
11523
11524 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11525
11526         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11527
11528 2004-02-23  Dale Johannesen  <dalej@apple.com>
11529
11530         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11531         (movdf_hardfloat64):  Ditto.
11532         (movdf_softfloat64):  Ditto.
11533
11534 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11535         * config/rs6000/rs6000.c (function_arg): call to
11536         rs6000_mixed_function_arg for DFmode moved to allow
11537         normal DFmode incoming register assignment.
11538
11539 2004-02-23  Dale Johannesen  <dalej@apple.com>
11540
11541         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11542         (movdf_hardfloat64):  Ditto.
11543
11544 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11545
11546         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11547         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11548         copyright.
11549
11550 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11551
11552         PR c/14156
11553         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11554         to use DECL_P instead.
11555
11556         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11557         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11558
11559 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11560
11561         * Makefile.in (opts.o): Depend on target.h.
11562         * opts.c (decode_options): Use targetm.default_short_enums
11563         instead of DEFAULT_SHORT_ENUMS.
11564         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11565         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11566         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11567         * target.h (gcc_target): Add default_short_enums.
11568         * config/cris/cris.h: Remove a comment about
11569         DEFAULT_SHORT_ENUMS.
11570         * config/ip2k/ip2k.h: Likewise.
11571         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11572         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11573
11574 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11575             Falk Hueffner  <falk@debian.org>
11576
11577         PR c/14188
11578         * builtins.c (expand_builtin_va_arg): Emit an informative message
11579         if a trap is generated.
11580         * c-typeck.c (build_function_call): Likewise.
11581
11582 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11583
11584         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11585         fopen.
11586         * libgcov.c: Include sys/stat.h.
11587         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11588         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11589         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11590         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11591
11592 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11593
11594         * reorg.c: Remove comments about dead ports.
11595
11596 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11597
11598         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11599         extra host object file when targetting cygwin rather than generic
11600         object files.
11601
11602 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11603
11604         Merge from tree-ssa:
11605         2003-11-20  Richard Henderson  <rth@redhat.com>
11606
11607                 * tree-inline.c (insert_decl_map): New.
11608                 (remap_decl, remap_type, remap_block, copy_body_r,
11609                 initialize_inlined_parameters, declare_return_variable,
11610                 remap_save_expr): Use it.
11611
11612         * function.c (copy_body_r): Add mapping from id->ret_label to
11613         id->ret_label.  Revert test for ret_label.
11614
11615 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11616
11617         * genoutput.c (process_template): Strip trailing whitespace in @
11618         templates and issue a warning if there was any.
11619
11620 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11621
11622         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11623         object file when targetting cygwin.
11624         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11625         overridden by top-level Makefile.
11626
11627 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11628
11629         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11630         the x87's load constant instructions when optimizing for size.
11631
11632 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11633
11634         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11635         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11636         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11637         * fold-const.c: Likewise.
11638         * simplify-rtx.c: Likewise.
11639
11640 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11641
11642         * combine.c (can_combine_p): Don't ignore SETs marked with
11643         REG_EH_REGION notes.
11644         (try_combine): When attemting to fix unrecognized insns, don't
11645         split a PARALLEL that contains the original i2.
11646
11647 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11648
11649         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11650         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11651         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11652         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11653         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11654         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11655         portion of header.
11656         (__altivec_link_error_invalid_argument): Remove prototype; will use
11657         __builtin_altivec_compiletime_error("vec_*") instead.
11658         (vec_*): Fix/complete set of available operation overloads given the
11659         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11660         cv-correctness of pointer arguments; in C, always check for correct
11661         argument types before macro expansion.
11662         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11663         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11664         '-W[no-]altivec-long-deprecated' switches.
11665         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11666         '__vector', '__pixel' and '__bool' macros using
11667         '__attribute__((altivec(...)))' types.
11668         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11669         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11670         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11671         New type nodes.
11672         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11673         handling '-W[no-]altivec-long-deprecated'.
11674         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11675         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11676         altivec_expand_dst_builtin): Remove casts from integer literals.
11677         (altivec_expand_builtin): Likewise; handle expansion of new
11678         '__builtin_altivec_compiletime_error' function.
11679         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11680         types, and make them distinct from other vector types; register
11681         '__builtin_altivec_compiletime_error' function.
11682         (print_operand): For 'P', print a full target register name instead of
11683         merely its number.
11684         (rs6000_attribute_table): Add "altivec" attribute.
11685         (rs6000_handle_altivec_attribute): New function.
11686         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11687         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11688         maps to).
11689         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11690         declare.
11691         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11692
11693 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11694
11695         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11696         check.
11697         (shift_mix4left+2): Delete redundant pattern.
11698
11699 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11700
11701         * alias.c (OUTGOING_REGNO): Don't define the default.
11702         * builtins.c (OUTGOING_REGNO): Likewise.
11703         (INCOMING_REGNO): Likewise.
11704         (apply_args_register_offset): Always use OUTGOING_REGNO.
11705         * combine.c (OUTGOING_REGNO): Likewise.
11706         * sibcall.c (OUTGOING_REGNO): Likewise.
11707         * defaults.h (INCOMING_REGNO): Provide the default.
11708         (OUTGOING_REGNO): Likewise.
11709
11710 2004-02-21  Jan Hubicka  <jh@suse.cz>
11711
11712         * params.def (max-peeled-insns, max-completely-peeled-insns,
11713         max-once-peeled-insns): Set to 400.
11714
11715 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11716
11717         PR c++/12007
11718         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11719         are set for parameters before outputing debugging information.
11720
11721 2004-02-20  Falk Hueffner  <falk@debian.org>
11722
11723         PR target/14201
11724         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11725         numbers.
11726
11727 2004-02-20  Per Bothner  <per@bothner.com>
11728
11729         * input.h:  Don't #include line-map.h.  It may cause link problems
11730         with undefined linemap_line_start when line-map.h is included but
11731         line-map.o is not linked, as currently happens with gengtype on
11732         compilers that don't support inline.
11733         * toplev.c:  So we do have to explicitly #include line-map.h here.
11734
11735 2004-02-20  Richard Henderson  <rth@redhat.com>
11736
11737         * doc/invoke.texi: Add -Wvariadic-macros.
11738
11739 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11740
11741         * haifa-sched.c (sched_emit_insn): Remove.
11742         * sched-int.h: Remove the corresponding prototype.
11743
11744 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11745
11746         Revert:
11747         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11748         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11749         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11750         * config/cris/cris.h: Remove a comment about
11751         DEFAULT_SHORT_ENUMS.
11752         * config/ip2k/ip2k.h: Likewise.
11753         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11754
11755 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11756             Tom Tromey  <tromey@redhat.com>
11757
11758         * doc/install.texi: Moved --disable-libgcj and
11759         --with-system-zlib documentation to new section for
11760         Java-specific options.
11761         Added explicit Cross-Compiler-Specific Options subheading.
11762         Added section for Java-specific options.
11763
11764 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11765
11766         * doc/install.texi (Building the Ada compiler): Remove
11767         example.
11768
11769 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11770
11771         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11772
11773 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11774
11775         * gcc.c (process_command): Allow translation of the copyright
11776         symbol but not the rest of the copyright message.
11777         * gcov.c (print_version): Likewise.  Allow translation of the
11778         message about warranty.
11779
11780 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11781
11782         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11783         predicate.
11784         ("*andsi_clear"): Tweak constraints to not match postincrement.
11785         Adjust the predicate to exclude a volatile memory reference.
11786         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11787         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11788
11789 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11790
11791         * move-if-change: Remove.
11792         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11793         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11794         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11795         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11796         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11797         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11798
11799 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11800
11801         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11802         for operand2.  Add condition that requires register_operand operand2
11803         before reload.
11804
11805 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11806             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11807
11808         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11809         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11810
11811 2004-02-19  Richard Henderson  <rth@redhat.com>
11812
11813         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11814         * tree.c (build0, build1, build2, build3, build4): Split out from...
11815         (build): ... here.  Call them.
11816         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11817
11818         * convert.c (convert_to_integer): Remove extra build argument.
11819         * tree-inline.c (expand_call_inline): Likewise.
11820
11821 2004-02-19  Richard Henderson  <rth@redhat.com>
11822
11823         * c-opts.c (warn_variadic_macros): New.
11824         (c_common_handle_option): Set it.
11825         (sanitize_cpp_opts): Copy it to cpp_opts.
11826         * c.opt (Wvariadic-macros): New.
11827         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11828         * cppinit.c (cpp_create_reader): Initialize it.
11829         * cppmacro.c (parse_params): Check it.
11830
11831 2004-02-19  David Daney <ddaney@avtrex.com>
11832
11833         PR preprocessor/14198
11834         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11835         builtin_assert ("machine=mips")
11836
11837 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11838
11839         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11840         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11841         * config/cris/cris.h: Remove a comment about
11842         DEFAULT_SHORT_ENUMS.
11843         * config/ip2k/ip2k.h: Likewise.
11844         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11845
11846 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11847
11848         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11849         when passing single SFmode quantities in general registers,
11850         put them in the high half.
11851
11852 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11853
11854         * doc/md.texi (Standard Names): Document additional dependency on
11855         fix pattern.
11856
11857         * optabs.c (ftruncify): Remove.
11858         (expand_fix): Manually inline ftruncify above.
11859         (can_fix_p): Add FIXME note.
11860
11861 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11862
11863         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11864         spe_fixuns_truncsfsi2.
11865
11866         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11867         fixuns_truncsfsi2.
11868
11869 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11870
11871         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11872         * testsuite/gcc.dg/20040219-1.c: New test.
11873
11874 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11875
11876         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11877         "*subsf3_cconly"): Subtraction is not commutative.
11878
11879 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11880
11881         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11882         (sdbout_symbol): If called before sdbout_init, queue DECL for
11883         later and return.
11884         (sdbout_init): Set sdbout_initialized true, process decls
11885         queued earlier by sdbout_symbol.
11886         (sdbout_finish): Use size_t for index variable.
11887
11888 2004-02-19  Jeff Law  <law@redhat.com>
11889
11890         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11891         for unordered comparison codes.
11892
11893 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11894
11895         * reload1.c (reload): Correct comment.
11896         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11897         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11898         register variables are not used by reload.
11899
11900 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11901
11902         PR target/14209
11903         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11904         constraints to not match postincrement.  Adjust the predicate to
11905         exclude a volatile memory reference.
11906
11907 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11908
11909         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11910
11911 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11912
11913         * hooks.c (hook_void_tree_int): Remove.
11914         (hook_void_constcharptr): Likewise.
11915         (hook_int_void_0): Likewise.
11916         * hooks.h: Remove the prototypes for the above three
11917         functions.
11918         * targhooks.c (hook_bool_machine_mode_true): Remove.
11919         * targhooks.h: Remove the prototype for
11920         hook_bool_machine_mode_true.
11921
11922 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11923
11924         * emit-rtl.c (subreg_realpart_p): Remove.
11925         (reorder_insns_with_line_notes): Likewise.
11926         (end_full_sequence): Likewise.
11927         * rtl.h: Remove the prototype for the above functions.
11928
11929 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11930
11931         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11932         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11933         config/iq2000/iq2000.h, config/m32r/m32r.h,
11934         config/pdp11/pdp11.h, config/sparc/sparc.h,
11935         config/xtensa/xtensa.h: Remove commented-out or useless
11936         definitions of CASE_VECTOR_PC_RELATIVE.
11937
11938 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11939
11940         * loop.c (all_sets_invariant_p): Remove.
11941
11942 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11943
11944         PR target/12916
11945         * config/sparc/sparc.h (NPARM_REGS): Delete.
11946         (BASE_RETURN_VALUE_REG): Likewise.
11947         (BASE_OUTGOING_VALUE_REG): Likewise.
11948         (BASE_PASSING_ARG_REG): Likewise.
11949         (BASE_INCOMING_ARG_REG): Likewise.
11950         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11951         TARGET_ARCH64, not TARGET_V9.
11952         (function_arg_slotno): Dispatch based on the mode class.
11953         Handle vector modes like floating-point modes.
11954         (function_arg_record_value_1): Handle vector types like
11955         floating-point types.
11956         (function_arg_record_value_2): Likewise.
11957         Calculate regno after mode transformation.
11958         (function_arg): Handle vector modes like floating-point modes.
11959         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11960         If ARCH64, do not recheck alignment.
11961         (function_arg_pass_by_reference): Reorder the conditions.
11962         (sparc_return_in_memory): Move after function_arg_padding.
11963         Implement calling conventions for vector modes.
11964         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11965         (function_value): Move scope of 'regbase'.
11966         Implement calling conventions for vector modes.
11967         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11968         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11969         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11970         the argument is passed by reference.
11971         (sparc_type_code): Handle vector types.
11972
11973 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11974
11975         * function.c (assign_parms): When building decl_rtl for
11976         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11977
11978 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11979
11980         * expr.c (is_aligning_offset): Check if we are aligning the
11981         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11982         in bits.
11983
11984 2003-02-18  Matt Austern  <austern@apple.com>
11985
11986         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11987         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11988         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11989         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11990         spec string.
11991         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11992
11993 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11994
11995         * dwarf2out.c (loclabel_num): Move outside #ifdef
11996         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11997         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11998         Mark with GTY(()).
11999         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12000         Allocate memory with ggc_alloc.  No need to copy anything.
12001         (ia64_hpux_file_end): Update to match.
12002
12003 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12004
12005         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12006         by default.
12007
12008 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12009
12010         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12011         ("divmodtisi3"): Likewise.
12012         ("udivmoddi4", "udivmodtidi3"): Likewise.
12013         ("divmodsi4", "divmoddisi3"): Likewise.
12014         ("udivmodsi4", "udivmoddisi3"): Likewise.
12015         ("udivsi3", "umodsi3"): Likewise.
12016
12017 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12018
12019         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12020         placeholder insn when chunkifying the pool.
12021
12022 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12023
12024         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12025         generating PIC code.
12026
12027 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12028
12029         * config/h8300/h8300-protos.h: Add a prototype for
12030         h8300_expand_branch.
12031         * config/h8300/h8300.c (h8300_expand_branch): New.
12032         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12033         bgtu, beq, bne): Call h8300_expand_branch().
12034
12035 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12036
12037         * config/h8300/h8300-protos.h: Add prototypes for
12038         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12039         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12040         (h8300_hard_regno_mode_ok): Likewise.
12041         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12042         h8300_hard_regno_nregs().
12043         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12044
12045 2004-02-18  Per Bothner  <per@bothner.com>
12046
12047         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12048         partly reverts my 2003-10-01 change, because we're back to logically
12049         including <command line> inside the main line.
12050         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12051         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12052         Fixes PR preprocessor/14103.
12053
12054         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12055         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12056         (cpp_push_include):  Don't need to increment pfile's line field.
12057         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12058
12059         * c-ppoutput.c (print struct):  New first_time field.
12060         (init_pp_output):  Set print.first_time.
12061         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12062         which is set also for (say) <command line>.  Clear print.first_time.
12063
12064         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12065         does not match the code, so fix both.
12066         (should_stack_file):  Inline include_pch_p function.
12067         (include_pch_p):  Remove pointless function.
12068
12069         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12070
12071 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12072
12073         * config/h8300/h8300.md (four define_peephole2's): Use
12074         h8300_regs_ok_for_stm().
12075
12076 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12077
12078         * config/h8300/h8300-protos.h: Update the prototype for
12079         expand_a_rotate().
12080         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12081         argument.
12082         * config/h8300/h8300.md: Update all callers.
12083
12084 2004-02-18  Jan Hubicka  <jh@suse.cz>
12085
12086         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12087         floats.
12088         (simplify_binary_operation): Deal with logicals on floats.
12089
12090         * i386.md (SSE fabs splitters): Emit new patterns.
12091         (SSE cmov splitters): Likewise.
12092         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12093         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12094         subregs.
12095         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12096         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12097
12098 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12099
12100         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12101         by hand.
12102         (output_a_rotate): Tweak a comment.
12103         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12104         (*rotlhi3_1): Change to rotlhi3_1.
12105         (*rotlsi3_1): Change to rotlsi3_1.
12106
12107 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12108
12109         PR target/13866
12110         * arm.c (load_multiple_operation): Don't insist that the source reg
12111         of a post-increment component is the same as the destination.
12112         (store_multiple_operation): Likewise.
12113
12114 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12115
12116         * config/h8300/h8300.md: Move movsf patterns into one section
12117         of the file.
12118
12119 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12120
12121         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12122         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12123         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12124         config/mips/linux64.h, config/pa/pa-64.h,
12125         config/rs6000/aix51.h, config/rs6000/aix52.h,
12126         config/rs6000/spe.md, config/sparc/linux.h,
12127         config/sparc/linux64.h: Update copyright.
12128
12129 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12130
12131         * config/h8300/h8300.md: Move push patterns into one
12132         section of the file.
12133
12134 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12135
12136         PR c++/11326
12137         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12138         fntype.
12139
12140 2004-02-18  Paul Brook  <paul@codesourcery.com>
12141
12142         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12143
12144 2004-02-18  Paul Brook  <paul@codesourcery.com>
12145
12146         PR debug/12934
12147         * dwarf2out.c (loc_descriptor_from_tree): Handle
12148         EXPR_WITH_FILE_LOCATION.
12149
12150 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12151
12152         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12153         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12154         trailing whitespace from instructions.
12155
12156 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12157
12158         * configure.ac: When generating auto-build.h, pass
12159         --enable-languages to the sub-configure.
12160         Put quotes around ${program_transform_name} when generating
12161         name of as, ld, nm, objdump.
12162         * configure: Regenerate.
12163
12164 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12165
12166         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12167         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12168         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12169         (s-preds, s-iov): Do not depend on move-if-change.
12170
12171 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12172
12173         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12174         (insert_save): Likewise.
12175
12176 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12177
12178         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12179         warning.
12180
12181 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12182
12183         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12184         *one_cmplsi2_h8300.
12185         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12186
12187 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12188
12189         * config/h8300/h8300-protos.h: Update the prototype of
12190         fix_bit_operand().
12191         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12192         argument "what".
12193         * config/h8300/h8300.md: Update all callers.
12194
12195 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12196
12197         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12198         the last argument to "code" from "type".
12199
12200 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12201
12202         * config/h8300/h8300.c: Remove an extern declaration of
12203         rtx_equal_function_value_matters.
12204
12205 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12206
12207         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12208         by hand.
12209         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12210         (*iorqi3_1): Change to iorqi3_1.
12211         (*xorqi3_1): Change to xorqi3_1.
12212
12213 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12214
12215         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12216         typos.
12217
12218 2004-02-17  Jan Hubicka  <jh@suse.cz>
12219
12220         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12221
12222 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12223
12224         PR optimization/14119
12225         * combine.c (try_combine): When attemting to fix unrecognized insns,
12226         don't delete SETs marked with REG_EH_REGION notes.
12227
12228 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12229
12230         * combine.c (simplify_if_then_else): Do not replace
12231         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12232         modes differ.
12233
12234 2004-02017  Steven Bosscher  <stevenb@suse.de>
12235
12236         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12237         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12238         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12239         * ada/utils.c: Likewise.
12240         * cp/decl.c: Likewise.
12241         * f/com.c: Likewise.
12242         * java/class.c: Likewise.
12243
12244 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12245
12246         * config/h8300/h8300.md: Fix comment typos.
12247
12248 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12249
12250         * config/mips/t-iris6gld: Renamed to ...
12251         * config/mips/t-irix-gld: ... this.
12252         * config.gcc (mips-sgi-irix6*): Reflect this
12253         (mips-sgi-irix5*): Use it with GNU ld.
12254
12255         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12256         to ...
12257         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12258         * config/mips/t-irix-gld: Reflect this.
12259         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12260
12261         * config/mips/iris5gld.h: New file.
12262         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12263         Only use collect2 without gas.
12264
12265         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12266         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12267         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12268         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12269
12270         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12271         * config/mips/iris5.h: ... here.
12272
12273         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12274         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12275         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12276
12277         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12278         using irix_startfile_spec, irix_endfile_spec.
12279
12280 2004-02-16  Gunther Nikl  <gni@gecko.de>
12281
12282         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12283
12284 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12285
12286         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12287         insns by hand.
12288
12289 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12290
12291         * cfghooks.c (split_edge): Speed up updating of dominators.
12292
12293 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12294
12295         PR c++/11326
12296         * c-common.c (flag_abi_version): Remove.
12297         * c-common.h (flag_abi_version): Likewise.
12298         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12299         * c.opt (fabi-version): Remove.
12300         * calls.c (expand_call): Always pass a function type to
12301         struct_value_rtx.  Use convert_memory_address.
12302         * common.opt (fabi-version): Add it.
12303         * flags.h (flag_abi_version): Likewise.
12304         (abi_version_at_least): New macro.
12305         * opts.c (common_handle_option): Add OPT_fabi_version.
12306         * toplev.c (flag_abi_version): Define it.
12307         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12308         New function.
12309         (ia64_output_mi_thunk): Use it.
12310         (ia64_struct_value_rtx): Likewise.
12311
12312 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12313
12314         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12315         Don't generate insns by hand.
12316
12317 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12318
12319         PR c++/14178
12320         * doc/invoke.texi (fabi-version): The default is 2 now.
12321
12322 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12323
12324         * loop-iv.c: New file.
12325         * Makefile.in (loop-iv.o): New.
12326         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12327         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12328         num_loop_branches): New functions.
12329         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12330         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12331         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12332         get_simple_loop_desc, free_simple_loop_desc): Declare.
12333         (simple_loop_desc): New inline function.
12334         (struct rtx_iv, struct niter_desc): New.
12335         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12336         * expr.c (force_operand): Handle subregs of expressions created by
12337         loop unroller.
12338         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12339         parts of the initialization to toplev.c
12340         * loop-unroll.c (loop_exit_at_end_p): New.
12341         (unroll_and_peel_loops): Call iv_analysis_done.
12342         (decide_peel_once_rolling, decide_peel_completely,
12343         decide_unroll_stupid, decide_unroll_constant_iterations,
12344         decide_unroll_runtime_iterations, decide_peel_simple,
12345         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12346         unroll_loop_runtime_iterations): Use new simple loop analysis.
12347         * loop-unswitch.c (compare_and_jump_seq): New.
12348         (may_unswitch_on_p): Renamed to ...
12349         (may_unswitch_on): Use new iv analysis.
12350         (reversed_condition): Export.
12351         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12352         * predict.c (estimate_probability): Use new simple loop analysis.
12353         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12354         canon_condition, simplify_using_condition): Declare.
12355         * stor-layout.c (get_mode_bounds): New.
12356         * toplev.c (rest_of_handle_loop2): Some parts of
12357         initialization/finalization moved here from loop-init.c.
12358
12359 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12360
12361         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12362         pointer.
12363         (CALL_USED_REGISTERS): Likewise.
12364         (REG_ALLOC_ORDER): Likewise.
12365         (REG_CLASS) <GENERAL_REGS>: Likewise.
12366
12367 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12368
12369         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12370         in associative operators.
12371         * rtlanal.c (commutative_operand_precedence): Create some new
12372         variables.  Prefer a commutative operand on the left, then
12373         binary expressions, then NEG and NOT.
12374
12375 2004-02-16  Matthias Klose  <doko@debian.org>
12376
12377         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12378         in terms of SHLIB_SOVERSION.
12379         * config/m68k/t-slibgcc-elf-ver: New file.
12380         * config/pa/t-slibgcc-elf-ver: New file.
12381         * config.gcc (m68k-linux, parisc-linux): Use them when not
12382         sjlj exceptions are not configured.
12383
12384 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12385
12386         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12387
12388 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12389
12390         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12391
12392 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12393
12394         * doc/sourcebuild.texi: Mention backends.html.
12395
12396 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12397
12398         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12399         line-map.c, line-map.h, var-tracking.c: Fix comment
12400         formatting.
12401
12402 2004-02-16  Richard Henderson  <rth@redhat.com>
12403
12404         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12405
12406         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12407
12408 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12409
12410         * config/h8300/h8300.md: Remove unnecessary parallels from
12411         all define_insn and define_split patterns.
12412
12413 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12414
12415         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12416         "clobber").
12417
12418 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12419
12420         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12421         '%#'.
12422
12423 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12424
12425         * config/ia64/ia64.c, config/mips/mips.c,
12426         config/mmix/mmix-modes.def: Fix comment typos.
12427
12428 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12429
12430         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12431         (get_directive_line): Remove unused function prototype.
12432
12433 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12434
12435         * tree-inline.c (copy_body_r): Do not replace ret_label.
12436
12437 2004-02-14  Jan Hubicka  <jh@suse.cz>
12438
12439         * i386.c (x86_four_jump_limit): New variable.
12440         (k8_avoid_jump_misspredicts): Rename to ...
12441         (ix86_avoid_jump_misspredicts): .. this one.
12442         (ix86_pad_returns): Break out from ...
12443         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12444         to.
12445         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12446
12447 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12448
12449         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12450         PARALLEL is NULL.
12451
12452 2004-02-14  Per Bothner  <per@bothner.com>
12453
12454         * fix-header.c (line_table):  Move local variable in main to global.
12455         * scan.h (line_table):  Use it.
12456         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12457         line (recently renamed to src_loc) before calling recognized_function.
12458
12459 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12460
12461         * Makefile.in: Fix comment typos.
12462
12463 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12464
12465         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12466         for start_value when it is directly moved into reg, and factorize
12467         the retrieval of GET_MODE (reg).
12468
12469 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12470
12471         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12472         (mips_load_got_global): Delete.
12473         (mips_gotoff_page): Declare.
12474         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12475         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12476         UNSPEC_LOAD_GOT pattern rather than a MEM.
12477         (*load_got[sd]i): New patterns.
12478         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12479         (mips_load_got_page, mips_load_got_global): Delete.
12480         (mips_gotoff_page): New function.
12481         (override_options): Don't initialize mips_got_alias_set.
12482
12483 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12484
12485         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12486         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12487         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12488         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12489         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12490         * config/mips/mips.c: Fix some overly-long lines.
12491         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12492         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12493
12494 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12495
12496         * configure.ac: Search for as, ld below libexec/gcc.
12497         * configure: Regenerate.
12498
12499 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12500
12501         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12502         __builtin_arm_setwcx ().
12503         * config/arm/arm.c (arm_expand_builtin): Generate operands
12504         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12505
12506 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12507
12508         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12509         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12510         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12511         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12512         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12513         (_mm_mulhi_pu16): Likewise.
12514
12515 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12516
12517         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12518         DECL_NAME != 0 before dereferencing.
12519
12520 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12521
12522         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12523         (s390_output_addr_const_extra): Declare.
12524         (s390_output_pool_entry): Remove FILE * argument.
12525         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12526         (s390_output_addr_const_extra): New function.
12527         (print_operand_address): Call output_addr_const instead of
12528         s390_output_symbolic_const.
12529         (print_operand): Likewise.
12530         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12531         Remove FILE * argument.
12532         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12533         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12534         call.
12535
12536 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12537
12538         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12539         (struct edge, struct vertex, struct graph): New.
12540         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12541         free_graph): New functions.
12542
12543 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12544
12545         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12546         Use ".set macro" to avoid warnings about multi-instruction
12547         macros, since they're intentional.
12548
12549 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12550
12551         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12552         comment about STANDARD_EXEC_PREFIX.
12553
12554         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12555         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12556         for installing .1 manpages.  Add rules for installing cpp
12557         and gcov manpages under their installed names.
12558
12559 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12560
12561         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12562         host, but try LD_FOR_TARGET first.
12563         * configure: Rebuilt.
12564
12565 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12566
12567         * dbxout.c: Move declaration of dbxout_type_decl outside
12568         #ifdef DBX_DEBUGGING_INFO.
12569         * c-parse.in: Don't give the asmdef production a type.
12570
12571 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12572
12573         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12574         (debug_nothing_tree_int): Prototype.
12575         (dwarf_debug_hooks): Delete, unused.
12576         * debug.c (do_nothing_debug_hooks): Update.
12577         (debug_nothing_tree_int): New function.
12578         * langhooks.h (struct lang_hooks_for_decls):
12579         Remove builtin_type_decls field.
12580         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12581         (LANG_HOOKS_DECLS): Update.
12582         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12583         Use debug_hooks->type_decl.
12584         * dbxout.c (preinit_symbols): New static.
12585         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12586         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12587         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12588         for symbols to output.
12589         (dbxout_type_decl): New function.
12590         (dbxout_symbol): If called before dbxout_init has run, queue
12591         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12592         to TYPE_DECLs before emitting them.
12593         * xcoffout.c (assign_type_number): Delete.
12594         (xcoff_type_numbers): New static table.
12595         (xcoff_assign_fundamental_type_number): New function.
12596         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12597         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12598         * sdbout.c: Include varray.h.
12599         (deferred_global_decls): New static.
12600         (sdb_debug_hooks): Update.
12601         (sdbout_global_decl): If we can't emit something right now,
12602         remember it in deferred_global_decls.
12603         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12604         (sdbout_init): Initialize deferred_global_decls.
12605         * Makefile.in: Update dependencies of sdbout.o.
12606         * dwarf2out.c (dwarf2out_type_decl): New function.
12607         (dwarf2_debug_hooks): Update.
12608         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12609         * c-decl.c (getdecls): Just return 0.
12610         (check_for_loop_decls): Don't use getdecls.
12611         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12612         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12613
12614 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12615
12616         * config/s390/s390.c (s390_sched_reorder2): Remove.
12617         (TARGET_SCHED_REORDER2): Do not redefine.
12618
12619 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12620
12621         * c-parse.in (maybe_type_qual): Delete.
12622         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12623         (asm_argument): New grammar rules.
12624         (extdef_1): Use asmdef.
12625         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12626         (xexpr): Move up with other expression rules.
12627         (stmt): Use asm_stmt.
12628
12629         * c-typeck.c (build_asm_expr): New function - body mostly
12630         pulled from build_asm_stmt.
12631         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12632         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12633
12634 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12635
12636         PR bootstrap/13617
12637         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12638         (mips_declare_object): Make variadic.
12639         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12640         mips_output_aligned_decl_common.
12641         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12642         (mips_declare_object): Make variadic.
12643
12644 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12645
12646         * function.c (update_epilogue_consts): Teach about binary operations.
12647
12648         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12649         previous MEM_VOLATILE in REF.
12650         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12651         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12652
12653 2004-02-12  Gunther Nikl  <gni@gecko.de>
12654
12655         * config.gcc: Restore support for m68k-openbsd.
12656
12657 2004-02-12  Jan Hubicka  <jh@suse.cz>
12658
12659         * tree-optimize.c (tree_rest_of_compilation): Do not release
12660         DECL_ARGUMENTS.
12661
12662 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12663
12664         * doc/install.texi: Fix the spelling of "explicitly".
12665
12666 2004-02-11  Eric Christopher  <echristo@redhat.com>
12667
12668         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12669         duplicate argument structure of cpp_interpret_string.
12670         * cpphash.h: Move prototype...
12671         * cpplib.h: Here.
12672         * cpplib.c: Fix calls to match new function signature.
12673
12674 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12675
12676         PR c/456
12677         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12678         constant expressions at all outside C99 mode if pedantic.
12679
12680 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12681
12682         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12683         (log10_optab, log2_optab): Define corresponding macros.
12684         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12685         * genopinit.c (optabs): Implement log10_optab and log2_optab
12686         using log10?f2 and log2?f2 patterns.
12687         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12688         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12689         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12690         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12691
12692         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12693         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12694         log2, log2f and log2l built-ins as inline x87 intrinsics.
12695
12696 2004-02-11  Richard Henderson  <rth@redhat.com>
12697
12698         PR target/1532
12699         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12700         dead insn after reload.
12701
12702 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12703
12704         * tree.h (frame_base_decl): Add GTY marker.
12705         * var-tracking.c (frame_base_decl): Likewise.
12706
12707 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12708
12709         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12710         incorrect, hunk.
12711         (add_location_or_const_value_attribute): Use text_section_label,
12712         not TEXT_SECTION_NAME.
12713
12714 2004-02-11  Per Bothner  <per@bothner.com>
12715
12716         Represent column numbers using line-map's source_location.
12717         The "next available source_location" is now managed internally by
12718         line-maps.c rather than by clients.
12719         * line-map.h (struct line_map):  New field column_bits.
12720         <from_line>:  Rename field to start_location.
12721         (struct line_maps):  New fields highest_location and max_column_hint.
12722         (linemap_check_files_exited):  New declaration.
12723         (linemap_line_start):  New declaration.
12724         (linemap_add):  Remove from_line parameter; use highest_location field.
12725         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12726         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12727         (CURRENT_LINE_MAP):  Remove macro.
12728         (linemap_position_for_column):  New inline function.
12729         * line-map.c (linemap_init):  Clear new fields.
12730         (linemap_check_files_exited):  New function, extracted from ...
12731         (linemap_free):  Use linemap_check_files_exited.
12732         (linemap_add):  Remove from_line parameter.  Various updates.
12733         (linemap_line_start):  New function.
12734         (linemap_lookeup):  Update for new field names.
12735         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12736         linemap_position_for_column may unpredictably change the current map,
12737         it is cleaner and simpler for us to not cache it in cpp_reader.
12738         (struct cpp_buffer):  New sysp field.
12739         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12740         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12741         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12742         current map using linemap_lookup.
12743         (do_linemarker):  Also set buffer's sysp field.
12744         (destringize_and_run):  No longer need to decrement current line.
12745         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12746         (search_path_head, open_file_failed):  Use buffer's sysp.
12747         (cpp_make_system_header):  Get current map using linemap_lookup.
12748         Also set buffer's sysp flag.
12749         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12750         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12751         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12752         (struct cpp_reader):  ... and adding saved_line_base field.
12753         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12754         Update accordingly.  Don't adjust line.
12755         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12756         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12757         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12758         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12759         * cpplex.c (_cpp_lex_direct):  Likewise.
12760         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12761         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12762         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12763         Remove col field as it is now subsumed by src_loc.
12764         * cpperror.c:  Update various field, parameter, and macro names.
12765         (print_location):  If col==0, try SOURCE_COLUMN of line.
12766         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12767         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12768         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12769         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12770         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12771         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12772         (_cpp_lex_direct):  Use linemap_position_for_column.
12773         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12774         parameter.  Instead get it from the line_table global.  Adjust callers.
12775         (print):  Remove map field.  Replace line field to src_line.
12776         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12777         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12778         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12779         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12780         * cpptrad.c (copy_comment):  Rename variable.
12781         * c-lex.c (map):  Remove static variable, for same reason we removed
12782         cpp_reader's map field.
12783         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12784         to call linemap_lookup.
12785         (cb_line_change):  Token's line field replaced by src_loc.
12786         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12787         Don't save new_map.
12788
12789         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12790         source_location.
12791
12792 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12793
12794         * config/rs6000/altivec.md (*movv4si_internal): At least one
12795         operand must be register_operand.
12796         (*movv8hi_internal1): Likewise.
12797         (*movv16qi_internal1): Likewise.
12798         (*movv4sf_internal1): Likewise.
12799
12800 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12801
12802         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12803         operand.
12804         (movv4hi_internal): Same.
12805         (movv2sf_internal): Same.
12806         (movv1di_internal): Same.
12807
12808 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12809
12810         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12811         TARGET_OLDABI consistently.
12812         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12813         mips_va_arg,override_options,compute_frame_size,
12814         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12815         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12816         and TARGET_OLDABI consistently.
12817         * config/mips/mips.md (exception_receiver): Likewise.
12818         * config/mips/linux64.h: Likewise.
12819
12820 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12821
12822         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12823         Set AltiVec ABI and vrsave as default for ppc64 linux.
12824         (init_cumulative_args): Post error, if try to return
12825         value in AltiVec register without enable AltiVec.
12826         (function_arg_advance): Ditto for passing arguments.
12827
12828 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12829
12830         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12831         a label before updating its usage count.
12832
12833 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12834
12835         * doc/install.texi: Remove extra cd.
12836
12837 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12838
12839         * c-common.c (vector_size_helper): Remove; call
12840         reconstruct_complex_type() instead.
12841         * tree.c (reconstruct_complex_type): New function
12842         (formerly vector_size_helper() in c-common.c).
12843         (make_vector): Make externally visible.
12844         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12845
12846 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12847
12848         * config/h8300/h8300-protos.h: Add a prototype for
12849         h8300_regs_ok_for_stm.
12850         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12851         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12852         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12853         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12854         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12855         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12856         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12857         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12858         h8300_regs_ok_for_stm().
12859
12860 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12861
12862         PR c/14088
12863         * real.c (real_from_string): Look for 'X' as well as 'x' in
12864         hexfloat strings.
12865
12866 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12867
12868         * config/h8300/h8300.md: Remove an incorrect comment about
12869         peephole2.  Add comments.
12870
12871 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12872
12873         PR/14058
12874         * emit-rtl.c (set_decl_incoming_rtl): New.
12875         * tree.h (set_decl_incoming_rtl): New.
12876         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12877         DECL_INCOMING_RTL.
12878         * ada/misc.c (adjust_decl_rtl): Likewise.
12879
12880 2004-02-10  Per Bothner  <per@bothner.com>
12881
12882         * c-opts.c (c_common_post_options):   Don't emit working directory
12883         in cpp output if -P was specified.
12884
12885 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12886
12887         PR c/14092
12888         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12889         negate_expr back to the original type.
12890
12891 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12892
12893         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12894         bump retaddr here.
12895
12896 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12897
12898         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12899         gen_lowpart_SUBREG): Move under the file in which they
12900         are actually declared.
12901
12902 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12903
12904         * doc/sourcebuild.texi: Add libada documentation.
12905
12906         * doc/install.texi: Update documentation on Ada build, now
12907         that the GNAT lib and tools are built automatically.
12908
12909 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12910
12911         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12912         && TARGET_IRIX.
12913
12914 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12915
12916         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12917         boundaries outside build_component_ref() call (a macro in ObjC++).
12918
12919 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12920
12921         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12922         (init_cumulative_args): Likewise.
12923         (a7_overlap_mentioned_p): Delete prototype.
12924         * config/xtensa/xtensa.c (struct machine_function): Replace
12925         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12926         Add set_frame_ptr_insn field.
12927         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12928         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12929         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12930         at the function entry and replace the operand with the pseudo.
12931         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12932         argument and record this flag in CUMULATIVE_ARGS.
12933         (function_arg): Remove result_mode and special-case code to handle
12934         arguments in a7.  Instead, set need_a7_copy flag when there is an
12935         incoming argument in a7.
12936         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12937         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12938         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12939         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12940         special-case code.
12941         (a7_overlap_mentioned_p): Delete.
12942         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12943         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12944         arguments to init_cumulative_args and pass "incoming" flag instead.
12945         (BLOCK_REG_PADDING): Delete.
12946         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12947         checks for reload_in_progress and reload_completed.  Update calls to
12948         xtensa_copy_incoming_a7.
12949         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12950         to call xtensa_copy_incoming_a7.
12951
12952 2004-02-09  DJ Delorie  <dj@redhat.com>
12953
12954         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12955         longer modify standard_exec_prefix, standard_bindir_prefix, or
12956         standard_startfile_prefix.
12957
12958 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12959
12960         PR c++/11295
12961         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12962         to expand_expr_real call, and pass in alt_rtl as last argument.
12963
12964         PR libstdc++/5625
12965         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12966         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12967         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12968         * except.c (expand_builtin_extend_pointer): New.
12969         * except.h (expand_builtin_extend_pointer): Declare.
12970
12971 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12972
12973         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12974         unaligned loads and stores.
12975
12976 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12977
12978         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12979         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12980
12981         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12982         * config/mips/iris5.h: ... here.
12983         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12984
12985         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12986         * config/mips/iris5.h: ... here.
12987
12988 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12989
12990         * configure.ac: Remove default executable files before AC_PROG_CC.
12991         * configure: Regenerate.
12992
12993 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12994
12995         PR target/13721
12996         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12997         print a operand other than a register.
12998
12999 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13000
13001         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13002         tree code rather than call fold_convert, which doesn't specify a
13003         default floating point to integer conversion.
13004
13005 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13006
13007         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13008         code to support SGS assembler.  Reformat adjacent code where possible.
13009         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13010         definition.
13011         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13012         for '%#'.
13013         * config/m68k/linux.h, config/m68k/m68k.c,
13014         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13015         macros and asm_printf() format strings.
13016         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13017         * config/m68k/linux.h: Update copyright.
13018         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13019
13020 2004-02-08  Andreas Schwab  <schwab@suse.de>
13021             Bernardo Innocenti  <bernie@develer.com>
13022
13023         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13024         REGISTER_PREFIX.
13025         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13026         frame pointer register, overridable by OS targets.
13027         * (M68K_REGNAME): Macro to obtain register name for asm output,
13028         eventually replacing %a6 with M68K_FP_REG_NAME.
13029         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13030         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13031         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13032         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13033         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13034
13035 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13036
13037         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13038         hook_rtx_tree_int_null.
13039         * targhooks.c (default_struct_value_rtx): Remove.
13040         * targhooks.h: Remove the prototype for
13041         default_struct_value_rtx.
13042         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13043         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13044         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13045         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13046         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13047         config/rs6000/rs6000.c, config/s390/s390.c,
13048         config/stormy16/stormy16.c, config/v850/v850.c,
13049         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13050         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13051
13052 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13053
13054         * README.Portability: Change "ISO C89" to "ISO C90".
13055         * c-parse.in (primary, initelt): Likewise.
13056
13057 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13058
13059         * real.c (encode_ibm_extended): Normalize the input value before
13060         converting it to a double.  Handle the case where a normal value
13061         rounds to infinity.
13062
13063 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13064
13065         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13066         warning.
13067         * cse.c (preferrable): Change to preferable. Update all of its
13068         callers.
13069         * genautomata.c (ainsn): Change
13070         first_ainsn_with_given_equialence_num to
13071         first_ainsn_with_given_equivalence_num.  Update all of its
13072         references.
13073
13074 2004-02-08  Jan Hubicka  <jh@suse.cz>
13075
13076         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13077
13078 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13079
13080         * function.c (assign_parms): Fix formatting.
13081
13082 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13083
13084         * default.h (PROMOTE_PROTOTYPES): Remove.
13085         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13086         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13087         EXPAND_BUILTIN_SAVEREGS): Poison.
13088         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13089         hook_bool_tree_false.
13090         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13091         * target.h: Replace SETUP_INCOMING_VARARGS with
13092         targetm.calls.setup_incoming_varargs().
13093         * targhooks.c (default_promote_function_return): Remove.
13094         (default_promote_prototypes): Likewise.
13095         (default_struct_value_rtx): Always abort().
13096         (default_expand_builtin_saveregs): Always print an error
13097         message.
13098         (default_setup_incoming_varargs): Do nothing.
13099         (default_pretend_outgoing_varargs_named): Don't depend on
13100         SETUP_INCOMING_VARARGS.
13101         * targhooks.h: Remove the prototype for
13102         default_promote_function_return and
13103         default_promote_prototypes.
13104
13105 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13106
13107         * system.h (SHARED_SECTION_ASM_OP): Poison.
13108         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13109         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13110
13111 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13112
13113         Bug 13856
13114         * c-decl.c (diagnose_mismatched_decls): Only give special
13115         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13116         is also true.
13117         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13118         DECL_FUNCTION_CODE when defining a built-in function.
13119         Don't update DECL_ESTIMATED_INSNS.
13120         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13121         FUNCTION_DECLs.
13122         * tree.h: Delete DECL_ESTIMATED_INSNS.
13123         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13124         (expand_call_inline, optimize_inline_calls): Don't update
13125         DECL_ESTIMATED_INSNS nor inlined_insns.
13126         * cgraphunit.c (cgraph_analyze_function): Don't update
13127         DECL_ESTIMATED_INSNS.
13128
13129 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13130
13131         * c-common.c (shadow_warning): Delete.
13132         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13133         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13134         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13135         * c-parse.in (free_parser_stacks): Delete.
13136
13137 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13138
13139         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13140         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13141         Use the top level mkinstalldirs, not the one in the gcc subdir.
13142         * mkinstalldirs: Remove (from the gcc subdir).
13143
13144 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13145
13146         PR middle-end/13696
13147         * fold-const.c (fold_convert): New function to provide type
13148         conversion to the middle-end without using convert.
13149         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13150         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13151         invert_truthvalue, optimize_bit_field_compare, range_binop,
13152         decode_field_reference, make_range, build_range_check, unextend,
13153         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13154         fold_binary_op_with_conditional_arg, fold_inf_compare,
13155         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13156         convert with calls to fold_convert.
13157
13158 2004-02-07  Jan Hubicka  <jh@suse.cz>
13159
13160         * genrecog.c (find_operand): add extra argument stop.
13161         (validate_pattern): Verify that mach_dup is duplicating operand
13162         defined lexically earlier.
13163
13164 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13165
13166         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13167         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13168         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13169         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13170         config/ia64/ia64.h, config/ip2k/ip2k.h,
13171         config/iq2000/iq2000.h, config/mips/iris5.h,
13172         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13173         config/rs6000/aix51.h, config/rs6000/aix52.h,
13174         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13175         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13176         config/sparc/linux.h, config/sparc/linux64.h,
13177         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13178         config/xtensa/xtensa.h: Remove the definitions of
13179         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13180         MAX_WCHAR_TYPE_SIZE.
13181         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13182         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13183
13184 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13185
13186         PR bootstrap/13990
13187         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13188         gen_rtx_NE.
13189
13190 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13191
13192         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13193         #ifdef ENABLE_CHECKING and #endif.
13194
13195 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13196
13197         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13198         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13199         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13200         integer types and floating point with unsafe_math_optimizations.
13201         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13202         Optimize A - B as A + (-B), if B is easily negated.
13203
13204 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13205
13206         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13207         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13208         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13209         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13210         Update copyright.
13211
13212 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13213
13214         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13215
13216 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13217
13218         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13219         glibc 2.3 or better.
13220
13221 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13222
13223         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13224         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13225
13226 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13227
13228         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13229         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13230         (SHLIB_MKMAP_OPTS): Delete.
13231         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13232         (bispecs): Add rule.
13233         * config/rs6000/libgcc-ppc64.ver: New file.
13234         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13235         (__floatdidf, __floatdisf): Optimize multiply.
13236         (__fixunstfdi): New function.
13237         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13238         real and imag parts larger than one register.
13239         (function_arg): Correct type of reg used when fp arg split partially
13240         to stack.
13241         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13242         and __MACH__ or __powerpc64__.
13243
13244 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13245             Ulrich Weigand  <uweigand@de.ibm.com>
13246
13247         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13248         of gen_highpart or gen_lowpart when the floating point format is
13249         wider than the result mode.
13250
13251 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13252
13253         * dwarf2out.c (loclabel_num): Move into #ifdef
13254         DWARF2_DEBUGGING_INFO.
13255
13256 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13257
13258         * objc/objc-act.c (build_super_template) the 'class' field of
13259         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13260         (get_super_receiver): Likewise.
13261
13262 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13263
13264         * reload1.c (check_eliminable_occurrences): Optimize the reset
13265         of can_eliminate.
13266         (eliminate_regs_in_insn): Likewise.
13267
13268 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13269             Josef Zlomek  <zlomekj@suse.cz>
13270
13271         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13272         at the beginning of function, call dwarf2out_var_location for
13273         NOTE_INSN_VAR_LOCATION note.
13274         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13275         decl_loc_table): New.
13276         (lookup_decl_loc): New function.
13277         (add_var_loc_to_decl): New function.
13278         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13279         only if can_use_fbreg.
13280         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13281         functions.
13282         (loc_descriptor): Likewise. Process VAR_LOCATION.
13283         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13284         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13285         can_use_fbreg == true.
13286         (add_location_or_const_value_attribute): Added parameter enum
13287         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13288         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13289         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13290         with attr == DW_AT_location.
13291         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13292         if frame_base_decl is defined and has a location list.
13293         (gen_variable_die): Call add_location_or_const_value_attribute with
13294         attr == DW_AT_location.
13295         (dwarf2out_var_location): New function.
13296         (dwarf2out_begin_function): New function.
13297         (dwarf2out_init): Create decl_loc_table.
13298
13299 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13300
13301         * loop.c (force_movables): Transitively increase the priorities of
13302         all insns forces by an insn, not just the first one.
13303
13304 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13305             Daniel Berlin <dberlin@dberlin.org>
13306
13307         Josef Zlomek  <zlomekj@suse.cz>
13308         * Makefile.in (var-tracking.o): New.
13309         * common.opt (fvar-tracking): New.
13310         * flags.h (flag_var_tracking): New.
13311         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13312         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13313         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13314         * rtl.c (note_insn_name): Likewise.
13315         * rtl.def (VAR_LOCATION): New.
13316         * rtl.h (NOTE_VAR_LOCATION): New.
13317         (NOTE_VAR_LOCATION_DECL): New.
13318         (NOTE_VAR_LOCATION_LOC): New.
13319         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13320         (variable_tracking_main): New exported function.
13321         * timevar.def (TV_VAR_TRACKING): New.
13322         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13323         (dump_file): "vartrack" was added (-dV).
13324         (flag_var_tracking): New.
13325         (f_options): "var-tracking" was added.
13326         (rest_of_handle_variable_tracking): New function.
13327         (rest_of_compilation): Run variable tracking.
13328         (process_options): If user has not specified flag_var_tracking set it
13329         according to optimize, debug_info_level and debug_hooks.
13330         * tree.h (frame_base_decl): New.
13331         * var-tracking.c: New file.
13332         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13333         (ia64_override_options): Set flags to run variable tracking in machine
13334         dependent reorg instead of toplev.c.
13335         (ia64_reorg): Run variable tracking if wanted.
13336         * doc/invoke.texi: Mention variable tracking in -dV,
13337         add and -fvar-tracking.
13338         * doc/passes.texi: Added variable tracking pass.
13339
13340         Daniel Berlin <dberlin@dberlin.org>
13341         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13342         * dbxout.c (dbx_debug_hooks): Likewise.
13343         (xcoff_debug): Likewise.
13344         * debug.c (do_nothing_debug_hooks): Likewise.
13345         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13346         * dwarfout.c (dwarf_debug_hooks): Likewise.
13347         * sdbout.c (sdb_debug_hooks): Likewise.
13348         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13349         * final.c (final_scan_insn): Call var_location debug hook for each
13350         NOTE_INSN_VAR_LOCATION.
13351
13352 2004-02-06  Jan Hubicka  <jh@suse.cz>
13353
13354         * flow.c (update_life_info): Allocate reg_deaths when called from
13355         scheudler.
13356         (attempt_auto_inc):  Update life ranges accordingly.
13357
13358 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13359
13360         PR debug/11816
13361         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13362
13363 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13364
13365         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13366
13367 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13368
13369         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13370         a separate line info table in use.
13371         Use the correct size for terminators.
13372         (output_die): Use offset, not delta.
13373
13374 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13375
13376         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13377
13378 2004-02-06  Jan Hubicka  <jh@suse.cz>
13379
13380         * recog.c (split_all_insns): Do not update reg info.
13381         * regrename.c (regrename_optimize): Likewise.
13382         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13383         * flow.c (struct propagate_block_info): Add insn_num field.
13384         (reg_deaths): New array.
13385         (life_analysis): Free reg_deaths info.
13386         (allocate_reg_life_data): Allocate reg_deaths array.
13387         (propagate_one_insn): Use new array.
13388         (init_propagate_block): Initialize it.
13389         (free_propagate_block_info): Finish compuation of
13390         REG_LIVE_LENGTH
13391         (attempt_auto_inc): Sanity check that REG_INFO is not
13392         computed at same time.
13393         (mark_used_regs): Update new array.
13394
13395         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13396         substitution.
13397
13398 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13399
13400         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13401         *extendqisi2_short_displ.
13402
13403 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13404
13405         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13406         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13407         (emit_library_call_value_1): Likewise pass nargs.
13408         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13409         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13410         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13411         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13412         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13413         prototype.
13414         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13415         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13416         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13417         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13418         INIT_CUMULATIVE_ARGS.
13419         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13420         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13421         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13422         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13423         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13424         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13425         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13426         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13427         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13428         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13429         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13430         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13431
13432 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13433
13434         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13435         possible.
13436
13437 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13438
13439         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13440         note containing (plus (reg) (const_int)), where reg is an
13441         eliminable reg, then perform the register elimination without
13442         depending on eliminate_regs().
13443
13444 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13445
13446         * config/arc/arc.c (arc_return_in_memory): Check the return
13447         value of int_size_in_bytes against -1.  Don't check
13448         TREE_ADDRESSABLE.
13449         * config/avr/avr.c (avr_return_in_memory): Check the return
13450         value of int_size_in_bytes against -1.
13451         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13452         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13453         Likewise.
13454         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13455         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13456         Likewise.
13457
13458 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13459
13460         * config/frv/frv-protos.h: Remove the prototype for
13461         frv_setup_incoming_varargs.
13462         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13463         (frv_setup_incoming_varargs): Make it static.
13464         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13465
13466 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13467
13468         * config/fr30/fr30-protos.h: Remove the prototype for
13469         fr30_setup_incoming_varargs.
13470         Update the prototypes for fr30_num_arg_regs and
13471         fr30_function_arg_partial_nregs.
13472         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13473         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13474         (fr30_setup_incoming_varargs): Make it static.
13475         Add argument second_time.  Don't do anything when second_time
13476         is nonzero.
13477         (fr30_num_arg_regs): Change the type of the first argument to
13478         enum machine_mode.
13479         (fr30_function_arg_partial_nregs): Change the type of the
13480         second argument to enum machine_mode.
13481         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13482         (SETUP_INCOMING_VARARGS): Remove.
13483
13484 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13485
13486         * config/arc/arc-protos.h: Remove the prototype for
13487         arc_setup_incoming_varargs.
13488         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13489         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13490         (arc_setup_incoming_varargs): Make it static.
13491         (arc_external_libcall): Likewise.
13492         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13493         Remove the commented-out definition of
13494         ASM_OUTPUT_EXTERNAL_LIBCALL.
13495
13496 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13497
13498         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13499         to $$(slibdir) in the installation commands.
13500
13501 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13502
13503         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13504         with inner_regno, not regno.
13505         * rtlanal.c (refers_to_regno_p): Same.
13506
13507 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13508
13509         * config.gcc: Remove i370 support.
13510
13511 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13512
13513         * doc/install.texi:  Update automake and autoconf version
13514         requirements.  Note where to find gcj automake version.
13515
13516 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13517
13518         * Makefile.in (generate-manpages): Move dependencies to ...
13519         (man): here.
13520         * doc/makefile.texi: Document new targets.
13521         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13522
13523 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13524
13525         PR/13485
13526         Makefile.in (srcextra):  Add a level of indirection to ...
13527         (gcc.srcextra): ... here.
13528         (po-generated): Delete.
13529         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13530         options.c.
13531         (start.encap): Remove superfluous lang.srcextra dependency.
13532         objc/Make-lang.in (po-generated):  Delete.
13533
13534 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13535
13536         * config/ia64/ia64.c (REG_GP): Remove.
13537
13538 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13539
13540         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13541
13542 2004-02-05  Devang Patel  <dpatel@apple.com>
13543
13544         * dwarf2out.c (force_type_die): Look up input type itself
13545         instead of root_type() of type.
13546
13547 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13548
13549         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13550         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13551         pre-reload splitters are transformed to post-reload
13552         define_insn_and_split patterns.
13553         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13554
13555 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13556
13557         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13558         TARGET_PROMOTE_PROTOTYPES.
13559
13560 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13561
13562         PR middle-end/13750
13563         Revert:
13564         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13565         PR pch/13361
13566         * c-typeck.c (constructor_asmspec): Delete.
13567         (struct initializer_stack): Delete field 'asmspec'.
13568         (start_init): Delete saving of asmspec.
13569         (finish_init): Don't update constructor_asmspec.
13570         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13571         * stmt.c (expand_asm): Duplicate strings from tree.
13572         (expand_asm_operands): Likewise.
13573         * tree.c (tree_size): Update computation of size of STRING_CST.
13574         (make_node): Don't make STRING_CST nodes.
13575         (build_string): Allocate string with tree node.
13576         * tree.def (STRING_CST): Update comment.
13577         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13578         (tree_string): Place contents of string in tree node.
13579         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13580         from tree.
13581
13582 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13583
13584         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13585         msgid.
13586
13587 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13588
13589         * config/rs6000/altivec.md (*movv4si_internal): At least one
13590         operand must be altivec_register_operand.
13591         (*movv8hi_internal1): Likewise.
13592         (*movv16qi_internal1): Likewise.
13593         (*movv4sf_internal1): Likewise.
13594
13595 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13596
13597         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13598         * configure: Regenerate.
13599
13600 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13601
13602         * doc/install.texi: Update description of --gxx-include-dir to
13603         give correct default value.
13604
13605 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13606
13607         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13608         8 with MAC_REG.
13609
13610 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13611
13612         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13613         gen_rtx_PARALLEL.
13614
13615 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13616
13617         * emit-rtl.c: Update the comment about the file.
13618
13619 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13620
13621         * sourcebuild.texi (Test Idioms): Update testcase naming
13622         conventions.
13623
13624 2004-02-04  Per Bothner  <per@bothner.com>
13625
13626         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13627         * c-ppoutput.c (pp_dir_change):  New function.
13628         * c-common.h (pp_dir_change):  New declaration.
13629         * cpplib.h (struct cpp_options):  Remove working_directory field.
13630         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13631         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13632         Don't handle -fworking_directory here, but in c_common_post_options.
13633         (read_original_directory): Don't back up when done.
13634         Don't clear no-longer used working_directory flag.
13635         * cpplib.h:  Update declarations to match.
13636         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13637         (init_c_lex):  Don't set dir_change callback here, since we want
13638         to set it even if flag_preprocess_only.
13639         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13640         (c_common_post_options):  Set dir_change callback.
13641         Call pp_dir_change if approporiate.
13642         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13643         unneeded parameter and result. Do LC_RENAME for <built-in>.
13644         (c_common_post_options):  Call cpp_read_main_file here instead.
13645         (c_common_init):  Update accordingly.
13646         (push_command_line_include):  Don't cpp_push_main_file.
13647         Do LC_RENAME rather than LC_LEASE to get back to main file.
13648         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13649         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13650         files, but call finish_options for all files.
13651         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13652         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13653         cpp_find_main_file + cpp_push_main_file.
13654         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13655         * opts.c (handle_options):  Only set main_input_filename first time.
13656
13657 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13658
13659         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13660
13661 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13662
13663         * reload.c (find_equiv_reg): When checking for register overlap,
13664         don't index hard_regno_nregs with a pseudo-reg.
13665
13666 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13667
13668         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13669
13670 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13671
13672         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13673         against FIRST_PSEUDO_REGISTER.
13674
13675 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13676
13677         * Makefile.in: Move target, host overrides after per-language
13678         fragments.
13679
13680         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13681         (GNATLIBCFLAGS): Remove -g.
13682
13683 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13684
13685         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13686         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13687         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13688         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13689         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13690         config/sparc/sparc.c, config/vax/vax.c: Revert the
13691         replacements of "FALLTHRU" with "Fall through" done in the
13692         previous patch.
13693
13694 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13695
13696         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13697         config/arm/arm.c, config/arm/arm.md,
13698         config/cris/cris-protos.h, config/fr30/fr30.c,
13699         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13700         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13701         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13702         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13703         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13704         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13705         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13706         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13707         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13708         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13709         config/s390/s390.md, config/sparc/netbsd-elf.h,
13710         config/sparc/openbsd.h, config/sparc/sparc.c,
13711         config/xtensa/lib2funcs.S: Fix comment formatting.
13712
13713 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13714
13715         * config/alpha/alpha.c, config/arc/arc.c,
13716         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13717         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13718         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13719         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13720         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13721         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13722         config/iq2000/iq2000.c, config/m32r/m32r.c,
13723         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13724         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13725         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13726         config/rs6000/rs6000.h, config/sparc/sparc.c,
13727         config/vax/vax.c: Fix comment typos.  Follow spelling
13728         conventions.
13729
13730 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13731
13732         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13733         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13734         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13735         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13736         config/arm/fpa.md, config/arm/iwmmxt.md,
13737         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13738         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13739         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13740         config/sparc/netbsd-elf.h: Update copyright.
13741
13742 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13743
13744         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13745         for all modes whose size is greater than 8 bytes if ARCH32.
13746         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13747         by reference if ARCH32.
13748
13749 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13750
13751         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13752
13753 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13754
13755         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13756         to before adddi3 insn patterns.
13757         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13758         "reload_insi"): Move to before addsi3 insn patterns.
13759
13760 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13761
13762         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13763         parameter.  Use it instead of current_function_is_thunk.
13764         * function.h (struct function): Update documentation for is_thunk.
13765         * tree.h (CALL_FROM_THUNK_P): New macro.
13766         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13767         no_new_pseudos when testing current_function_is_thunk.
13768         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13769
13770 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13771
13772         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13773         TARGET_SETUP_INCOMING_VARARGS.
13774
13775 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13776
13777         * emit-rtl.c (gen_rtx): Remove.
13778         * genattrtab.c: Don't mention gen_rtx in a comment.
13779         * rtl.h: Remove the prototype for gen_rtx.
13780         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13781
13782 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13783
13784         * config/arc/arc.h, config/fr30/fr30.h
13785         (SETUP_INCOMING_VARARGS): Remove the target-independent
13786         comments.
13787         * doc/tm.texi: Don't mention deprecated target macros.
13788
13789 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13790
13791         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13792         target-independent comment.
13793
13794 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13795
13796         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13797         mention deprecated target macros.
13798
13799 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13800
13801         * config.gcc: Remove obsolete ports and configurations.
13802         * config/linux-aout.h, config/netware.h,
13803         config/t-linux-gnulibc1, config/d30v/abi,
13804         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13805         config/d30v/d30v.h, config/d30v/d30v.md,
13806         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13807         config/dsp16xx/dsp16xx-modes.def,
13808         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13809         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13810         config/i370/README, config/i370/i370-c.c,
13811         config/i370/i370-protos.h, config/i370/i370.c,
13812         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13813         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13814         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13815         config/i386/moss.h, config/i386/netware.h,
13816         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13817         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13818         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13819         config/i960/i960-c.c, config/i960/i960-coff.h,
13820         config/i960/i960-modes.def, config/i960/i960-protos.h,
13821         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13822         config/i960/rtems.h, config/i960/t-960bare,
13823         config/m68k/hp310.h, config/m68k/hp320.h,
13824         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13825         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13826         Remove.
13827         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13828         doc/md.texi: Remove mentions of obsolete ports.
13829
13830 2004-02-04  Jan Hubicka  <jh@suse.cz>
13831
13832         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13833         pointer when all VALUE's locations has been invalidated.
13834         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13835
13836 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13837
13838         * doc/invoke.texi (x86 options): Fix spelling/wording.
13839
13840 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13841
13842         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13843         put the original string in a comment.
13844         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13845         * config/mips/mips.c (mips_output_ascii): Likewise.
13846         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13847
13848 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13849
13850         * system.h (GIV_SORT_CRITERION): Poison.
13851         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13852         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13853
13854 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13855
13856         PR target/9348
13857         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13858         multiplies with a multiplication of the wrong signedness, its the
13859         signedness of the multiplication that we've performed that needs to
13860         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13861         if expand_mult_highpart_adjust places the result in target.
13862
13863 2004-02-03  Richard Henderson  <rth@redhat.com>
13864
13865         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13866
13867 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13868
13869         * config.gcc (sh[234]l): Use little endian fragments.
13870
13871 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13872
13873         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13874         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13875         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13876         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13877         floating point format.
13878         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13879         the above functions.
13880         (output_move_quad): Output float values in correct target format.
13881         (legitimate_const_double_p): New function.
13882         * config/pdp11/pdp11.h: Fix typos.
13883         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13884         (TARGET_FLOAT_FORMAT): Ditto.
13885         (pdp11_f_format, pdp11_d_format): Add external declarations.
13886         (MAX_REGS_PER_ADDRESS): Corrected.
13887         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13888         (PRINT_OPERAND): Output float literals in target format.
13889
13890 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13891
13892         PR c++/13975
13893         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13894         TI_PRIVATE.
13895         (access_public_node): Redefine.
13896         (access_protected_node): Likewise.
13897         (access_private_node): Likewise.
13898         * tree.c (build_common_tree_nodes): Create access_public_node,
13899         access_protected_node, and access_private_node.
13900
13901 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13902
13903         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13904         (MASK_INLINE_INT_DIV_THR): Ditto.
13905         (MASK_INLINE_SQRT_LAT): Ditto.
13906         (MASK_INLINE_SQRT_THR): Ditto.
13907         (MASK_DWARF2_ASM): Ditto.
13908         (MASK_EARLY_STOP_BITS): Ditto.
13909
13910 2004-02-02  Paul Brook  <paul@codesourcery.com>
13911
13912         Merge from csl-arm-branch.
13913
13914         2004-01-30  Paul Brook  <paul@codesourcery.com>
13915
13916         * aof.h (REGISTER_NAMES): Add vfp reg names
13917         (ADDITIONAL_REGISTER_NAMES): Ditto.
13918         * aout.h (REGISTER_NAMES): Ditto.
13919         (ADDITIONAL_REGISTER_NAMES): Ditto.
13920         * arm-protos.h: Update/Add Prototypes.
13921         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13922         Only allow 0.0 for VFP.
13923         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13924         (values_fp): Rename from values_fpa.  Update Users.
13925         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13926         Update users.  Only check valid constants for this hardware.
13927         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13928         Only allow consts for FPA.
13929         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13930         Only allow consts for FPA.
13931         (use_return_insn): Check for saved VFP regs.
13932         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13933         (arm_legitimize_address): Ditto.
13934         (arm_general_register_operand): New function.
13935         (vfp_mem_operand): New function.
13936         (vfp_compare_operand): New function.
13937         (vfp_secondary_reload_class): New function.
13938         (arm_float_compare_operand): New function.
13939         (vfp_print_multi): New function.
13940         (vfp_output_fstmx): New function.
13941         (vfp_emit_fstm): New function.
13942         (arm_output_epilogue): Output VPF reg restore code.
13943         (arm_expand_prologue): Output VFP reg save code.
13944         (arm_print_operand): Add 'P'.
13945         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13946         (arm_regno_class): Return classes for VFP regs.
13947         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13948         (arm_get_frame_size): Ditto.
13949         * arm.h (FIXED_REGISTERS): Add VFP regs.
13950         (CALL_USED_REGISTERS): Ditto.
13951         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13952         (FIRST_VFP_REGNUM): Define.
13953         (LAST_VFP_REGNUM): Define.
13954         (IS_VFP_REGNUM): Define.
13955         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13956         (HARD_REGNO_NREGS): Handle VFP regs.
13957         (REG_ALLOC_ORDER): Add VFP regs.
13958         (enum reg_class): Add VFP_REGS.
13959         (REG_CLASS_NAMES): Ditto.
13960         (REG_CLASS_CONTENTS): Ditto.
13961         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13962         (REG_CLASS_FROM_LETTER): Add 'w'.
13963         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13964         (EXTRA_MEMORY_CONSTRAINT): Define.
13965         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13966         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13967         (REGISTER_MOVE_COST): Ditto.
13968         (PREDICATE_CODES): Add arm_general_register_operand,
13969         arm_float_compare_operand and vfp_compare_operand.
13970         * arm.md (various): Rename as above.
13971         (divsf3): Enable when TARGET_VFP.
13972         (divdf3): Ditto.
13973         (movdfcc): Ditto.
13974         (sqrtsf2): Ditto.
13975         (sqrtdf2): Ditto.
13976         (arm_movdi): Disable when TARGET_VFP.
13977         (arm_movsi_insn): Ditto.
13978         (movsi): Only split with general regs.
13979         (cmpsf): Use arm_float_compare_operand.
13980         (push_fp_multi): Restrict to TARGET_FPA.
13981         (vfp.md): Include.
13982         * vfp.md: New file.
13983         * fpa.md (various): Rename as above.
13984         * doc/md.texi: Document ARM w and U constraints.
13985
13986         2004-01-15  Paul Brook  <paul@codesourcery.com>
13987
13988         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13989         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13990         Break out of loop when we find a float-abi.  Fix typo.
13991         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13992         Set -mfloat-abi=.
13993         * doc/install.texi: Document --with-fpu.
13994
13995         2003-01-14  Paul Brook  <paul@codesourcery.com>
13996
13997         * config.gcc (with_arch): Add armv6.
13998         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13999         * config/arm/arm.c (arm_overrride_options): Ditto.
14000
14001         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14002
14003         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14004         (FL_ARCH6): Renamed from FL_ARCH6J.
14005         (arm_arch3m): Renamed from arm_fast_multiply.
14006         (arm_arch6): Renamed from arm_arch6j.
14007         * arm.h: Update all uses of above.
14008         * arm-cores.def: Likewise.
14009         * arm.md: Likewise.
14010
14011         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14012         not arm6j.  Add entry for arch armv6.
14013
14014         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14015
14016         * arm.c (arm_emit_extendsi): Delete.
14017         * arm-protos.h (arm_emit_extendsi): Delete.
14018         * arm.md (zero_extendhisi2): Also handle zero-extension of
14019         non-subregs.
14020         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14021         (thumb_zero_extendhisi2): Only match if not v6.
14022         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14023         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14024         (thumb_extendqisi2): Likewise.
14025         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14026         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14027         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14028         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14029         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14030         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14031         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14032         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14033         (arm_extendqisi2addsi): Likewise.
14034
14035         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14036
14037         Revert this change:
14038         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14039         + REG addressing modes.
14040
14041         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14042         + REG addressing modes.
14043
14044         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14045
14046         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14047         CONSTANT_P_RTX.
14048
14049         2003-30-12  Paul Brook  <paul@codesourcery.com>
14050
14051         * longlong.h: protect arm inlines with !defined (__thumb__)
14052
14053         2003-30-12  Paul Brook  <paul@codesourcery.com>
14054
14055         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14056
14057         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14058
14059         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14060         change.
14061
14062         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14063
14064         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14065         to the virtual incoming args pointer for downward stacks.
14066
14067         2003-12-29  Paul Brook  <paul@codesourcery.com>
14068
14069         * config/arm/arm-cores.def: Add cost function.
14070         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14071         (arm_rtx_costs): Remove
14072         (struct processors): Add rtx_costs field.
14073         (all_cores, all_architectures): Ditto.
14074         (arm_override_options): Set targetm.rtx_costs.
14075         (thumb_rtx_costs): New function.
14076         (arm_rtx_costs_1): Remove cases handled elsewhere.
14077         * config/arm/arm.h (processor_type): Add COSTS parameter.
14078
14079         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14080
14081         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14082         (arm926ejs.md): Include it.
14083         * config/arm/arm926ejs.md: New pipeline description.
14084
14085         2003-12-24  Paul Brook  <paul@codesourcery.com>
14086
14087         * config/arm/arm.c (arm_arch6j): New variable.
14088         (arm_override_options): Set it.
14089         (arm_emit_extendsi): New function.
14090         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14091         * config/arm/arm.h (arm_arch6j): Declare.
14092         * config/arm/arm.md: Add sign/zero extend insns.
14093
14094         2003-12-23  Paul Brook  <paul@codesourcery.com>
14095
14096         * config/arm/arm.c (all_architectures): Add armv6.
14097         * doc/invoke.texi: Document it.
14098
14099         2003-12-19  Paul Brook  <paul@codesourcery.com>
14100
14101         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14102         insn patterns to match.
14103         * config/arm/arm-generic.md: Ditto.
14104         * config/arm/cirrus.md: Ditto.
14105         * config/arm/fpa.md: Ditto.
14106         * config/amm/iwmmxt.md: Ditto.
14107         * config/arm/arm1026ejs.md: Ditto.
14108         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14109         for 11_loadb.
14110
14111         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14112
14113         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14114         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14115         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14116         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14117         arm_no_early_mul_dep): Correctly deal with conditional execution,
14118         parallels and single shift operations.
14119         (arm_no_early_alu_shift_value_dep): Define.
14120         * arm.md (attr type): Replace 'normal' with 'alu',
14121         'alu_shift' and 'alu_shift_reg'.
14122         (attr core_cycles): Adjust.
14123         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14124         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14125         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14126         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14127         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14128         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14129         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14130         attribute appropriately.
14131         * config/arm/arm1026ejs.md (alu_op): Adjust.
14132         (alu_shift_op, alu_shift_reg_op): New.
14133         * config/arm/arm1136.md: Add better bypasses for early
14134         registers. Remove load[234] and store[234] bypasses.
14135         (11_alu_op): Adjust.
14136         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14137
14138         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14139
14140         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14141         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14142         * config/arm/arm.c (arm_no_early_store_addr_dep,
14143         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14144         * config/arm/arm1026ejs.md: Add load-store bypass.
14145         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14146         Add bypasses between instructions.
14147
14148         2003-12-10  Paul Brook  <paul@codesourcery.com>
14149
14150         * config/arm/arm.c (arm_fpu_model): New variable.
14151         (arm_fload_abi): New variable.
14152         (target_fpe_name): Rename from target_fp_name.
14153         (target_fpu_name): New variable.
14154         (arm_is_cirrus): Remove.
14155         (fpu_desc): New struct.
14156         (all_fpus): Define.
14157         (pf_model_for_fpu): Define.
14158         (all_loat_abis): Define.
14159         (arm_override_options): Set fp arch flags based on -mfpu=
14160         and -float-abi=.
14161         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14162         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14163         (*): Use new TARGET_* flags.
14164         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14165         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14166         (TARGET_SOFT_FLOAT): Ditto.
14167         (TARGET_SOFT_FLOAT_ABI): New.
14168         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14169         TARGET_HARD_FLOAT.
14170         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14171         (TARGET_OPTIONS): Add -mfpu=.
14172         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14173         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14174         (arm_pf_model): Define.
14175         (arm_float_abi_type): Define.
14176         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14177         * config/arm/arm.md: Use new TARGET_* flags.
14178         * config/arm/cirrus.md: Ditto.
14179         * config/arm/fpa.md: Ditto.
14180         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14181         * config/arm/semi.h (ASM_SPEC): Ditto.
14182         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14183         (FPUTYPE_DEFAULT): Set to VFP.
14184         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14185
14186         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14187
14188         PR target/12476
14189         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14190         'bx' instead of 'b' to avoid branch range restrictions.  Output
14191         the thunk immediately before the thunked-to function.
14192         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14193         .thumb_func if a thunk is being generated.  Emit .code 16 along
14194         with .thumb_func if a thunk is not being generated.
14195
14196         2003-11-15  Nicolas Pitre <nico@cam.org>
14197
14198         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14199         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14200         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14201         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14202         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14203
14204         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14205             Ian Lance Taylor  <ian@wasabisystems.com>
14206
14207         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14208         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14209
14210         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14211
14212         * config/arm/arm.md (insn):  Add new V6 instruction names.
14213         (generic_sched):  New attr.
14214         * config/arm/arm-generic.md:  Use generic_sched here.
14215         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14216         stages of pipeline.  Adjust latency counts accordingly.
14217         * config/arm/arm1136jfs.md:  New file.
14218
14219         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14220
14221         * config/arm/arm.h (processor_type): New enumeration type.
14222         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14223         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14224         (CPP_CPU_ARCH_SPEC): Likewise.
14225         * config/arm/arm.c (arm_tune): New variable.
14226         (all_cores): Use cores.def.
14227         (all_architectures): Add representative processor.
14228         (arm_override_options): Restructure way in which tuning
14229         information is deduced.
14230         * arm.md: Update "insn" and "type" attributes throughout.
14231         (insn): New attribute.
14232         (type): Compute "mult" from "insn" attribute.  Add load2,
14233         load3, load4 alternatives.
14234         (arm automaton): Move to arm-generic.md.
14235         * config/arm/arm-cores.def: New file.
14236         * config/arm/arm-generic.md: Likewise.
14237         * config/arm/arm1026ejs.md: Likewise.
14238
14239 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14240
14241         * doc/invoke.texi (SPARC options): Remove -mflat and
14242         all -mxxx (xxx:chip) options.
14243         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14244         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14245         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14246         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14247         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14248         * config/sparc/sparc.c: Likewise.
14249         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14250         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14251         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14252         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14253         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14254         (sparc_flat_must_save_register_p): Likewise.
14255         (sparc_flat_compute_frame_size): Likewise.
14256         (sparc_flat_save_restore): Likewise.
14257         (sparc_flat_function_prologue): Likewise.
14258         (sparc_flat_function_epilogue): Likewise.
14259         (sparc_flat_epilogue_delay_slots): Likewise.
14260         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14261         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14262         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14263         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14264         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14265         (CONDITIONAL_REGISTER_USAGE): Likewise.
14266         (FRAME_POINTER_REQUIRED): Likewise.
14267         (INITIAL_ELIMINATION_OFFSET): Likewise.
14268         (BASE_RETURN_VALUE_REG): Likewise.
14269         (BASE_OUTGOING_VALUE_REG): Likewise.
14270         (BASE_PASSING_ARG_REG): Likewise.
14271         (BASE_INCOMING_ARG_REG): Likewise.
14272         (INCOMING_REGNO): Likewise.
14273         (OUTGOING_REGNO): Likewise.
14274         (LOCAL_REGNO): Likewise.
14275         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14276         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14277         (EPILOGUE_USES): Likewise.
14278         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14279         ("flat" attribute): Delete.
14280         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14281         handling.
14282         (call followed by jump define_peephole's): Delete.
14283         (exception_receiver): Likewise.
14284         (builtin_setjmp_receiver): Likewise.
14285         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14286
14287 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14288
14289         PR c/11658
14290         PR c/13994
14291         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14292         on langhooks.h.
14293         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14294         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14295         Include langhooks.h.  Replace c_common_truthvalue_conversion
14296         with the truthvalue_conversion language hook throughout.
14297         (expr_no_commas): Call default_conversion before save_expr
14298         for the first term of the production 'x ? : y'.
14299         * c-common.c (c_common_truthvalue_conversion): Remove
14300         obsolete block.  Invoke recursively the hook instead
14301         of this function.
14302         * c-convert.c (convert): handle ERROR_MARK_NODE.
14303         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14304         returned by the truthvalue_conversion language hook.
14305         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14306         c_objc_common_truthvalue_conversion.
14307         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14308         New function.
14309         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14310         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14311         c_objc_common_truthvalue_conversion.
14312
14313 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14314
14315         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14316         of gen_rtx.
14317         (LIBCALL_VALUE): Likewise.
14318         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14319         gen_rtx_CC0 instead of gen_rtx.
14320         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14321         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14322         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14323         gen_rtx.
14324         (m68hc11_emit_logical): Likewise.
14325
14326 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14327
14328         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14329         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14330         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14331         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14332         config/mips/mips.md, config/mmix/mmix.c,
14333         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14334         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14335         config/rs6000/altivec.md, config/s390/s390.c,
14336         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14337         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14338         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14339         constants that are readily available.
14340
14341 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14342
14343         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14344         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14345         instead of GEN_INT (0).  Do the same for other constants that
14346         are readily available.
14347
14348 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14349
14350         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14351         gen_rtx.
14352         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14353         instead of gen_rtx.
14354         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14355         gen_rtx.
14356         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14357         gen_rtx_ASHIFT instead of gen_rtx.
14358         (udivmodqi4): Likewise.
14359
14360 2004-02-02  Richard Henderson  <rth@redhat.com>
14361
14362         PR target/13789
14363         * expr.c (store_expr): Use force_operand before emit_move_insn.
14364
14365 2004-02-02  Jeff Law  <law@redhat.com>
14366             Roger Sayle  <roger@eyesopen.com>
14367
14368         * tree.c (commutative_tree_code, associative_tree_code): New
14369         functions.
14370         (iterative_hash_expr): Use commutative_tree_code.
14371         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14372         * fold-const.c (operand_equal_p): Use commutative_tree_code
14373         rather than inlining the commutativity check.
14374         (fold): Likewise.
14375
14376 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14377
14378         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14379         * config/frv/frv-protos.h: Remove the prototype for
14380         frv_function_arg_keep_as_reference.
14381         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14382         Remove.
14383         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14384         * config/stormy16/stormy16.h: Remove the commented-out
14385         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14386
14387 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14388
14389         PR target/13914
14390         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14391         for retaddr_column.
14392
14393 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14394
14395         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14396         gen_rtx.
14397
14398 2004-02-02  Eric Christopher  <echristo@redhat.com>
14399             Zack Weinberg  <zack@codesourcery.com>
14400
14401         * c-opts.c (c_common_handle_option): Add -finput-charset.
14402         * c.opt: Ditto.
14403         * cppcharset.c (one_iso88591_to_utf8): Remove.
14404         (convert_iso88591_utf8): Ditto.
14405         (conversion_tab): Remove 8859-1 converter.
14406         (_cpp_input_to_utf8): Remove.
14407         (_cpp_init_iconv_buffer): Ditto.
14408         (_cpp_close_iconv_buffer): Ditto.
14409         (_cpp_convert_input): New function.
14410         (_cpp_default_encoding): Ditto.
14411         * cpphash.h: Add/remove prototypes for above.
14412         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14413         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14414         for narrow execution and input character sets.
14415         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14416         * doc/cppopts.texi: Document -finput-charset.
14417
14418 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14419
14420         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14421         against FIRST_PSEUDO_REGISTER.
14422
14423 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14424
14425         * doc/invoke.texi (SPARC options): Further improve.
14426
14427 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14428
14429         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14430         config/h8300/h8300.c, config/ip2k/ip2k.md,
14431         config/iq2000/iq2000.c, config/mips/mips.c,
14432         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14433         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14434         config/v850/v850.md: Fix indentation.
14435
14436 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14437
14438         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14439         arguments on a 16-byte boundary in the parameter array if ARCH64.
14440         Split handling of TFmode.
14441
14442 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14443
14444         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14445         Don't test CONSTANT_P (x).
14446         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14447         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14448         Fix misindentation.
14449
14450 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14451
14452         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14453
14454 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14455
14456         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14457         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14458         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14459         config/iq2000/iq2000.c, config/m32r/m32r.c,
14460         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14461         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14462         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14463         config/stormy16/stormy16.c, config/v850/v850.md,
14464         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14465
14466 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14467
14468         * config/mcore/mcore.c (block_move_sequence): Replace
14469         gen_rtx_CONST_INT with GEN_INT.
14470
14471 2004-02-02  Jan Hubicka  <jh@suse.cz>
14472
14473         * alias.c (record_set): Use hard_regno_nregs.
14474         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14475         * builtins.c (apply_args_size): Likewise.
14476         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14477         mark_set_regs, add_stored_regs, mark_referenced_regs,
14478         insert_restore, insert_save, insert_one_insn): Likewise.
14479         * cfgcleanup.c: Include regs.h
14480         (mark_effect, mentions_nonequal_regs): Likewise.
14481         * cfgrtl.c (mark_killed_regs): Likewise
14482         * combine.c (update_table_tick, record_value_for_reg,
14483         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14484         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14485         reg_bitfield_target_p, distribute_notes): Likewise.
14486         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14487         exp_equiv_p, cse_insn): Likewise.
14488         * cselib.c (cselib_lookup): Likewise.
14489         (cselib_invalidate_regno, cselib_record_set): Likewise.
14490         * df.c (df_ref_record): Likewise.
14491         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14492         Likewise.
14493         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14494         count_or_remove_death_notes_bb): Likewise.
14495         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14496         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14497         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14498         * integrate.c (mark_stores): Likewise.
14499         * jump.c (delete_prior_computation): Likewise.
14500         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14501         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14502         * loop.c (LOOP_REGNO_NREGS): Likewise.
14503         * postreload.c (reload_combine, reload_combine_note_store,
14504         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14505         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14506         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14507         try_recolor_web, insert_coalesced_conflicts, check_colors,
14508         break_precolored_alias): Likewise.
14509         * ra-debug.c: Include regs.h
14510         (ra_print_rtx_object): Likewise.
14511         * ra-rewrite (choose_spill_colors): Likewise.
14512         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14513         * ra.c (init_ra): Likewise.
14514         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14515         peep2_find_free_register): Likewise.
14516         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14517         * regclass.c (hard_regno_nregs): New array.
14518         (init_reg_modes_once): Initialize it.
14519         (choose_hard_reg_mode): Use it.
14520         (record_reg_classes): Likewise.
14521         * regmove.c (mark_flags_life_zones): Likewise.
14522         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14523         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14524         copy_value, maybe_mode_change, find_oldest_value_reg,
14525         copyprop_hardreg_forward_1):
14526         * regs.h (hard_regno_nregs): Declare.
14527         * realod.c (reload_inner_reg_of_subreg): Use it.
14528         (push_reload, combine_reloads, find_dummy_reload,
14529         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14530         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14531         reload_adjust_reg_for_mode): Likewise.
14532         * reload1.c (compute_use_by_pseudos, count_pseudo,
14533         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14534         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14535         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14536         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14537         delete_output_reload): Likewise.
14538         * resource.c (update_live_status, mark_referenced_resources,
14539         mark_set_resources, mark_target_live_regs): Likewise.
14540         * rtlanal.c:  Include regs.h
14541         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14542         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14543         subreg_regno_offset, subreg_offset_representable_p,
14544         hoist_test_store): Likewise.
14545         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14546         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14547         * stmt.c: Include regs.h
14548         (decl_conflicts_with_clobbers_p): Likewise.
14549         * varasm.c (make_decl_rtl): Likewise.
14550         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14551
14552 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14553
14554         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14555         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14556         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14557         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14558         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14559         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14560         config/iq2000/iq2000.h, config/m32r/m32r.c,
14561         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14562         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14563         config/mcore/mcore.c, config/mcore/mcore.h,
14564         config/mcore/mcore.md, config/mips/mips.c,
14565         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14566         config/rs6000/rs6000.c, config/s390/s390.c,
14567         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14568         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14569         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14570
14571 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14572
14573         * config/h8300/h8300.md (two peephole2's): New.
14574
14575 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14576
14577         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14578         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14579         (ASM_CPU_SPEC): Likewise
14580         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14581         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14582
14583 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14584
14585         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14586         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14587         (expand_builtin): Always call expand_builtin_pow.
14588
14589 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14590
14591         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14592         BUILT_IN_SIGNBITL): New GCC builtins.
14593         * builtins.c (expand_builtin_signbit): New function to RTL expand
14594         calls to signbit, signbitf and signbitl as inline intrinsics.
14595         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14596         (fold_builtin_signbit): New function to perform constant folding
14597         of signbit, signbitf and signbitl.
14598         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14599
14600         * doc/extend.texi: Document new signbit{,f,l} builtins.
14601
14602 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14603
14604         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14605
14606 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14607
14608         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14609         "mips_const_double_ok" and "simple_memory_operand", which were
14610         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14611         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14612         for removal of simple_memory_operand.
14613
14614 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14615
14616         * config/c4x/c4x.md: Use GEN_INT instead of
14617         gen_rtx (CONST_INT, ...).
14618
14619 2004-01-31  Richard Henderson  <rth@redhat.com>
14620
14621         * varasm.c (output_constant_pool): Don't zap the pool.
14622
14623 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14624
14625         * genrecog.c (decision_type): Add DT_const_int.
14626         (write_cond) [DT_const_int]: Print a comparison against small
14627         constant.
14628         (write_node): Simplify comparisons against small constants
14629         before printing tests.
14630
14631 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14632
14633         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14634         instead of gen_rtx_CONST_INT.
14635
14636 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14637
14638         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14639         instead of gen_rtx_CONST_INT.
14640
14641 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14642
14643         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14644         hook_bool_CUMULATIVE_ARGS_false.
14645         * targhooks.c (default_strict_argument_naming): Rename to
14646         hook_bool_CUMULATIVE_ARGS_false.
14647         * targhooks.h: Update the prototype for
14648         default_strict_argument_naming.
14649
14650 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14651
14652         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14653         * config/sh/sh.h: Likewise.
14654         * config/sh/sh.md: Likewise.
14655
14656 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14657
14658         * doc/invoke.texi (SPARC options): Restructure and update.
14659
14660 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14661
14662         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14663         STRICT_ARGUMENT_NAMING): Poison.
14664         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14665         hook_bool_tree_false.
14666         * targhooks.c (default_promote_function_args): Remove.
14667         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14668         Don't check incoming.
14669         (default_strict_argument_naming): Don't use
14670         STRICT_ARGUMENT_NAMING.
14671         * targhooks.h: Remove the prototype for
14672         default_promote_function_args.
14673
14674 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14675
14676         * config/i386/i386-protos.h: Remove the prototype for
14677         ix86_setup_incoming_varargs.
14678         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14679         (ix86_setup_incoming_varargs): Make it static.
14680         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14681
14682 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14683
14684         * alloc-pool.c: Fix comment typos.
14685         * builtin-types.def: Likewise.
14686         * builtins.def: Likewise.
14687         * c-pretty-print.c: Likewise.
14688         * df.h: Likewise.
14689         * reload1.c: Likewise.
14690
14691 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14692
14693         * doc/invoke.texi: Follow spelling conventions.
14694         * doc/tm.texi: Likewise.
14695
14696 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14697
14698         * doc/install.texi: Fix typos.
14699         * doc/invoke.texi: Likewise.
14700
14701 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14702
14703         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14704         registers as pointers.
14705         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14706
14707 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14708
14709         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14710         and restore it to gen_lowpart_general on exit.
14711         (gen_lowpart_for_combine): Adjust all callers to go through
14712         gen_lowpart.
14713         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14714         and restore it to gen_lowpart_general on exit.
14715         (gen_lowpart_if_possible): Adjust all callers to go through
14716         gen_lowpart.
14717         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14718         (gen_lowpart): Declare as pointer to function, initialized to
14719         gen_lowpart_general.
14720         * rtl.h (gen_lowpart): Declare as pointer to function.
14721
14722 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14723
14724         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14725         * calls.c: Likewise.
14726         * emit-rtl.c: Likewise.
14727         * function.c: Likewise.
14728         * reload1.c: Likewise.
14729         * config/i386/cygming.h: Likewise.
14730         * config/i386/i386.c: Likewise.
14731         * config/i386/winnt.c: Likewise.
14732
14733 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14734
14735         PR bootstrap/9249
14736         * doc/install.texi: document --enable-__cxa_atexit option.
14737         * configure.ac: Disable __cxa_atexit if not supported.
14738         * configure: Regenerate.
14739
14740 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14741
14742         * ggc-zone.c (ggc_free): New function.
14743
14744 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14745
14746         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14747         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14748         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14749         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14750         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14751         config/alpha/alpha.c, config/alpha/alpha.h,
14752         config/alpha/alpha.md, config/alpha/unicosmk.h,
14753         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14754         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14755         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14756         config/frv/frvend.c, config/i386/cygming.h,
14757         config/i386/djgpp.h, config/i386/emmintrin.h,
14758         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14759         config/i386/i386-protos.h, config/i386/openbsd.h,
14760         config/i386/winnt.c, config/i386/xm-mingw32.h,
14761         config/i386/xmmintrin.h, config/ia64/ia64.md,
14762         config/iq2000/iq2000.md, config/m32r/m32r.md,
14763         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14764         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14765         config/mips/iris5gas.h, config/mips/iris6.h,
14766         config/mips/iris6gas.h, config/mips/linux.h,
14767         config/mips/mips.md, config/mips/netbsd.h,
14768         config/mips/openbsd.h, config/mips/windiss.h,
14769         config/pa/fptr.c, config/rs6000/aix.h,
14770         config/rs6000/altivec.h, config/rs6000/darwin.h,
14771         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14772         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14773         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14774         config/sparc/sol2.h: Update copyright.
14775
14776 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14777
14778         * Makefile.in (abs_docdir, abs_srcdir): Define.
14779         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14780
14781 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14782
14783         * genconfig.c (main): Have CC0_P check its operand even on a
14784         target without cc0.
14785
14786 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14787
14788         * config/alpha/alpha.c: Remove mentions of deprecates macros
14789         in comments, remove some target-independent comments about target
14790         macros, and/or add minimal function comments for target hook
14791         implementations.
14792         * config/avr/avr.c: Likewise.
14793         * config/ia64/ia64.h: Likewise.
14794         * config/ip2k/ip2k.c: Likewise.
14795         * config/iq2000/iq2000.c: Likewise.
14796         * config/m32r/m32r.h: Likewise.
14797         * config/m68hc11/m68hc11.c: Likewise.
14798         * config/mcore/mcore.c: Likewise.
14799         * config/mmix/mmix.c: Likewise.
14800         * config/mn10300/mn10300.c: Likewise.
14801         * config/pa/pa.c: Likewise.
14802         * config/pdp11/pdp11.c: Likewise.
14803         * config/rs6000/rs6000.h: Likewise.
14804         * config/sh/sh.c: Likewise.
14805         * config/sh/sh.h: Likewise.
14806         * config/sparc/sparc.c: Likewise.
14807         * config/sparc/sparc.h: Likewise.
14808         * config/stormy16/stormy16.c: Likewise.
14809         * config/xtensa/xtensa.c: Likewise.
14810
14811 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14812
14813         PR optimization/12147
14814         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14815         RELOAD_FOR_OPADDR_ADDR.
14816         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14817         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14818
14819 2004-01-30  Jan Hubicka  <jh@suse.cz>
14820
14821         * reload.c (get_secondary_mem): Fix updating of
14822         secondary_memlocs_elim_used.
14823
14824 2004-01-30  Richard Henderson  <rth@redhat.com>
14825
14826         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14827         (MAX_RTX_HASH_TABLE): Remove.
14828         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14829         (first_pool, last_pool, pool_offset): Remove.
14830         (struct rtx_constant_pool): Split out from ...
14831         (struct varasm_status): ... here.  Reference one via pointer.
14832         (struct constant_descriptor_rtx): Merge struct pool_constant.
14833         (SYMHASH): Remove.
14834         (decode_rtx_const): Remove.
14835         (const_hash_rtx, compare_constant_rtx): Remove.
14836         (record_constant_rtx): Remove.
14837         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14838         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14839         (const_rtx_hash_1, const_rtx_hash): New.
14840         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14841         (simplify_subtraction): Use simplify_rtx.
14842         (force_const_mem): Rewrite to use new data structures.
14843         (find_pool_constant): Likewise.
14844         (get_pool_constant, get_pool_constant_mark,
14845         get_pool_constant_for_function, get_pool_mode,
14846         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14847         (output_constant_pool_2): Split out from output_constant_pool.
14848         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14849         (output_constant_pool): Zap entire pool datastructure.
14850         (mark_constant): Use new pool datastructures.
14851         (mark_constants): Use for_each_rtx.
14852         (mark_constant_pool): Use new pool datastructures.
14853
14854 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14855
14856         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14857         Copy operands[1] to pseudo for simplify_gen_subreg.
14858
14859 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14860
14861         * gcse.c (bypass_block): Fix a typo in the previous check-in
14862         to the file.
14863
14864 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14865
14866         * toplev.c: Include alloc-pool.h.
14867         * Makefile.in (toplev.c): Update dependencies.
14868
14869 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14870
14871         * combine.c (simplify_shift_const, case XOR): Be careful when
14872         commuting XOR with ASHIFTRT.
14873
14874 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14875             Eric Botcazou  <ebotcazou@libertysurf.fr>
14876
14877         * config/sparc/sparc-protos.h: Remove the prototype for
14878         sparc_builtin_saveregs.
14879         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14880         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14881         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14882         (TARGET_STRUCT_VALUE_RTX): Likewise.
14883         (TARGET_RETURN_IN_MEMORY): Likewise.
14884         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14885         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14886         (sparc_builtin_saveregs): Make it static.
14887         (sparc_promote_prototypes): New.
14888         (sparc_struct_value_rtx): Likewise.
14889         (sparc_return_in_memory): Likewise.
14890         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14891         (PROMOTE_FUNCTION_RETURN): Likewise.
14892         (RETURN_IN_MEMORY): Likewise.
14893         (STRUCT_VALUE): Likewise.
14894         (STRUCT_VALUE_INCOMING): Likewise.
14895         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14896         (STRICT_ARGUMENT_NAMING): Likewise.
14897         (PROMOTE_PROTOTYPES): Likewise.
14898
14899         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14900
14901 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14902
14903         PR c/12818
14904         * varasm.c (const_hash_1) <STRING_CST>: Use the
14905         address to compute the hash value if flag_writable_strings.
14906         (compare_constant) <STRING_CST>: Compare the addresses
14907         if flag_writable_strings.
14908         (build_constant_desc): Do not copy the expression for a
14909         STRING_CST if flag_writable_strings.
14910
14911 2004-01-30  Jan Hubicka  <jh@suse.cz>
14912
14913         * alloc-pool.c: Include hashtab.h
14914         (alloc_pool_descriptor): New structure
14915         (alloc_pool_hash): New global variable.
14916         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14917         (create_alloc_pool): Update statistics.
14918         (free_alloc_pool): Likewise.
14919         (pool_alloc): Likewise.
14920         (output_info): New structure
14921         (print_statistics, dump_alloc_pool_statistics): New function.
14922         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14923         (dump_alloc_pool_statistics): Declare.
14924         * toplev.c (finalize):  Dump statistics.
14925
14926         * reload.c (secondary_memlocs_elim_used): New static variable.
14927         (get_secondary_mem): Update it.
14928         (find_reloads): Use it.
14929
14930 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14931
14932         * toplev.c: Fix broken checkin of 2003-12-30, again.
14933
14934 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14935
14936         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14937         s390*-*-* targets by specifying a 'nop' insn.
14938         * configure: Regenerate.
14939
14940 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14941
14942         PR target/11475
14943         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14944
14945 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14946
14947         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14948         of addr when creating MEM copy.
14949
14950 2004-01-29  Devang Patel  <dpatel@apple.com>
14951
14952         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14953
14954 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14955
14956         PR inline-asm/6162
14957         * reload.c (find_reloads): Only support one pair of commutative
14958         operands.
14959
14960 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14961
14962         PR java/13824
14963         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14964         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14965         recursion.
14966
14967 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14968
14969         * config/frv/frv.c: Don't mention deprecated macros in
14970         comments.  Remove some target-independent comments about
14971         target macros.
14972         * config/frv/frv.h: Likewise.
14973
14974 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14975
14976         * cfghooks.c (split_block): Set probability and count of the
14977         new edge.
14978
14979 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14980
14981         * dwarf2out.c (struct die_struct): Added field decl_id.
14982         (decl_die_table): Changed to hash table.
14983         (decl_die_table_allocated): Deleted.
14984         (decl_die_table_in_use): Deleted.
14985         (DECL_DIE_TABLE_INCREMENT): Deleted.
14986         (decl_die_table_hash): New function.
14987         (decl_die_table_eq): New function.
14988         (lookup_decl_die): Lookup in a hash table.
14989         (equate_decl_number_to_die): Insert into a hash table.
14990         (dwarf2out_init): Init hash table decl_die_table.
14991
14992 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14993
14994         PR optimization/13424
14995         * expr.c (store_constructor): Revert 2003-12-03 change.
14996
14997         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14998         expected before returning early.  Avoid sharing RTL if they
14999         need to be changed.
15000
15001         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15002         handling so that memory attributes are preserved.  Don't call
15003         ix86_set_move_mem_attrs.
15004         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15005         (ix86_expand_clrstr): Rename src argument to
15006         dst.  Rework rep_stos and strset handling so that memory attributes
15007         are preserved.
15008         (ix86_expand_strlen): Pass src argument to
15009         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15010         memory attributes are preserved.
15011         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15012         change_address instead of gen_rtx_MEM.
15013         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15014         expanders.
15015         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15016         strmovqi, strmovqi_rex64): Remove.
15017         (rep_mov*, strmov*): Prefix insn names with *.
15018         (strset, strset_singleop, rep_stos): New expanders.
15019         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15020         strsetqi, strsetqi_rex64): Remove.
15021         (rep_stos*, strset*): Prefix insn names with *.
15022         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15023         to SImode.
15024         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15025         are preserved.
15026         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15027         Prefix insn names with *.
15028         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15029         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15030         (strlenqi_1): New expander.
15031         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15032
15033 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15034
15035         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15036         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15037         verify_flow_info): Declaration removed.
15038         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15039         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15040         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15041         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15042         instead of delete_block.
15043         * cfghooks.c: Include timevar.h and toplev.h.
15044         (cfg_hooks): Define here.
15045         (verify_flow_info, dump_bb): Moved from cfg.c.
15046         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15047         split_block, split_block_after_labels, move_block_after,
15048         delete_basic_block, split_edge, create_basic_block,
15049         create_empty_bb, can_merge_blocks_p, merge_blocks,
15050         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15051         New functions.
15052         * cfghooks.h (struct cfg_hooks): Added fields name,
15053         make_forwarder_block, tidy_fallthru_edge and
15054         move_block_after. Changed type of verify_flow_info, dump_bb,
15055         split_block fields. Renamed cfgh_split_edge and delete_block
15056         fields.
15057         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15058         split_block, delete_block, split_edge, create_basic_block,
15059         can_merge_blocks_p, merge_blocks): Macros removed.
15060         (cfg_hooks): Do not export.
15061         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15062         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15063         move_block_after, delete_basic_block, split_edge, create_basic_block,
15064         create_empty_bb, can_merge_blocks_p, merge_blocks,
15065         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15066         Declare.
15067         (cfg_layout_rtl_cfg_hooks): Declare.
15068         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15069         New functions.
15070         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15071         (redirect_edge_with_latch_update): Removed.
15072         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15073         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15074         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15075         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15076         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15077         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15078         cfghooks.c.
15079         (rtl_create_basic_block): Coding style fix.
15080         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15081         rtl_make_forwarder_block): New functions.
15082         (update_cfg_after_block_merging): Removed.
15083         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15084         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15085         to dump_bb.
15086         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15087         find_if_case_2): Don't update dominators.
15088         * timevar.def (TV_CFG_VERIFY): New.
15089         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15090         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15091         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15092         (remove_bbs): Don't call remove_bbs.
15093         (create_preheader): Use make_forwarder_block.
15094         (mfb_keep_just, mfb_update_loops): New static functions.
15095
15096 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15097
15098         * config/avr/avr.h: Remove target-independent comments about
15099         target macros.
15100
15101 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15102
15103         * timevar.c (timevar_print): Mention when checking is enabled.
15104
15105 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15106
15107         * c-lex.c (c_lex): Rename to...
15108         (c_lex_with_flags): Add new parameter to get CPP flags.
15109         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15110         * c-pragma.h (c_lex_with_flags): Declare.
15111
15112 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15113
15114         * config/mcore/mcore.c (mcore_external_libcall): Add a
15115         comment.
15116         (mcore_return_in_memory): Likewise.
15117
15118 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15119
15120         * config/mcore/mcore-protos.h: Remove the prototype for
15121         mcore_setup_incoming_varargs.
15122         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15123         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15124         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15125         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15126         (TARGET_STRUCT_VALUE_RTX): Likewise.
15127         (TARGET_RETURN_IN_MEMORY): Likewise.
15128         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15129         (mcore_setup_incoming_varargs): Make it static.  Receive the
15130         first argument by reference.  Add argument second_time.
15131         (mcore_external_libcall): New.
15132         (mcore_return_in_memory): Likewise.
15133         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15134         (PROMOTE_FUNCTION_RETURN): Likewise.
15135         (STRUCT_VALUE): Likewise.
15136         (RETURN_IN_MEMORY): Likewise.
15137         (SETUP_INCOMING_VARARGS): Likewise.
15138         (PROMOTE_PROTOTYPES): Likewise.
15139         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15140
15141 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15142
15143         * config/m32r/m32r-protos.h: Remove the prototype for
15144         m32r_setup_incoming_varargs.
15145         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15146         (TARGET_STRUCT_VALUE_RTX): Likewise.
15147         (TARGET_RETURN_IN_MEMORY): Likewise.
15148         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15149         (m32r_return_in_memory): New.
15150         (m32r_setup_incoming_varargs): Make it static.
15151         * config/m32r/m32r.h: Remove #undef of
15152         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15153         definitions of PROMOTE_FUNCTION_ARGS and
15154         PROMOTE_FUNCTION_RETURN.
15155         (PROMOTE_PROTOTYPES): Remove.
15156         (RETURN_IN_MEMORY): Likewise.
15157         (STRUCT_VALUE): Likewise.
15158
15159 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15160
15161         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15162         (TARGET_STRUCT_VALUE_RTX): Likewise.
15163         (m68k_struct_value_rtx): Likewise.
15164         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15165         STRUCT_VALUE_REGNUM.
15166         (PROMOTE_PROTOTYPES): Remove.
15167         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15168         STRUCT_VALUE_REGNUM.
15169         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15170         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15171
15172 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15173
15174         * config/stormy16/stormy16.c
15175         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15176         TARGET_BUILD_BUILTIN_VA_LIST.
15177
15178 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15179
15180         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15181         (TARGET_STRUCT_VALUE_RTX): Likewise.
15182         (TARGET_RETURN_IN_MEMORY): Likewise.
15183         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15184         (v850_return_in_memory): Likewise.
15185         (v850_setup_incoming_varargs): Likewise.
15186         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15187         (SETUP_INCOMING_VARARGS): Likewise.
15188         (RETURN_IN_MEMORY): Likewise.
15189         (STRUCT_VALUE): Likewise.
15190
15191 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15192
15193         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15194         (fr30_setup_incoming_varargs): Don't use
15195         STRICT_ARGUMENT_NAMING.
15196         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15197         (STRICT_ARGUMENT_NAMING): Likewise.
15198
15199 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15200
15201         * config/frv/frv-protos.h: Remove the prototype for
15202         frv_expand_builtin_saveregs.
15203         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15204         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15205         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15206         STRUCT_VALUE_REGNUM.
15207         (frv_expand_builtin_saveregs): Make it static.
15208         (frv_struct_value_rtx): New.
15209         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15210
15211 2004-01-29  Jan Hubicka  <jh@suse.cz>
15212
15213         PR c++/12850
15214         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15215         initial pointers.
15216         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15217         for functions that will be only inlined.
15218         (cgraph_mark_function_to_output): Likewise.
15219         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15220         do not clear function body.
15221         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15222         (tree_rest_of_compilation): Reorganize the logic releasing function
15223         body to use callgraph datastructure.
15224
15225 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15226
15227         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15228         to register_operand.
15229
15230 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15231
15232         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15233         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15234         match_operand expressions so that all match_dups appear
15235         lexically after their corresponding match_operands.
15236
15237 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15238
15239         * config/h8300/h8300.c (WORD_REG_USED): Use
15240         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15241         (compute_saved_regs): Likewise.
15242         (h8300_expand_prologue): Likewise.  Allocate locals after
15243         saving registers.
15244         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15245         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15246         registers.
15247         (h8300_initial_elimination_offset): Adjust for the new frame
15248         layout, which swaps flips the order of locals and saved
15249         registers.
15250         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15251         (HARD_FRAME_POINTER_REGNUM): New.
15252         (ELIMINABLE_REGS): Add an elimination rule from
15253         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15254         (REGISTER_NAMES): Add fp.
15255         * config/h8300/h8300.md (FP_REG): Change to 11.
15256         (HFP_REG): New.
15257
15258 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15259
15260         * genrecog.c (write_node): Remove a useless local variable.
15261
15262 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15263
15264         * Makefile.in (options.c options.h): Use stamp file s-options to
15265         avoid unnecessary rebuilds.
15266         (options.o): New target listing dependencies.
15267         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15268         (STAGESTUFF): Add s-gtyp-gen.
15269
15270 2004-01-28  Richard Henderson  <rth@redhat.com>
15271
15272         * ggc.h (ggc_free): Declare.
15273         * ggc-common.c (ggc_realloc): Use it.
15274         * ggc-page.c: Remove lots of inline markers.
15275         (globals): Add free_object_list.
15276         (ggc_alloc): Tidy.
15277         (ggc_free, validate_free_objects): New.
15278         (poison_pages): Provide default.
15279         (ggc_collect): Call validate_free_objects; emit markers to
15280         the debug file.
15281
15282 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15283             Jim Wilson  <wilson@specifixinc.com>
15284
15285         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15286         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15287         scratch pointer.
15288         (ia64_secondary_reload_class): Delete case GR_REGS.
15289         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15290         Do not allocate a scratch register.
15291         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15292
15293 2004-01-28  Jan Hubicka  <jh@suse.cz>
15294
15295         * gcse.c (bypass_block): Prevent edges to be unified when we are
15296         about to emit compenstation code.
15297
15298 2004-01-28  Nick Clifton  <nickc@redhat.com>
15299
15300         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15301         the setcwx insn into a register.
15302
15303 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15304
15305         * config/fp-bit.c (pack_d): When using paired doubles to implement
15306         a long double, round the high part separately.
15307         (unpack_d): Fix the case in which the high part is a power of two
15308         and the low part is a nonzero value of the opposite sign.
15309
15310 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15311
15312         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15313         (TARGET_STRUCT_VALUE_RTX): Likewise.
15314         (c4x_external_libcall): Likewise.
15315         (c4x_struct_value_rtx): Likewise.
15316         * config/c4x/c4x.h: Remove.
15317         (STRUCT_VALUE_REGNUM): Likewise.
15318         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15319
15320 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15321
15322         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15323         (TARGET_STRUCT_VALUE_RTX): Likewise.
15324         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15325         (STRUCT_VALUE): Likewise.
15326         (PROMOTE_PROTOTYPES): Likewise.
15327
15328 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15329
15330         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15331         CONST_INT before using INTVAL.
15332
15333 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15334
15335         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15336         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15337         frame if !TARGET_BACKCHAIN.
15338         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15339         TARGET_BACKCHAIN.
15340         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15341
15342 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15343
15344         * ia64.c (ia64_function_arg): When placing HFAs in integer
15345         registers, do not special case the mode used for complex
15346         types.  Do not advance int_regs until the current register
15347         is full.
15348
15349 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15350
15351         PR target/7297
15352         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15353
15354 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15355
15356         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15357         slow, unaligned loads and stores while debugging.  Fix formatting.
15358
15359 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15360
15361         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15362         of computing wmode.
15363         (restore_stack_nonlocal): Same.
15364
15365 2004-01-27  Devang Patel <dpatel@apple.com>
15366
15367         * Makefile.in (dwarf2out.o): Depend on input.h
15368         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15369         imported_module_or_decl.
15370         (xcoff_debug_hooks): Same.
15371         * sdbout.c (sdb_debug_hooks): Same.
15372         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15373         * debug.c (do_nothing_debug_hooks): Same.
15374         (debug_nothing_tree_tree): New function.
15375         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15376         * dwarf2out.c: Include input.h.
15377         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15378         (remove_child_TAG): New function.
15379         (dwarf_tag_name): Handle DW_TAG_imported_module.
15380         (gen_subprogram_die): Equate decl number to declaration die. Do not
15381         remove all children dies while reusing declaration die for definition.
15382         Instead, selectively remove only formal parameters.
15383         (gen_variable_die): Equate variable decl to declaration die.
15384         (gen_field_die): Equate field decl to line number.
15385         (force_namespace_die): Replace it with ...
15386         (force_decl_die): ... this.
15387         (force_type_die): New function.
15388         (setup_namespace_context): Replace use of force_namespace_die() with
15389         force_decl_die().
15390         (gen_namespace_die): Same.
15391         (dwarf2out_imported_module_or_decl): New function.
15392
15393 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15394
15395         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15396         on CQImode and CHImode incoming arguments in register a7.
15397         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15398         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15399         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15400         xtensa_copy_incoming_a7 before reload.
15401
15402 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15403
15404         * coverage.c (get_coverage_counts): Give a different message
15405         if flag_guess_branch_prob is set.
15406         * predict.c (counts_to_freqs): Return an int.
15407         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15408         calculate estimates.
15409
15410 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15411
15412         * config/iq2000/iq2000-protos.h: Remove the prototype for
15413         iq2000_setup_incoming_varargs.
15414         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15415         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15416         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15417         (TARGET_STRUCT_VALUE_RTX): Likewise.
15418         (TARGET_RETURN_IN_MEMORY): Likewise.
15419         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15420         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15421         (iq2000_return_in_memory): Likewise.
15422         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15423         first argument by reference.
15424         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15425         (PROMOTE_FUNCTION_RETURN): Likewise.
15426         (PROMOTE_PROTOTYPES): Likewise.
15427         (RETURN_IN_MEMORY): Likewise.
15428         (STRUCT_VALUE): Likewise.
15429         (SETUP_INCOMING_VARARGS): Likewise.
15430         (STRICT_ARGUMENT_NAMING): Likewise.
15431
15432 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15433
15434         * fixinc/fixinc.c (test_test): Initialize res.
15435         (start_flexer): Initialize pz_cmd_save.
15436
15437 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15438
15439         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15440         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15441
15442 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15443
15444         PR 7198
15445         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15446         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15447         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15448         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15449         Possibly rename pattern for consistency.
15450         Remove ??? comments suggesting that this be done.
15451         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15452         New patterns.
15453         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15454         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15455         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15456         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15457         Update to match.
15458
15459 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15460
15461         * config/arm/arm.c (output_return_instruction): Only restore IP
15462         into SP if frame_pointer_needed.
15463
15464 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15465
15466         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15467         for SCmode and DCmode if ARCH32.
15468         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15469         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15470         if ARCH32.
15471         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15472         if ARCH32.
15473         (BASE_OUTGOING_VALUE_REG): Likewise.
15474
15475 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15476
15477         PR target/10904
15478         PR target/13058
15479         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15480         Forbid mode changes from SImode for lower FP regs if ARCH64.
15481
15482 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15483
15484         * Makefile.in (bt-load.o): Depend on except.h.
15485         * bt-load.c (except.h): #include.
15486         (compute_defs_uses_and_gen): If insn at end of BB can throw
15487         within this function, consider registers used by it unavailable for
15488         btr migration.
15489         (move_btr_def): If insn at end of BB can throw, insert before rather
15490         than after.
15491
15492         * flags.h (flag_btr_bb_exclusive): Declare.
15493         * toplev.c (flag_btr_bb_exclusive): New variable.
15494         (f_options): Add btr-bb-exclusive.
15495         * bt-load.c (augment_live_range): Restore old behaviour if
15496         flag_btr_bb_exclusive is set.
15497         * common.opt: Add entry for -fbtr-bb-exclusive.
15498         * opts.c (common_handle_options): Same.
15499         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15500
15501         * bt-load.c (btrs_live_at_end): New variable.
15502         (compute_defs_uses_and_gen): Compute its pointed-to array.
15503         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15504         (augment_live_range): When augmenting with a new dominator,
15505         use only its btrs_live_at_end set, but also add in the full set
15506         of the old dominator.
15507         (btr_def_live_range): Use btrs_live_at_end.
15508         (move_btr_def): Set other_btr_uses_before_def, and move new set
15509         to the end of the basic block, if appropriate.
15510         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15511
15512         * bt-load.c (basic_block_freq): Remove outdated comment.
15513
15514 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15515
15516         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15517         (PREDICATE_CODES): Remove duplicate.
15518         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15519         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15520         (MASK_PROFILE_KERNEL): Adjust define.
15521
15522 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15523
15524         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15525         of long string literals from 32 bytes to sizeof (void *) when !-Os
15526         and to 1 with -Os.
15527
15528 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15529
15530         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15531         constant addresses in the normal mode.
15532
15533 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15534
15535         * system.h (CHAR_BITFIELD): Delete.
15536         (BOOL_BITFIELD): New.
15537         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15538         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15539
15540 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15541
15542         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15543         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15544         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15545         (TARGET_STRUCT_VALUE_RTX): Likewise.
15546         (TARGET_RETURN_IN_MEMORY): Likewise.
15547         (arc_return_in_memory): Likewise.
15548         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15549         (PROMOTE_FUNCTION_RETURN): Likewise.
15550         (RETURN_IN_MEMORY): Likewise.
15551         (STRUCT_VALUE): Likewise.
15552
15553 2004-01-26  Richard Henderson  <rth@redhat.com>
15554
15555         * c-parse.in (extension): Use itype.
15556         (SAVE_EXT_FLAGS): Don't allocate a tree.
15557         (RESTORE_EXT_FLAGS): Don't read a tree.
15558
15559 2004-01-26  Jan Hubicka  <jh@suse.cz>
15560
15561         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15562         to datastructure to be recycled.
15563
15564 2004-01-25  Jan Hubicka  <jh@suse.cz>
15565
15566         * genextract.c (main): Do not output the memset when not checking.
15567
15568 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15569
15570         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15571         switch statement instead of a chain of if statements.
15572
15573 2004-01-26  Jeff Law  <law@redhat.com>
15574
15575         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15576         acute accents for Petur Runolfsson's entry.
15577
15578 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15579
15580         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15581         (TARGET_RETURN_IN_MEMORY): Likewise.
15582         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15583         (RETURN_IN_MEMORY): Likewise.
15584
15585 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15586
15587          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15588          unaligned load/store into smaller loads and stores.
15589
15590 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15591
15592         * function.c (assign_parms): Do not assign
15593         long long argument to memory in prologue if
15594         is it loaded into register.
15595
15596 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15597
15598          PR middle-end/13779
15599          * expr.c (emit_group_load): split constant
15600          correctly into register components of PARALLEL insn.
15601
15602 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15603
15604         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15605         Use adjust_address_nv directly with appropriate mode.
15606         (restore_stack_nonlocal): Ditto.
15607
15608 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15609
15610         * config/xtensa/xtensa-protos.h: Remove the prototype for
15611         xtensa_builtin_saveregs.
15612         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15613         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15614         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15615         (TARGET_STRUCT_VALUE_RTX): Likewise.
15616         (TARGET_RETURN_IN_MEMORY): Likewise.
15617         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15618         (xtensa_builtin_saveregs): Make it static.
15619         (xtensa_return_in_memory): New.
15620         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15621         (PROMOTE_FUNCTION_RETURN): Likewise.
15622         (PROMOTE_PROTOTYPES): Likewise.
15623         (STRUCT_VALUE): Likewise.
15624         (RETURN_IN_MEMORY): Likewise.
15625         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15626
15627 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15628
15629         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15630         (arm_setup_incoming_varargs): Likewise.
15631         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15632
15633 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15634
15635         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15636         (cris_setup_incoming_varargs): Likewise.
15637         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15638
15639 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15640
15641         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15642         (ns32k_struct_value_rtx): Likewise.
15643         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15644         NS32K_STRUCT_VALUE_REGNUM.
15645
15646 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15647
15648         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15649         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15650         (TARGET_STRUCT_VALUE_RTX): Likewise.
15651         (arm_struct_value_rtx): Likewise.
15652         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15653         (STRUCT_VALUE): Likewise.
15654         (STRUCT_VALUE_REGNUM): Likewise.
15655         (PROMOTE_PROTOTYPES): Likewise.
15656
15657 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15658
15659         * config/ia64/ia64-protos.h: Remove the prototype for
15660         ia64_setup_incoming_varargs and ia64_return_in_memory.
15661         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15662         (TARGET_RETURN_IN_MEMORY): Likewise.
15663         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15664         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15665         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15666         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15667         (ia64_return_in_memory): Make it static.  Change the return
15668         type to bool from int.  Add an argument.
15669         (ia64_struct_value_rtx): New.
15670         * config/ia64/ia64.h: Remove commented-out definitions of
15671         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15672         PROMOTE_PROTOTYPES.
15673         (RETURN_IN_MEMORY): Remove.
15674         (STRUCT_VALUE_REGNUM): Likewise.
15675         (STRICT_ARGUMENT_NAMING): Likewise.
15676
15677 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15678
15679         PR target/13666
15680         * config/sparc/sparc.c (function_arg_union_value): New function.
15681         (function_arg): Use it to deal with unions.
15682         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15683         Replace a conditional statement by a simpler one.
15684
15685 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15686
15687         * config/mips/mips.c (mips16_optimize_gp): Delete.
15688         (mips_reorg): Don't call it.
15689
15690 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15691
15692         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15693         (floatunsqihf2): Remove operand 6.
15694         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15695         fix patterns.
15696         (ldi_conditional, ldf_conditional): Validate operands.
15697
15698 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15699
15700         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15701         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15702
15703 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15704
15705         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15706         memory references if TARGET_EXPOSE_LDP nonzero.
15707
15708 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15709
15710         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15711
15712 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15713
15714         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15715         invalid operand combinations.
15716
15717 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15718
15719         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15720         c4x_legitimate_address_p.  Fix post_modify check.
15721
15722         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15723         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15724
15725 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15726
15727         * config/pa/pa-protos.h: Remove the prototype for
15728         hppa_builtin_saveregs.  Add a prototype for
15729         pa_return_in_memory.
15730         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15731         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15732         (TARGET_STRUCT_VALUE_RTX): Likewise.
15733         (TARGET_RETURN_IN_MEMORY): Likewise.
15734         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15735         (pa_struct_value_rtx): Likewise.
15736         (pa_return_in_memory): Likewise.
15737         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15738         PA_STRUCT_VALUE_REGNUM.
15739         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15740         (EXPAND_BUILTIN_SAVEREGS): Remove.
15741         (PROMOTE_PROTOTYPES): Likewise.
15742         (PROMOTE_FUNCTION_RETURN): Likewise.
15743
15744 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15745
15746         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15747         (TARGET_STRUCT_VALUE_RTX): Likewise.
15748         (vax_struct_value_rtx): Likewise.
15749         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15750         VAX_STRUCT_VALUE_REGNUM.
15751         (PROMOTE_PROTOTYPES): Remove.
15752
15753 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15754
15755         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15756
15757 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15758
15759         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15760         and MIPS64 have HI/LO interlocks.  Update comment.
15761
15762 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15763
15764         * config/stormy16/stormy16-protos.h: Remove the prototype for
15765         xstormy16_setup_incoming_varargs.
15766         * config/stormy16/stormy16.c
15767         (xstormy16_setup_incoming_varargs): Remove.
15768         (xstormy16_return_in_memory): New.
15769         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15770         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15771         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15772         (TARGET_STRUCT_VALUE_RTX): Likewise.
15773         (TARGET_RETURN_IN_MEMORY): Likewise.
15774         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15775         (PROMOTE_FUNCTION_RETURN): Likewise
15776         (PROMOTE_PROTOTYPES): Likewise
15777         (RETURN_IN_MEMORY): Likewise
15778         (STRUCT_VALUE): Likewise
15779         (SETUP_INCOMING_VARARGS): Likewise
15780
15781 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15782
15783         * config/mips/mips.c (mips_offset_within_object_p): New function.
15784         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15785         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15786         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15787
15788 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15789
15790         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15791         (PROMOTE_FUNCTION_RETURN): Likewise.
15792
15793 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15794
15795         * config/mn10300/mn10300-protos.h: Remove the prototype for
15796         mn10300_builtin_saveregs.
15797         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15798         (TARGET_STRUCT_VALUE_RTX): Likewise.
15799         (TARGET_RETURN_IN_MEMORY): Likewise.
15800         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15801         (mn10300_return_in_memory): Likewise.
15802         (mn10300_builtin_saveregs): Make it static.
15803         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15804         (RETURN_IN_MEMORY): Likewise.
15805         (STRUCT_VALUE): Likewise.
15806         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15807
15808 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15809
15810         PR bootstrap/13853
15811         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15812
15813 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15814
15815         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15816         using ccr.
15817
15818 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15819
15820         * config/i860/i860-protos.h: Remove the prototype for
15821         i860_saveregs.
15822         * config/i860/i860.c (i860_saveregs): Make it static.
15823         (i860_struct_value_rtx): New.
15824         (TARGET_STRUCT_VALUE_RTX): Likewise.
15825         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15826         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15827         I860_STRUCT_VALUE_REGNUM.
15828         (EXPAND_BUILTIN_SAVEREGS): Remove.
15829
15830 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15831
15832         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15833         (TARGET_RETURN_IN_MEMORY): Likewise.
15834         (m68hc11_struct_value_rtx): Likewise.
15835         (m68hc11_return_in_memory): Likewise.
15836         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15837         of PROMOTE_PROTOTYPES.
15838         (RETURN_IN_MEMORY): Remove.
15839         (STRUCT_VALUE_REGNUM): Likewise.
15840
15841 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15842
15843         * config/mmix/mmix-protos.h: Remove the prototype for
15844         mmix_setup_incoming_varargs.
15845         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15846         (TARGET_STRUCT_VALUE_RTX): Likewise.
15847         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15848         (mmix_setup_incoming_varargs): Make it static.
15849         (mmix_struct_value_rtx): New.
15850         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15851         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15852         (STRUCT_VALUE_REGNUM): Remove.
15853         (SETUP_INCOMING_VARARGS): Likewise.
15854
15855 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15856
15857         * config/mips/mips-protos.h: Remove the prototypes for
15858         mips_setup_incoming_varargs and mips_return_in_memory.
15859         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15860         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15861         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15862         (TARGET_STRUCT_VALUE_RTX): Likewise.
15863         (TARGET_RETURN_IN_MEMORY): Likewise.
15864         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15865         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15866         (mips_setup_incoming_varargs): Match the prototype for
15867         TARGET_SETUP_INCOMING_VARARGS.
15868         (mips_return_in_memory): Make it static.  Add argument fntype.
15869         (mips_strict_argument_naming): New.
15870         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15871         (PROMOTE_FUNCTION_ARGS): Likewise.
15872         (PROMOTE_FUNCTION_RETURN): Likewise.
15873         (STRUCT_VALUE): Likewise.
15874         (RETURN_IN_MEMORY): Likewise.
15875         (SETUP_INCOMING_VARARGS): Likewise.
15876         (STRICT_ARGUMENT_NAMING): Likewise.
15877
15878 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15879
15880         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15881         (TARGET_RETURN_IN_MEMORY): Likewise.
15882         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15883         (ip2k_return_in_memory): Likewise.
15884         (ip2k_setup_incoming_varargs): Likewise.
15885         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15886         (STRUCT_VALUE): Likewise.
15887         (STRUCT_VALUE_INCOMING): Likewise.
15888         (SETUP_INCOMING_VARARGS): Likewise.
15889
15890 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15891
15892         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15893         (TARGET_RETURN_IN_MEMORY): Likewise.
15894         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15895         (avr_return_in_memory): Remove.
15896         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15897         (STRUCT_VALUE): Likewise.
15898         (STRUCT_VALUE_INCOMING): Likewise.
15899         (STRICT_ARGUMENT_NAMING): Likewise.
15900
15901 2004-01-25  Jan Hubicka  <jh@suse.cz>
15902
15903         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15904
15905 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15906
15907         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15908         (mips_regno_mode_ok_for_base_p): Declare.
15909         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15910         (FRAME_POINTER_REGNUM): Renumber to 78.
15911         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15912         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15913         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15914         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15915         (REG_MODE_OK_FOR_BASE_P): Likewise.
15916         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15917         entry for 77 to "$arg" and entry for 78 to "$frame".
15918         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15919         (mips_reg_mode_ok_for_base_p): Remove.
15920         (mips_regno_mode_ok_for_base_p): New function, derived from old
15921         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15922         restrictions unless we're being strict.
15923         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15924
15925 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15926
15927         * c-common.h: Fix comment typos.
15928         * c-decl.c: Likewise.
15929         * cgraphunit.c: Likewise.
15930         * combine.c: Likewise.
15931         * et-forest.c: Likewise.
15932         * flow.c: Likewise.
15933         * function.c: Likewise.
15934         * ifcvt.c: Likewise.
15935         * integrate.c: Likewise.
15936         * jump.c: Likewise.
15937         * postreload.c: Likewise.
15938         * varray.c: Likewise.
15939
15940 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15941
15942         * doc/frontends.texi: Update copyright.
15943         * doc/gcov.texi: Likewise.
15944         * doc/gty.texi: Likewise.
15945         * doc/sourcebuild.texi: Likewise.
15946         * doc/standards.texi: Likewise.
15947
15948 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15949
15950         PR target/12978
15951         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15952         Remove movstrqi_small because it conflicts with movstrqi_large.
15953
15954 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15955
15956         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15957         (TARGET_STRUCT_VALUE_RTX): Likewise.
15958         (cris_struct_value_rtx): Likewise.
15959         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15960         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15961         STRUCT_VALUE_REGNUM.
15962         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15963
15964 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15965
15966         PR bootstrap/13848
15967         * cse.c (cse_cc_succs): Change the mode of the source expression
15968         as soon as decide we need a new mode.  Don't permit changing modes
15969         if we found a match in a successor block.
15970         (cse_condition_code_reg): Save original mode of source expression
15971         so that we know whether we have to change the mode in other
15972         insns.
15973
15974 2004-01-24  Jan Hubicka  <jh@suse.cz>
15975
15976         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15977         widen_memory_access):  Return early when there is nothing to change.
15978
15979 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15980
15981         * simplify-rtx.c (simplify_relational_operation): Don't
15982         simplify address == constant into address + -constant == 0.
15983
15984 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15985
15986         * gcc.c (process_command): Don't internationalize the
15987         Copyright message.
15988         * mips-tfile.c (main): Likewise.
15989
15990 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15991
15992         * cse.c: (cse_cc_succs) Fix comparison warning.
15993
15994 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15995
15996         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15997
15998 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15999
16000         * config/h8300/h8300-protos.h: Provide prototypes for
16001         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16002         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16003         (h8300_rtx_ok_for_base_p): Likewise.
16004         (h8300_legitimate_address_p): Likewise.
16005         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16006         h8300_legitimate_constant_p.
16007         (RTX_OK_FOR_BASE_P): Remove.
16008         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16009
16010 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16011
16012         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16013         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16014         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16015         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16016         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16017         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16018         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16019         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16020
16021 2004-01-24  Jan Hubicka  <jh@suse.cz>
16022
16023         * cselib.c (remove_useless_values):  Do not access discarded values.
16024
16025 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16026
16027         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16028         arrays.
16029
16030 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16031
16032         * recog.c: Fix a typo in copyright.
16033
16034 2004-01-23  Andrew Pinski  <apinski@apple.com>
16035
16036         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16037         (call_value): Likewise.
16038
16039 2004-01-23  Richard Henderson  <rth@redhat.com>
16040
16041         PR opt/12941
16042         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16043         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16044         if SHIFT_COUNT_TRUNCATED is set.
16045
16046 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16047
16048         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16049         separate real and imaginary parts.
16050         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16051
16052 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16053
16054         PR target/13674
16055         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16056         loading into GPR.
16057
16058 2004-01-23  Jan Hubicka  <jh@suse.cz>
16059
16060         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16061         change.
16062
16063         * alloc-pool.c (align_four): Kill.
16064         (create_alloc_pool): Align size to eight.
16065         (free_alloc_pool, free_pool): Invalidate deallocated data.
16066
16067 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16068
16069         PR gcc/1532
16070         * cse.c (cse_change_cc_mode): New static function.
16071         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16072         (cse_condition_code_reg): New function.
16073         * rtl.h (cse_condition_code_reg): Declare.
16074         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16075         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16076         cc_modes_compatible.
16077         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16078         (TARGET_CC_MODES_COMPATIBLE): Define.
16079         (TARGET_INITIALIZER): Add new initializers.
16080         * targhooks.c (default_cc_modes_compatible): New function.
16081         * targhooks.c (default_cc_modes_compatible): Declare.
16082         * hooks.c (hook_bool_intp_intp_false): New function.
16083         * hooks.h (hook_bool_intp_intp_false): Declare.
16084         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16085         (TARGET_CC_MODES_COMPATIBLE): Define.
16086         (ix86_fixed_condition_code_regs): New static function.
16087         (ix86_cc_modes_compatible): Likewise.
16088         * doc/tm.texi (Condition Code): Document new hooks.
16089
16090 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16091
16092         * fixinc/inclhack.def (bad_lval): Renamed to ...
16093         (alpha_bad_lval): ... this.
16094         Removed file list.
16095         Restrict to alpha*-dec-osf*.
16096         * fixinc/fixincl.x: Regenerate.
16097         * fixinc/tests/base/dirent.h: Remove, moving test ...
16098         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16099
16100 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16101
16102         PR c/13814
16103         * c-decl.c (diagnose_mismatched_decls): Also discard a
16104         built-in if we encounter an old-style definition with the
16105         same name.
16106
16107 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16108
16109         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16110         set to default{32,64}.
16111
16112 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16113
16114         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16115         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16116
16117 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16118             Olivier Hainque  <hainque@act-europe.fr>
16119
16120         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16121         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16122
16123 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16124
16125         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16126         size for minipool references.
16127
16128 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16129
16130         * real.c (real_floor, real_ceil): Tweak to allow input and output
16131         arguments to overlap.
16132         (real_round): New function to implement round(3m) semantics.
16133         * real.h (real_round): Prototype here.
16134         * builtins.c (fold_builtin_round): New function to constant fold
16135         round, roundf and roundl.
16136         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16137
16138 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16139
16140         PR optimization/13819
16141         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16142         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16143         (sh_handle_sp_switch_attribute): Remove warning.
16144
16145 2003-11-30  Jan Hubicka  <jh@suse.cz>
16146
16147         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16148
16149 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16150
16151         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16152         may or may not return non-NIL.
16153         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16154         check CANNOT_CHANGE_MODE_CLASS
16155
16156 2004-01-23  Jan Hubicka  <jh@suse.cz>
16157
16158         * basic-block.h (PROP_POSTRELOAD): New macro.
16159         (CLEANUP_LOG_LINKS): New.
16160         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16161         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16162
16163         * cselib.c (value_pool): New.
16164         (new_cselib_val): Use pool.
16165         (cselib_init): Initialize value_pool
16166         (cselib_finish): Free pool.
16167
16168 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16169
16170         * config/sparc/sparc.c (scan_record_type): New function.
16171         (function_arg_slotno): Use it to determine which kinds of
16172         registers the record can be passed in.
16173
16174 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16175
16176         * config/pa/fptr.c: Fix old-style definition.
16177
16178 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16179
16180         PR optimization/13724
16181         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16182         represents the zero bits produced by a ZERO_EXTEND operation.
16183
16184 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16185
16186         PR optimization/13821
16187         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16188         correctly calculate the lowpart offset of the contracted subreg.
16189
16190 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16191
16192         * doc/invoke.texi (Optimize Options): Note that --param arguments
16193         are subject to change without notice.
16194
16195 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16196
16197         * config.gcc (mips-sgi-irix6*o32): Removed.
16198         * config/mips/iris6-o32-as.h: Likewise.
16199         * config/mips/iris6-o32-gas.h: Likewise.
16200         * config/mips/iris6-o32.h: Likewise.
16201
16202 2004-01-22  Jan Hubicka  <jh@suse.cz>
16203
16204         * cfgcleanup.c (first_pass): New static variable.
16205         (try_forward_edges):  Add work limiting check for threading.
16206         (try_crossjump_bb):  Add work limiting check for crossjumping.
16207         (try_optimize_cfg):  Maintain first pass variable.
16208
16209 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16210
16211         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16212         handles complex and vector modes.
16213
16214 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16215
16216         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16217         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16218         (STRICT): Likewise.
16219
16220 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16221
16222         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16223         (genrtl_for_stmt): Remove emit_nop calls.
16224
16225 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16226
16227         PR target/13713
16228         PR target/13324
16229         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16230         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16231         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16232
16233 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16234
16235         * config/arm/arm.c: Include "debug.h".
16236         (thumb_pushpop): Take two new arguments.  Add some commentary.
16237         Output frame information when pushing.
16238         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16239         thumb_pushpop.
16240         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16241         offset, and pass it to thumb_pushpop.  Output CFI information.
16242         (thumb_expand_prologue): Add some frame-related markers and notes.
16243
16244 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16245
16246         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16247         for TARGET_64BIT.
16248         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16249         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16250
16251 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16252             Paolo Bonzini  <bonzini@gnu.org>
16253
16254         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16255         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16256         * rtl.h (subreg_lsb_1): Prototype here.
16257         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16258         sign extensions.
16259
16260 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16261
16262         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16263         macro need not be defined if jump-tables should contain
16264         relative addresses only when -fPIC or -fPIC is in effect.
16265
16266 2004-01-22  Jan Hubicka  <jh@suse.cz>
16267
16268         * alias.c (reg_base_value): Turn into varray.
16269         (reg_base_value_size): Kill.
16270         (old_reg_base_value): New deletable varray.
16271         (alias_invariant_size): New variable.
16272         (REG_BASE_VALUE): Update to use varray.
16273         (find_base_value): Likewise.
16274         (record_set): Likewise.
16275         (record_base_value): Likewise.
16276         (memrefs_conflict_p): Likewise.
16277         (record_set): Likewise
16278         (record_base_value): Likewise.
16279         (memrefs_conflict_p): Use alias_invariant_size.
16280         (init_alias_analysis): Use varray; set alias_invariant_size;
16281         rescale other arrays to be sized by maxreg.
16282         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16283
16284 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16285
16286         * config/sparc/sparc.c (function_arg_slotno): Use
16287         FLOAT_TYPE_P to detect FP fields in structures.
16288         (function_arg_record_value_1): Likewise.
16289         (function_arg_record_value_2): Likewise.
16290
16291 2004-01-22  Jan Hubicka  <jh@suse.cz>
16292
16293         * function.c (allocate_struct_function): Do not initialize expr, emit
16294         and varasm.
16295         (prepare_function_start): Do it here.
16296         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16297
16298 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16299
16300         PR target/13559
16301         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16302         to 'word_mode' once the first slot has been filled.
16303
16304 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16305
16306         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16307         computation of the number of integer registers required.
16308
16309 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16310
16311         * config/i386/i386.md: Simplify certain comparisons of
16312         const_int.
16313
16314 2004-01-21  Andrew Pinski  <apinski@apple.com>
16315
16316         PR target/13785
16317         * config/rs6000/rs6000.md (call_value): Force operand
16318         1 not operand 0 into a register.
16319
16320 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16321
16322         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16323         unwind-dw2-fde.h: Update copyright.
16324
16325 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16326
16327         * pa-protos.h: Update copyright.
16328         * pa.h: Likewise.
16329         * pa.md: Likewise.
16330
16331 2004-01-21  Caroline Tice  <ctice@apple.com>
16332
16333         PR target/12308
16334         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16335         flags register.
16336         (fix_truncdfdi2): Likewise.
16337         (fix_truncsfdi2): Likewise.
16338         (*fix_truncdi_1): Likewise.
16339         (fix_truncxfsi2): Likewise.
16340         (fix_truncdfsi2): Likewise.
16341         (fix_truncsfsi2): Likewise.
16342         (*fix_truncsi_1): Likewise.
16343         (fix_truncxfhi2): Likewise.
16344         (fix_truncdfhi2): Likewise.
16345         (fix_truncsfhi2): Likewise.
16346         (*fix_trunchi_1): Likewise.
16347
16348 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16349
16350         * alias.c, basic-block.h, c-common.c, c-common.h,
16351         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16352         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16353         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16354         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16355         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16356         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16357         genautomata.c, genconditions.c, genemit.c, genflags.c,
16358         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16359         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16360         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16361         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16362         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16363         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16364         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16365         unwind.h, varray.c, varray.h: Update copyright.
16366
16367 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16368
16369         * config/h8300/coff.h: Update copyright.
16370         * config/h8300/elf.h: Likewise.
16371         * config/h8300/h8300-protos.h: Likewise.
16372         * config/h8300/h8300.c: Likewise.
16373         * config/h8300/h8300.h: Likewise.
16374         * config/h8300/h8300.md: Likewise.
16375
16376 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16377
16378         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16379         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16380         ultrix_unistd): New hacks.
16381         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16382         ULTRIX_CONST2_CHECK): Add checks.
16383         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16384         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16385         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16386         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16387         * fixinc/tests/base/locale.h: New file.
16388         * fixinc/fixincl.x: Rebuilt.
16389
16390 2004-01-21  Andreas Jaeger  <aj@suse.de>
16391             Michael Matz  <matz@suse.de>
16392
16393         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16394
16395 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16396
16397         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16398         _Jv_RegisterClasses through a function pointer.
16399
16400 2004-01-21  Falk Hueffner  <falk@debian.org>
16401
16402         PR target/12898
16403         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16404         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16405         which need multiple instructions to emit.
16406
16407 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16408
16409         * config/m32r/m32r.h (CPP_SPEC): Define.
16410
16411 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16412
16413         * c-decl.c (merge_decls): Kill different_binding_level and
16414         different_tu arguments; simplify throughout.
16415         (duplicate_decls): Likewise.
16416         (pushdecl, merge_translation_unit_decls): Update calls to
16417         duplicate_decls.
16418
16419 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16420
16421         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16422         $(SYSTEM_H).
16423         (print-rtl1.o): Depend on $(SYSTEM_H).
16424
16425 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16426
16427         PR bootstrap/12730
16428         * configure.ac: Delete definition and subsitution of docdir.
16429         Add info, man, srcman and srcinfo to target hooks. Create doc/
16430         directory.
16431         * configure: Regenerate.
16432         * Makefile.in: Don't substitute docdir and delete all references
16433         throughout.
16434         (MAKEINFOFLAGS): Define.
16435         (stmp-docobjdir): Delete.
16436         (INFOFILES, MANFILES): Define.
16437         (info): Call lang.info, srcinfo and lang.srcinfo.
16438         (generated-manpages): Call lang.man, srcman and lang.srcman.
16439         (srcinfo, srcman): New rules to copy back files to source directory.
16440         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16441         (install-man): Revamp rule.
16442         (clean): Update dvi directory.
16443         (distclean): Delete TAGS from front end directorys.
16444         (maintainer-clean): Delete all document files in source directory.
16445
16446         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16447         (objc.srcman, objc.srcinfo): Likewise.
16448
16449 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16450
16451         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16452         (matherr_decl): rename & relocate as exception_structure.
16453         This fix must precede the math_exception fix.
16454
16455 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16456
16457         * fold-const.c (fold_convert): Rename to fold_convert_const.
16458         (fold_convert_const): Change arguments to take a tree_code,
16459         a type and the operand/expression to be converted.  Return
16460         NULL_TREE if no simplification is possible.  Add support for
16461         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16462         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16463         Adjust call to fold_convert to match new fold_convert_const.
16464         Avoid modifying the tree passed to fold in-place.
16465
16466 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16467
16468         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16469         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16470         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16471
16472 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16473
16474         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16475         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16476         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16477         (emit_move_sequence): Check scratch_reg first in various if statements.
16478         Extend source simplification to handle all 64-bit CONST_INTs.
16479         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16480         frame size.
16481         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16482         frame offset calculations.
16483         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16484         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16485         LEGITIMATE_64BIT_CONST_INT_P): Define.
16486         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16487         any CONST_INT as legitimate during and after reload.
16488         (VAL_32_BITS_P, INT_32_BITS): Define.
16489         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16490
16491 2004-01-20  Jan Hubicka  <jh@suse.cz>
16492
16493         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16494         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16495         containing hard regs are shared.
16496         (gen_hard_reg_clobber): New function.
16497         (hard_reg_clobbers): New array.
16498         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16499         (copy_rtx): Do not copy clobbers containing hard regs.
16500         * rtl.h (gen_hard_reg_clobber): Declare.
16501
16502 2004-01-20  Jan Hubicka  <jh@suse.cz>
16503
16504         * varray.c:  Include hashtab.h
16505         (varray_descriptor): New structure.
16506         (hash_descriptor, eq_descriptor, varray_descriptor,
16507         print_statistics): New static functions
16508         (varray_init, varray_grow): Update statistics
16509         (dump_varray_statistics): New function.
16510         * varray.h (dump_varray_statistics): Declare.
16511         * toplev.c (finalize): Call it.
16512         * Makefile.in (varray.o): Add dependency.
16513
16514 2004-01-20  Jan Hubicka  <jh@suse.cz>
16515
16516         * cselib.c: Include alloc-pool.h
16517         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16518         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16519         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16520         unchain_one_elt_loc_list_pool, unchain_one_value,
16521         new_cselib_val): Simplify using allocpool.
16522         (cselib_init): Initialize allocpools.
16523         (cselib_finish): Finish allocpools.
16524         * Makefile.in (cselib.o): Depend on alloc-pool.h
16525
16526 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16527
16528         * config/mips/mips.c (mips_load_call_address): Make the call insn
16529         use $gp if it could be calling a lazy binding stub.
16530
16531 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16532
16533         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16534         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16535         (TARGET_STRUCT_VALUE_RTX): Likewise.
16536         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16537         (PROMOTE_FUNCTION_RETURN): Remove.
16538         (STRUCT_VALUE): Remove.
16539
16540 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16541
16542         PR bootstrap/13735
16543         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16544         register as pointer after reload.
16545
16546 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16547
16548         PR optimization/12440
16549         * loop.c: Include ggc.h.
16550         (loop_optimize): Run garbage collector between optimization of loops.
16551         * Makefile.in (loop.o): Add GGC_H dependency.
16552
16553 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16554
16555         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16556         vector register special in function without prototype.
16557         (function_arg_advance): Vector parameters get always
16558         GPRs allocated for the linux64 target.
16559
16560 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16561
16562         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16563         not TARGET_M32RX_MASK.
16564
16565 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16566
16567         PR target/13557
16568         * config/sparc/sparc.c (function_arg): Reorder the cases.
16569
16570 2004-01-19  Per Bothner  <per@bothner.com>
16571
16572         Move cpp_reader's line_maps field to a shared global.
16573         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16574         and change the type to a pointer rather than a struct.
16575         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16576         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16577         Likewise.
16578         * cppfiles.c (validate_pch):  Likewise.
16579         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16580         Likewise.
16581         * cpperror.c (print_location):  Likewise.
16582         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16583         * cppinit.c (cpp_create_reader):  Handle new parameter.
16584         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16585         * input.h (line_table):  New variable.
16586         * toplev.c (line_table):  Declare variable.
16587         (general_init):  Initialize line_table.
16588         * c-opts.c (c_common_init_options):  Pass line_table to
16589         cpp_create_reader.
16590         * fix-header.c (read_scan_file):  New local variable line_table.
16591         Initialize, and pass it to cpp_create_reader.
16592         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16593         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16594
16595 2004-01-19  Per Bothner  <per@bothner.com>
16596
16597         Implement a cache for linemap_lookup.
16598         * line-map.h (struct_line_maps):  Add cache field.
16599         * line-map.c (linemap_init):  Zero cache field.
16600         (linemap_add):  Set cache field to offset of newly allocated map.
16601         (linemap_lookup):  Use and set cache field.
16602
16603 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16604
16605         PR optimization/13567
16606         * cse.c (cse_basic_block): Call cse_insn with a non-null
16607         libcall_insn for the last SET insn of a no-confilict block.
16608
16609 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16610
16611         * Makefile.in (target_noncanonical, program_transform_name): Use
16612         immediate define instead of deferred.
16613         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16614         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16615         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16616         deferred backquote.
16617
16618 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16619
16620         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16621         true unconditionally.
16622         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16623         Remove.
16624         (build_unary_op, build_modify_expr): Don't handle extended
16625         lvalues.
16626         (build_component_ref, build_conditional_expr): Call non_lvalue
16627         instead of pedantic_non_lvalue.
16628         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16629         * fold-const.c (fold): Don't check pedantic directly for
16630         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16631         passed to pedantic_non_lvalue.
16632         * doc/extend.texi: Remove documentation of extended lvalues.
16633
16634 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16635
16636         PR optimization/5263
16637         * simplify-rtx.c (associative_constant_p): Delete.
16638         (simplify_associative_operation): Rewrite to linearize terms, and
16639         attempt to simplify new term against both left and right subterms.
16640         (simplify_binary_operation): Call swap_commutative_operands_p on
16641         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16642         trueop0 and trueop1 down to where first needed.
16643         (simplify_relational_operation): Likewise.
16644         * rtlanal.c (commutative_operand_precedence): Also order constant
16645         operands using avoid_constant_pool_reference.
16646
16647 2004-01-19  Richard Henderson  <rth@redhat.com>
16648
16649         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16650         don't check memory mode.
16651         (unaligned_memory_operand): Likewise.
16652         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16653         abort for op0 not MEM.
16654
16655         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16656         is not a reg, copy to a scratch first.
16657         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16658         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16659         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16660         (reload_inqi, reload_inhi): Fix mode of op0.
16661         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16662         reload_outhi_help): Likewise.  Use define_insn_and_split.
16663
16664         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16665         as well as $29 dead.
16666
16667 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16668
16669         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16670         "tls_object" for thread-local objects.
16671         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16672         "#tls" for thread-local sections.
16673         * configure.ac (thread-local checks): Specify --fatal-warnings in
16674         every binutils-specific checks.  For sparc*-*-*, test whether the
16675         OS is Solaris and the tools are native and act accordingly.
16676         * configure: Rebuild.
16677
16678 2004-01-19  Jeff Law  <law@redhat.com>
16679
16680         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16681         Jerry Quinn and Petur Runolfsson.
16682
16683 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16684
16685         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16686         size, don't use the larger zero-extending loads.
16687
16688 2004-01-19  Richard Henderson  <rth@redhat.com>
16689
16690         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16691         * alpha.md (UNSPEC_NT_LDA): Remove.
16692         (UNSPEC_CVTLQ, cvtlq): New.
16693         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16694         (extendsidi2_fix): Remove.
16695         (extendsidi2 splitter): Use cvtlq.
16696         (extendsidi2 fp peepholes): Remove.
16697         (cvtql): Use SFmode instead of SImode.
16698         (fix_trunc?fsi): Update to match.
16699         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16700         (movsi): Rename from movsi_nofix, remove f alternatives.
16701         (movsi_nt_vms): Similarly.
16702         (movsi_fix, movsi_nt_vms_fix): Remove.
16703         (nt_lda): Remove.
16704         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16705
16706 2004-01-19  Jan Hubicka  <jh@suse.cz>
16707
16708         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16709         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16710         list.
16711         (cgraph_remove_unreachable_nodes): New function
16712         (cgraph_decide_inlining_of_small_function): Fix pasto.
16713         (cgraph_decide_inlining_incrementally): Fix pasto.
16714         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16715
16716 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16717
16718         * gengtype.c (header_file): Make it static.
16719         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16720         * gengtype.h (header_file): No longer extern.
16721
16722 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16723
16724         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16725         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16726         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16727
16728 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16729
16730         * stmt.c (HAVE_casesi): Define it not already defined.
16731         (HAVE_tablejump): Likewise.
16732         (expand_end_case_type): Resort to the binary tree method if
16733         neither casesi or tablejump is available.
16734
16735 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16736
16737         * final.c (final_scan_insn): Make non-static again.
16738         * output.h (final_scan_insn): Re-add prototype.
16739         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16740         to final_scan_insn call.
16741         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16742         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16743         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16744         * config/sh/sh.c (print_slot): Likewise.
16745         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16746         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16747
16748 2004-01-18  Jan Hubicka  <jh@suse.cz>
16749
16750         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16751         * cfgcleanup.c (try_optimize_cfg): Use it.
16752         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16753         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16754         Kill hack.
16755         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16756
16757         Revert:
16758         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16759
16760                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16761                 even after reload, just don't remove the actual jump tables.
16762
16763 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16764
16765         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16766
16767 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16768
16769         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16770         the size of a pointer in bytes.
16771
16772 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16773
16774         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16775         live "next" variable, which could lead to an infinite loop.
16776
16777 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16778
16779         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16780         block.
16781
16782         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16783         Check for NULL in the chain and remove repeated code.
16784
16785 2004-01-18  Jan Hubicka  <jh@suse.cz>
16786
16787         * coverage.c (checksum_string): Rename to ...
16788         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16789         names containing random number and zero the number out in order to get
16790         match.
16791
16792 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16793
16794         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16795
16796 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16797
16798         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16799         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16800         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16801         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16802         doc/trouble.texi: Remove trailing whitespace.
16803
16804 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16805
16806         PR target/7618
16807         * config/mips/mips.c: Include cfglayout.h.
16808         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16809         (mips_unspec_offset_high): Add temporary register argument.
16810         (mips_load_call_address): New function, split out from...
16811         (mips_expand_call): ...here.
16812         (mips_output_cplocal): New function.
16813         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16814         (mips_emit_loadgp): New function, split out from...
16815         (mips_expand_prologue): ...here.
16816         (mips_output_mi_thunk): New function.
16817
16818 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16819
16820         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16821         mcpu32): Remove redundant checks for implied target predefines.
16822
16823 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16824
16825         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16826         Return type is unsigned int not int.
16827         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16828         Likewise.
16829
16830 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16831
16832         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16833         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16834         "GNU/Linux" and "Microsoft Windows" terminology.
16835
16836 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16837
16838         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16839         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16840         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16841         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16842         @smallexample instead of @example.
16843
16844 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16845
16846         * objc/objc-act.c (build_objc_method_call): Use target
16847         hooks instead of macros to determine if ..._stret
16848         dispatchers should be used (NeXT runtime only).
16849
16850 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16851
16852         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16853         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16854
16855 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16856
16857         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16858         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16859         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16860         macros.
16861         * reload1.c (emit_reload_insns): Use them.
16862         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16863         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16864         for NULL PATTERN.
16865
16866 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16867
16868         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16869         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16870         a line note after the prologue.  Make static.
16871         (line_note_exists): Remove.
16872         (final): Don't initialize line_note_exists.  Update call to
16873         final_scan_insn.
16874         * output.h (final_scan_insn): Remove prologue.
16875         * function.c (set_insn_locators): Update comment.
16876         (thread_prologue_and_epilogue_insns): Add a comment.
16877
16878 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16879
16880         PR target/10781
16881         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16882         Prototype.
16883         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16884         New function.
16885         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16886         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16887         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16888
16889 2004-01-17  Jan Hubicka  <jh@suse.cz>
16890
16891         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16892         commit.
16893
16894         * toplev.c (HAVE_conditional_execution): Provide default.
16895         (rest_of_handle_reorder_blocks): For conditional_execution target
16896         update liveness once after all transformations
16897         (rest_of_compilation): Do crossjumping before ce3.
16898
16899 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16900
16901         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16902         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16903         for PCH.
16904         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16905         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16906         (get_TOC_alias_set): Mark 'set' for PCH.
16907
16908 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16909
16910         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16911         even after reload, just don't remove the actual jump tables.
16912
16913 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16914
16915         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16916         Remove checks for is_ada() and TREE_UNSIGNED.
16917         (subrange_type_die): Emit a byte_size attribute if the subrange
16918         type size is different from the base type size.
16919         (modified_type_die): Replace call to is_ada_subrange_type() by
16920         call to is_subrange_type().
16921
16922 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16923
16924         * config/sh/sh.c: Include ggc.h.
16925
16926 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16927
16928         * Makefile.in (MD5_H): New.
16929         (fold-const.o): Depend on md5.h.
16930         (dwarf2out.o): Likewise.
16931         (cppfiles.o): Likewise.
16932         * cppfiles.c: Include md5.h.
16933         (should_stack_file): Check against list read from PCH file.
16934         (struct pchf_data): New.
16935         (pchf): New variable.
16936         (struct pchf_adder_info): New.
16937         (pchf_adder): New.
16938         (pchf_save_compare): New.
16939         (_cpp_save_file_entries): New.
16940         (_cpp_read_file_entries): New.
16941         (struct pchf_compare_data): New.
16942         (pchf_compare): New.
16943         (check_file_against_entries): New.
16944         * cpphash.h (_cpp_save_file_entries): Prototype.
16945         (_cpp_read_file_entries): Prototype.
16946         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16947         (cpp_read_state): Read the list of headers.
16948
16949 2004-01-17  Jan Hubicka  <jh@suse.cz>
16950
16951         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16952         builtin_expect specially.
16953         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16954         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16955         * invoke.texi (max-inline-insns-single): Set to 100.
16956         (large-function-insns): Set to 3000.
16957
16958 2004-01-16  Eric Christopher  <echristo@redhat.com>
16959             Chandrakala Chavva <cchavva@redhat.com>
16960
16961         * cppcharset.c (one_iso88591_to_utf8): New function.
16962         (convert_iso88591_utf8): Ditto. Use.
16963         (conversion_tab): Use.
16964         (_cpp_input_to_utf8): New function.
16965         (_cpp_init_iconv_buffer): Ditto.
16966         (_cpp_close_iconv_buffer): Ditto.
16967         * cpphash.h: Prototype new functions.
16968         (cpp_buffer): Add input_cset_desc.
16969         * cppinit.c: Add input_charset default.
16970         * cpplib.c (cpp_push_buffer): Support init and
16971         close of iconv.
16972         * cpplib.h (cpp_options): Add input_charset.
16973
16974 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16975
16976         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16977         * config/alpha/unicosmk.h: Remove a commented-out definition
16978         of ASM_OUTPUT_SECTION_NAME.
16979         * config/stormy16/stormy16.h: Likewise.
16980
16981 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16982
16983         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16984         (alpha___extern_prefix_sys_stat): ... this.
16985         Apply to <sys/mount.h>, too.
16986         Tweak to match more variations.
16987         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16988
16989         * fixinc/inclhack.def (alpha___extern_prefix,
16990         alpha___extern_prefix_standards): New hacks to obey
16991         __PRAGMA_EXTERN_PREFIX.
16992         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16993         test.
16994         * fixinc/tests/base/standards.h: Likewise.
16995
16996         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16997         variations.
16998         New testcase.
16999         * fixinc/tests/base/pthread.h: Handle it.
17000
17001         * fixincl/inclhack.def (bad_lval): Sort file list.
17002         Add many missing files up to Tru64 UNIX V5.1B.
17003         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17004         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17005         order.
17006
17007         * fixinc/fixincl.x: Regenerate.
17008
17009 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17010
17011         * version.c (version_string): Change to 3.5.0.
17012         * doc/include/gcc-common.texi (version-GCC): Likewise.
17013
17014 2004-01-16  Jan Hubicka  <jh@suse.cz>
17015
17016         * i386.md (load_tp_di): Fix pasto.
17017
17018         PR opt/13608
17019         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17020
17021         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17022         pp_c_character_constant, pp_c_floating_constant,
17023         pp_c_additive_expression, pp_c_shift_expression,
17024         pp_c_equality_expression, pp_c_and_expression,
17025         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17026         pp_c_logical_and_expression): Remove inline modifier.
17027         * dwarf2out.c (get_AT): Likewise.
17028         * et-forest.c (et_splay): Likewise.
17029         * ra.h (ra_alloc, ra_calloc): Likewise
17030
17031 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17032
17033         * config/frv/frv-protos.h: Fix comment formatting.
17034         * config/frv/frv.c: Likewise.
17035         * config/frv/frv.h: Likewise.
17036         * config/frv/frv.md: Likewise.
17037         * config/frv/frvbegin.c: Likewise.
17038         * config/frv/frvend.c: Likewise.
17039
17040 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17041
17042         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17043         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17044         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17045         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17046
17047 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17048
17049         PR 11864
17050         * postreload.c (reload_cse_simplify_operands): Don't remove
17051         implicit extension from LOAD_EXTEND_OP.
17052
17053 2004-01-16  Jan Hubicka  <jh@suse.cz>
17054
17055         PR opt/11350
17056         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17057         after reload.
17058         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17059         rtl_try_redirect_by_replacing_branch): Likewise.
17060
17061 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17062
17063         PR pch/13689
17064         * alias.c (struct alias_set_entry): Mark for GC.
17065         (alias_sets): Make static, mark for GC.
17066         (record_alias_subset): Use GC to allocate alias structures.
17067         * varray.c (element): Make generic varrays GCed.
17068
17069         PR pch/13361
17070         * c-typeck.c (constructor_asmspec): Delete.
17071         (struct initializer_stack): Delete field 'asmspec'.
17072         (start_init): Delete saving of asmspec.
17073         (finish_init): Don't update constructor_asmspec.
17074         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17075         * stmt.c (expand_asm): Duplicate strings from tree.
17076         (expand_asm_operands): Likewise.
17077         * tree.c (tree_size): Update computation of size of STRING_CST.
17078         (make_node): Don't make STRING_CST nodes.
17079         (build_string): Allocate string with tree node.
17080         * tree.def (STRING_CST): Update comment.
17081         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17082         (tree_string): Place contents of string in tree node.
17083         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17084         from tree.
17085
17086         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17087         altivec operands.
17088
17089 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17090
17091         * c-common.h: Fix comment formatting.
17092         * c-cppbuiltin.c: Likewise.
17093         * c-pragma.c: Likewise.
17094         * calls.c: Likewise.
17095         * collect2.c: Likewise.
17096         * cppcharset.c: Likewise.
17097         * cpptrad.c: Likewise.
17098         * dbxout.c: Likewise.
17099         * defaults.h: Likewise.
17100         * dwarf2out.c: Likewise.
17101         * fold-const.c: Likewise.
17102         * genautomata.c: Likewise.
17103         * genconditions.c: Likewise.
17104         * genflags.c: Likewise.
17105         * gengtype.c: Likewise.
17106         * integrate.c: Likewise.
17107         * loop.c: Likewise.
17108         * predict.c: Likewise.
17109         * sdbout.c: Likewise.
17110
17111 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17112
17113         * config/ia64/ia64.md (*movti_internal): C output template
17114         extracted to ia64.c.
17115         (*movti_internal_reg): Delete.
17116         (reload_inti, reload_outti): Use the correct mode on operand 2
17117         in the first place, don't fix it up in the output template.
17118         (movtf, reload_ointf, reload_outtf): New expanders.
17119         (*movtf_internal): New define_insn_and_split.
17120         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17121         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17122         (ia64_split_tmode_move): New function, body mostly pulled
17123         from ia64.md:*movti_internal.
17124         (ia64_function_arg_words): New function, extracted common
17125         logic from ia64_function_arg et seq.
17126         (ia64_function_arg_offset): Likewise.  Handle correctly the
17127         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17128         (ia64_function_arg, ia64_function_arg_partial_nregs)
17129         (ia64_function_arg_advance): Use ia64_function_arg_words and
17130         ia64_function_arg_offset.
17131         (ia64_function_value): TCmode does not go in float regs.
17132         (ia64_secondary_reload_class): Also handle TFmode.
17133         * config/ia64/ia64-protos.h: Remove prototype for
17134         ia64_split_timode; add prototype for ia64_split_tmode_move.
17135
17136 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17137
17138         * Makefile.in (MAINT): Make it an immediate assignment.
17139
17140 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17141
17142         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17143
17144 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17145
17146         * config/h8300/coff.h: Replace Hitachi with Renesas.
17147         * config/h8300/elf.h: Likewise.
17148         * config/h8300/h8300-protos.h: Likewise.
17149         * config/h8300/h8300.c: Likewise.
17150         * config/h8300/h8300.h: Likewise.
17151         * config/h8300/h8300.md: Likewise.
17152         * config/h8300/lib1funcs.asm: Likewise.
17153
17154 2004-01-15  Andrew Pinski  <apinski@apple.com>
17155
17156         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17157         around it.
17158
17159 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17160
17161         * config/h8300/h8300.c (h8300_return_in_memory): New.
17162         (TARGET_STRUCT_VALUE_RTX): Likewise.
17163         (TARGET_RETURN_IN_MEMORY): Likewise.
17164         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17165         (RETURN_IN_MEMORY): Likewise.
17166
17167 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17168
17169         PR optimization/13375
17170         * gcse.c (handle_avail_expr): Just return if the source is not a
17171         single set.
17172
17173 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17174             Daniel Jacobowitz  <drow@mvista.com>
17175
17176         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17177         (EQUIV): Define.
17178         (ARM_FUNC_ALIAS): New macro.
17179         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17180         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17181
17182 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17183
17184         PR optimization/12372
17185         * calls.c (expand_call): Add call_fusage data for stack arguments in
17186         constant calls.
17187
17188 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17189
17190         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17191         (rs6000_elf_declare_function_name): Formatting.
17192         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17193
17194 2004-01-15  Jan Hubicka  <jh@suse.cz>
17195
17196         PR bootstrap/13692
17197         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17198         previous patch.
17199
17200 2004-01-15  Richard Henderson  <rth@redhat.com>
17201
17202         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17203         integer regs of the same call-savedness.
17204
17205 2004-01-15  Andreas Schwab  <schwab@suse.de>
17206
17207         PR bootstrap/13562
17208         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17209         status for NOTB/NOTW/NEGW methods.
17210
17211 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17212
17213         * doc/invoke.texi: Update dump file names.  Fix a typo.
17214
17215 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17216
17217         * builtins.c (expand_builtin_va_end): Don't use
17218         EXPAND_BUILTIN_VA_END.
17219         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17220         * config/d30v/d30v.h: Remove a commented-out definition of
17221         EXPAND_BUILTIN_VA_END.
17222         * config/stormy16/stormy16.h: Likewise.
17223
17224 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17225
17226         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17227         * targhooks.c (default_struct_value_rtx): Don't use
17228         STRUCT_VALUE_INCOMING_REGNUM.
17229
17230 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17231
17232         PR bootstrap/12744
17233         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17234         GENINSRC and not parsedir.  Define srcextra as a langhook.
17235         * configure: Regenerate.
17236         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17237         parsedir and delete all references throughout.  Conditionally define
17238         rule for srcextra dependent on GENINSRC.
17239         (stmp-docobjdir): Delete.
17240         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17241         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17242         and gengtype-yacc.h back to source directory.
17243         (maintainer-clean): Delete all parse files in source directory.
17244         (distclean): Delete generated files.
17245
17246         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17247         (objc-parse.c, objc-parse.y): Don't use parsedir.
17248         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17249         directory if requested.
17250         (po-generated): Don't use parsedir.
17251         (objc.maintainer-clean): Delete above files from source directory.
17252
17253 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17254
17255         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17256
17257 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17258
17259         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17260         TARGET_RETURN_IN_MEMORY.
17261
17262 2004-01-15  Jan Hubicka  <jh@suse.cz>
17263
17264         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17265         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17266         functions accepting SSE arguments
17267         (function_arg): Warn only when asked to warn.
17268         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17269
17270 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17271
17272         * c-parse.in (stmts_and_decls): Make label at end of compound
17273         statement a hard error.
17274
17275 2004-01-14  Jan Hubicka  <jh@suse.cz>
17276
17277         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17278         * cgraph.h (cgraph_local_info): Sort fields by size; add
17279         redefined_extern_inline
17280         (cgraph_global_info): Sort fields by size.
17281         (cgraph_node): Likewise.
17282         * cgraphunit.c (cgraph_finalize_function): Se
17283         local.redefined_extern_inline on redefinition.
17284         (cgraph_analyze_function): Use it; fix formating.
17285
17286 2004-01-14  Jan Hubicka  <jh@suse.cz>
17287
17288         PR c++/10776
17289         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17290         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17291         bitmaps
17292         (cache_size): New variable
17293         (add_dependence): Update use; canonize early memory locations
17294         (sched_analyze_1): Likewise.
17295         (sched_analyze_2): Likewise.
17296         (init_dependency_caches): Initialize bitmaps.
17297         (free_dependency_caches): Free bitmaps
17298
17299 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17300
17301         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17302         targetm.calls.strict_argument_naming().
17303         * target.h: Likewise.
17304
17305 2004-01-14  Richard Henderson  <rth@redhat.com>
17306
17307         PR debug/13231
17308         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17309         instructions.
17310
17311 2004-01-14  Richard Henderson  <rth@redhat.com>
17312
17313         PR c++/12491
17314         * except.c (struct eh_region): Add u.fixup.resolved.
17315         (resolve_one_fixup_region): Split out from ...
17316         (resolve_fixup_regions): ... here.
17317
17318 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17319
17320         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17321
17322 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17323
17324         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17325         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17326         (STRUCT_VALUE): Remove.
17327
17328 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17329
17330         * system.h: Poison PROMOTED_MODE
17331         * integrate.c (expand_inline_function): Don't mention the
17332         PROMOTED_MODE.
17333         * loop.c (update_giv_derive): Same.
17334         * tree.h (DECL_RTL): Same.
17335
17336 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17337
17338         PR target/9365
17339         * sh.c (gen_block_redirect): Add special handling of RETURN.
17340         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17341         far branch target (i.e. it's a return).
17342
17343 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17344
17345         * regrename.c (find_oldest_value_reg): Fix a warning.
17346
17347 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17348
17349         PR bootstrap/12527
17350         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17351         Move linux-gas.h and linux-elf.h before aout.h.
17352         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17353         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17354
17355 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17356
17357         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17358         (CONST_INT, VOIDmode, ...).
17359
17360 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17361
17362         * regrename.c (find_oldest_value_reg): If the replacement uses
17363         multiple hard registers, check that all of them are in CLASS.
17364
17365 2004-01-14  Jan Hubicka  <jh@suse.cz>
17366
17367         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17368         impossible.
17369
17370 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17371
17372         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17373
17374 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17375
17376         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17377         Calculate always vrsave_mask if TARGET_ALTIVEC.
17378         (rs6000_emit_prologue): Emit code for vrsave
17379         only if TARGET_ALTIVEC_VRSAVE.
17380         (rs6000_emit_epilogue): Likewise.
17381
17382 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17383
17384         * config/sparc/sparc.md (tie_add32): Fix pasto.
17385         (tie_add64): Likewise.
17386
17387 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17388
17389         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17390
17391 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17392
17393         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17394         * config/iq2000/iq2000.c: Likewise.
17395         * config/iq2000/iq2000.md: Likewise.
17396
17397 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17398
17399         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17400         (subrange_type_die): Add handle for nameless subrange types.
17401
17402 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17403
17404         * config/h8300/h8300-protos.h: Replace do_movsi with
17405         h8300_expand_movsi.
17406         * config/h8300/h8300.c (do_movsi): Change to
17407         h8300_expand_movsi.
17408         * config/h8300/h8300.md (movsi): Replace do_movsi with
17409         h8300_expand_movsi.
17410         (movsf): Likewise.
17411
17412 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17413
17414         * config/h8300/h8300.c (dosize): Change to
17415         h8300_emit_stack_adjustment.  Update callers.
17416
17417 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17418
17419         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17420         the source being post_inc.  Tighten the predicate for the
17421         destination to register_operand.
17422         (movstricthi): Likewise.
17423
17424 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17425
17426         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17427         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17428         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17429
17430 2004-01-14  Jan Hubicka  <jh@suse.cz>
17431
17432         Partial fix PR c++/12850
17433         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17434         at zero nest level.
17435
17436 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17437
17438         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17439         pseudo-register.
17440
17441 2004-01-13  Devang Patel <dpatel@apple.com
17442
17443         PR debug/7078
17444         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17445         NAMESPACE_DECL memebers.
17446
17447 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17448
17449         PR c++/12709
17450         * c-common.c (finish_fname_decls): Use the chain only if the
17451         tree is an expr_stmt.
17452
17453 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17454
17455         * rtl.def: Add comment about new option in automata_option.
17456
17457         * genautomata.c (PROGRESS_OPTION): New macro.
17458         (progress_flag): New global variable.
17459         (gen_automata_option): Process `progress'.
17460         (transform_insn_regexps, check_unit_distributions_to_automata,
17461         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17462         expand_automata, write_automata): Print about the progress only if
17463         progress_flag.  Remove fflush.
17464         (initiate_automaton_gen): Process command line flag `-progress'.
17465
17466         * doc/md.texi: Describe the new option.
17467
17468 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17469
17470         * cfg.c (dump_bb): Dump entry edges.
17471
17472 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17473
17474         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17475         references from SImode.
17476         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17477
17478 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17479
17480         * system.h (TEXT_SECTION): Poison.
17481         * varasm.c (text_section): Don't use TEXT_SECTION.
17482         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17483         * doc/tm.texi (TEXT_SECTION): Remove.
17484
17485 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17486
17487         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17488
17489 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17490
17491         * unwind-libunwind.c: Delete.
17492
17493 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17494
17495         PR 13656
17496         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17497         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17498         them at the very end.
17499         (validate_proto_after_old_defn): Restructure for comprehensibility;
17500         make error messages clearer.
17501
17502 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17503
17504         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17505         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17506         * varray.c: No need to prototype error.
17507         (varray_check_failed): Wrap long string onto two lines.
17508         (varray_underflow): New function.
17509
17510 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17511
17512         PR c++/13376
17513         * function.h (struct function): Kill `name' field.
17514         (current_function_name): Make it an extern function.
17515         * function.c (current_function_name): New function.
17516         * graph.c: Update all uses of current_function_name.
17517         * gcse.c: Likewise.
17518         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17519         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17520         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17521         instead of a strcmp with "main".
17522
17523 2004-01-13  Jan Hubicka  <jh@suse.cz>
17524
17525         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17526
17527         * cgraphunit.c (cgraph_optimize_function):  Always do
17528         optimize_inline_calls when there is always_inline callee.
17529         (cgraph_decide_inlining): Fix formating.
17530         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17531         functions.
17532         (expand_call_inline): Likewise.
17533         * toplev.h (sorry): Fix prototype.
17534
17535 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17536
17537         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17538         conditional jumps that drop through to unconditional jumps or the
17539         end of the sequence.
17540
17541 2004-01-13  Jan Hubicka  <jh@suse.cz>
17542
17543         * alias.c (new_alias_set): Construct the alias_set varray.
17544         (init_alias_once): Don't do it here.
17545
17546 2004-01-12  Marc Espie <espie@openbsd.org>
17547
17548         * system.h: handle YYBYACC like YYBISON.
17549
17550 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17551
17552         PR target/10847
17553         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17554         building on sparc64-*-openbsd*.
17555
17556 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17557
17558         PR debug/13539
17559         * dbxout.c (dbxout_type): Protected inheritance is not
17560         private but protected.
17561
17562 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17563
17564         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17565
17566 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17567
17568         PR optimization/12508.
17569         * combine.c (try_combine): Remove a dead set in a parallel
17570         even if its destination is a subreg.
17571
17572         Revert:
17573         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17574         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17575         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17576
17577 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17578
17579         * real.c: Update copyright date.
17580         * emit-rtl.c: Likewise.
17581         * rtl.h: Likewise.
17582         * dwarf2out.c: Likewise.
17583         * config/rs6000/darwin-ldouble.c: Likewise.
17584         * config/rs6000/rs6000.md: Likewise.
17585
17586 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17587
17588         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17589         TFmode to SImode libfuncs.
17590
17591 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17592
17593         PR middle-end/11397
17594         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17595
17596 2004-01-12  Jan Hubicka  <jh@suse.cz>
17597
17598         PR opt/12826
17599         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17600         stored.
17601
17602         PR opt/12863
17603         * cfgcleanup.c (label_is_jump_target_p): Move to...
17604         * rtlanal.c (label_is_jump_target_p): ... here.
17605         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17606         edges unified with branch edges.
17607
17608 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17609
17610         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17611         high word of an integral CONST_DOUBLE.
17612
17613 2004-01-12  Paul Brook  <paul@codesourcery.com>
17614
17615         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17616
17617 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17618
17619         PR target/13585
17620         * sh-protos.h (check_use_sfunc_addr): Declare.
17621         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17622         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17623
17624 2004-01-12  Jan Hubicka  <jh@suse.cz>
17625
17626         * alias.c:  Invlude varray.h
17627         (alias_sets): Turn into varray.
17628         (get_alias_set_entry): Use VARRAY; mark inline.
17629         (mems_in_disjoint_alias_sets_p): Mark inline.
17630         (record_alias_subset): Use varray.
17631         (init_alias_once): Initialize varray.
17632         (new_alias_set): Grow array.
17633         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17634
17635 2004-01-12  Jan Hubicka  <jh@suse.cz>
17636
17637         Partial fix for PR opt/10776 II
17638         * cselib.c: Include params.h
17639         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17640         locations.
17641         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17642         * Makefile.in (cselib.o): Depend on params.h
17643
17644 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17645
17646         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17647         simplify_unary_operation if the operand has a known mode.
17648
17649 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17650
17651         PR target/13534
17652         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17653         predicate to handle 'ld' conform addresses.
17654         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17655         contraint.
17656         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17657         are memory contraints.
17658         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17659         New prototype.
17660         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17661         Change 'o' to 'Y' constraint.
17662         (*movdf_softfloat64): Ditto.
17663
17664 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17665
17666         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17667         brace-enclosed syntax in all C output statements.
17668
17669 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17670
17671         PR target/13401
17672         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17673         Objective-C language type value is 14.
17674
17675 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17676
17677         PR c/12148
17678         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17679         `int' in a number of places to make sure we always have a SImode
17680         and not a HImode.  Add a 'L' suffix to a number of constants.
17681
17682 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17683
17684         * pa.c: Don't include obstack.h.
17685
17686         * pa.md: Correct constraint in pattern for loading PIC label address.
17687
17688 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17689
17690         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17691          before defining.
17692
17693 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17694
17695         PR fortran/9972
17696         * toplev.c (rest_of_handle_inline): Also consider functions
17697         for deferral if the language is GNU F77.
17698
17699 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17700
17701         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17702         diagnostic messages.
17703
17704 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17705
17706         PR middle-end/13392
17707         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17708         to drop through label.  Don't fall back to SCC even when conditional
17709         jump has not been found.
17710
17711 2004-01-11  Jan Hubicka  <jh@suse.cz>
17712
17713         * invoke.texi: Fix syntax error in previous patch.
17714
17715         Partial fix for PR opt/10776
17716         * Makefile.in (reload.o): Include param.h
17717         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17718         * reload.c: Include params.h.
17719         (find_equiv_reg): Work limiting check.
17720         * invoke.texi: Document.
17721
17722 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17723
17724         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17725         out-of-bounds accesses to string constants.  Simplify mips16
17726         case accordingly.
17727
17728 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17729
17730         PR optimization/13469
17731         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17732         reload_cse_regs (-fnon-call-exceptions only).
17733
17734 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17735
17736         * config/mcore/lib1.asm: Fix comment formatting.
17737         * config/mcore/mcore-elf.h: Likewise.
17738         * config/mcore/mcore.c: Likewise.
17739         * config/mcore/mcore.h: Likewise.
17740         * config/mcore/mcore.md: Likewise.
17741
17742 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17743
17744         * c-decl.c (duplicate_decls): Break apart into...
17745         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17746         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17747         ... these new functions.  Restructure for comprehensibility.
17748         Remove various archaic special cases.  Always report the
17749         location of the previous declaration when a diagnostic is issued.
17750         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17751         (match_builtin_function_types): Delete unnecessary forward declaration.
17752
17753 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17754
17755         * genautomata.c (make_automaton, NDFA_to_DFA):
17756         Print progress bars with '.' characters instead of '*'.
17757         (build_automaton): Change notes to match.
17758
17759 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17760
17761         * config/m32r/m32r.md: Use define_constants for unspec and
17762         unspec_volatile.
17763
17764 2004-01-10  Jan Hubicka  <jh@suse.cz>
17765
17766         PR opt/11635
17767         * expr.c (expand_expr_real):  More curefully expand union casts.
17768
17769 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17770
17771         * config/m32r/m32r.md (flush_icache): Use 1 for
17772         unspec_volatile.
17773
17774 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17775             James E Wilson  <wilson@specifixinc.com>
17776
17777         PR debug/12860
17778         * dbxout.c (dbxout_symbol): Remove initialization of
17779         current_sym_code, current_sym_value, and current_sym_addr.
17780         (dbxout_symbol_location): Same.
17781         (dbxout_prepare_symbol): Zero current_sym_code,
17782         current_sym_value, and current_sym_addr.
17783
17784 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17785
17786         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17787         check is done first.
17788
17789 2004-01-09  Eric Christopher  <echristo@redhat.com>
17790
17791         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17792         if we're running mark_constant_function.
17793
17794 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17795
17796         PR target/12561
17797         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17798
17799 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17800
17801         PR debug/11231
17802         * dbxout.c (dbxout_type_fields): Return if any item is
17803         error_mark_node or the type is error_mark_node.
17804
17805 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17806
17807         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17808         exactly what is expected as a 'long double'.
17809         (_xlqadd): When a value to be returned is representable as a
17810         'double', just return it directly, do not construct it using a union.
17811         Also, correct final fixup.
17812         (_xlqmul): Likewise.
17813         (_xlqdiv): Likewise.
17814         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17815
17816         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17817
17818 2004-01-09  Richard Henderson  <rth@redhat.com>
17819
17820         * recog.c (constrain_operands): Validate mem operands.
17821
17822 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17823
17824         * gcc.c (init_spec): Remove -lunwind from shared case.
17825         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17826
17827 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17828
17829         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17830         * configure: Regenerate
17831
17832 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17833
17834         PR c/11234
17835         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17836         between function and object pointers.
17837         (digest_init): When comparing a pointer to function type to the
17838         target type, only apply TREE_TYPE once to the pointer to function
17839         type.
17840         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17841         function pointer rather than casting it to a function pointer.
17842         (for_each_eh_label): Update caller.
17843         * recog.h (struct insn_data): Use a struct or union for output.
17844         * genoutput.c (output_insn_data): Update.
17845         * final.c (get_insn_template): Update.
17846
17847 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17848
17849         * expr.h (expand_expr): Make it a macro, not a function.
17850         (expand_expr_real): New function.
17851         * expr.c (store_expr): Adjust logic for deciding whether or not to
17852         copy the value returned by expand_expr.
17853         (expand_expr): Rename to ...
17854         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17855         calls to language hooks.
17856         * c-common.h (c_expand_expr): Adjust prototype.
17857         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17858         * langhooks-def.h (lhd_expand_expr): Change prototype.
17859         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17860         * langhooks.h (lang_hooks): Change type of expand_expr.
17861         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17862         (last_expr_alt_rtl): Likewise.
17863         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17864         (clear_last_expr): Clear it.
17865         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17866         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17867         * tree.def (RTL_EXPR): Give it an additional operand.
17868         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17869
17870 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17871
17872         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17873         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17874
17875 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17876
17877         PR target/13380.
17878         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17879         or (ne:SI (reg:CC 17) (const_int 0)).
17880         Be specific about modes wherever possible.
17881
17882 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17883
17884         * config/m32r/m32r.c (m32r_expand_block_move): Call
17885         gen_movestrsi_internal with two more arguments.
17886         (m32r_output_block_move): Adjust operand numbers.
17887         Properly update the source and destination pointers.
17888         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17889         'r+'.  Change the set detinations to match_operand.
17890
17891 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17892
17893         * final.c (FIRST_INSN_ADDRESS): Remove.
17894         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17895         * system.h (FIRST_INSN_ADDRESS): Poison.
17896         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17897         * config/m32r/m32r-protos.h: Remove the prototype for
17898         m32r_first_insn_address.
17899         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17900         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17901         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17902
17903 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17904
17905         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17906         we just created.
17907         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17908         emitted as subrange types too.
17909         (subrange_type_die): Add handling of enumeration subtypes.
17910
17911 2004-01-08  Richard Henderson  <rth@redhat.com>
17912
17913         PR opt/12441
17914         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17915         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17916         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17917         (ix86_address_cost): Be prepared for SUBREGed registers.
17918         (legitimate_address_p): Accept SUBREGed registers.
17919
17920 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17921
17922         * Makefile.in: Rename configure.in to configure.ac
17923         * doc/sourcebuild.texi: Likewise.
17924         * configure: Regenerate.
17925         * config.in: Regenerate.
17926
17927 2004-01-08  Stuart Hastings  <stuart@apple.com>
17928
17929         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17930
17931 2004-01-08  Jan Hubicka  <jh@suse.cz>
17932
17933         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17934
17935 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17936
17937         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17938         (UNSPEC_FIX_TRUNC_TF): New constant.
17939         (movtf_internal): Make splitter active only when insn is active.
17940         (extenddftf2): Rewrite to properly load zero into low part.
17941         (extenddftf2_internal): New.
17942         (extendsftf2): Rewrite.
17943         (truncdftf2): Correct length.
17944         (floatditf2): Delete.
17945         (fix_trunc_helper): New.
17946         (fix_trunctfdi2): Use fix_trunc_helper.
17947         (fix_trunctfsi2): Likewise.fix_trunc
17948         (fix_trunctfsi2_internal): New.
17949
17950         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17951         addresses are legitimate on Darwin even when flag_pic.
17952         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17953         non-offsettable addresses for loads of TFmode constants.
17954
17955 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17956
17957         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17958         variables in the appropriate bss section.
17959
17960 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17961
17962         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17963         target_flags has MASK_POWERPC64 when -m64.
17964         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17965         to 620, 630, power3, power4 and rs64a entries.
17966         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17967
17968 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17969
17970         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17971         floating-point constants.
17972
17973 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17974
17975         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17976         Create the subrange_type DIE using the given context DIE.
17977         (modified_type_die): Update call to subrange_type_die.
17978
17979 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17980
17981         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17982         Add multiple-include guard.
17983
17984 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17985
17986         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17987         all vector constant loadable by vsplt*.
17988         (output_vec_const_move): Likewise.
17989
17990 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17991
17992         PR c/6024
17993         * c-typeck.c (comptypes): Only treat enumerated types in the same
17994         translation unit as compatible with each other when they are the
17995         same type.
17996         * doc/extend.texi: Update.
17997
17998 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17999
18000         PR c/12165
18001         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18002         array type from the array element type.
18003
18004 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18005
18006         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18007         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18008         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18009         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18010         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18011
18012 2004-01-06  Eric Christopher  <echristo@redhat.com>
18013
18014         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18015         (DWARF2_DEBUGGING_INFO): Define.
18016         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18017         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18018         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18019         for irix as.
18020         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18021         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18022         * config/mips/iris5gas.h: Ditto.
18023         (DBX_DEBUGGING_INFO): Remove.
18024         (DWARF2_DEBUGGING_INFO): Ditto.
18025         (MIPS_DEBUGGING_INFO): Ditto.
18026         (PREFERRED_DEBUGGING_TYPE): Ditto.
18027         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18028         (PREFERRED_DEBUGGING_TYPE): Ditto.
18029         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18030         * config/mips/elf64.h: Ditto.
18031
18032 2004-01-06  Jan Hubicka  <jh@suse.cz>
18033
18034         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18035         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18036
18037 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18038
18039         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18040         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18041         * config/rs6000/darwin-ldouble.c: New.
18042
18043         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18044         for constants.
18045         (constant_subword): Delete.
18046         * rtl.h (constant_subword): Delete prototype.
18047         (immed_double_const): Is not in varasm.c.
18048         * simplify-rtx.c (simplify_immed_subreg): New.
18049         (simplify_subreg): Use simplify_immed_subreg.
18050
18051         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18052         than trying to generate RTL directly.
18053         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18054         RTL directly.
18055
18056         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18057
18058 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18059
18060         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18061         function into a separate macro.
18062         (read_only_data_section): Add void argument.
18063         (private_data_section): Same.
18064         (read_only_private_data_section): Same.
18065         (toc_section): Same.
18066
18067 2004-01-06  Jan Hubicka  <jh@suse.cz>
18068
18069         * invoke.texi:  Remove typo in last change.
18070
18071         PR target/10301
18072         * config.gcc: Accept opteron and athlon-64 as variants
18073         of k8.
18074         * i386.c (override_options): Likewise.
18075         * invoke.texi (i386 -mtune): Expand documentation.
18076
18077 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18078
18079         * alias.c: Fix comment typos.
18080         * builtins.c: Likewise.
18081         * cfg.c: Likewise.
18082         * df.c: Likewise.
18083         * dominance.c: Likewise.
18084         * dwarf2out.c: Likewise.
18085         * emit-rtl.c: Likewise.
18086         * expr.c: Likewise.
18087         * final.c: Likewise.
18088         * fold-const.c: Likewise.
18089         * gcse.c: Likewise.
18090         * genattrtab.c: Likewise.
18091         * genrecog.c: Likewise.
18092         * gensupport.c: Likewise.
18093         * ggc-zone.c: Likewise.
18094         * integrate.c: Likewise.
18095         * local-alloc.c: Likewise.
18096         * loop.c: Likewise.
18097         * recog.c: Likewise.
18098         * regmove.c: Likewise.
18099         * reg-stack.c: Likewise.
18100         * reorg.c: Likewise.
18101         * rtlanal.c: Likewise.
18102         * rtl.h: Likewise.
18103         * sched-ebb.c: Likewise.
18104         * simplify-rtx.c: Likewise.
18105         * toplev.c: Likewise.
18106         * varasm.c: Likewise.
18107
18108 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18109
18110         * doc/install.texi: Fix typos.
18111         * doc/invoke.texi: Likewise.
18112         * doc/md.texi: Likewise.
18113
18114 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18115
18116         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18117
18118 2004-01-06  Jan Hubicka  <jh@suse.cz>
18119
18120         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18121         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18122         of MMX_REGPARM.
18123         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18124         add MMX_REGPARM.
18125         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18126         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18127         (MMX_REGPARM_MAX): Similarly for -mmmx.
18128
18129 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18130
18131         * config/sh/linux.h: Fix comment formatting.
18132         * config/sh/netbsd-elf.h: Likewise.
18133         * config/sh/sh.c: Likewise.
18134         * config/sh/sh.h: Likewise.
18135         * config/sh/vxworks.h: Likewise.
18136
18137 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18138
18139         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18140         * toplev.c (output_file_directive): Don't use
18141         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18142
18143 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18144
18145         * toplev.c: Fix broken checkin of 2003-12-30.
18146
18147 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18148
18149         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18150         (USING_MMAP): We don't support non-mmap.
18151         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18152         large objects.
18153         (struct page_entry): Remove bytes_free.
18154         (struct page_table_chain): Remove.
18155         (struct globals): Remove page_table member.
18156         (loookup_page_table_entry): Function deleted.
18157         (set_page_table_entry): Ditto.
18158         (ggc_allocated_p): No longer need page table lookups.
18159         (ggc_marked_p): Ditto.
18160         (alloc_small_page): Don't care about bytes_free anymore.
18161         (alloc_large_page): Round up size.
18162         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18163         their size the new way.
18164         Remove page table lookups and setting.
18165         (ggc_get_size): Calculate large object size the new way.
18166         (sweep_pages): Redo to account for fact that we no longer have
18167         bytes_free.
18168         (ggc_collect): No longer need to reincrement bytes_free.
18169         (ggc_pch_alloc_object): Handle new large objects properly.
18170         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18171
18172 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18173
18174         * doc/invoke.texi: Remove a page break.
18175
18176 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18177
18178         * config/avr/avr.c (avr_output_function_prologue): Remove an
18179         extra pair of curly braces.
18180
18181 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18182
18183         * config/mn10300/mn10300.c: Fix comment formatting.
18184         * config/mn10300/mn10300.h: Likewise.
18185
18186 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18187
18188         * tree.h: Update documentation on nothrow_flag.
18189         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18190         types.
18191
18192 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18193
18194         * doc/invoke.texi: Remove traces of dead ports.
18195
18196 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18197
18198         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18199         option.
18200
18201 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18202
18203         PR target/12945
18204         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18205         counter labels.
18206         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18207         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18208         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18209         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18210         (mips_symbol_insns): Don't trust the local/global classification.
18211         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18212         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18213         -mno-explicit-relocs.
18214         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18215         between local and global symbols.
18216
18217 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18218
18219         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18220         (mips_preferred_reload_class): Declare.
18221         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18222         (EXTRA_CONSTRAINT): Update accordingly.
18223         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18224         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18225         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18226         mips_dangerous_for_la25_p.
18227         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18228         if mips_dangerous_for_la25_p.
18229
18230 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18231
18232         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18233         warning.
18234
18235 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18236
18237         * configure.ac: Use AC_PROG_CPP_WERROR.
18238         * configure: Regenerate.
18239
18240 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18241
18242         * .cvsignore: Add autom4te.cache.
18243
18244 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18245
18246         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18247         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18248         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18249         then architecture options, then ABI options.  General rewording.
18250
18251 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18252
18253         PR c/3414
18254         * doc/extend.texi: Clarify definition of malloc attribute.
18255
18256 2004-01-04  Jan Hubicka  <jh@suse.cz>
18257
18258         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18259         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18260         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18261         (cgraph_inline_p): Add extra argument reason.
18262         * cgraphunit.c: Minor formating fixes.
18263         cgraph_first_inlined_callee): New functions.
18264         (record_call_1): Record builtins too.
18265         (cgraph_analyze_function): Update inline_failed messages.
18266         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18267         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18268         (cgraph_check_inline_limits): Likewise; Add argument reason.
18269         (cgraph_set_inline_failed): New static function.
18270         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18271         reasons.
18272         (cgraph_inline_p): Add new argument reason.
18273         * tree-inline.c (expand_call_inline):  Update warning.
18274
18275 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18276
18277         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18278         with modern equivalents.
18279         * configure: Regenerate.
18280
18281         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18282         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18283         * configure: Regenerate.
18284
18285         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18286
18287         * configure.in: Rename to configure.ac.
18288         * configure.ac: Renamed from configure.in; make minimum necessary
18289         changes for autoconf 2.5x.
18290         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18291         * configure: Regenerate with autoconf 2.57.
18292
18293 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18294
18295         * config/mips/linux.h: Fix comment formatting.
18296         * config/mips/mips.c: Likewise.
18297         * config/mips/mips.h: Likewise.
18298         * config/mips/mips.md: Likewise.
18299         * config/mips/netbsd.h: Likewise.
18300         * config/mips/windiss.h: Likewise.
18301
18302 2004-01-02  Richard Henderson  <rth@redhat.com>
18303
18304         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18305         for sse and 387; add suppression for mmx.
18306
18307 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18308
18309         * loop.c (loop_optimize): Free all loops_info's mems.
18310
18311         * c-typeck.c (finish_init): Free spelling_base before
18312         setting it again.
18313
18314         * cfgloop.c (flow_loops_find): Always free the sbitmap
18315         headers.
18316
18317         * predict.c (estimate_probability): Free bbs after being
18318         done with it.
18319
18320 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18321
18322         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18323         const_8bit_operand and call_address_operand.
18324
18325 2004-01-02  Jan Hubicka  <jh@suse.cz>
18326
18327         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18328         when there is nothing to inline but warnings are requested.
18329         (cgraph_decide_inlining):  Fix memory leak.
18330
18331 2004-01-02  Jan Hubicka  <jh@suse.cz>
18332
18333         * expr.c (store_constructor):  Fix pasto in previous patch.
18334
18335 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18336
18337         * config/i386/cygming.h: Fix comment formatting.
18338         * config/i386/djgpp.h: Likewise.
18339         * config/i386/gthr-win32.c: Likewise.
18340         * config/i386/i386-interix.h: Likewise.
18341         * config/i386/i386.c: Likewise.
18342         * config/i386/i386.h: Likewise.
18343         * config/i386/openbsd.h: Likewise.
18344         * config/i386/winnt.c: Likewise.
18345         * config/i386/xm-mingw32.h: Likewise.
18346
18347 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18348
18349         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18350         copyright and last modification dates.
18351
18352 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18353
18354         * doc/install.texi (Specific): Mention x86_64.
18355
18356 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18357
18358         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18359         Call force_operand on plus_constant result.
18360
18361 2004-01-01  Jan Hubicka  <jh@suse.cz>
18362
18363         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18364         * expr.c (store_constructor): Use vec_init pattern.
18365         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18366         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18367         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18368         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18369         New patterns.
18370         (sse2_unpc?pd): Fix pattern.
18371         (sse2_movlpd): Kill.
18372         (sse2_movsd): Deal with movlpd too.
18373         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18374         (ix86_expand_vector_init): New.
18375         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18376         * md.texi (vec_set, vec_extract): Document
18377
18378 2003-12-31  Jan Hubicka  <jh@suse.cz>
18379
18380         PR opt/13473
18381         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18382         ASM input operands
18383
18384         PR opt/12617
18385         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18386         (dump_file): Likewise.
18387         (rest_of_compilation): Likewise.
18388
18389         PR debug/13367
18390         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18391         flag_really_no_inline we inline always_inline functions.
18392         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18393         for non-always_inline functions when there is flag_really_no_inline.
18394         (cgraph_decide_inlining): Limit work done when not inlining.
18395         (cgraph_decide_inlining_incrementally): Likewise.
18396         (cgraph_optimize_function): Check whether something got inlined.
18397         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18398         extern inline functions when not inlining.
18399
18400         * opts.c (decode_options):  Disable crossjumping at -O1
18401         * invoke.texi (-O1): Document change.
18402
18403 See ChangeLog.10 for earlier changes.