OSDN Git Service

b4c81e70acd116f8a4a23c98d7f3720cc6f6d5ef
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * cfglayout.c (fixup_reorder_chain): Handle case where the
4         destination of E_FALL is EXIT_BLOCK_PTR.
5
6 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
7
8         PR target/15653
9         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
10         after shifts before asm.
11
12 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13
14         PR tree-optimization/15993
15         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
16         destination is unchanged.
17
18 2004-06-16  Andreas Jaeger  <aj@suse.de>
19
20         * doc/install.texi (Configuration): Update description for
21         --enable-version-specific-runtime-libs.
22
23 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
24
25         * doc/install.texi: boehm-gc now uses automake 1.8.5.
26
27 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
28
29         * toplev.h (rest_of_compilation): Adjust prototype.
30
31 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
32
33         * coverage.c: Remove argument to rest_of_compilation.
34         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
35         * passes.c (rest_of_compilation): Remove argument.
36         (pass_rest_of_compilation): New.
37         (rest_of_handle_final, rest_of_handle_delay_slots,
38         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
39         rest_of_handle_machine_reorg, rest_of_handle_regrename
40         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
41         rest_of_handle_regmove, rest_of_handle_tracer
42         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
43         rest_of_handle_web, rest_of_handle_branch_prob
44         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
45         rest_of_handle_addressof, rest_of_handle_jump_bypass
46         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
47         Check that the two arguments are actually superfluous.
48         * tree-optimize.c (register_dump_files): Add properties argument.
49         Track validity of passes.  Only initialize dump files for
50         tree-based passes.  Store the full set of provided passes in
51         the pass.
52         (init_tree_optimization_passes): Register pass_expand and
53         pass_rest_of_compilation.
54         (execute_one_pass): Do not track the presence of required properties
55         here.  Set in_gimple_form.  Do not update current_properties.
56         (current_properties): Remove.
57         (set_save_expr_context): Remove.
58         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
59         expand to RTL here, and do not call rest_of_compilation.  Push
60         GGC context even before gimplification.
61         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
62         (pass_expand, pass_rest_of_compilation): Declare.
63
64 2004-06-15  Jeff Law  <law@redhat.com>
65
66         * fold-const.c (swap_tree_comparison): No longer static.
67         (tree_swap_operands_p): Similarly.  Return true if both operands
68         are SSA_NAMEs and the first operand has a higher version number than
69         the second operand.
70         * tree.h (swap_tree_comparison): Prototype.
71         (tree_swap_operands_p): Prototype.
72         * tree-ssa-operands.c (get_expr_operands): For commutative
73         operators and relational comparisons, canonicalize the
74         order of the operands.
75
76 2004-06-15  Richard Henderson  <rth@redhat.com>
77
78         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
79         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
80         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
81         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
82         (finish_fname_decls, fname_decl): Use statement_lists.
83         (c_expand_expr_stmt): Don't set last_expr_type.
84         (c_type_hash): Fix indentation.
85         (c_safe_from_p): Don't follow TREE_CHAIN.
86         (c_tree_chain_matters_p): Remove.
87         * c-common.def (SCOPE_STMT): Remove.
88         (CLEANUP_STMT): Redefine to contain its own body.
89         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
90         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
91         Add x_cur_stmt_list.
92         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
93         (cur_stmt_list): New.
94         (STATEMENT_LIST_STMT_EXPR): New.
95         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
96         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
97         (CLEANUP_BODY): New.
98         (CLEANUP_DECL): Move to operand 2.
99         (c_common_stmt_codes): Remove SCOPE_STMT.
100         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
101         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
102         (c_push_function_context, c_pop_function_context): Don't save it.
103         (finish_decl): Set TREE_USED on the decl for a cleanup.
104         Use push_cleanup.
105         (store_parm_decls): Use statement lists.
106         (finish_function): Remove compstmt rule workaround.  Use statement
107         lists.  Call finish_fname_decls after finalizing the body.
108         (c_begin_compound_stmt): Move to c-typeck.c.
109         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
110         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
111         (c_genericize): Invoke them.
112         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
113         (c_build_bind_expr): Export.
114         (gimplify_block, gimplify_cleanup): Remove.
115         (gimplify_condition): Use gimplify_stmt.
116         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
117         (gimplify_if_stmt): Remove recursion hack.
118         (c_gimplify_expr): Remove STMT_EXPR handling.
119         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
120         (is_last_stmt_of_scope): Remove.
121         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
122         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
123         c_end_compound_stmt.
124         * c-objc-common.c (build_cdtor): Likewise.
125         * c-parse.in (primary): Use c_finish_stmt_expr.
126         (push_scope, pop_scope): Remove.
127         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
128         (c99_block_end, compstmt): Use c_end_compound_stmt.
129         (c99_block_lineno_labeled_stmt): Likewise.
130         (compstmt_primary_start): Use c_begin_stmt_expr.
131         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
132         (do_stmt_start): Fill in body directly.
133         (lineno_stmt): Avoid setting lineno on constants.
134         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
135         Remove SCOPE_STMT.
136         * c-semantics.c (begin_stmt_tree): Remove.
137         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
138         (add_stmt): Use statement lists.
139         (add_scope_stmt, finish_stmt_tree): Remove.
140         (push_cleanup): New.
141         * c-tree.h: Move some decls from c-common.h.
142         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
143         (do_case, c_finish_case): Likewise.
144         (c_finish_then): Take body for then as argument.
145         (c_finish_else): Similarly.
146         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
147         c_finish_for_stmt_incr, c_finish_for_stmt): New.
148         (c_begin_stmt_expr, c_finish_stmt_expr): New.
149         (c_begin_compound_stmt): Do scope management.
150         (c_end_compound_stmt): New.
151         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
152         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
153         Look through exception handling constructs.
154         (gimplify_bind_expr): Accept temporary argument.
155         (gimplify_target_expr): Special case BIND_EXPR bodies.
156         (gimplify_expr): Handle fallback == fb_none like a statement.
157         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
158         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
159         * langhooks.h (tree_chain_matters_p): Remove.
160         * stub-objc.c (objc_clear_super_receiver): New.
161         * tree-gimple.h (voidify_wrapper_expr): Update decl.
162         (append_to_statement_list, append_to_statement_list_force): Move
163         to tree-iterator.h.
164         * tree-inline.c (expand_call_inline): Update call.
165         (clone_body): Use statement lists.
166         (walk_tree): Don't check tree_chain_matters_p.
167         (copy_tree_r): Likewise.
168         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
169         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
170         * tree-iterator.h (append_to_statement_list,
171         append_to_statement_list_force): Moved from tree-gimple.h.
172         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
173         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
174         (objc_enter_block): Likewise.
175         (objc_exit_block): Use c_end_compound_stmt.
176         (objc_build_try_enter_fragment): Add #error and comment for
177         rewriting for OBJCPLUS.
178         (objc_build_extract_fragment, objc_build_try_epilogue,
179         objc_build_catch_stmt, objc_build_finally_prologue,
180         objc_build_finally_epilogue): Update for C statement builders.
181         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
182         Remove.
183
184 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
185
186         * df.c (df_reg_clobber_gen): Removed.
187         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
188         Make more effective for hard regs.
189         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
190
191 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
192
193         * c-pragma.h (c_lex_string_translate): Change type to int.
194         * c-parse.in: Change all assignments of c_lex_string_translate
195         to true and false to 1 and 0.
196         * c-lex.c (c_lex_string_translate): Likewise.
197         (lex_string): Convert string without translation in the -1
198         case.
199
200 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
201
202         * convert.h: Add include guards
203
204 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
205
206         * tree-flow-inline.h: Document all functions.
207
208 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
209
210         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
211         * tree-dfa.c (create_stmt_ann): Ditto.
212         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
213         * tree-inline.c (estimate_num_insns_1): Ditto.
214         * tree.c (tree_size): Ditto.
215         (make_node_stat): Ditto.
216         (tree_node_structure): Ditto.
217         (ephi_node_elt_check_failed): Remove.
218         (is_essa_node): Ditto.
219         * tree.def (EPHI_NODE): Ditto.
220         (EEXIT_NODE): Ditto.
221         (EUSE_NODE): Ditto.
222         (EKILL_NODE): Ditto.
223         * tree.h (EREF_NODE_CHECK): Remove.
224         (EPHI_NODE_ELT_CHECK): Ditto.
225         (struct tree_eref_common): Ditto.
226         (struct tree_euse_node): Ditto.
227         (struct ephi_arg_d): Ditto.
228         (struct tree_ephi_node): Ditto.
229         (ephi_node_elt_check_failed): Remove prototype.
230         (is_essa_node): Ditto.
231         (enum tree_node_structure_enum): Remove TS_E*_NODE.
232         (union tree_node): Remove E*_NODE uses.
233
234 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
235
236         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
237         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
238         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
239         Likewise.
240         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
241         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
242         expand_builtin_strcmp, expand_builtin_strncmp,
243         expand_builtin_frame_address): Likewise.
244         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
245         insert_one_insn): Likewise.
246         * calls.c (prepare_call_address, precompute_register_parameters,
247         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
248         * cfganal.c (flow_active_insn_p): Likewise.
249         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
250         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
251         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
252         make_extraction, recog_for_combine, gen_lowpart_for_combine,
253         simplify_comparison, record_dead_and_set_regs_1,
254         record_dead_and_set_regs, record_promoted_value,
255         check_promoted_subreg, get_last_value_validate, get_last_value,
256         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
257         unmentioned_reg_p_1): Likewise.
258         * conflict.c (mark_reg): Likewise.
259         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
260         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
261         merge_equiv_classes, flush_hash_table, invalidate,
262         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
263         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
264         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
265         record_jump_cond, cse_insn, addr_affects_sp_p,
266         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
267         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
268         cse_cc_succs, cse_condition_code_reg): Likewise.
269         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
270         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
271         cselib_record_set, cselib_record_sets): Likewise.
272         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
273         dbxout_block): Likewise.
274         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
275         * dojump.c (do_jump): Likewise.
276         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
277         is_based_loc, rtl_for_decl_location): Likewise.
278         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
279         set_decl_incoming_rtl, mark_user_reg): Likewise.
280         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
281         copy_to_suggested_reg, allocate_dynamic_stack_space,
282         probe_stack_range, hard_function_value): Likewise.
283         * expmed.c (store_bit_field, store_fixed_bit_field,
284         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
285         extract_split_bit_field, expand_divmod, emit_store_flag_force):
286         Likewise.
287         * expr.c (convert_move, convert_modes,
288         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
289         use_group_regs, emit_move_insn, emit_move_insn_1,
290         compress_float_constant, push_block, emit_single_push_insn,
291         emit_push_insn, get_subtarget, expand_assignment, store_expr,
292         store_constructor, store_field, force_operand, safe_from_p,
293         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
294         Likewise.
295         * final.c (profile_function, final_scan_insn, alter_subreg,
296         get_mem_expr_from_op, output_asm_operand_names, output_operand,
297         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
298         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
299         find_regno_partial, propagate_one_insn, init_propagate_block_info,
300         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
301         attempt_auto_inc, find_auto_inc, mark_used_regs,
302         count_or_remove_death_notes_bb): Likewise.
303         * function.c (find_temp_slot_from_address, update_temp_slot_address,
304         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
305         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
306         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
307         purge_single_hard_subreg_set, instantiate_decl,
308         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
309         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
310         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
311         expand_function_start, diddle_return_value, clobber_return_register,
312         expand_function_end, keep_stack_depressed, handle_epilogue_set,
313         update_epilogue_consts): Likewise.
314         * genemit.c (gen_exp, gen_insn): Likewise.
315         * genrecog.c (make_insn_sequence): Likewise.
316         * global.c (global_conflicts, expand_preferences, mark_reg_store,
317         mark_reg_conflicts, set_preference, reg_becomes_live,
318         build_insn_chain, mark_reg_change): Likewise.
319         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
320         Likewise.
321         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
322         Likewise.
323         * integrate.c (copy_rtx_and_substitute, try_constants,
324         subst_constants, mark_stores, allocate_initial_values): Likewise.
325         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
326         delete_computation, rtx_renumbered_equal_p, true_regnum,
327         reg_or_subregno): Likewise.
328         * lcm.c (reg_dies, reg_becomes_live): Likewise.
329         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
330         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
331         wipe_dead_reg, no_conflict_p): Likewise.
332         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
333         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
334         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
335         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
336         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
337         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
338         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
339         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
340         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
341         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
342         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
343         try_swap_copy_prop): Likewise.
344         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
345         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
346         Likewise.
347         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
348         reload_cse_simplify_operands, reload_combine,
349         reload_combine_note_store, reload_combine_note_use,
350         reload_cse_move2add, move2add_note_store): Likewise.
351         * print-rtl.c (print_rtx): Likewise.
352         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
353         contains_pseudo, handle_asm_insn): Likewise.
354         * ra-debug.c (ra_print_rtx_object, dump_constraints,
355         dump_static_insn_cost): Likewise.
356         * ra-rewrite.c (slots_overlap_p, emit_colors,
357         remove_suspicious_death_notes): Likewise.
358         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
359         register_operand, scratch_operand, nonmemory_operand,
360         constrain_operands): Likewise.
361         * reg-stack (check_asm_stack_operands, remove_regno_note,
362         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
363         subst_asm_stack_regs): Likewise.
364         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
365         record_address_regs, reg_scan_mark_refs): Likewise.
366         * regmove.c (discover_flags_reg, replacement_quality,
367         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
368         fixup_match_1): Likewise.
369         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
370         kill_set_value, copyprop_hardreg_forward_1): Likewise.
371         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
372         reload_inner_reg_of_subreg, can_reload_into, push_reload,
373         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
374         operands_match_p, decompose, find_reloads, find_reloads_toplev,
375         find_reloads_address, subst_indexed_address, find_reloads_address_1,
376         find_reloads_subreg_address, find_replacement,
377         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
378         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
379         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
380         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
381         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
382         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
383         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
384         do_output_reload, emit_reload_insns, gen_reload,
385         delete_address_reloads_1, inc_for_reload): Likewise.
386         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
387         update_reg_unused_notes, fill_slots_from_thread): Likewise.
388         * resource.c (update_live_status, mark_referenced_resources,
389         mark_set_resources, mark_target_live_regs): Likewise.
390         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
391         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
392         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
393         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
394         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
395         parms_set, find_first_parameter_load, keep_with_call_p,
396         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
397         num_sign_bit_copies1): Likewise.
398         * rtlhooks.c (gen_lowpart_general): Likewise.
399         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
400         sched_analyze): Likewise.
401         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
402         Likewise.
403         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
404         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
405         simplify_binary_operation, simplify_const_relational_operation,
406         simplify_subreg): Likewise.
407         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
408         expand_end_stmt_expr, expand_return, expand_decl,
409         expand_anon_union_decl): Likewise.
410         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
411         find_splittable_regs, find_splittable_givs, find_common_reg_term,
412         loop_iterations): Likewise.
413         * var-tracking.c (variable_union, variable_part_different_p,
414         variable_different_p, count_uses, add_uses, add_stores,
415         compute_bb_dataflow, set_variable_part, delete_variable_part,
416         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
417         Likewise.
418         * varasm.c (assemble_variable): Likewise.
419
420 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
421
422         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
423         definition.
424         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
425         #undef and #if 0'd definition.
426
427 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
428
429         * combine.c (distribute_notes): Comment typo fix.
430
431 2004-06-15  Roger Sayle  <roger@eyesopen.com>
432
433         * expmed.c (synth_mult): Mask bits of the multiplier to the
434         machine mode of the multiplication.  Don't consider shifts
435         by more than (or equal to) the width of the operation's mode.
436
437 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
438
439         * doc/install.texi: Yet another update for autoconf
440         and automake versions.
441
442 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
443
444         * function.h (struct function): Remove cannot_inline field.
445         (current_function_cannot_inline): Remove.
446         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
447         Simplify conditionals to ignore warn_return_type.
448         * tree-optimize.c (tree_rest_of_compilation): Do not reset
449         DECL_DEFER_OUTPUT.
450         * objc/objc-act.c (build_module_descriptor, finish_method_def):
451         Do not set current_function_cannot_inline.
452
453 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
454
455         * cfglayout.c (fixup_reorder_chain): Handle case where the
456         destination of E_TAKEN is EXIT_BLOCK_PTR.
457
458 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
459
460         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
461
462 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
463
464         * fold-const.c (operand_equal_p): Update comment.
465
466 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
467
468         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
469         (INCOMING_RETURN_ADDR_RTX): Define.
470         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
471         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
472         __builtin_return_address(0).
473         (m32r_return_addr): Added for __builtin_return_address(0).
474         (m32r_reload_lr): Ditto.
475
476         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
477
478 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
479
480         * doc/install.texi (Prerequisites): Update libbanshee,
481         fastjar, libcpp, libjava/libltdl entries to
482         automake 1.8.5.
483
484 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
485             Olivier Hainque  <hainque@act-europe.fr>
486
487         * function.c (fixup_var_refs): Also adjust the start of sequence
488         after fixing up the insns.
489
490 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
491
492         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
493
494 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
495
496         * doc/install.texi (Prerequisites): Update libstdc++ entry to
497         automake 1.8.5.
498
499 2004-06-14  Eric Christopher  <echristo@redhat.com>
500
501         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
502         to -mtpf-trace (-mno-tpf-trace).
503         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
504         documentation.
505
506 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
507
508         * real.c: Fix bit count in head comment.
509
510 2004-06-14  Jeff Law  <law@redhat.com>
511
512         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
513         PHIs where the destination or an argument is marked with
514         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
515
516 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
517
518         PR middle-end/15945
519         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
520         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
521
522 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
523
524         * opts.sh (var_args): Fix regexp.
525
526 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
527
528         PR target/15178
529         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
530
531 2004-06-14  Paul Brook  <paul@codesourcery.com>
532
533         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
534
535 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
536
537         * Makefile.in (FLAGS_H): New.
538         (flags.h): Replace by FLAGS_H.
539         * c.opt: Document Var, VarExists, Init and Report attributes.
540         * common.opt: Fill the values of the attributes.
541         * diagnostic.c (flag_fatal_errors): Do not define.
542         * except.c (flag_non_call_exceptions): Do not define.
543         * flags.h: Include options.h.  Remove declarations conflicting with
544         the automatically defined ones.
545         * opts.c: Remove automatically defined variables.
546         (handle_option): Perform default initialization.
547         (common_handle_option): Do not handle options covered by the
548         default initialization.
549         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
550         fields.
551         (CL_REPORT): New.
552         * opts.sh: Generate variable declarations, handle CL_REPORT.
553         * toplev.c: Remove automatically defined variables.
554         (f_options): Removed.
555         (print_switch_values): Use cl_options instead of f_options.
556         * toplev.h (version_flag): Declaration removed.
557
558 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
559
560         * config/sparc/sparc.h: Correct comment about availability of
561         little endian option.
562
563         * config.gcc: Remove sparc64-*-aout*.
564         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
565         * config/sparc/sp64-aout.h: Remove.
566         * config/sparc/aout.h: Remove.
567
568 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
569
570         * config/s390/s390.c: Include "tree-gimple.h".
571         (s390_gimplify_va_arg): New function.
572         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
573         (s390_va_arg): Remove.
574         * config/s390/s390-protos.h (s390_va_arg): Remove.
575         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
576
577 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
578
579         * basic-block.h (could_fall_through): Declare.
580         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
581         Fail if the source already has a fallthrough edge to the exit
582         block pointer.
583         (could_fall_through): New function.
584         * cfgbuild.c (make_edges): Check if we already have a fallthrough
585         edge to the exit block pointer.
586         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
587         not called before reload has completed.
588         Handle special case of first block having a fall-through exit edge.
589         (cfg_layout_finalize): Don't call it before reload or if we have
590         rtl epilogues.
591         (fixup_reorder_chain): A fall through to the exit block does not
592         require the block to come last.  Add sanity checks.
593         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
594         edges to the exit block.
595         * function.c (cfglayout.h): #include.
596         (thread_prologue_and_epilogue_insns): If we have neither return nor
597         epilogue, but a fall through to the exit block from mid-function,
598         force a non-fall-through exit.
599         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
600
601 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
602
603         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
604         for power5 and rs64a.  Correct condition for default.  Correct power3,
605         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
606
607 2004-06-13  Steven Bosscher <stevenb@suse.de>
608
609         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
610         Revert previous change, don't use CALL_P.
611
612 2004-06-13  Jason Merrill  <jason@redhat.com>
613
614         * tree.h: Move std_gimplify_va_arg_expr protoype here.
615         * tree-gimple.h: From here.
616
617 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
618
619         Fix PR tree-optimization/15979
620         Fix PR tree-optimization/15981
621         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
622         try to insert values undefined along some path.
623
624 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
625
626         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
627         are available everywhere too.
628
629 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
630
631         * fold-const.c (fold_checksum_tree <case 't'>): Only
632         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
633         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
634         EXPR is an INTEGERAL_TYPE or a scalar float type.
635
636 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
637
638         * tree-sra.c (tree_sra): Update documentation.
639
640 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
641
642         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
643         function_types_compatible_p, type_lists_compatible_p): Remove
644         flags parameter.
645         * c-tree.h (comptypes): Likewise.
646         (COMPARE_STRICT): Remove.
647         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
648         callers changed.
649
650 2004-06-13  Eric Christopher  <echristo@redhat.com>
651
652         * c-decl.c (diagnose_mismatched_decls): Improve error message.
653         Remove unused code.
654         * c-typeck.c (comptypes): Add location in standard we're checking.
655
656 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
657
658         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
659         version 3.3.4.
660
661 2004-06-12  Roger Sayle  <roger@eyesopen.com>
662
663         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
664         index by machine mode.
665         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
666         tables inside the loop over machine modes.
667         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
668         expand_divmod): Index shift*_cost by the appropriate machine mode.
669
670 2004-06-12  Eric Christopher  <echristo@redhat.com>
671
672         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
673         * config/s390/s390.md: Ditto.
674         * config/s390/s390.c: Ditto.
675         (s390_frame_info): Conditionalize frame and setup info on
676         TARGET_TPF_PROFILING.
677         (s390_arg_frame_offset): Ditto.
678
679 2004-06-12  Roger Sayle  <roger@eyesopen.com>
680
681         * fold-const.c (omit_two_operands): New function.
682         * tree.h (omit_two_operands): Prototype here.
683         * builtins.c (fold_builtin_unordered_cmp): New function to lower
684         C99 unordered comparison builtins to the appropriate tree nodes.
685         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
686         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
687         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
688         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
689         (simplify_builtin_memcmp, simplify_builtin_strncmp,
690         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
691         omit_two_operands function to build the required COMPOUND_EXPRs.
692
693 2004-06-12  Steven Bosscher <stevenb@suse.de>,
694             Andreas Jaeger  <aj@suse.de>
695
696         * gcse.c (record_set_info): Use predicates like REG_P.
697         (mems_conflict_for_gcse_p): Likewise.
698         (load_killed_in_block_p): Likewise.
699         (hash_expr_1): Likewise.
700         (insert_set_in_table): Likewise.
701         (gcse_constant_p): Likewise.
702         (hash_scan_set): Likewise.
703         (hash_scan_insn): Likewise.
704         (canon_list_insert): Likewise.
705         (record_last_mem_set_info): Likewise.
706         (record_last_set_info): Likewise.
707         (compute_hash_table_work): Likewise.
708         (mark_set): Likewise.
709         (mark_clobber): Likewise.
710         (mark_oprs_set): Likewise.
711         (compute_transp): Likewise.
712         (find_avail_set): Likewise.
713         (cprop_insn): Likewise.
714         (do_local_cprop): Likewise.
715         (cprop): Likewise.
716         (find_implicit_sets): Likewise.
717         (find_bypass_set): Likewise.
718         (bypass_conditional_jumps): Likewise.
719         (insert_insn_end_bb): Likewise.
720         (pre_insert_copy_insn): Likewise.
721         (compute_transpout): Likewise.
722         (next_ls_expr): Likewise.
723         (invalidate_any_buried_refs): Likewise.
724         (compute_ld_motion_mems): Likewise.
725         (reg_set_info): Likewise.
726         (reg_clear_last_set): Likewise.
727         (find_moveable_store): Likewise.
728         (compute_store_table): Likewise.
729         (find_loads): Likewise.
730         (store_killed_in_insn): Likewise.
731         (insert_insn_start_bb): Likewise.
732         (reg_set_between_after_reload_p): Likewise.
733         (reg_used_between_after_reload_p): Likewise.
734         (is_jump_table_basic_block): Likewise.
735         (gcse_after_reload): Likewise.
736         (hash_scan_set_after_reload): Likewise.
737         (compute_hash_table_after_reload): Likewise.
738
739 2004-06-12  Steven Bosscher  <stevenb@suse.de>
740
741         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
742         (INSN_P): Don't look at the rtx code class, just explicitly
743         check for one of the tree RTX_INSN codes.
744
745 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
746
747         * c-typeck.c (default_function_array_conversion): Use
748         build_pointer_type not TYPE_POINTER_TO.
749
750 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
751
752         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
753         * configure, config.in: Regenerate.
754         * system.h: Unconditionally define bool as unsigned char,
755         BOOL_BITFIELD as unsigned int.
756         * domwalk.h: Use BOOL_BITFIELD.
757
758 2004-06-12  Andreas Jaeger  <aj@suse.de>
759
760         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
761         * libgcc-darwin.ver: Likewise.
762
763 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
764
765         * reload.c (find_reloads): Force reload for pseudo registers on big
766         endian machines.
767
768 2004-06-11  Steven Bosscher <stevenb@suse.de>
769
770         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
771         Don't try to mark anything control dependent on the entry or
772         exit blocks.
773
774 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
775
776         Fix Bug 15899
777         Fix Bug 15460
778         * tree.h (SSA_NAME_VALUE): New macro.
779         (struct tree_ssa_name): Add value_handle member.
780         * tree-ssa-pre.c: Replaced.
781         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
782         (struct cst_ann_d): New.
783         (struct expr_ann_d): New.
784         (union tree_ann_d): Add cst_ann, expr_ann.
785         * tree-dfa.c (create_cst_ann): New function.
786         (create_expr_ann): Ditto.
787         * tree-flow-inline.h (cst_ann): New function.
788         (expr_ann): Ditto.
789         (get_cst_ann): Ditto.
790         (get_expr_ann): Ditto..
791
792 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
793
794         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
795         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
796         _U_Qfcmp library function.
797         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
798         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
799
800         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
801         unspec used for loading address from DLT.
802         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
803         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
804         Don't use short code sequence when loading the address of a nonlocal
805         label.
806         (nonlocal_goto): New expander.
807         (indirect_goto): New jump pattern for nonlocal gotos.
808         (short_jump): Remove extra whitespace.
809         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
810         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
811         pattern.
812
813 2004-06-11  Roger Sayle  <roger@eyesopen.com>
814
815         * expmed.c (synth_mult): Add an additional MODE argument for the
816         machine mode of the multiplication.  Update recursive calls.  Use
817         mode instead of word_mode for determining operation costs.
818         (choose_mult_variant): Update calls to synth_mult with "mode".
819
820 2004-06-11  Richard Henderson  <rth@redhat.com>
821
822         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
823         and makes_aliased_stores.
824
825 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
826
827         * doc/install.text (--enable-shared): Fix typo.
828
829 2004-06-11  Richard Henderson  <rth@redhat.com>
830
831         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
832         argument.  Use internal post for call to gimplify_expr.  Tidy
833         rounded type size computation.
834         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
835         get_initialized_tmp_var.
836
837 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
838
839         * doc/install.texi (--enable-shared): Update libobjc's shared library
840         status.  Remove reference to libf2c.
841
842 2004-06-11  Jason Merrill  <jason@redhat.com>
843
844         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
845         * config/i386/i386.c (ix86_va_arg): Remove.
846         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
847         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
848         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
849         * config/alpha/alpha.c (alpha_va_arg): Remove.
850         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
851         * config/sparc/sparc.c (sparc_va_arg): Remove.
852
853         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
854         assignment might throw.
855         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
856         expressions.
857
858 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
859
860         PR 15886:
861         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
862
863 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
864
865         * doc/install.texi (Prerequisites): Update documentation of
866         required versions of autoconf and automake.  Remove mention of
867         libf2c.
868
869 2004-06-11  Jason Merrill  <jason@redhat.com>
870
871         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
872         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
873
874 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
875
876         * typeclass.h: Add GPL plus exception license.  Add include
877         guard.
878
879 2004-06-10  Jason Merrill  <jason@redhat.com>
880
881         * gimplify.c (gimplify_modify_expr): Don't force a temporary
882         of an aggregate_value_p type.
883
884 2004-06-10  Jeff Law  <law@redhat.com>
885
886         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
887         code when we are in gimple form.
888
889 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
890
891         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
892         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
893         (highest_ssa_version): Remove.
894         * tree-outof-ssa.c (new_temp_expr_table): Replace
895         highest_ssa_version with num_ssa_names.
896         (dump_replaceable_exprs): Likewise.
897         (rewrite_vars_out_of_ssa): Likewise.
898         * tree-ssa-ccp.c (initialize): Likewise
899         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
900         * tree-ssa-dce.c (tree_dce_init): Likewise.
901         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
902         * tree-ssa-live.c (create_ssa_var_map): Likewise.
903         (dump_var_map): Likewise.
904         * tree-ssa.c (verify_ssa): Likewise.
905         (kill_redundant_phi_nodes): Likewise.
906         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
907         * tree-ssanames.c: Include tree-flow.h
908         (ssa_names): New varray.
909         (init_ssa_names): Initialize ssa_names.
910         Reserve the first slot of the ssa_names table.
911         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
912         Assign version numbers using num_ssa_names.
913
914 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
915
916         * doc/sourcebuild.texi (Front End): Add details of more
917         installation documentation required.
918
919 2004-06-10  Brian Booth  <bbooth@redhat.com>
920
921         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
922         of V_MAY_DEF and V_MUST_DEF.
923         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
924         num_vdefs to num_v_may_defs.
925         (compute_immediate_uses_for_stmt): Rename occurences of vdef
926         to v_may_def.
927         (redirect_immediate_uses): Ditto.
928         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
929         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
930         Also add code to sum up the number of v_must_defs.
931         (vdefs_disappeared_p): Replace with...
932         (v_may_defs_disappeared_p): This.
933         (v_must_defs_disappeared_p): New function.
934         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
935         Also add code to mark new variables found in V_MUST_DEFs for
936         renameing.
937         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
938         vdef_ops to v_may_def_ops.
939         (get_vdef_ops): Replace with...
940         (get_v_may_def_ops): This.
941         * tree-flow-inline.h (get_vdef_ops): Replace with...
942         (get_v_may_def_ops): This.
943         (get_v_must_def_ops): New function.
944         (get_vdef_result_ptr): Replace with...
945         (get_v_may_def_result_ptr): This.
946         (get_vdef_op_ptr): Ditto with...
947         (get_v_may_def_op_ptr); This.
948         (get_v_must_def_op_ptr): New function.
949         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
950         to v_may_def. Also add code to mark statements with
951         V_MUST_DEFs as definition sites.
952         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
953         add code to register new V_MUST_DEFs made by the statement.
954         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
955         (check_replaceable): Rename occurences of vdef to v_may_def. Also
956         add check for V_MUST_DEFs.
957         (find_replaceable_in_bb): Ditto.
958         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
959         to v_may_def. Also add code to dump V_MUST_DEFs.
960         * tree-sra.c (mark_all_vdefs): Replace with...
961         (mark_all_v_may_defs): This.
962         (mark_all_v_must_defs): New function.
963         (create_scalar_copies): Replace call to mark_all_vdefs with
964         calls to mark_all_v_may_defs and mark_all_v_must_defs.
965         (scalarize_structures): Rename occurences of vdef to v_may_def.
966         Also add a check for V_MUST_DEFs.
967         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
968         * tree-ssa-alias.c (global_var): Update comment.
969         (compute_may_aliases): Ditto.
970         (compute_points_to_and_addr_escape): Rename occurences of vdef
971         to v_may_def. Also add code to mark variables in V_MUST_DEF
972         operands as being written to.
973         (group_aliases): Update comment.
974         (maybe_create_global_var): Ditto.
975         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
976         Also add a check for V_MUST_DEFs on GIMPLE registers.
977         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
978         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
979         to v_may_def. Also add code to mark all V_MUST_DEF operands
980         VARYING.
981         (initialize): Ditto.
982         (set_rhs): Rename occurences of vdef to v_may_def. Also add
983         code to update SSA_NAMEs in V_MUST_DEFs.
984         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
985         to v_may_def.
986         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
987         occurences of vdef to v_may_def. Also add code to mark statements
988         with V_MUST_DEFs as necessary.
989         (propagate_necessity): Rename occurences of vdef to v_may_def.
990         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
991         occurences of vdef to v_may_def. Also add code to mark operands
992         in V_MUST_DEFs for renaming.
993         (eliminate_redundant_computations): Rename occurences of vdef
994         to v_may_def.
995         (record_equivalences_from_stmt): Rename occurences of vdef
996         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
997         (optimize_stmt): Remove unnesessary variable vdefs. Update
998         comment.
999         (register_definitions_for_stmt): Rename occurences of vdef
1000         to v_may_def. Also add code to register definitions made with
1001         V_MUST_DEFs.
1002         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1003         (fix_stmt_v_may_defs): This.
1004         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1005         (dse_optimize_stmt): Ditto.
1006         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1007         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1008         used in virtual operators.
1009         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1010         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1011         renaming.
1012         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1013         definitions.
1014         (build_vdefs): Renamed to...
1015         (build_v_may_defs): This.
1016         (build_v_must_defs): New variable.
1017         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1018         v_may_def_ops.
1019         (append_vdef): Replace with...
1020         (append_v_may_def): This.
1021         (append_v_must_def): New function.
1022         (NUM_FREE): Increment for V_MUST_DEF
1023         (optype_freelist): Increment its size for V_MUST_DEF
1024         (allocate_vdef_optype): Replace with...
1025         (allocate_v_may_def_optype): This.
1026         (allocate_v_must_def_optype): New function.
1027         (free_vdefs): Replace with...
1028         (free_v_may_defs): This.
1029         (free_v_must_defs): New function.
1030         (remove_vdefs): Replace with...
1031         (remove_v_may_defs): This.
1032         (remove_v_must_defs): New function.
1033         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1034         add code to initialize build_v_must_defs.
1035         (finalize_ssa_vdefs): Replace with...
1036         (finalize_ssa_v_may_defs): This.
1037         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1038         (finalize_ssa_v_must_defs): New function.
1039         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1040         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1041         (verify_start_operands): Rename occurences of vdef to v_may_def.
1042         Also add check for build_v_must_defs.
1043         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1044         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1045         killing definitions.
1046         (get_expr_operands): Update comment and use opf_kill_def for
1047         killing definitions.
1048         (add_stmt_operand): Replace code that appends VDEFs with code
1049         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1050         otherwise.
1051         (add_call_clobber_ops): Update comments.
1052         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1053         (v_may_def_optype_d): This.
1054         (v_must_def_optype_d): New structure.
1055         (VDEF_OPS): Replace with...
1056         (V_MAY_DEF_OPS): This.
1057         (STMT_VDEF_OPS): Same with...
1058         (STMT_V_MAY_DEF_OPS): This.
1059         (NUM_VDEFS): And...
1060         (NUM_V_MAY_DEFS): This.
1061         (VDEF_RESULT_PTR): As well as...
1062         (V_MAY_DEF_RESULT_PTR): This.
1063         (VDEF_RESULT): Same goes for...
1064         (V_MAY_DEF_RESULT): This.
1065         (VDEF_OP_PTR): And...
1066         (V_MAY_DEF_OP_PTR): This.
1067         (VDEF_OP): And...
1068         (V_MAY_DEF_OP): This.
1069         (V_MUST_DEF_OPS): New macro.
1070         (STMT_V_MUST_DEF_OPS): Ditto.
1071         (NUM_V_MUST_DEFS): Ditto.
1072         (V_MUST_DEF_OP_PTR): Ditto.
1073         (V_MUST_DEF_OP): Ditto.
1074         (remove_vdefs): Replace signature with...
1075         (remove_v_may_defs): This.
1076         (remove_v_must_defs): New function signature.
1077         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1078         with calls to remove_v_may_defs and remove_v_must_defs.
1079         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1080         Also add code that marks left occurences of operands in V_MUST_DEFs.
1081         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1082         to v_may_def. Also add check for V_MUST_DEFs.
1083         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1084
1085 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1086
1087         PR target/15653
1088         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1089         insn.
1090
1091 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1092
1093         PR web/15263
1094         * doc/install.texi: Remove superfluous linebreak.
1095
1096 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1097
1098         * builtins.c (expand_builtin): Fall back to library function call for
1099         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1100         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1101         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1102         IMAGPART_EXPR respectively.
1103
1104 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1105
1106         * sh.c (dump_table): New argument start.  Changed caller.
1107         (fixup_mova): New function.
1108         (find_barrier): Use it.
1109         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1110         If the label a mova refers to is above the mova itself, change
1111         the mova into a load.
1112         * sh.md (*casesi_worker): Rename to:
1113         (casesi_worker_1).
1114         (casesi_worker_2): New insn.
1115
1116 2004-06-10  Jason Merrill  <jason@redhat.com>
1117
1118         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1119         hook signature.
1120         * tree-gimple.h: Adjust.
1121         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1122         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1123         Use fold_convert.
1124         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1125         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1126         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1127         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1128         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1129         Gimplify valist rather than calling stabilize_va_list.
1130
1131 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1132
1133         * Makefile.in (df.o): Remove fibheap dependency.
1134         * df.h: Do not include sbitmap.h.
1135         (struct ref): New field "data".
1136         (DF_REF_DATA): New accessor macro.
1137         (struct df): Field "dom" removed.
1138         (df_analyze_subcfg): New function.
1139         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1140         (transfer_function): ... new type.
1141         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1142         (iterative_dataflow): ... new function.
1143         (enum set_representation, struct dataflow): New.
1144         * df.c: Do not include fibheap.h.
1145
1146         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1147         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1148         prune_to_subcfg, df_bb_modify): New functions.
1149         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1150         df_refs_update, df_reg_table_realloc, df_ref_create,
1151         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1152         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1153         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1154
1155         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1156         (df_rd_transfer_function, df_ru_transfer_function,
1157         df_lr_transfer_function): Type of bitmaps changed to void *.
1158         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1159         (hybrid_search): ... new function.
1160         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1161         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1162         a worklist.  Do not process basic blocks unnecessarily.
1163
1164 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1165
1166         * fold-const.c (fold_abs_const): Make extern.
1167         * tree.h (fold_abs_const): Prototype here.
1168         * builtins.c (fold_builtin_fabs): New function to transform
1169         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1170         (fold_builtin_abs): New function to transform abs, labs, llabs
1171         and imaxabs builtins into ABS_EXPR tree nodes.
1172         (expand_builtin): Fall back to a function call for abs, labs,
1173         llabs and imaxabs builtins that survive constant folding.
1174         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1175         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1176
1177 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1178
1179         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1180         leaf function without unwind info at RP 0.
1181
1182 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1183
1184         PR c++/14791
1185         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1186         (fileptr_type_node): Define.
1187         * tree.c (build_common_tree_nodes_2): Initialize
1188         fileptr_type_node to ptr_type_node.
1189         * c-common.c (c_common_nodes_and_builtins): For C++, make
1190         fileptr_type_node a distinct type copy.
1191         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1192         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1193         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1194         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1195         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1196         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1197         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1198         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1199         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1200         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1201         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1202         the above *FILEPTR* types instead of *PTR*.
1203
1204 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1205
1206         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1207         match.
1208
1209 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1210
1211         * fold-const.c (fold_not_const): New function.
1212         (fold) <ABS_EXPR>: Don't bother testing wins.
1213         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1214         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1215
1216 2004-06-09  Richard Henderson  <rth@redhat.com>
1217
1218         PR middle-end/15228
1219         * function.c (assign_parms): Always set_mem_align with the computed
1220         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1221
1222 2004-06-09  Richard Henderson  <rth@redhat.com>
1223
1224         PR opt/15108
1225         * tree-tailcall.c (find_tail_calls): Don't check early for
1226         tail_recursion failure.
1227
1228 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1229
1230         Move SSA_NAME annotations into tree_ssa_name.
1231
1232         * tree-dfa.c (create_ssa_name_ann): Remove.
1233         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1234         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1235         (struct ssa_name_ann_d): Remove.
1236         (union tree_ann_d): Update.
1237         (ssa_name_ann_t): Remove.
1238         * tree-ssa-alias.c: (get_ptr_info): New local function.
1239         Replace references to ssa_name_ann_t with struct ptr_info_def.
1240         * tree-ssa-operands.c (get_expr_operands): Likewise.
1241         * tree.h (SSA_NAME_PTR_INFO): Define.
1242         (struct ptr_info_def): Declare.
1243         (struct tree_ssa_name): Add field 'ptr_info'.
1244
1245 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1246
1247         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1248         misplaced ')'.
1249
1250 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1251
1252         * config/i386/k6.md: Rewrite using the DFA model.
1253         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1254         cost of load-operation insns for the K6.
1255         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1256         (ia32_multipass_dfa_lookahead): Likewise.
1257
1258 2004-06-09  Richard Henderson  <rth@redhat.com>
1259
1260         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1261         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1262
1263 2004-06-09  Richard Henderson  <rth@redhat.com>
1264
1265         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1266
1267 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1268
1269         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1270         (CPP_ID_DATA_H): New.
1271         (gtype-desc.o): Update dependencies.
1272         (GTFILES): Use CPP_ID_DATA_H.
1273
1274 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1275
1276         Revert:
1277         PR c++/15815
1278         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1279         * doc/extend.texi: Deprecate #pragma interface and #pragma
1280         implementation.
1281
1282 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1283
1284         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1285
1286 2004-06-09  Richard Henderson  <rth@redhat.com>
1287
1288         * basic-block.h (struct edge_def): Add goto_locus.
1289         * tree-cfg.c (make_goto_expr_edges): Set it.
1290         (disband_implicit_edges): Use it.
1291         * tree-pretty-print.c (dump_implicit_edges): Print it.
1292
1293 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1294
1295         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1296
1297 2004-06-08  Jason Merrill  <jason@redhat.com>
1298
1299         Gimplify VA_ARG_EXPR into simpler forms.
1300         * target.h: Add gimplify_va_arg_expr hook.
1301         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1302         * fold-const.c (build_fold_addr_expr)
1303         (build_fold_addr_expr_with_type): Move from gimplify.c.
1304         * tree.h: Declare them.
1305         * gimplify.c (gimplify_and_add): New fn.
1306         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1307         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1308         (gimplify_expr): Use build_fold_*.
1309         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1310         don't know how to gimplify it.
1311         * builtins.c (std_gimplify_va_arg_expr): New fn.
1312         (dummy_object): New static fn.
1313         (gimplify_va_arg_expr): New fn.
1314         (stabilize_va_list): Use build_fold_*.
1315         * tree-gimple.h: Declare new fns.
1316         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1317         (ix86_gimplify_va_arg): New fn.
1318         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1319         (ia64_gimplify_va_arg): New fn.
1320         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1321         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1322         * alias.c (get_varargs_alias_set): Just return 0 for now.
1323
1324         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1325
1326 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1327
1328         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1329         of convert.
1330         * tree-inline.c (setup_one_parameter): Likewise.
1331         * tree-sra.c (csc_build_component_ref): Likewise.
1332         * tree-ssa-ccp.c (ccp_fold): Likewise.
1333         * tree-ssa-copy.c (cprop_operand): Likewise.
1334         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1335         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1336
1337 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1338
1339         PR rtl-optimization/15521:
1340         * sched-int.h (in_post_call_group_p): Change type to enum.
1341         * sched-deps.c (sched_analyze_insn):
1342         (sched_analyze): When in_post_call_group_p is post_call_initial,
1343         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1344         and also reset in_post_call_group_p to post_call.
1345         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1346         initialize in_post_call_group_p as post_call_initial.
1347         (init_deps): initialize in_post_call_group_p to not_post_call.
1348
1349 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1350
1351         PR ada/6637
1352         * doc/install.texi: List ada, libada as options to --enable-shared
1353
1354 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1355
1356         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1357         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1358         config.in entries.
1359         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1360         if hard links are not available.
1361         * configure: Regenerate.
1362         * config.in: Regenerate.
1363
1364 2004-06-08  Per Bothner  <per@bothner.com>
1365
1366         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1367
1368 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1369
1370         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1371         Correct formatting.
1372
1373 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1374
1375         PR target/15790
1376         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1377
1378 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1379
1380         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1381         POINTER_TYPE and INTEGER_TYPE.
1382
1383 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1384
1385         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1386         defined.
1387
1388 2004-06-08  Jeff Law  <law@redhat.com>
1389
1390         * doc/contrib.texi: Add entries for Stefan Olsson and
1391         Ola Ronnerup.
1392
1393 2004-06-08  DJ Delorie  <dj@redhat.com>
1394
1395         * toplev.c (floor_log2_wide): Replace loop with faster bit
1396         operations.
1397         (exact_log2_wide): Define in terms of the above.
1398         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1399         available.
1400
1401 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1402
1403         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1404         Make sure that we are in INDIRECT mode when getting the
1405         stub name.
1406
1407 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1408
1409         * h8300.md (extendqisi2_h8300): Add constraints.
1410         (ldm_h8300s_4_normal): Fix typo.
1411
1412 2004-06-08  Richard Henderson  <rth@redhat.com>
1413
1414         * gimple-low.c (struct lower_data): Replace the_return_label and
1415         one_return_stmt with return_statements.
1416         (lower_function_body): Process the entire list of return_statements.
1417         (lower_return_expr): Check source value before unifying return_exprs.
1418         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1419         for !aggregate_value_p.
1420         * tree-gimple.c: Update RETURN_EXPR grammer.
1421
1422 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1423
1424         PR target/15598
1425         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1426
1427 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1428
1429         PR rtl-optimization/15717
1430         * config/i386/i386.c (legitimate_constant_p): Do not allow
1431         x - symbol_ref.
1432
1433 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1434
1435         * gimplify.c (copy_if_shared_r): Revert:
1436         2004-05-21  Richard Henderson  <rth@redhat.com>
1437         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1438
1439 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1440
1441         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1442         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1443         (init_expmed): Initialize these cost arrays as appropriate.
1444         (store_bit_field, extract_bit_field): Correct whitespace.
1445         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1446         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1447         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1448         word_mode or compute_mode as appropriate.
1449
1450 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1451
1452         PR target/15783
1453         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1454         parameter.  Enumerate the registers inside the PARALLEL.
1455         (function_arg): Adjust call to function_arg_union_value.
1456         (function_value): Likewise.
1457
1458         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1459
1460 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1461
1462         * real.c (real_copysign): New function to implement libm's copysign.
1463         * real.h (real_copysign): Prototype here.
1464         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1465         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1466         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1467         fold_builtin_isdigit): Add function prototypes.
1468         (fold_builtin_copysign): New function to fold copysign, copysignf
1469         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1470         constant arguments at compile-time using real_copysign.  Fold
1471         copysign(X,Y) as fabs(X) if Y is always non-negative.
1472         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1473         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1474
1475 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1476
1477         * tree.c (iterative_hash_expr): Use real_hash.
1478
1479 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1480
1481         PR c/14765
1482         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1483         NULL_TREE.
1484
1485 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1486
1487         PR c++/15815
1488         * doc/extend.texi: Deprecate #pragma interface and #pragma
1489         implementation.
1490
1491 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1492
1493         PR middle-end/15666
1494         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1495         builtin decl as well.
1496
1497 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1498
1499         PR c/14649
1500         * c-typeck.c (require_constant_value, require_constant_elements):
1501         Move declarations to the top of the file.
1502         (build_function_call): If we require a constant value, fold with
1503         fold_initializer.  If the result is a constant, and the function
1504         wasn't called using __builtin_foo, issue a pedantic warning.
1505         (build_unary_op): If we require a constant value, fold tree with
1506         fold_initializer.
1507         (build_binary_op): Use require_constant_value to determine whether
1508         to call fold or fold_initializer.
1509
1510 2004-06-07  Richard Henderson  <rth@redhat.com>
1511
1512         * gimple-low.c (struct lower_data): Add the_return_label and
1513         one_return_stmt.
1514         (lower_function_body): Initialize and use them.
1515         (lower_return_expr): New.
1516         (lower_stmt): Call it.
1517         * gimplify.c (gimplify_return_expr): Force the argument to be either
1518         null or a result_decl.
1519         * tree-gimple.c: Update gimple grammer to match.
1520         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1521         coalescing of result_decls.
1522
1523 2004-06-07  Richard Henderson  <rth@redhat.com>
1524
1525         PR rtl-opt/15193
1526         * expmed.c (extract_bit_field): Fix vector_extract return.
1527
1528         * config/i386/i386.md (negv4sf2): New pattern.
1529
1530 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1531
1532         PR c++/15337
1533         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1534         message.
1535
1536 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1537
1538         * config.in: Regenerate.
1539
1540 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1541
1542         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1543         SWITCH_LABELS are always sorted.
1544
1545 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1546
1547         * hooks.c (hook_int_void_1): New generic hook.
1548         * hooks.h (hook_int_void_1): Add prototype.
1549         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1550         Define to hook_int_void_1.
1551         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1552         with dummies for the new one.
1553
1554 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1555
1556         * tree.h (lvalue_or_else): Delete function prototype.
1557         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1558
1559 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1560
1561         PR target/14542
1562         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1563         a live change of a register after peephole replacement.
1564
1565 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1566
1567         PR c/13519
1568         * c-typeck.c (composite_type, common_pointer_type): New functions.
1569         (common_type): Split parts into composite_type and
1570         common_pointer_type.  Ensure that arithmetic operations return
1571         unqualified types without attributes.  Don't make composite type
1572         of signed enum and compatible integer be unsigned.
1573         (build_conditional_expr, build_binary_op): Use
1574         common_pointer_type.
1575         * c-decl.c (merge_decls): Use composite_type.
1576         * c-tree.h (composite_type): Declare.
1577
1578 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1579
1580         PR target/14457
1581         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1582         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1583         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1584         (inhibit_libc): Must define.
1585         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1586         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1587         ("xorhi3"): Likewise.
1588
1589 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1590
1591         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1592         always_inline pass.
1593
1594 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1595
1596         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1597         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1598
1599 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1600
1601         * regclass.c (init_reg_sets): Check for missing registers in target
1602         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1603
1604 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1605
1606         * Makefile.in (MKDEPS_H): New shorthand.
1607         (c-opts.o): Update dependencies.
1608         * c-opts.c: Include mkdeps.h.
1609         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1610         not cpp_add_dependency_target.
1611
1612 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1613
1614         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1615         * config/v850/v850.md: Convert to DFA scheduler description.
1616
1617 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1618
1619         PR fortran/15478
1620         * doc/install.texi: Document GMP as prerequisite. Document
1621         --with-gmp and --with-gmp-dir configure options.
1622         * fortran/gfortran.texi: Remove section "Compiling and testing",
1623         remove TOC reference to it.
1624
1625 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1626
1627         * combine.c(simplify_shift_const): Check shift amount is a
1628         CONST_INT.
1629
1630 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1631
1632         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1633         opening asm_out_file.
1634         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1635         reading asm_out_file. Replace fflush after reading asm_out_file
1636         with fseek.
1637         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1638         default and add to HOST_HOOKS_INITIALIZER.
1639         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1640         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1641         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1642         to set mmi.offset padding.
1643          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1644         $(srcdir)/config/i386/winnt.c.
1645         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1646         (i[34567]86-*-uwin*): Likewise.
1647         *i[34567]86-*-interix3*): Likewise.
1648         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1649         * config/i386/host-mingw32.c: New file.
1650         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1651         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1652         (extern_head): Likewise.
1653         (struct export_list) Likewise.
1654         (export_head): Likewise.
1655         (i386_pe_record_external_function): Use ggc_alloc.
1656         (i386_pe_record_exported_symbol): Likewise.
1657         Include "gt-winnt.h" at end.
1658         * doc/hostconfig.texi: Document
1659         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1660
1661 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1662
1663         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1664         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1665         trailing whitespace before EOLs and before TABs.
1666         (MAX_CODE_ALIGN): Remove unused macro.
1667         (CALL_USED_REGISTERS): Reformat and add comments.
1668
1669 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1670
1671         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1672         to enumerate -lmudflap* and dependencies when linking.
1673
1674 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1675
1676         PR target/15822
1677         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1678
1679 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1680
1681         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1682         * genconditions.c (write_header): Back out removal of reload.h.
1683
1684 2004-06-04  Jan Hubicka  <jh@suse.cz>
1685
1686         Re-apply hopefully fixed patch:
1687         * i386.md (UNSPECV_EH_RETURN): Kill.
1688         (eh_return): Use jump_insn.
1689         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1690
1691 2004-06-04  Jeff Law  <law@redhat.com>
1692
1693         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1694
1695 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1696
1697         * except.c (for_each_eh_region): New function.
1698         * except.h (for_each_eh_region): Add a prototype for it.
1699         * tree-cfg.c (update_eh_labels): New function, callback for
1700         for_each_eh_region.
1701         (label_for_bb): Make global static, unfortunately.
1702         (cleanup_dead_labels): Also update label references for
1703         exception regions.
1704
1705 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1706
1707         * config/mips/mips.c (struct irix_section_align_entry): Fix
1708         GTY marker.
1709
1710 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1711
1712         * toplev.c (check_global_declarations): Don't ask for
1713         DECL_ASSEMBLER_NAME unless the function really is declared
1714         static and not defined.
1715
1716 2004-06-03  Matt Austern  <austern@apple.com>
1717
1718         PR c++/15428
1719         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1720         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1721         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1722         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1723         documentation to reflect the new macro name and to clarify its
1724         meaning.
1725
1726 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1727
1728         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1729
1730 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1731
1732         * config/darwin.c (machopic_indirect_data_reference): Copy
1733         the SYMBOL_REF_DECL from the original RTX for the new
1734         non-lazy pointer RTX.
1735
1736 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1737
1738         * tree.h: Remove include of version.h
1739         * c-cppbuiltin.c: Include version.h
1740         * diagnostic.c: Include version.h
1741         * dwarf2out.c: Include version.h
1742         * toplev.c: Include version.h
1743         * vmsdbgout.c: Include version.h
1744         * Makefile.in: Remove dependency on version.h from TREE_H, and
1745         add dependencies to required .o targets
1746
1747 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1748
1749         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1750         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1751         (TARGET_H): Add insn-modes.h.
1752         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1753         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1754         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1755         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1756         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1757         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1758         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1759         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1760         CFGLAYOUT_H.
1761         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1762         Replace ra.h with RA_H.
1763         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1764         insn-recog.o): Replace resource.h with RESOURCE_H.
1765         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1766         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1767         with SCHED_INT_H.
1768         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1769         ra-rewrite.o): Replace df.h with DF_H.
1770         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1771         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1772         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1773         (insn-conditions.o): Remove unused reload.h.
1774         * cfglayout.h: Add include guard.  Include basic-block.h.
1775         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1776         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1777         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1778         basic-block.h.
1779         * genconditions.c:  Remove reload.h.
1780         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1781         hard-reg-set.h, insn-modes.h.
1782         * resource.h: Add include guard.  Include hard-reg-set.h.
1783         * sched-int.h:  Add include guard.  Include insn-attr.h,
1784         basic-block.h, rtl.h.
1785         * target.h: Add include guard.  Include insn-modes.h.
1786         * tree-ssa-live.h: Include partition.h.
1787
1788 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1789                 Kenneth Zadeck <zadeck@naturalbridge.com>
1790
1791         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1792         (add_var_to_ssa_edges_worklist): Add value argument.
1793         Update callers.
1794         Use new worklist.
1795         (process_ssa_edge_worklist): New function.
1796         (tree_ssa_ccp): Move worklist processing core to
1797         process_ssa_edge_worklist, and just call that for the two worklists.
1798
1799 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1800
1801         * basic-block.c (tail_recursion_label_list): Don't declare.
1802         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1803         accordingly.
1804         * cfgbuild.c (find_label_refs): Remove.
1805         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1806         * cfgcleanup.c (tail_recursion_label_p): Remove.
1807         (merge_blocks_move): Do not check for tail recursion.
1808         (try_optimize_cfg): Likewise.
1809         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1810         * cfgrtl.c (tail_recursion_label_list): Remove.
1811         * except.c (remove_unreachable_regions): Don't handle
1812         CALL_PLACEHOLDER insns.
1813         (convert_from_eh_region_ranges_1, can_throw_internal,
1814         can_throw_external): Likewise.
1815         * function.c (free_after_compilation): Don't clear
1816         x_tail_recursion_label.
1817         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1818         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1819         (reorder_blocks_1): Likewise.
1820         * function.h (struct function): Remove x_tail_recursion_label
1821         member.  Don't define tail_recursion_label.
1822         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1823         * print-rtl.c (print_rtx): Likewise.
1824         * rtl.def (CALL_PLACEHOLDER): Remove.
1825         * rtl.h (sibcall_use_t): Remove enum.
1826         (optimize_sibling_and_tail_recursive_calls,
1827         replace_call_placeholder): Remove function prototypes.
1828         * stmt.c (tail_recursion_args): Remove.
1829         (optimize_tail_recursion): Remove.
1830         (expand_return): Don't check for possible tail recursion.
1831         * tree.h (optimize_tail_recursion): Remove prototype.
1832
1833 2004-06-02  Jan Hubicka  <jh@suse.cz>
1834
1835         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1836         return_stmt.
1837
1838 2004-06-02  Jason Merrill  <jason@redhat.com>
1839
1840         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1841         Do include c-parse.in.
1842
1843 2004-06-02  Eric Christopher  <echristo@redhat.com>
1844
1845         * c-typeck.c (common_type): Don't lose type qualifiers
1846         when creating new variants.
1847
1848 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1849
1850         PR tree-optimization/14042
1851         PR tree-optimization/14729
1852         PR tree-optimization/14736
1853         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1854         Check the type which the pointer points to
1855         instead of the pointer types.
1856
1857 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1858
1859         PR tree-optimization/15738.
1860         * builtins.c (fold_builtin_strchr): Transform
1861         strrchr (s, '\0') to strchr (s, '\0').
1862
1863 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1864
1865         * i386.c (ix86_adjust_cost): Don't increase the cost for
1866         load+operation for PROCESSOR_PENTIUMPRO, it is already
1867         modelled in the DFA description
1868
1869 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1870
1871         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1872         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1873         (ALIAS_H, EMIT_RTL_H): New.
1874         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1875         (cfgcleanup.o): Add EMIT_RTL_H.
1876         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1877         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1878         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1879         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1880         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1881         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1882         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1883         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1884         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1885         set_mem_size): Move to emit-rtl.h.
1886         * emit-rtl.h: New.
1887         * alias.h: New.
1888
1889 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1890
1891         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1892         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1893         Adjust recursive calls to self.
1894         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1895
1896 2004-06-01  Richard Henderson  <rth@redhat.com>
1897             Andrew Pinski  <pinskia@physics.uc.edu>
1898
1899         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1900         (primary): Handle offsetof.  Add error productions for faux functions.
1901         Move component_ref objc checking to build_component_ref.
1902         (reswords): Add offsetof.
1903         (rid_to_yy): Add offsetof.
1904         * c-tree.h (build_offsetof): Declare.
1905         * c-common.h (objc_is_public): Declare.
1906         * c-typeck.c (build_component_ref): Check objc_is_public.
1907         (build_offsetof): New.
1908         * stub-objc.c (objc_is_public): New.
1909         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1910         from is_public.
1911         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1912         * doc/extend.texi (Offsetof): Move from C++ section to C section
1913         and rewrite for __builtin_offsetof.
1914
1915 2004-06-01  Peter Barada  <peter@the-baradas.com>
1916             Peter Jakubek  <peter@laseranimation.com>
1917
1918         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1919         a scratch to perform an add to memory.
1920
1921 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1922
1923         PR target/14018
1924         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1925         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1926         m68k_align_funcs): Remove.
1927         (override_options): Remove code to handle -malign-* options.
1928         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1929         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1930         (m68k_align_loops_string, m68k_align_jumps_string,
1931         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1932         m68k_align_funcs): Remove definitions.
1933
1934 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1935
1936         PR target/15626
1937         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1938         by the Sun linker in conjunction with the Sun assembler.
1939         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1940
1941 2004-06-01  Jeff Law  <law@redhat.com>
1942
1943         * stmt.c (expand_decl): Be more selective about calling
1944         mark_reg_pointer.
1945
1946 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1947
1948         PR objc/7993
1949         * objc-act.c (is_private): Do not emit the 'instance variable %s
1950         is declared private' error.
1951         (is_public): Emit the error after calling is_private.
1952         (lookup_objc_ivar): If the instance variable is private, return 0
1953         - the instance variable is invisible here.
1954
1955 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1956
1957         * doc/invoke.texi (-static-libgcc): Explicitly mention
1958         non-GNU linkers.
1959
1960 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1961
1962         PR target/12968
1963         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1964
1965 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1966
1967         PR c/15749
1968         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1969         misuses of structures with flexible array members if
1970         in_system_header.
1971
1972 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1973
1974         PR target/15693
1975         * config/sparc/sparc.c (compare_operand): New predicate.
1976         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1977         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1978         operand is a ZERO_EXTRACT and the second operand is not zero,
1979         force the former to a register.
1980         (cmpdi expander): Likewise.
1981
1982 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1983
1984         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1985         looks at.
1986         * alias.c (alias_invariant_size): Make alias_invariant_size
1987         static, fix GTY marker.
1988
1989 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1990
1991         PR tree-optimization/15743.
1992         * builtins.c (fold_builtin_1): Fold index() and rindex().
1993
1994 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1995
1996         PR middle-end/15069
1997         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1998         into "X < 0" (where C is the signbit) if X's type is a full mode.
1999
2000 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2001
2002         * pa.md: Disable the peephole2 patterns that generate indexed
2003         floating-point stores when indexing is disabled.
2004
2005 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2006
2007         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2008         (pp_c_right_bracket): Likewise.
2009         (pp_c_star): Likewise.
2010         (pp_c_ampersand): Define.
2011         * c-pretty-print.h (pp_c_left_bracket): Declare.
2012         (pp_c_right_bracket): Likewise.
2013         (pp_c_star): Likewise.
2014         (pp_c_ampersand): Likewise.
2015
2016 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2017
2018         * config/sol2.h (__enable_execute_stack): ANSIfy function
2019         definition.
2020
2021 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2022
2023         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2024         HAVE_DOS_BASED_FILESYSTEM.
2025
2026 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2027
2028         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2029         Only look at case labels if the immediate dominator is also
2030         the only predecessor.  Don't look for more case labels if the
2031         first seen is a case range.
2032
2033 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2034
2035         * builtins.c: Add a prototype for fold_builtin_strchr().
2036
2037 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2038
2039         Revert this patch:
2040         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2041
2042         * combine.c (gen_binary): Remove.
2043         (known_cond, simplify_shift_const
2044         find_split_point, combine_simplify_rtx,
2045         simplify_if_then_else, simplify_set,
2046         simplify_logical, expand_field_assignment,
2047         extract_left_shift, force_to_mode,
2048         if_then_else_cond, apply_distributive_law,
2049         simplify_and_const_int, simplify_shift_const,
2050         gen_lowpart_for_combine, simplify_comparison,
2051         reversed_comparison): Replace with
2052         simplify_gen_binary, simplify_gen_relational or
2053         distribute_and_simplify_rtx.
2054         (distribute_and_simplify_rtx): New function.
2055
2056 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2057
2058         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2059         when generating PIC code.
2060
2061 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2062
2063         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2064         (c_expand_body): here.
2065         (c_expand_decl): Move to ...
2066         * c-common.c (c_expand_decl): Here and remove check for nested
2067         functions.
2068         * c-common.h (c_expand_decl): Add prototype.
2069         * c-tree.h (c_expand_decl): Remove.
2070
2071 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2072
2073         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2074         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2075         fold_mathfn_compare, fold_inf_compare, fold,
2076         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2077         Use constant_boolean_node where appropriate.  Don't bother using
2078         fold_convert on the second argument to omit_one_operand.
2079
2080 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2081
2082         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2083         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2084         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2085         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2086         Add missing (but documented) tree nodes to the index.
2087
2088 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2089
2090         PR tree-optimization/14819
2091         * builtins.c (fold_builtin_strchr): New.
2092         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2093         with fold_builtin_strchr().
2094
2095 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2096
2097         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2098         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2099         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2100         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2101         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2102         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2103         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2104         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2105         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2106         formatting.
2107
2108 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2109
2110         * gimplify.c (sort_case_labels): New.  Split out from...
2111         (gimplify_switch_expr): ...here.  Use it.
2112         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2113         the SWITCH_EXPR created here before leaving the function.
2114         * tree.c (sort_case_labels): Add prototype.
2115
2116 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2117
2118         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2119         of BOOLEAN_TYPE.
2120
2121 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2122
2123         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2124         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2125         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2126         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2127         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2128         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2129         comment typos.  Follow spelling conventions.
2130
2131 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2132
2133         * gengtype-yacc.y: Add NESTED_PTR token.
2134         (option): Record `nested_ptr' option.
2135         * gengtype-lex.l: Handle `nested_ptr' keyword.
2136         * gengtype.c (walk_type): Process `nested_ptr' option.
2137         * gengtype.h (struct nested_ptr_data): New.
2138         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2139         * stringpool.c (struct string_pool_data): Make 'entries' point to
2140         ht_identifier instead of tree.
2141         (gt_pch_save_stringpool): Don't adjust pointers.
2142         (gt_pch_restore_stringpool): Call ht_load.
2143
2144 2004-05-29  Jason Merrill  <jason@redhat.com>
2145
2146         * gimplify.c (gimplify_expr): Don't build a statement list
2147         if no gimplification was necessary.
2148
2149 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2150
2151         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2152         and %> as well as %'.
2153         * c-format.c: Use %< and %>.
2154         (gcc_diag_char_table, gcc_cdiag_char_table,
2155         gcc_cxxdiag_char_table): Update.
2156
2157 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2158
2159         * c-typeck.c (common_type): Correct comment.
2160
2161 2004-05-29  Peter Barada  <peter@the-baradas.com>
2162
2163         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2164         * config/m68k/m68k.c (const_method): Likewise.
2165         * config/m68k/m68k.c (const_int_cost): Likewise.
2166         * config/m68k/m68k.c (const_int_cost): Likewise.
2167         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2168
2169 2004-05-29  Peter Barada  <peter@the-baradas.com>
2170
2171         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2172         addressing.
2173         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2174         movsi,movhi,movqi insn patterns.
2175
2176 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2177
2178         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2179
2180         PR target/15720
2181         * config/darwin.c (machopic_indirect_call_target): Copy
2182         the SYMBOL_REF_DECL from the original RTX for the new
2183         stub RTX.
2184
2185 2004-05-28  DJ Delorie  <dj@redhat.com>
2186
2187         * stor-layout.c (place_field): Revert erroneous commit.
2188
2189 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2190
2191         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2192         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2193         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2194         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2195         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2196         vec_ste): Remove type checks for integral parameters and literals
2197         from '..._args_eq' macros.
2198
2199 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2200
2201         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2202
2203 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2204
2205         * testsuite/g++.dg/charset/function.cc: New.
2206
2207         * testsuite/gcc.dg/charset/function.c: New.
2208
2209         * c-decl.c (c_make_fname_decl): Free return value from
2210         fname_as_string.
2211
2212         * cp/decl.c (cp_make_fname_decl): Free return value from
2213         fname_as_string.
2214
2215         * c-common.c (fname_as_string): Translate if necessary.
2216
2217 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2218
2219         * stringpool.c: Add comments to PCH saving/restoring routines.
2220
2221 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2222
2223         * c-common.c (c_estimate_num_insns_1): Kill.
2224         (c_estimate_num_insns): Kill.
2225         * c-common.h (c_estimate_num_insns): Kill.
2226
2227         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2228         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2229         Remove comment about not checking for
2230         _POSIX_PRIORITY_SCHEDULING.
2231         * gthr-posix.c: Likewise.
2232
2233 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2234             Roger Sayle  <roger@eyesopen.com>
2235
2236         PR rtl-optimization/15649
2237         Add LTGT_EXPR and improve pretty-printing of unordered
2238         comparisons.
2239         * c-common.c (c_common_truthvalue_conversion):
2240         Handle LTGT_EXPR.
2241         * c-typeck.c (build_binary_op): Likewise.
2242         * dojump.c (do_jump): Likewise.
2243         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2244         * predict.c (tree_predict_by_opcode): Likewise.
2245         * real.c (real_compare): Likewise.
2246         * tree-cfg.c (verify_expr): Likewise.
2247         * tree-inline.c (estimate_num_insns_1): Likewise.
2248         * tree-pretty-print.c (dump_generic_node): Likewise.
2249         Handle ORDERED_EXPR, UNORDERED_EXPR.
2250         (op_symbol): Print unordered comparisons differently
2251         than ordered ones.
2252         * tree.def (LTGT_EXPR): New '<' tree code.
2253         * doc/c-tree.texi (Expressions): Document floating-point
2254         comparison nodes.
2255
2256         Fold comparisons between floating point values.
2257         * fold-const.c (enum comparison_code): New, from
2258         #define'd constants.  Define compcodes for unordered
2259         comparisons and for invalid transformations.
2260         (invert_tree_comparison): Add "honor_nans" parameter.
2261         (fold_truthop): Revamp to work on floating-point types too.
2262         (comparison_to_compcode): Support unordered comparisons.
2263         Use new enum comparison_code.
2264         (compcode_to_comparison): Likewise.
2265         (combine_compcodes): New function.
2266         (invert_truthvalue): Let invert_tree_comparison decide
2267         whether it is valid to fold the comparison.  Fold ORDERED
2268         and UNORDERED even if flag_unsafe_math_optimizations is off,
2269         and the remaining even if flag_unsafe_math_optimizations
2270         is off but we are under -fno-trapping-math.
2271         (fold_relational_const): Integer modes do not honor NaNs.
2272
2273 2004-05-28  Paul Brook  <paul@codesourcery.com>
2274
2275         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2276
2277 2004-05-28  Paul Brook  <paul@codesourcery.com>
2278
2279         * config/arm/arm.c (thumb_force_lr_save): New function.
2280         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2281         thumb_output_function_prologue): Use it.
2282         (thumb_expand_prologue): Set lr_save_eliminated.
2283
2284 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2285
2286         * config/mips/mips.md (extendsidi2): Tie the source and destination
2287         of the register alternative.  Split it into nothing.
2288
2289 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2290
2291         * rtl.h (skip_consecutive_labels): Declare.
2292         * emit-rtl.c (skip_consecutive_labels): New function.
2293         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2294         * jump.c (follow_jumps): Say what null return values mean.
2295
2296 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2297
2298         PR target/13250
2299         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2300
2301 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2302
2303         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2304         libgcc-std.ver.
2305         * config/sh/libgcc-std.ver: New file.
2306
2307 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2308
2309         * except.c: Revert change of 2004-05-26.
2310         * config/i386/i386.md: Revert change of 2004-05-27.
2311
2312 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2313
2314         * configure.ac: Remove --enable-tree-browser option.
2315         Define TREEBROWSER when ac_tree_checking is defined.
2316         * configure: Rebuilt.
2317
2318 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2319
2320         * expr.c (store_constructor): Restore sanity check on
2321         the size of the type before clearing.
2322
2323 2004-05-27  Jan Hubicka  <jh@suse.cz>
2324
2325         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2326
2327 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2328
2329         * combine.c (gen_binary): Remove.
2330         (known_cond, simplify_shift_const
2331         find_split_point, combine_simplify_rtx,
2332         simplify_if_then_else, simplify_set,
2333         simplify_logical, expand_field_assignment,
2334         extract_left_shift, force_to_mode,
2335         if_then_else_cond, apply_distributive_law,
2336         simplify_and_const_int, simplify_shift_const,
2337         gen_lowpart_for_combine, simplify_comparison,
2338         reversed_comparison): Replace with
2339         simplify_gen_binary, simplify_gen_relational or
2340         distribute_and_simplify_rtx.
2341         (distribute_and_simplify_rtx): New function.
2342         * simplify-rtx.c (simplify_binary_operation):
2343         Use nonzero_bits to simplify ANDs where we are
2344         turning off bits already known to be off in OP0.
2345
2346 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2347
2348         PR target/14478
2349         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2350
2351 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2352
2353         PR middle-end/14084
2354         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2355         to size of decl.
2356
2357 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2358
2359         PR/14924
2360         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2361
2362 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2363
2364         * tree.h: Fix comment typo.
2365
2366 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2367
2368         * gimplify.c (compare_case_labels): New function.
2369         (gimplify_switch_expr): Sort case labels, and make sure the
2370         last label in the label vector is the default case.
2371         * tree-cfg.c (group_case_labels): New function.
2372         (build_tree_cfg): Cleanup redundant labels and group case labels
2373         before creating edges.
2374         (cleanup_dead_labels): Handle GOTO_EXPRs.
2375         (find_case_label_for_value): Use a binary search to find the
2376         case label for the given value.
2377         * tree-gimple.c: Mention that labels are sorted, and that the
2378         last label must be the default.
2379
2380 2004-05-27  Jan Hubicka  <jh@suse.cz>
2381
2382         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2383
2384 2004-05-27  Jan Hubicka  <jh@suse.cz>
2385
2386         * i386.md (UNSPECV_EH_RETURN): Kill.
2387         (eh_return): Use jump_insn.
2388         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2389
2390 2004-05-26  Jan Hubicka  <jh@suse.cz>
2391
2392         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2393         not loop optimizing.
2394
2395 2004-05-26  Jan Hubicka  <jh@suse.cz>
2396
2397         * except.c (can_throw_internal):  Notice RESX instructions.
2398
2399 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2400
2401         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2402         of the two sizes to assemble_integer.
2403
2404 2004-05-25  Paul Brook  <paul@codesourcery.com>
2405
2406         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2407         pointless #ifdef.
2408
2409 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2410
2411         * Makefile.in (top_builddir): Define to .
2412
2413 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2414
2415         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2416         top-level detects, except when in-tree ld is being cross-built.
2417         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2418         then AS only if target is host.
2419         * configure: Rebuilt.
2420
2421 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2422
2423         * global.c (global_alloc): Call make_accurate_live_analysis.
2424         (record_one_conflict): Remove dead code.
2425         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2426         (bb_info): New structure.
2427         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2428         (allocate_bb_info, free_bb_info, mark_reg_change,
2429         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2430         modify_bb_reg_pav, calculate_reg_pav,
2431         make_accurate_live_analysis): New functions.
2432
2433 2004-05-25  Devang Patel  <dpatel@apple.com>
2434
2435         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2436         xrealloc.
2437         (end_alias_analysis): Use ggc_free instead fo free.
2438
2439 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2440
2441         PR target/15546
2442         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2443         as needed to be outputted.
2444
2445 2004-05-25  Jan Hubicka  <jh@suse.cz>
2446
2447         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2448
2449 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2450         Mostafa Hagog  <mustafa@il.ibm.com>
2451
2452         * Makefile.in (modulo-sched.o, ddg.o): New.
2453         * ddg.h, ddg.c, modulo-sched.c: New files.
2454         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2455         internals to "dupicate_insn".
2456         (duplicate_insn): New function.
2457         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2458         declarations.
2459         * common.opt (fmodulo-sched): New flag.
2460         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2461         Remove static and forward declaration.
2462         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2463         functions.
2464         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2465         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2466         declarations.
2467         * flags.h (flag_modulo_sched): New flag.
2468         * opts.c (common_handle_option): Handle modulo-sched flag.
2469         * params.def (max-sms-loop-number, sms-max-ii-factor,
2470         sms-dfa-history, sms-loop-average-count-threshold): New
2471         parameters.
2472         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2473         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2474         parameters.
2475         * passes.c ("sms", "sms-vcg"): New dumps.
2476         (rest_of_handle_sched): Call sms_schedule.
2477         * rtl.h (sms_schedule): New declaration.
2478         * timevar.def (TV_SMS): New.
2479         * toplev.c (flag_modulo_sched): Initialize.
2480         (f_options): Handle -fmodulo-sched option.
2481         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2482         * docs/passes.texi: Document new SMS pass.
2483
2484 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2485
2486         * Makefile.in (OBJS): Add rtlhooks.o.
2487         (rtlanal.o): Depend on function.h.
2488         (cse.o): Depend on rtlhooks-def.h.
2489         (combine.o): Depend on rtlhooks-def.h.
2490         (rtlhooks.o): New rule.
2491         * combine.c: Include rtlhooks-def.h.
2492         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2493         num_sign_bit_copies, cached_num_sign_bit_copies,
2494         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2495         (reg_nonzero_bits_for_combine,
2496         reg_num_sign_bit_copies_for_combine): New functions holding
2497         the remnants of the above.
2498         (combine_rtl_hooks): New.
2499         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2500         * cse.c: Include rtlhooks-def.h.
2501         (cse_rtl_hooks): New.
2502         (cse_main): Set rtl_hooks instead of gen_lowpart.
2503         * emit-rtl.c (gen_lowpart): Remove.
2504         (gen_lowpart_general): Move to rtlhooks.c.
2505         * rtl.h (nonzero_bits, num_sign_bit_copies,
2506         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2507         (gen_lowpart_general): Remove.
2508         (gen_lowpart): Temporarily redefine as a macro.
2509         * rtlanal.c: Include function.h.
2510         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2511         num_sign_bit_copies, cached_num_sign_bit_copies,
2512         num_sign_bit_copies1): New, from combine.c.
2513         * rtlhooks.c: New file.
2514         * rtlhooks-def.h: New file.
2515
2516 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2517
2518         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2519         to support 32-bit -mint8 mode.
2520
2521         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2522         option in the AVR architecture.
2523
2524 2004-05-24  Mike Stump  <mrs@apple.com>
2525
2526         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2527
2528 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2529
2530         * intl.h (open_quote, close_quote): New.
2531         * intl.c (open_quote, close_quote): New.
2532         (gcc_init_libintl): Set them.
2533         * pretty-print.c: Include "intl.h".
2534         (pp_base_format_text): Support 'q' format flag and %` and %'
2535         formats.  Use ' instead of ` in comments.
2536         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2537         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2538         foramt_types_orig): Describe these new formats.
2539         (decode_format_attr, check_function_format,
2540         check_format_info_main): Use these new formats.
2541         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2542         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2543         check these formats to 3.5.
2544
2545 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2546
2547         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2548         (BACKEND): Reflect this.
2549         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2550         (LIBS): Likewise.
2551
2552 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2553
2554         PR tree-optimization/14197
2555         * builtins.c: Include "tree-gimple.h"
2556         (readonly_data_expr): Use get_base_address.  Make sure to call
2557         decl_readonly_section only on trees it can handle.
2558         * tree-gimple.c (get_base_address): Accept STRING_CST and
2559         CONSTRUCTOR expressions.
2560         * Makefile.in: Update dependencies.
2561
2562 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2563
2564         Move libcpp to the toplevel.
2565         * Makefile.in: Remove references to libcpp files,
2566         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2567         and change hashtable.h to that.
2568         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2569         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2570         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2571         * configure: Regenerate.
2572         * config.in: Regenerate.
2573         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2574         * cppcharset.c: Removed.
2575         * cpperror.c: Removed.
2576         * cppexp.c: Removed.
2577         * cppfiles.c: Removed.
2578         * cpphash.c: Removed.
2579         * cpphash.h: Removed.
2580         * cppinit.c: Removed.
2581         * cpplex.c: Removed.
2582         * cpplib.c: Removed.
2583         * cpplib.h: Removed.
2584         * cppmacro.c: Removed.
2585         * cpppch.c: Removed.
2586         * cpptrad.c: Removed.
2587         * cppucnid.h: Removed.
2588         * cppucnid.pl: Removed.
2589         * cppucnid.tab: Removed.
2590         * hashtable.c: Removed.
2591         * hashtable.h: Removed.
2592         * line-map.c: Removed.
2593         * line-map.h: Removed.
2594         * mkdeps.c: Removed.
2595         * mkdeps.h: Removed.
2596         * stringpool.h: Include symtab.h instead of hashtable.h.
2597         * tree.h: Include symtab.h instead of hashtable.h.
2598         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2599
2600 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2601
2602         * gcc.c (struct prefix_list): Add forward declaration.
2603         (do_spec_path): New function, extracted from...
2604         (do_spec_1) <'D'>: ... here.  Drop support for
2605         SPACE_AFTER_L_OPTION.
2606         (do_spec_1) <'I'>: Use do_spec_path.
2607         (process_command): Do not store the 'include' suffix
2608         in include_prefixes.
2609         * system.h: Poison SPACE_AFTER_L_OPTION.
2610
2611 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2612
2613         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2614         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2615
2616 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2617
2618         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2619         Update based on printed manual.  Enable setting of offsets for
2620         FSFPRINT and move it to gcc-common.texi.
2621         * doc/gcc.texi: Update FSF printing details.
2622         * doc/gccint.texi: Remove FSF printing details.
2623
2624 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2625
2626         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2627
2628 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2629
2630         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2631         expand_builtin_strrchr, expand_builtin_strpbrk,
2632         expand_builtin_mempcpy, expand_builtin_memcmp,
2633         expand_builtin_strcmp, expand_builtin_strncmp,
2634         expand_builtin_strcat, std_expand_builtin_va_start,
2635         std_expand_builtin_va_arg, expand_builtin_va_copy,
2636         expand_builtin_signbit, fold_builtin_cabs,
2637         fold_builtin_logarithm, fold_builtin_mempcpy,
2638         fold_builtin_signbit, fold_builtin_isascii,
2639         fold_builtin_toascii, fold_builtin_isdigit,
2640         fold_builtin_1, build_function_call_expr,
2641         simplify_builtin_strchr, simplify_builtin_strrchr,
2642         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2643         simplify_builtin_memcmp, simplify_builtin_strcmp,
2644         simplify_builtin_strncmp, simplify_builtin_strncat,
2645         simplify_builtin_strspn, simplify_builtin_strcspn,
2646         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2647         to build with calls to build2, build3 or omit_one_operand.
2648
2649 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2650
2651         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2652         section when generating EABI code.
2653
2654 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2655
2656         PR 15546
2657         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2658         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2659
2660 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2661
2662         * c-common.c (c_common_truthvalue_conversion): Handle
2663         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2664         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2665         i.e. set the type to truthvalue_type_node and return.
2666
2667 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2668
2669        * tree.h (struct tree_decl): Add possibly_inlined bit.
2670         (DECL_POSSIBLY_INLINED): New accessor macro.
2671         * cgraph.h: Remove declaration of cgraph_inline_hash.
2672         * cgraph.c: Remove definition of cgraph_inline_hash.
2673         (hash_node): Revert to hashing DECL_UID.
2674         (eq_node): Take two pointers to cgraph_node structures.
2675         Compare DECL_UIDs.
2676         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2677         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2678         hash on DECL_UID.
2679         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2680         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2681         (cgraph_node): Allocate a temporary node on the stack, fill in
2682         its DECL field, and pass that to htab_find_slot.
2683         (cgraph_varpool_node): Likewise.
2684         (cgraph_function_possibly_inlined_p): If global info is ready,
2685         return the DECL_POSSIBLY_INLINED bit.
2686         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2687         instead of mucking with cgraph_inline_hash.
2688
2689 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2690
2691         * doc/contrib.texi: Add g77 contributors.
2692
2693 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2694
2695         * calls.c (initialize_argument_information): Forbid sibcalls if a
2696         callee-copied argument is stored in the current function's frame.
2697
2698 2004-05-22  Eric Christopher  <echristo@redhat.com>
2699
2700         * fix-header.c (read_scan_file): Update for add_path change.
2701
2702 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2703
2704         * c.opt (Wmissing-include-dirs): New.
2705         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2706         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2707         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2708         * c-incpath.h (add_path): Add fourth (bool) argument.
2709         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2710         (add_standard_paths): Likewise.
2711         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2712         is used and the directory was user-supplied via -I.
2713         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2714         using add_cpp_dir_path ().
2715         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2716         (struct cpp_dir): Add user_supplied_p.
2717         * doc/invoke.texi (Warning Options): Document new option.
2718
2719 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2720
2721         * fold-const.c (fold_read_from_constant_string): Convert result to
2722         requested type.
2723
2724 2004-05-21  Richard Henderson  <rth@redhat.com>
2725
2726         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2727         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2728         Don't mark VA_ARG_EXPRs volatile here.
2729         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2730
2731 2004-05-21  Richard Henderson  <rth@redhat.com>
2732
2733         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2734         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2735
2736 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2737
2738         * fold-const.c (fold, fold_relational_hi_lo,
2739         nondestructive_fold_binary_to_constant,
2740         fold_read_from_constant_string): Use fold_convert instead of convert.
2741         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2742         simplify_builtin_strchr, simplify_builtin_strrchr,
2743         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2744
2745 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2746
2747         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2748         is NULL.
2749
2750 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2751
2752         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2753         override sparc.h definition.
2754
2755 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2756
2757         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2758         get_unwidened, get_narrower): Replace build with build2.
2759         * fold-const.c (negate_expr, associate_trees, size_binop,
2760         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2761         pedantic_omit_one_operand, distribute_bit_expr,
2762         make_bit_field_ref, optimize_bit_field_compare,
2763         decode_field_reference, range_binop, make_range,
2764         build_range_check, fold_range_test, fold_truthop,
2765         optimize_minmax_comparison, extract_muldiv_1,
2766         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2767         fold_inf_compare, fold_single_bit_test, fold,
2768         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2769         Likewise replace build with either build2 or build3.
2770
2771 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2772
2773         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2774         * calls.c (prepare_call_address): Don't test
2775         NO_RECURSIVE_FUNCTION_CSE.
2776         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2777         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2778         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2779         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2780         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2781         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2782         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2783         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2784         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2785         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2786         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2787         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2788         Likewise.
2789         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2790         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2791         * doc/tm.texi (Costs): Remove documentation for
2792         NO_RECURSIVE_FUNCTION_CSE.
2793
2794 2004-05-20  Paul Brook  <paul@codesourcery.com>
2795
2796         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2797         * unwind-dw2.c (extract_cie_info): Ditto.
2798         (_Unwind_FrameState): Change retaddr_column to word type.
2799
2800 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2801
2802         PR middle-end/3074
2803         * fold-const.c (strip_compound_expr): Delete function.
2804         (count_cond): Delete function.
2805         (fold_binary_op_with_conditional_arg): Only perform transformations
2806         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2807         when a is constant.  This greatly simplifies this routine.
2808
2809         * tree.c (saved_expr_p): Delete function.
2810         * tree.h (saved_expr_p): Delete function prototype.
2811
2812 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2813
2814         * common.opt (ftree-loop-optimize): Remove.
2815
2816 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2817
2818         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2819         (NM_FOR_TARGET): Use := and $(shell).
2820         (mainversion): Remove unused variable.
2821
2822 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2823
2824         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2825         sequence containing the insn to be deleted, always reemit it.
2826
2827 2004-05-20  Richard Henderson  <rth@redhat.com>
2828
2829         PR 15454
2830         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2831         * function.c (expand_function_start): Expand static_chain_decl by hand.
2832         * gimplify.c (create_tmp_var_name): Export.
2833         * tree-gimple.h (create_tmp_var_name): Declare.
2834
2835 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2836
2837         * rs6000.c (print_operand) <case 'z'>: Call
2838         mark_decl_referenced before assemble_name.
2839
2840 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2841
2842         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2843         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2844         (cgraph_varpool_node): Hash on the pointer to the decl, not
2845         the DECL_UID.  Fixes 64-bit bootstrap failure.
2846
2847 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2848
2849         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2850         we don't earlyclobber operands used in the second insn.
2851
2852 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2853
2854         * tree-mudflap.c: Formatting fixes.
2855
2856 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2857
2858         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2859         * gengtype.c (open_base_files): Include reload.h in ifiles.
2860         * reload.h (reg_equiv_memory_loc_varray): Declare.
2861         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2862         (init_reload): Initialize it.
2863         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2864         reg_equiv_memory_loc_varray to size 0.
2865         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2866         growing reg_equiv_memory_loc_varray to the desired size.
2867         * passes.c (rest_of_handle_old_regalloc): Likewise.
2868         * reload.c: Amend comment on calling init_reload.
2869
2870 2004-05-20  Nick Clifton  <nickc@redhat.com>
2871
2872         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2873         with 'TRAMP' in the body of the macro definition.
2874
2875 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2876
2877         PR target/15383
2878         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2879         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2880         cmptf_libfunc isn't set.
2881         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2882         conventions.
2883         (ia64_sysv4_init_libfuncs): New.
2884
2885         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2886         ia64_sysv4_init_libfuncs.
2887
2888 2004-05-20  Falk Hueffner  <falk@debian.org>
2889
2890         PR other/15526
2891         * libgcc2.c (__mulvsi3): Fix overflow test.
2892
2893 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2894
2895         PR c/14171
2896         * reg-stack.c (nan): Rename to ...
2897         (not_a_num): Here.
2898         (reg_to_stack): Rename nan to not_a_num.
2899         (subst_stack_regs_pat): Likewise.
2900         (convert_regs_entry): Likewise.
2901         (convert_regs_1): Likewise.
2902
2903         * tree-cfg.c (find_case_label_for_value): Replace call to
2904         simple_cst_equal with tree_int_cst_equal.
2905
2906 2004-05-19  Jeff Law <law@redhat.com>
2907
2908         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2909         If the operand is for a use, then strip away the SSA_NAME, do not
2910         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2911         (mark_def_sites): Appropriately pass additional argument to
2912         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2913         then set the VDEF_RESULT to the VDEF_OP.
2914         (set_def_block): Strip away any SSA_NAME to get to the real
2915         underlying variable.
2916
2917         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2918         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2919         BB directly.
2920
2921 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2922
2923         PR c++/15463
2924         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2925         result of inverse.
2926
2927         PR rtl-optimization/15274
2928         * loop-iv.c (determine_max_iter, shorten_into_mode,
2929         iv_number_of_iterations): Handle constants correctly.
2930         * rtl.h (get_mode_bounds): Declaration changed.
2931         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2932         the target mode.
2933
2934         PR rtl-optimization/14692
2935         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2936         (unswitch_single_loop): Work correctly when may_unswitch_on
2937         returns a folded constant.
2938
2939         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2940         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2941         comparisons with mode bounds.
2942
2943         * function.c (struct temp_slot): Add new field prev.
2944         (free_after_compilation, init_temp_slots): Free new fields.
2945         (cut_slot_from_list, insert_slot_to_list,
2946         temp_slots_at_level, max_slot_level, move_slot_to_level,
2947         make_slot_available): New functions.
2948         (assign_stack_temp_for_type, combine_temp_slots,
2949         find_temp_slot_from_address, preserve_temp_slots,
2950         preserve_rtl_expr_result, free_temp_slots,
2951         free_temps_for_rtl_expr, pop_temp_slots): Work with
2952         the new structure of lists.
2953         (mark_all_temps_used): Removed.
2954         * function.h (struct function): Field x_temp_slots
2955         replaced by x_used_temp_slots and x_avail_temp_slots.
2956         (temp_slots): Replaced by ...
2957         (used_temp_slots, avail_temp_slots): New.
2958         * tree.h (mark_all_temps_used): Declaration removed.
2959
2960         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2961         simplify_using_assignment): Take the expression out of
2962         the expr_list wrapper.
2963
2964         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2965         infinite loops.
2966
2967 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2968
2969         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2970         costs should be based on code size when optimizing for size.
2971
2972 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2973
2974         * fold-const.c: Remove non-printable character 160.
2975
2976 2004-05-19  Nick Clifton  <nickc@redhat.com>
2977
2978         * doc/invoke.texi (ARM Options): Fix typo.
2979         Remove descrption of -mshort-load-bytes and
2980         -mno-short-load-bytes.
2981
2982         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2983         missing parenthesis.
2984         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2985         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2986
2987 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2988
2989         * expr.c (store_constructor): Build loop start and end by hand
2990         instead of via loop functions from stmt.c.
2991         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2992         Remove the code to expand them.
2993
2994         * stmt.c (loop_stack): Remove this and everything related.
2995         (struct nesting, enum nesting_desc): Update.
2996         (expand_fixup): Likewise.
2997         (expand_loop_start, expand_start_loop_continue_elsewhere,
2998         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2999         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3000         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3001         expand_exit_something): Remove.
3002         * tree.h: Remove prototypes.
3003
3004 2004-05-18  Mike Stump  <mrs@apple.com>
3005             Devang Patel  <dpatel@apple.com>
3006
3007         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3008         if this label is for eh.
3009         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3010         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3011         * dwarf2out.c (output_call_frame_info): Likewise.
3012         * output.h (default_emit_unwind_label): Likewise.
3013         * target.h (unwind_label): Likewise.
3014         * varasm.c (default_emit_unwind_label): Likewise.
3015
3016         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3017         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3018         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3019         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3020         DEBUG_RANGES_SECTION): Define.
3021
3022 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3023
3024         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3025         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3026         (cgraph_varpool_node):
3027         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3028         (cgraph_function_possibly_inlined_p): Use the decl itself for
3029         the key, not DECL_ASSEMBLER_NAME.
3030         (change_decl_assembler_name): No need to muck with the hash tables.
3031         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3032         Delete.
3033         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3034         for the key, not DECL_ASSEMBLER_NAME.
3035         * cgraph.h: Remove prototypes of deleted functions.
3036         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3037         (mark_decl_referenced): New function.
3038         * tree.h: Prototype mark_decl_referenced.
3039         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3040         mark_decl_referenced before assemble_name.
3041         * c-decl.c (finish_decl): Use mark_decl_referenced.
3042
3043 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3044             Jeff Law <law@redhat.com>
3045
3046         * tree-ssa-phiopt.c (abs_replacement): New function.
3047         (empty_block_p): New function extracted from...
3048         (candidate_bb_for_phi_optimization): Break out empty block test.
3049         (conditional_replacement): Use empty_block_p.
3050         (value_replacement): Similarly.
3051
3052         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3053         * tree-ssa-phiopt.c: Include flags.h.
3054         (conditional_replacement): Remove argument names from prototype.
3055         Minor formatting and comment fixes.
3056         (tree_ssa_phiopt): If conditional_replacement returns false, then
3057         call value_replacement.
3058         (value_replacement): New function.
3059
3060 2004-05-18  Jeff Law  <law@redhat.com>
3061
3062         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3063         from conditional_replacement.
3064         (candidate_bb_for_phi_optimization): Similarly.
3065         (conditional_replacement): Use replace_phi_with_stmt and
3066         candidate_bb_for_phi_optimization.
3067
3068         * tree-ssa-phiopt.c: Fix various formatting issues.
3069
3070 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3071
3072         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3073         s390_expand_cmpmem): Do not use expand_start_loop and
3074         expand_end_loop, instead build the loop manually.
3075
3076 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3077
3078         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3079         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3080
3081 2004-05-17  Jeff Law  <law@redhat.com>
3082
3083         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3084         * flags.h (flag_delete_null_pointer_checks): Here.
3085         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3086         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3087         (add_phi_arg, remove_phi_arg_num): Similarly.
3088         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3089         property into PHI nodes.
3090         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3091         (record_equivalences_from_phis): If all PHI arguments are known to be
3092         nonzero, then the result must be nonzero as well.
3093         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3094         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3095         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3096         as appropriate.
3097         * tree.h (PHI_ARG_NONZERO): Define.
3098         (phi_arg_d): Add nonzero flag.
3099
3100 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3101
3102         * f: Entire directory removed
3103
3104         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3105         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3106         (g77_integer_type_node, g77_uinteger_type_node)
3107         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3108         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3109         the above set of variables.
3110
3111         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3112         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3113         to g77 manual.
3114
3115 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3116
3117         PR tree-optimization/15438
3118         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3119         attributed functions as pure or const.
3120
3121 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3122
3123         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3124         from source code with errors.
3125
3126 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3127
3128         Enable tree browser for all front ends.
3129         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3130         (BACKEND): ...to here.
3131
3132 2004-05-17  Jan Hubicka  <jh@suse.cz>
3133
3134         * i386.c (construct_container): Do not produce BLKmode registers.
3135         (classify_argument): Properly compute alignment of complex types.
3136
3137 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3138
3139         PR target/15084
3140         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3141         and renamed to movdi_insv_1_rex64.
3142         (insv): Support SImode for 32bit and DImode for 64bit.
3143
3144 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3145
3146         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3147         (TARGET_SWITCHES): Remove debugg.
3148         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3149         TARGET_64BIT.
3150         (subdi3): Replace the define_expand with a define_insn, the latter
3151         renamed from subdi3_internal_3.
3152         (negdi2): Likewise negdi2_internal_2.
3153         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3154         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3155         and associated define_splits.
3156         (adddi3_internal): Renamed from adddi3_internal_3.
3157         (ashldi3_internal): Likewise ashldi3_internal4.
3158         (ashrdi3_internal): Likewise ashrdi3_internal4.
3159         (lshrdi3_internal): Likewise lshrdi3_internal4.
3160
3161 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3162
3163         * optabs.c (expand_unop): Try implementing negation using subtraction
3164         from zero.
3165
3166 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3167
3168         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3169         SAR register.
3170
3171 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3172
3173         PR target/10982
3174         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3175         (ne_zeroextractsi_shifted): New pattern.
3176         (ite_ne_zeroextractsi): New pattern.
3177         (ite_ne_zeroextractsi_shifted): New pattern.
3178
3179 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3180
3181         * c-gimplify.c (c_genericize):
3182         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3183         * c-parse.in <expr_no_commas>: Likewise.
3184         <if_prefix>: Likewise.
3185         <select_or_iter_stmt>: Likewise.
3186         * expr.c (expand_var, expand_expr_real_1): Likewise.
3187         * expr.h (expand_expr): Make it a static inline function.
3188         Move prototype for expand_expr_real up before this.
3189         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3190         Likewise.
3191         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3192         gimplify_asm_expr, gimplify_expr): Likewise.
3193         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3194         dump_function_to_file): Likewise.
3195         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3196         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3197         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3198         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3199         Likewise.
3200         * tree-optimize.c (execute_one_pass): Likewise.
3201         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3202         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3203
3204         * objc/objc-act.c (objc_build_try_enter_fragment,
3205         objc_build_try_epilogue, objc_build_catch_stmt,
3206         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3207         with lang_hooks.foo ().
3208
3209 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3210
3211         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3212         that simplify_builtin doesn't destructively modify its argument.
3213
3214 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3215
3216         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3217         implementations for ARM and Thumb.
3218         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3219
3220 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3221
3222         * prefix.c (update_path): Replace PREFIX with KEY only
3223         when it matches a full directory name in PATH.
3224
3225 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3226
3227         * arm.h (TARGET_APCS_32): Delete.
3228         (TARGET_MMU_TRAPS): Delete.
3229         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3230         define __APCS_26__.
3231         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3232         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3233         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3234         (prog_mode_type): Delete.
3235         (PROMOTE_MODE): Always promote unsigned for HImode.
3236         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3237         (MASK_RETURN_ADDR): Simplify.
3238         * arm.c (arm_prgmode): Delete.
3239         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3240         (print_multi_reg, output_return_instruction): Simplify.
3241         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3242         (arm_return_addr): Simplify.
3243         * arm.md (prog_mode): Delete.
3244         (conds): Simplify.
3245         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3246         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3247         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3248         (loadhi_shiftpredec): Delete.
3249         (peephole for post-increment on HImode load): Delete.
3250         * arm/crtn.asm: (FUNC_END): Simplify.
3251         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3252         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3253         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3254         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3255         MULTILIB_DEFAULTS as required.
3256         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3257         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3258         variables as required.
3259         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3260
3261 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3262
3263         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3264         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3265         count to 8 to handle n_reg > 2.
3266
3267 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3268
3269         * doc/extend.texi: Update WG14 URL.
3270
3271 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3272
3273         * basic-block.h (life_analysis, delete_noop_moves):
3274         Update prototypes.
3275         * bt-load.c (branch_target_load_optimize): Don't take the
3276         insns stream as an argument.  Update the life_analysis calls.
3277         * combine.c (combine_instructions): Update delete_noop_moves
3278         calls.
3279         * flow.c (notice_stack_pointer_modification): Don't take the
3280         insns stream as an argument.  Work on the flow graph.
3281         (life_analysis): Likewise.
3282         (delete_noop_moves): Likewise.
3283         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3284         (rest_of_handle_life): Update life_analysis call.
3285         (rest_of_compilation): Likewise, and also update
3286         branch_target_load_optimize call.
3287         * ra.c (reg_alloc): Update life_analysis call.
3288         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3289         the insns stream as an argument.
3290         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3291         call.
3292         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3293         prototypes.
3294         * value-profile.c (branch_prob): Update life_analysis call.
3295         * web.c (web_main): Work on the CFG, not on the insns stream.
3296
3297         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3298         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3299         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3300
3301 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3302
3303         PR c/15444
3304         * c-format.c (avoid_dollar_number): New function.
3305         (check_format_info_main): Call avoid_dollar_number when operand
3306         numbers might occur but has_operand_number == 0.
3307
3308 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3309
3310         * arm.md (all peephole2 patterns): Use predicates that validate
3311         register classes as appropriate.
3312
3313 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3314
3315         PR opt/14472
3316         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3317         ignore type conversions that do not inhibit tail calling.
3318         (find_tail_calls): Likewise.
3319
3320 2004-05-14  Jeff Law  <law@redhat.com>
3321
3322         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3323         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3324         bypassed virtuals into vars_to_rename just before into-ssa pass.
3325
3326         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3327         so that it picks up more opportunities to eliminate ABS expressions
3328         or turn them into negations.
3329
3330 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3331
3332         * passes.c (rest_of_handle_null_pointer): Remove.
3333         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3334         (rest_of_compilation): Likewise.
3335         * rtl.h (delete_null_pointer_checks): Remove prototype.
3336         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3337         Remove declarations.
3338         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3339         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3340         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3341         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3342         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3343         one_classic_gcse_pass, invalidate_nonnull_info,
3344         delete_null_pointer_checks_1, delete_null_pointer_checks,
3345         expr_reached_here_p_work): Remove.
3346         (gcse_main): Do not perform classic GCSE when optimizing for size.
3347         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3348         are never used.
3349
3350 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3351
3352         PR optimization/14466
3353         * tree-complex.c (make_temp): Remove.
3354         (gimplify_val): Replace make_temp with make_rename_temp
3355         and add NULL as the second argument.
3356         (expand_complex_div_wide): Likewise.
3357         * tree-dfa.c (make_rename_temp): New function.
3358         * tree-flow.h (make_rename_temp): Declare.
3359         * tree-sra.c (make_temp): Remove.
3360         (lookup_scalar): Replace make_temp with make_rename_temp.
3361         (create_scalar_copies): Likewise.
3362         * tree-ssa-phiopt.c (conditional_replacement): When we
3363         get non gimple create a temporary variable to hold the
3364         casted expression.
3365
3366 2004-05-14  Paul Brook  <paul@codesourcery.com>
3367
3368         * stor-layout.c (update_alignment_for_field): Use
3369         targetm.align_anon_bitfield.
3370         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3371         (TARGET_INITIALIZER): Use it.
3372         * target.h (struct gcc_target): Add align_anon_bitfield.
3373         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3374         (TARGET_ALIGN_ANON_BITFIELD): Define.
3375         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3376
3377 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3378
3379         * tree.def (documentation): Remove mention of class 'b'.
3380         (BLOCK): Now in class 'x'.
3381         * c-common.c (verify_tree): Remove case 'b'.
3382         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3383         * calls.c (calls_function_1): Control cannot get past the switch
3384         when exp is a BLOCK.
3385         * print-tree.c (print_node): Move code for class 'b' to the class
3386         'c'/'x' switch, as case BLOCK.
3387         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3388         (unsafe_for_reeval, substitute_placeholder_in_expr)
3389         (stabilize_reference_1): Remove case 'b'.
3390         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3391         of something being 'b' to tests for TREE_CODE of something being
3392         BLOCK.
3393         * tree-ssa-operands.c (get_expr_operands): Likewise.
3394
3395 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3396
3397         * tree-gimple.c: Rename from tree-simple.c.
3398         * tree-gimple.h: Rename from tree-simple.h.
3399         * c-gimplify.c: Rename from c-simplify.c
3400         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3401         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3402         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3403         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3404         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3405         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3406         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3407         Update.
3408
3409 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3410
3411         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3412
3413 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3414
3415         * tree-ssa.c (delete_tree_ssa): XFREE
3416         bitmaps allocated with BITMAP_XMALLOC.
3417
3418         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3419         idfs_cache at the end of the function.
3420
3421         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3422         at the end of the function.
3423
3424         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3425         el at the end of the function.
3426
3427         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3428         bitmaps allocated with BITMAP_XMALLOC.
3429
3430         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3431         the end.
3432
3433         * final.c (shorten_branches): Free uid_shuid before
3434         reallocating it.
3435
3436         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3437
3438 2004-05-13  Jeff Law  <law@redhat.com>
3439
3440         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3441         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3442         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3443
3444         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3445         rather than iterating through the blocks testing each bit in
3446         livein to initialize the worklist.
3447         (mark_def_sites): Remove useless checks of KILLS for virtual
3448         operands.
3449
3450         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3451         new parameters for the statement and variable worklist as well
3452         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3453         worklist recording interesting variables in the variable worklist
3454         and bitmap.  Handle casts between integral and boolean types.
3455         (substitute_single_use_vars): Accept new parameters for the statement
3456         and variable worklist.  When a substitution is made add a new
3457         entry to the statement worklist.  Handle casts between integral
3458         and boolean types.
3459         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3460         worklists to children.  Iterate until the statement worklist
3461         is empty.
3462
3463 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3464
3465         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3466         the end of the block.
3467
3468         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3469         with BITMAP_XMALLOC.
3470
3471         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3472         with BITMAP_XMALLOC.
3473
3474         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3475         Free nonzero_vars at the end of the function.
3476
3477         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3478         need to generate code instead of a NOP_EXPR.
3479
3480 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3481
3482         * gcc.c (default_compilers): Fill out initializers for new Fortran
3483         entries.
3484
3485 2004-05-13  Paul Brook  <paul@codesourcery.com>
3486
3487         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3488
3489 2004-05-13  Paul Brook  <paul@codesourcery.com>
3490
3491         * config/arm/arm.c (arm_default_short_enums): New function.
3492         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3493
3494 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3495
3496         Merge from tree-ssa-20020619-branch.
3497
3498         * Makefile.in (reload1.o-warn): Add.
3499         (tree-alias-ander.o-warn): Add.
3500         (GMPLIBS): Define.
3501         (GMPINC): Define.
3502         (BANSHEELIB): Define.
3503         (BANSHEEINC): Define.
3504         (TREE_DUMP_H): Define.
3505         (TREE_SIMPLE_H): Define.
3506         (TREE_FLOW_H): Define.
3507         (LIBDEPS): Add BANSHEELIB.
3508         (INCLUDES): Add BANSHEEINC and GMPINC.
3509         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3510         c-mudflap.o and c-pretty-print.o.
3511         (C_OBJS): Remove c-pretty-print.o.
3512         (OBJS-common): Remove sibcall.o.
3513         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3514         tree-ssa.o, tree-optimize.o, tree-simple.o,
3515         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3516         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3517         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3518         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3519         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3520         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3521         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3522         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3523         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3524         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3525         tree-profile.o.
3526         (OBJC-archive): Add tree-nomudflap.o.
3527         (cc1): Add dependency on @TREEBROWSER@.
3528         (c-decl.o): Add dependency on TREE_DUMP_H.
3529         (c-dump.o): Likewise.
3530         (c-common.o): Add dependency on tree-iterator.h
3531         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3532         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3533         (tree.o): Add dependency on tree-iterator.h,
3534         BASIC_BLOCK_H and TREE_FLOW_H.
3535         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3536         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3537         (tree-alias-type.o, tree-alias-ander.o,
3538         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3539         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3540         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3541         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3542         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3543         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3544         tree-nested.o, tree-iterator.o, tree-dfa.o,
3545         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3546         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3547         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3548         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3549         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3550         tree-sra.o, tree-complex.o, tree-profile.o,
3551         rtl-profile.o): New rules.
3552         (function.o): Add dependency on basic-block.h
3553         (expr.o): Add dependency on tree-iterator.h.
3554         (sibcall.o): Remove.
3555         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3556         (cfg.o): Add dependency on TIMEVAR_H.
3557         (cfghooks.o): Add dependency on TREE_FLOW_H.
3558         (reg-stack.o): Add dependency on basic-block.h.
3559         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3560         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3561         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3562         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3563         tree-alias-type.h, tree-alias-common.h,
3564         tree-alias-type.c, tree-alias-common.c,
3565         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3566         rtl-profile.c and tree-nested.c.
3567         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3568         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3569         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3570         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3571         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3572         * basic-block.h: Include predict.h
3573         (struct edge_def): Add GTY marker.
3574         Change field 'insns' to be a union of tree and rtx.
3575         (EDGE_TRUE_VALUE): Define.
3576         (EDGE_FALSE_VALUE): Define.
3577         (EDGE_EXECUTABLE): Define.
3578         (struct bb_ann_d): Forward declare.
3579         (struct basic_block_def): Add GTY marker.
3580         Remove fields head_tree and end_tree.
3581         Add fields stmt_list, rbi and tree_annotations.
3582         (struct reorder_block_def): Define.
3583         (basic_block_info): Add GTY marker.
3584         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3585         variables instead of macros.
3586         (flow_call_edges_add): Remove declaration.
3587         (make_eh_edge): Remove declaration.
3588         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3589         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3590         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3591         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3592         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3593         (try_redirect_by_replacing_jump): Modfiy return type to
3594         edge instead of bool.
3595         * bb-reorder.c (copy_bb): Call duplicate_block
3596         instead of cfg_layout_duplicate_bb.
3597         (copy_bb_p): Call can_duplicate_block_p instead of
3598         cfg_layout_can_duplicate_bb_p.
3599         * bitmap.c (bitmap_first_set_bit): Abort if word
3600         wasn't found.
3601         (bitmap_last_set_bit): Likewise.
3602         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3603         (DEF_FUNCTION_TYPE_3): Add.
3604         * builtins.c (c_strlen): Make extern.
3605         (builtin_save_expr): New.
3606         (expand_builtin_nonlocal_goto): New.
3607         (expand_builtin_constant_p): Remove.
3608         (expand_builtin_mathfn): Call builtin_save_expr instead
3609         of save_expr.
3610         (expand_builtin_mathfn_2): Likewise.
3611         (expand_builtin_strcmp): Likewise.
3612         (expand_builtin_strncmp): Likewise.
3613         (expand_builtin_strcat): Likewise.
3614         (fold_builtin_cabs): Likewise.
3615         (expand_builtin_alloca): Don't trigger if -fmudflap is
3616         given.
3617         (build_string_literal): Set TREE_INVARIANT on new node.
3618         (expand_builtin_profile_fun): New.
3619         (round_trampoline_addr): New.
3620         (expand_builtin_init_trampoline): New.
3621         (expand_builtin_adjust_trampoline): New.
3622         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3623         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3624         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3625         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3626         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3627         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3628         Handle.
3629         (fold_builtin_expect): New.
3630         (fold_builtin_isascii): Don't return non-constant results
3631         in GIMPLE form.
3632         (fold_builtin_isdigit): Likewise.
3633         (fold_builtin_1): New.
3634         (fold_builtin): Call it.
3635         (build_function_call_expr): Update call to build a new
3636         CALL_EXPR.
3637         (purge_builtin_constant_p): Remove.
3638         (simplify_builtin, simplify_builtin_memcmp,
3639         simplify_builtin_strcmp, simplify_builtin_strncmp,
3640         simplify_builtin_strpbrk, simplify_builtin_strstr,
3641         simplify_builtin_strchr, simplify_builtin_strrchr,
3642         simplify_builtin_strcat, simplify_builtin_strncat,
3643         simplify_builtin_strspn, simplify_builtin_strcspn,
3644         simplify_builtin_next_arg, simplify_builtin_va_start,
3645         simplify_builtin_sprintf): New.
3646         * builtins.def (BUILT_IN_STACK_ALLOC,
3647         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3648         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3649         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3650         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3651         * c-common.c: Include tree-iterator.h and hashtab.h.
3652         (lang_statement_code_p): Declare.
3653         (lang_gimplify_stmt): Declare.
3654         (fix_string_type): Set TREE_INVARIANT for value.
3655         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3656         (c_type_hash): New.
3657         (c_common_get_alias_set): Handle multiple type nodes
3658         referring to "the same" type, currently for C90 only.
3659         (c_add_case_label): Use create_artificial_label.
3660         (finish_label_address_expr): Don't set TREE_CONSTANT on
3661         result.
3662         (c_expand_expr): Don't handle STMT_EXPR.
3663         (handle_alias_attribute): Marke aliased variables to be
3664         TREE_STATIC.
3665         (handle_nonnull_attribute): Initialize arg_num.
3666         (check_function_nonnull): Likewise.
3667         (c_walk_subtrees): New.
3668         (c_estimate_num_insns_1): Don't handle
3669         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3670         (c_decl_uninit_1): Remove.
3671         (c_decl_uninit): Remove.
3672         (c_warn_unused_result): New.
3673         * c-common.def (ASM_STMT): Change number of operands
3674         to 4.
3675         (FILE_STMT): Remove.
3676         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3677         Remove.
3678         (lang_gimplify_stmt): Add.
3679         (expand_stmt): Remove.
3680         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3681         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3682         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3683         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3684         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3685         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3686         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3687         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3688         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3689         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3690         genrtl_compound_stmt, genrtl_asm_stmt,
3691         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3692         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3693         c_tree_chain_matters_p, c_warn_unused_result,
3694         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3695         Declare.
3696         * c-convert.c (convert): Make convert work when
3697         converting to compatible types across translation unit.
3698         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3699         tree-simple.h, diagnostic.h and tree-dump.h
3700         (merge_decls): Initialize oldtype to NULL.
3701         (finish_decl): Use DECL_HARD_REGISTER instead of
3702         DECL_C_HARD_REGISTER.
3703         (check_bitfield_type_and_width): Check for null
3704         lang_type_specific when check the precision of an enum.
3705         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3706         in a pointer-to-array declarator.
3707         (finish_struct): Clear allocated struct lang_type.
3708         (finish_enum): Set enum_min and enum_max.  Set
3709         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3710         not to the enumerators.
3711         (set_decl_nonlocal): New.
3712         (store_parm_decls): Use it via walk_tree.
3713         (c_finalize): New.
3714         (finish_function): When !targetm.have_ctors_dtors,
3715         record static constructors and destructors here...
3716         (c_expand_body_1): ... not here.
3717         (c_expand_decl): Rename from c_expand_decl_stmt.
3718         Handle all C-specific expansion semantics.
3719         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3720         STMT_LINENO.
3721         * c-format.c (handle_format_arg_attribute): Initialize
3722         format_num.
3723         * c-lang.c: Include tree-inline.h
3724         (LANG_HOOKS_EXPAND_DECL,
3725         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3726         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3727         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3728         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3729         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3730         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3731         (c_types_compatible_p): New.
3732         * c-mudflap.c: New file.
3733         * c-objc-common.c: Include tree-mudflap.h
3734         (start_cdtor, finish_cdtor): Collapse
3735         together into
3736         (build_cdtor): ...here.  Update to construct a complete tree
3737         for the function.  No need to call push_scope, pop_scope, or
3738         clear_last_expr, or set current_function_cannot_inline.
3739         (c_missing_noreturn_ok_p): Change prototype to return
3740         bool.
3741         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3742         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3743         opts.c.
3744         (c_common_post_options): Don't ever use rtl inlining.
3745         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3746         * c-pragma.c (handle_pragma_redefine_extname): Define
3747         always.
3748         (init_pragma): Activate #pragma redefine_extname for mudflap.
3749         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3750         (pp_c_initializer): Accept any type CONSTRUCTOR.
3751         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3752         COMPLEX_TYPE.
3753         (decl_name_str): New local function.
3754         (pp_c_direct_declarator): Call it.
3755         (pp_c_primary_expression): Call it.
3756         (pp_c_id_expression): Call it.
3757         (pp_c_statement): Call it.
3758         (print_c_tree): Create new pp object.
3759         * c-pretty-print.h (pp_c_tree_decl_identifier,
3760         print_c_tree): Declare.
3761         * c-semantics.c: Include langhooks.h
3762         (lang_expand_stmt, lang_expand_decl_stmt,
3763         find_reachable_label_1, find_reachable_label,
3764         expand_unreachable_if_stmt, expand_unreachable_stmt,
3765         genrtl_do_stmt_1): Remove.
3766         (begin_stmt_tree): Don't check for changed filename.
3767         Call annotate_with_locus.
3768         (finish_stmt_tree): Don't set line for end of function.
3769         (build_stmt): Don't check type nodes for
3770         side effects.
3771         (build_stmt): Set TREE_SIDE_EFFECTS.
3772         Set EXPR_LOCUS instead of STMT_LINENO.
3773         (lang_expand_stmt, lang_expand_decl_stmt,
3774         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3775         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3776         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3777         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3778         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3779         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3780         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3781         find_reachable_label_1, expand_unreachable_if_stmt,
3782         expand_unreachable_stmt): Remove.
3783         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3784         * c-simplify.c: New file.
3785         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3786         (struct lang_type): Add fields enum_min and enum_max.
3787         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3788         (c_expand_decl, c_missing_noreturn_ok_p,
3789         c_types_compatible_p): Declare.
3790         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3791         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3792         (default_function_array_conversion): Rely on build to
3793         set TREE_CONSTANT.
3794         (parser_build_binary_op, pointer_diff): Likewise.
3795         (build_unary_op, build_binary_op): Likewise.
3796         (build_array_ref):
3797         (build_external_ref): Set TREE_INVARIANT.
3798         (build_c_cast, pop_init_level): Likewise.
3799         (process_init_element): Use ASM_VOLATILE_P.
3800         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3801         (c_finish_case): Call c_do_switch_warnings.
3802         * c.opt (fdump-): Remove.
3803         * calls.c (try_to_integrate): Remove.
3804         (prepare_call_address): Replace fndecl arg with a
3805         precomputed static chain value.
3806         (emit_call_1): New argument for full call expr.
3807         (flags_from_decl_or_type): Call special_function_p.
3808         (initialize_argument_information): Add argument
3809         may_tailcall.
3810         (purge_reg_equiv_notes): New.
3811         (expand_call): Do not try to expand calls inline.
3812         (fixup_tail_calls): New.
3813         * cfg.c: Include timevar.h and ggc.h.
3814         (bb_pool, edge_pool): Remove.
3815         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3816         (entry_exit_blocks): Remove.
3817         (rbi_pool): Declare.
3818         (init_flow): Do not create pools.
3819         Allocate entry/exit block.
3820         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3821         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3822         (unlink_block): Clear b->prev_bb and b->next_bb.
3823         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3824         (dump_flow_info): Work on trees too.
3825         (dump_cfg_bb_info): New.
3826         (brief_dump_cfg): New.
3827         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3828         (find_edge): New.
3829         * cfgbuild.c (rtl_make_eh_edge): Rename from
3830         make_eh_edge.  Update all users.
3831         (find_basic_blocks): Don't call VARRAY_FREE on
3832         basic_block_info.
3833         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3834         and newpos2.
3835         (delete_unreachable_blocks): Return changed status.
3836         (merge_seq_blocks): New.
3837         * cfghooks.c: Include tree-flow.h
3838         (tree_register_cfg_hooks, ir_type): New.
3839         (redirect_edge_and_branch): Change return type to edge.
3840         (predict_edge, predicted_by_p, can_duplicate_block_p,
3841         duplicate_block, block_ends_with_call_p,
3842         block_ends_with_condjump_p, flow_call_edges_add): New.
3843         * cfghooks.h (redirect_edge_and_branch): Change return
3844         type to edge.
3845         (predict_edge, predicted_by_p, can_duplicate_block_p,
3846         duplicate_block, block_ends_with_call_p,
3847         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3848         (redirect_edge_and_branch): Change return type to edge.
3849         (struct cfg_hooks): Add fields block_ends_with_call_p,
3850         block_ends_with_condjump_p, flow_call_edges_add,
3851         predict_edge, predicted_by_p, can_duplicate_block_p and
3852         duplicate_block.
3853         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3854         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3855         (fixup_reorder_chain): Use initialize_bb_rbi.
3856         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3857         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3858         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3859         (insn_locators_initialize): Use new info about blocks.
3860         * cfglayout.h (typedef struct reorder_block_def): Moved to
3861         basic_block.h.
3862         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3863         removed.
3864         * cfgloop.c: Include tree.h and tree-flow.h.
3865         * cfgloop.h (create_loop_notes): Declare.
3866         * cfgloopmanip.c (create_loop_notes): New.
3867         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3868         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3869         and duplicate_block fields.
3870         (create_basic_block_structure): Don't look at
3871         RTX_INTEGRATED_P.
3872         (rtl_block_ends_with_call_p): New.
3873         (rtl_block_ends_with_condjump_p): New.
3874         (need_fake_edge_p): Moved from cfganal.c.
3875         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3876         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3877         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3878         (cfg_layout_rtl_cfg_hooks): Ditto.
3879         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3880         functions to be reachable.
3881         * cgraphunit.c (decide_is_function_needed):
3882         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3883         inline functions don't need to be output.
3884         (cgraph_assemble_pending_functions): Don't do anything
3885         special for nested functions.
3886         (cgraph_mark_functions_to_output): Likewise.
3887         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3888         (cgraph_analyze_function): Use estimate_num_insns.
3889         (cgraph_mark_functions_to_output): Likewise.
3890         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3891         (cgraph_expand_function): Allow functions to not be
3892         emitted.
3893         (cgraph_remove_unreachable_nodes):
3894         (cgraph_recursive_inlining_p): Simplify.
3895         (lookup_recursive_calls,
3896         cgraph_decide_recursive_inlining): New.
3897         (cgraph_decide_inlining_*): Update calls of
3898         cgraph_mark_inline.
3899         * combine.c (get_pos_from_mask): Always set *plen.
3900         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3901         ftree-based-profiling, ftree-ccp, ftree-ch,
3902         ftree-combine-temps, ftree-copyrename, ftree-dce,
3903         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3904         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3905         ftree-lrs): Add.
3906         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3907         Undefine.
3908         * configure.ac: Add --enable-tree-browser option.
3909         Add --with-libbanshee option.
3910         Add GMPLIBS and GMPINC.
3911         * configure: Regenerate.
3912         * coverage.c (tree_ctr_tables): New.
3913         (coverage_counter_alloc): Use it.
3914         (build_ctr_info_value): Ditto.
3915         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3916         (tree_coverage_counter_ref): New.
3917         * coverage.h (coverage_counter_ref): Remove declaration.
3918         (rtl_coverage_counter_ref): Declare.
3919         (tree_coverage_counter_ref): Declare.
3920         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3921         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3922         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3923         (struct cse_basic_block_data): Rename enum values to not
3924         conflict with profile.h; update all uses.
3925         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3926         in comments.
3927         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3928         * diagnostic.h (debug_output_buffer, dump_generic_node,
3929         print_generic_stmt, print_generic_stmt_indented,
3930         print_generic_expr, print_generic_decl,
3931         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3932         Declare.
3933         * dominance.c: Cache immediate dominators.
3934         * domwalk.c: New file.
3935         * domwalk.h: New file.
3936         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3937         (gen_subprogram_die): Generate a DIE for a named
3938         return value.
3939         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3940         (add_location_or_const_value_attribute): Likewise.
3941         (add_bound_info): Likewise.
3942         (gen_decl_die): Likewise.
3943         * emit-rtl.c (maybe_set_first_label_num): New.
3944         (copy_most_rtx): Don't copy the integrated flag.
3945         Copy the new return_val flag.
3946         * et-forest.c (MAX_NODES): Define.
3947         (record_path_before_1): Abort if len is greater than
3948         MAX_NODES.
3949         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3950         gen_eh_region_catch, gen_eh_region_allowed,
3951         gen_eh_region_must_not_throw, get_eh_region_number,
3952         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3953         set_eh_region_tree_label, expand_resx_expr): New.
3954         (expand_eh_region_start, expand_start_catch): Use them.
3955         (expand_end_catch): Tidy.
3956         (note_eh_region_may_contain_throw): Take region argument.
3957         (note_current_region_may_contain_throw): New.
3958         (get_exception_filter): Export.
3959         (collect_eh_region_array): Export.
3960         (remove_unreachable_regions): Check ERT_TRY based on reachability
3961         of catches, not reachability of continue_label.  Never remove
3962         ERT_MUST_NOT_THROW regions.
3963         (collect_rtl_labels_from_trees): New.
3964         (convert_from_eh_region_ranges): Use it.
3965         (connect_post_landing_pads): Handle dying cleanups.
3966         (struct reachable_info): Add callback data.
3967         (add_reachable_handler): Invoke the callback.
3968         (foreach_reachable_handler): New.
3969         (reachable_handlers): Use it.
3970         (arh_to_landing_pad, arh_to_label): New.
3971         (can_throw_internal_1): Split out from can_throw_internal.
3972         (can_throw_external_1): Similarly.
3973         * except.h: Update.
3974         * explow.c (emit_stack_save): Remove savearea mode check.
3975         (update_nonlocal_goto_save_area): New.
3976         (allocate_dynamic_stack_space): Use it.
3977         (probe_stack_range): Never emit loop notes.
3978         * expmed.c (extract_fixed_bit_field): Always propagate the
3979         target for the shift if it is a REG.
3980         * expr.c: Include tree-iterator.h
3981         (is_zeros_p): Remove.
3982         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3983         (count_type_elements): New.
3984         (mostly_zeros_p): Use them.
3985         (expr_wfl_stack): Remove.
3986         (convert_move): Do nothing if to and from are the same.
3987         (emit_block_move_via_loop): Don't emit LOOP notes.
3988         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3989         (emit_move_insn_1): Don't generate inline warnings.
3990         (expand_vars, expand_var): Split from ...
3991         (expand_expr_1): ... here.
3992         (expand_expr_real, expand_expr_real_1):  Use new macros
3993         EXPR_LOCATION and EXPR_HAS_LOCATION.
3994         * expr.h (simplify_builtin_fputs,
3995         simplify_builtin_strcpy, simplify_builtin_strncpy,
3996         expand_var, fixup_tail_calls,
3997         update_nonlocal_goto_save_area): Declare.
3998         (lookup_static_chain, expand_inline_function,
3999         mark_seen_cases): Remove.
4000         (prepare_call_address): Change type of 2nd argument to
4001         rtx.
4002         * final.c (profile_function): Update static chain test.
4003         (final): Don't look at RTX_INTEGRATED_P.
4004         * flags.h (flag_mudflap, flag_mudflap_threads,
4005         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4006         flag_tree_dce, flag_tree_combine_temps,
4007         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4008         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4009         flag_tree_points_to): Declare.
4010         (enum pta_type): Declare.
4011         * flow.c (lang_missing_noreturn_ok_p): Remove.
4012         (check_function_return_warnings): Remove.
4013         (update_life_info): Update comments.
4014         (free_basic_block_vars): Don't call VARRAY_FREE for
4015         basic_block_info.
4016         (regno_uninitialized): Remove.
4017         * fold-const.c (int_const_binop): Make extern.
4018         (non_lvalue): Rely on build to set TREE_CONSTANT.
4019         (operand_equal_p): Replace only_const argument with
4020         flags.  Allow pure functions if OEP_PURE_SAME.
4021         (fold): Use OEP_ONLY_CONST.
4022         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4023         boolean type.
4024         (fold_relational_hi_lo,
4025         nondestructive_fold_binary_to_constant,
4026         nondestructive_fold_unary_to_constant,
4027         fold_read_from_constant_string): New.
4028         * function.c (struct function): Remove calls_constant_p.
4029         (current_function_calls_constant_p): Remove.
4030         (inline_function_decl): Remove.
4031         (put_var_into_stack): Don't use it.
4032         (fix_lexical_addr): Likewise.
4033         (inline_function_decl): Remove extern declaration.
4034         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4035         (trampolines_created): Move to varasm.c.
4036         (free_after_compilation): Update for removed fields.
4037         (allocate_struct_function): Likewise.
4038         (delete_handlers, lookup_static_chain): Remove.
4039         (fix_lexical_addr): Don't consider non-local variable refs.
4040         (trampoline_address): Remove.
4041         (round_trampoline_addr): Move to builtins.c.
4042         (adjust_trampoline_addr): Remove.
4043         (expand_function_start): Update for changes to static chain
4044         and nonlocal goto handling.
4045         (initial_trampoline): Move to varasm.c.
4046         (expand_function_end): Don't build trampolines or kill
4047         unreferenced nonlocal goto labels.
4048         (free_after_compilation): Don't set it.
4049         (expand_function_end): Likewise.
4050         (setjmp_vars_warning): Rename from
4051         uninitialized_vars_warning, remove uninitialized vars warning.
4052         (uninitialized_vars_warning): Remove old comment
4053         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4054         and do not call the langhook.
4055         (expand_function_start, expand_function_end): Don't do
4056         function instrumentation here.
4057         (clear_block_marks): Rename from reorder_blocks_0, export.
4058         (blocks_nreverse): Export.
4059         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4060         of rtl.
4061         (reset_block_changes, record_block_change, finalize_block_changes,
4062         check_block_change, free_block_changes): New functions.
4063         (assign_parms): Setting of current_function_stdarg
4064         moved ...
4065         (allocate_struct_function): ... here.
4066         * function.h (struct function): Remove x_nonlocal_labels,
4067         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4068         x_context_display, x_trampoline_list, needs_context.
4069         Add static_chain_decl, nonlocal_goto_save_area.
4070         (struct function): Remove x_clobber_return_insn.
4071         Add tail_call_emit field, last_label_uid,
4072         unexpanded_var_list, dont_emit_block_notes,
4073         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4074         (clear_block_marks): Declare.
4075         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4076         (mfwrap_spec, mflib_spec): Declare.
4077         (cpp_unique_options, cc1_options): Ditto.
4078         (default_compilers): Add .F and .f90.
4079         (static_specs): Add mfwrap and mflib.
4080         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4081         CONSTANT_RTX_P.
4082         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4083         Update to match insns field in struct edge_def.
4084         * gdbinit.in (pgs, pge): Define.
4085         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4086         instead of the integrated flag.
4087         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4088         * gengtype-yacc.y (bitfieldlen): Add empty action.
4089         (struct_fields): Accept unnamed bitfields.
4090         (bitfieldlen): Split from ...
4091         (bitfieldopt): ... here.
4092         * gengtype.c (ifiles): Add tree-alias-type.h and
4093         tree-flow.h.
4094         * genrecog.c (validate_pattern): Do not handle
4095         CONSTANT_P_RTX.
4096         * gimple-low.c: New file.
4097         * gimplify.c: New file.
4098         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4099         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4100         * ifcvt.c (dead_or_predicable): Initialize local variable
4101         'earliest'.
4102         * input.h (expr_wfl_stack): Remove.
4103         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4104         (setup_initial_hard_reg_value_integration): Likewise.
4105         (initialize_for_inline): Likewise.
4106         (note_modified_parmregs): Likewise.
4107         (integrate_parm_decls): Likewise.
4108         (process_reg_param): Likewise.
4109         (save_parm_insns): Likewise.
4110         (copy_insn_list): Likewise.
4111         (copy_insn_notes): Likewise.
4112         (compare_blocks): Likewise.
4113         (find_block): Likewise.
4114         (inlining): Likewise.
4115         (function_cannot_inline_p): Likewise.
4116         (parmdecl_map): Likewise.
4117         (in_nonparam_insns): Likewise.
4118         (save_for_inline): Likewise.
4119         (FIXED_BASE_PLUS): Likewise.
4120         (expand_inline_function): Likewise.
4121         (copy_rtx_and_substitute): Don't look at map->integrating,
4122         map->inline_target, and inlining, since we are never copying
4123         for integrating.
4124         Don't abort on RTX_INTEGRATED_P.
4125         (old_fun): Remove.
4126         (output_inline_function): Remove.
4127         * integrate.h (struct inline_map): Remove fields integrating,
4128         block_map, leaf_reg_map, inline_target, and local_return_label.
4129         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4130         copy_loop_headers, never_reached_warning): Removed.
4131         (any_uncondjump_p): Reject nonlocal goto.
4132         * langhooks-def.h (lhd_types_compatible_p,
4133         lhd_expand_decl, lhd_gimplify_expr): Declare.
4134         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4135         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4136         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4137         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4138         LANG_HOOKS_GIMPLIFY_EXPR,
4139         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4140         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4141         LANG_HOOKS_GIMPLIFY_EXPR,
4142         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4143         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4144         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4145         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4146         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4147         LANG_HOOKS_DECL_UNINIT,
4148         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4149         * langhooks.c: Include tree-simple.h.
4150         (lhd_expand_decl): New.
4151         (lhd_types_compatible_p): New.
4152         (lhd_decl_uninit): Remove.
4153         (lhd_gimplify_expr): New.
4154         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4155         Remove.
4156         (struct lang_hooks_for_functions): Add field
4157         missing_noreturn_ok_p.
4158         (struct lang_hooks): Add field expand_decl,
4159         types_compatible_p, gimplify_expr and
4160         gimple_before_inlining.
4161         Remove fields decl_uninit and rtl_expand
4162         * opts.c (decode_options): Set flag_tree_ccp,
4163         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4164         flag_tree_pre, flag_tree_ter,
4165         flag_tree_live_range_split, flag_tree_sra,
4166         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4167         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4168         OPT_fmudflapth, OPT_fmudflapir,
4169         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4170         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4171         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4172         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4173         OPT_ftree_points_to_ and OPT_ftree_pre.
4174         * output.h (regno_uninitialized, find_basic_blocks,
4175         cleanup_cfg, delete_unreachable_blocks,
4176         check_function_return_warnings): Remove.
4177         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4178         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4179         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4180         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4181         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4182         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4183         Define.
4184         * passes.c (rest_of_decl_compilation):
4185         (rest_of_handle_sibling_calls): Remove.
4186         (rest_of_handle_inlining): Remove.
4187         (rest_of_handle_gcse): Do not run
4188         purge_builtin_constant_p.
4189         (rest_of_compilation): Update.
4190         Do not call copy_loop_headers.
4191         Do rtl-based profiling only when
4192         !flag_tree_based_profiling.  Register rtl-based profiling
4193         hooks.
4194         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4195         (predicted_by_p): Rename to ...
4196         (rtl_predicted_by_p): .. this one; make global
4197         (tree_predicted_by_p): New.
4198         (dump_prediction): Add FILE argument.
4199         (predict_edge): Rename to ...
4200         (rtl_predict_edge): .. this one.
4201         (tree_predict_edge): New.
4202         (combine_predictions_for_insn): Update calls of predict_edge.
4203         (predict_loops): Break out from ...
4204         (estimate_probability): ... here; update comments; move updating
4205         of unknown probabilities from ...
4206         (estimate_bb_frequencies): ... here.
4207         (combine_predictions_for_bb): New.
4208         (tree_predict_by_opcode): New.
4209         (tree_estimate_probability): New.
4210         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4211         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4212         * predict.h: Add include guard.
4213         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4214         * pretty-print.c (pp_write_text_to_stream): Make extern.
4215         * pretty-print.h (pp_write_text_to_stream): Declare.
4216         * print-rtl.c (print_rtx): Don't print the integrated flag.
4217         Print the return_val flag.
4218         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4219         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4220         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4221         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4222         * profile.c: Include cfghooks.h, tree-flow.h.
4223         (profile_hooks): New.
4224         (profile_dump_file): New.
4225         (instrument_edges): Use hooks instead of RTL-specific code.
4226         (instrument_values): Ditto.
4227         (get_exec_counts): Ditto.
4228         (compute_branch_probabilities): Ditto.
4229         (compute_value_histograms): Ditto.
4230         (branch_prob): Ditto.
4231         (find_spanning_tree): Ditto.
4232         (end_branch_prob): Ditto.
4233         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4234         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4235         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4236         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4237         (tree_register_profile_hooks): New.
4238         (rtl_register_profile_hooks): New.
4239         * ra-rewrite.c (rewrite_program): Clear variable info.
4240         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4241         * regs.h: Add include guards.
4242         * reload.c (decompose): Clear val using memset.
4243         * rtl.def (CONSTANT_P_RTX): Remove.
4244         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4245         (copy_loop_headers): Remove.
4246         (struct rtx_def): Replace the integrated flag with the
4247         return_val flag.
4248         (maybe_set_first_label_num): Declare.
4249         (init_branch_prob): Move declaration to value-prof.h.
4250         (end_branch_prob): Ditto.
4251         (branch_prob): Ditto.
4252         (never_reached_warning): Don't declare it.
4253         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4254         (hoist_insn_to_edge): Update to match field insns in
4255         struct edge_def.
4256         * sbitmap.c (sbitmap_realloc): New.
4257         * sbitmap.h (sbitmap_realloc): Declare.
4258         * sibcall.c: Remove file.
4259         * simplify-rtx.c (simplify_rtx): Do not handle
4260         CONSTANT_P_RTX.
4261         * stmt.c (parse_output_constraint): Don't warn for read-write
4262         memory operand.
4263         (tail_recursion_args): Use types_compatible_p langhook.
4264         (force_label_rtx): Don't look at inline_function_decl.
4265         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4266         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4267         (declare_nonlocal_label): Remove.
4268         (expand_goto): Don't handle nonlocal gotos.
4269         (expand_nl_handler_label): Remove.
4270         (expand_nl_goto_receivers): Remove.
4271         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4272         update_nonlocal_goto_save_area.
4273         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4274         (warn_if_unused_value): Likewise.
4275         (expand_start_loop, expand_loop_continue_here,
4276         expand_end_loop): Don't create loop notes.
4277         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4278         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4279         (expand_end_case_type): Don't do warn_switch handling.
4280         (pushcase, pushcase_range) Update add_case_node calls.
4281         (add_case_node): Add dont_expand_label argument.
4282         (same_case_target_p): Don't search rtl.
4283         (expand_start_bindings_and_block, expand_end_bindings):
4284         Don't emit block notes when dont_emit_block_notes.
4285         (using_eh_for_cleanups_p): Export.
4286         (expand_return): Allow any typed rhs.
4287         (expand_stack_alloc): New.
4288         (expand_stack_save, expand_stack_restore): New.
4289         (containing_blocks_have_cleanups_or_stack_level): New
4290         function.
4291         (asm_op_is_mem_input): New fn.
4292         (expand_asm_expr): New fn.
4293         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4294         nodes.
4295         * stor-layout.c (layout_type): Just return if type is
4296         error_mark_node.
4297         (update_alignment_for_field): Export.
4298         (variable_size): We don't care about global_bindings_p if
4299         the frontend doesn't want a list of the expressions.
4300         * system.h: Poison INTEGRATE_THRESHOLD.
4301         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4302         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4303         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4304         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4305         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4306         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4307         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4308         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4309         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4310         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4311         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4312         TV_CONTROL_DEPENDENCES): Define.
4313         * toplev.c: Include tree-alias-common.h
4314         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4315         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4316         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4317         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4318         flag_tree_combine_temps, flag_tree_ter,
4319         flag_tree_live_range_split, flag_tree_dom,
4320         flag_tree_copyrename, flag_tree_dse): Declare.
4321         (f_options): Add tree-based-profiling, tree-gvn,
4322         tree-pre, tree-ccp, tree-dce,
4323         tree-dominator-opts, tree-copyrename, tree-dse,
4324         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4325         (wrapup_global_declarations): Don't output nested inlined functions.
4326         (general_init): Call init_tree_optimization_passes.
4327         (process_options): Sorry for -ftree-based-profiling plus
4328         -ftest-coverage or -fprofile-values.
4329         * toplev.h (init_tree_optimization_passes,
4330         flag_tree_based_profiling): Declare.
4331         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4332         * tree-alias-ander.c: New file.
4333         * tree-alias-ander.h: New file.
4334         * tree-alias-common.c: New file.
4335         * tree-alias-common.h: New file.
4336         * tree-alias-type.c: New file.
4337         * tree-alias-type.h: New file.
4338         * tree-browser.c: New file.
4339         * tree-browser.def: New file.
4340         * tree-cfg.c: New file.
4341         * tree-complex.c: New file.
4342         * tree-dfa.c: New file.
4343         * tree-dump.c (dump_enable_all): New.
4344         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4345         (dump_node): Remove const from field suffix and swtch.
4346         (dump_files): Add null entry, .generic, .nested, .vcg,
4347         .xml and a match-all entry.
4348         (extra_dump_files, extra_dump_files_in_use,
4349         extra_dump_files_alloced): Declare
4350         (dump_option_value_info): Add raw, details, stats,
4351         blocks, vops, lineno, uid and all.
4352         (dump_register): New.
4353         (get_dump_file_info): New.
4354         (dump_begin): Call it.
4355         Do nothing for TDI_none.
4356         (dump_begin): Include phase number in dump filename.
4357         (dump_enable_all): New.
4358         (dump_switch_p_1): Split out from dump_switch_p.
4359         (dump_switch_p): Handle extra_dump_files.
4360         Start our scan at TDI_none + 1.
4361         If -fdump-tree-all was given, call dump_enable_all.
4362         * tree-dump.h: Include splay-tree.h.
4363         (dump_function, dump_function_to_file, dump_register):
4364         Declare.
4365         * tree-eh.c: New file.
4366         * tree-flow-inline.h: New file.
4367         * tree-flow.h: New file.
4368         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4369         * tree-inline.h (walk_tree,
4370         walk_tree_without_duplicates): Move to tree.h.
4371         (estimate_num_insns): Declare.
4372         * tree-into-ssa.c: New file.
4373         * tree-iterator.c: New file.
4374         * tree-iterator.h: New file.
4375         * tree-mudflap.c: New file.
4376         * tree-mudflap.h: New file.
4377         * tree-nested.c: New file.
4378         * tree-nomudflap.c: New file.
4379         * tree-nrv.c: New file.
4380         * tree-optimize.c (dump_flags, vars_to_rename,
4381         in_gimple_form, all_passes, pass_gimple,
4382         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4383         (execute_gimple, execute_rebuild_bind,
4384         gate_all_optimizations, execute_del_cfg,
4385         register_one_dump_file, register_dump_files, dup_pass_1,
4386         init_tree_optimization_passes, execute_todo,
4387         execute_one_pass, execute_pass_list): New.
4388         (clear_decl_rtl): Remove.
4389         (tree_rest_of_compilation): Update to use tree
4390         optimizers.
4391         * tree-outof-ssa.c: New file.
4392         * tree-pass.h: New file.
4393         * tree-phinodes.c: New file.
4394         * tree-pretty-print.c: New file.
4395         * tree-profile.c: New file.
4396         * tree-simple.c: New file.
4397         * tree-simple.h: New file.
4398         * tree-sra.c: New file.
4399         * tree-ssa-alias.c: New file.
4400         * tree-ssa-ccp.c: New file.
4401         * tree-ssa-copy.c: New file.
4402         * tree-ssa-copyrename.c: New file.
4403         * tree-ssa-dce.c: New file.
4404         * tree-ssa-dom.c: New file.
4405         * tree-ssa-dse.c: New file.
4406         * tree-ssa-forwprop.c: New file.
4407         * tree-ssa-live.c: New file.
4408         * tree-ssa-live.h: New file.
4409         * tree-ssa-loop.c: New file.
4410         * tree-ssa-operands.c: New file.
4411         * tree-ssa-operands.h: New file.
4412         * tree-ssa-phiopt.c: New file.
4413         * tree-ssa-pre.c: New file.
4414         * tree-ssa.c: New file.
4415         * tree-ssanames.c: New file.
4416         * tree-tailcall.c: New file.
4417         * tree.c: Include tree-iterator.h, basic-block.h and
4418         tree-flow.h.
4419         (tree_node_kind): Add phi_nodes and ssa names.
4420         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4421         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4422         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4423         <'c'> Set TREE_INVARIANT.
4424         (copy_node_stat): Abort if trying to copy a
4425         STATEMENT_LIST.
4426         Clear TREE_VISITED.
4427         Clear annotation field.
4428         (build_constructor): Copy TREE_INVARIANT from vals.
4429         Don't clear TREE_CONSTANT.
4430         (expr_first, expr_last, expr_length): Remove.
4431         (staticp): Pass unknown component references to the language.
4432         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4433         (skip_simple_arithmetic): Likewise.
4434         (stabilize_reference_1): Likewise.
4435         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4436         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4437         STATEMENT_LIST.
4438         (lhd_unsave_expr_now): Remove.
4439         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4440         (recompute_tree_invarant_for_addr_expr): New.
4441         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4442         Call recompute_tree_invarant_for_addr_expr.
4443         Set TREE_INVARIANT accordingly.
4444         (build2_stat): Don't handle CALL_EXPR.
4445         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4446         (build_expr_wfl): Remove.
4447         (annotate_with_file_line, annotate_with_locus): New.
4448         (simple_cst_equal): Call simple_cst_list_equal to compare
4449         CONSTRUCTOR_ELTS pointers.
4450         (iterative_hash_expr): Don't hash types associated
4451         with conversions.  Instead hash on the signedness of the
4452         toplevel object and the operand of the conversion.
4453         (dump_tree_statistics): Call ssanames_print_statistics
4454         and phinodes_print_statistics.
4455         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4456         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4457         needs_to_live_in_memory): New.
4458         (initializer_zerop): Handle VECTOR_CST.  Don't check
4459         AGGREGATE_TYPE_P for CONSTRUCTOR.
4460         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4461         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4462         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4463         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4464         (CALL_EXPR): Add another operand.
4465         (EXPR_WITH_FILE_LOCATION): Remove.
4466         (SWITCH_EXPR): Add another operand.
4467         * tree.h: Update various comments.
4468         (union tree_ann_d): Forward declare.
4469         (struct tree_common): Add fields nowarning_flag,
4470         invariant_flag and visited.
4471         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4472         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4473         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4474         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4475         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4476         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4477         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4478         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4479         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4480         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4481         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4482         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4483         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4484         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4485         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4486         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4487         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4488         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4489         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4490         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4491         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4492         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4493         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4494         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4495         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4496         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4497         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4498         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4499         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4500         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4501         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4502         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4503         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4504         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4505         TDF_UID,): Define.
4506         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4507         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4508         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4509         EXPR_WFL_SET_LINECOL): Remove.
4510         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4511         make_phi_node, init_phinodes, fini_phinodes,
4512         release_phi_node, phinodes_print_statistics,
4513         init_ssanames, fini_ssanames, make_ssa_name,
4514         release_ssa_name, ssanames_print_statistics,
4515         annotate_with_file_line, build_empty_stmt,
4516         annotate_with_locus, expr_only, categorize_ctor_elements,
4517         count_type_elements, add_var_to_bind_expr, is_essa_node,
4518         expand_stack_alloc, expand_stack_save,
4519         expand_stack_restore, add_case_node, operand_equal_p,
4520         nondestructive_fold_unary_to_constant,
4521         nondestructive_fold_binary_to_constant,
4522         fold_read_from_constant_string, int_const_binop,
4523         strip_float_extensions, simplify_builtin, c_strlen,
4524         recompute_tree_invarant_for_addr_expr,
4525         needs_to_live_in_memory, make_vector,
4526         setjmp_vars_warning, update_alignment_for_field,
4527         expand_asm_expr, asm_op_is_mem_input,
4528         containing_blocks_have_cleanups_or_stack_level,
4529         create_artificial_label, gimplify_function_tree,
4530         get_name, unshare_expr, walk_tree,
4531         walk_tree_without_duplicates, in_gimple_form): Declare.
4532         (struct tree_exp): Add fields locus and block.
4533         (struct tree_ssa_name, struct edge_def, struct
4534         tree_phi_node, struct tree_eref_common, struct
4535         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4536         union alias_var_def, struct tree_statement_list_node,
4537         struct tree_statement_list, enum operand_equal_flag): Declare.
4538         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4539         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4540         TS_STATEMENT_LIST.
4541         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4542         euse and stmt_list.
4543         (function_cannot_inline_p, uninitialized_vars_warning,
4544         save_for_inline, output_inline_function, all_cases_count,
4545         check_for_full_enumeration_handling,
4546         declare_nonlocal_label): Remove.
4547         (enum tree_dump_index): Add TDI_none, TDI_tu,
4548         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4549         * unroll.c (unroll_loop): Don't clear map->inline_target.
4550         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4551         function.
4552         * value-prof.c (value_prof_hooks): New.
4553         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4554         Move rtl-specific bits in from branch_prob.
4555         (value_profile_transformations): Rename to
4556         rtl_value_profile_transformations.
4557         (struct value_prof_hooks): New.
4558         (rtl_value_prof_hooks): New.
4559         (rtl_register_value_prof_hooks): New.
4560         (tree_find_values_to_profile): New stub.
4561         (tree_value_profile_transformations): New stub.
4562         (tree_value_prof_hooks): New stub.
4563         (tree_register_value_prof_hooks): New stub.
4564         (find_values_to_profile): New.
4565         (value_profile_transformations): New.
4566         * value-prof.h: Add multiple inclusion guard.
4567         (struct histogram_value): Change rtx fields to void *.
4568         (rtl_register_value_prof_hooks): New declaration.
4569         (tree_register_value_prof_hooks): New declaration.
4570         (find_values_to_profile): New declaration.
4571         (free_profiled_values): New declaration.
4572         (value_profile_transformations): New declaration.
4573         (struct profile_hooks): New declaration.
4574         (init_branch_prob): Declaration moved from rtl.h.
4575         (branch_prob): Declaration moved from rtl.h.
4576         (end_branch_prob): Declaration mooved from rtl.h.
4577         (tree_register_profile_hooks): New declaration.
4578         (rtl_register_profile_hooks): New declaration.
4579         (tree_profile_hooks): New declaration.
4580         (rtl_profile_hooks): New declaration.
4581         * varasm.c: Include tree-mudflap.h.
4582         (TRAMPOLINE_ALIGNMENT): Remove.
4583         (make_decl_rtl): Call mudflap_enqueue_decl.
4584         (assemble_static_space):
4585         (assemble_trampoline_template): Set and return
4586         TRAMPOLINE_ALIGNMENT.
4587         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4588         Add entry for 'tree *'.
4589         Add entry for struct edge_def *.
4590         (varray_copy): New.
4591         * varray.h (enum varray_data_enum): Add
4592         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4593         VARRAY_DATA_TREE_PTR.
4594         (union varray_data_tag): Corresponding changes.
4595         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4596         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4597         VARRAY_EDGE, VARRAY_TREE_PTR,
4598         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4599         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4600         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4601
4602         * config/*/*: Various updates for changed macros, tree
4603         codes, etc.  Check ChangeLog.tree-ssa.
4604
4605         * doc/cfg.texi: New file.
4606         * doc/tree-ssa.texi: New file.
4607         * doc/c-tree.texi: Document new codes.
4608         * doc/gccint.texi: Include new files.
4609         * doc/install.texi: Document new features.
4610         * doc/invoke.texi: Document new switches.
4611         * doc/passes.texi: Document new passes.
4612         * doc/rtl.texi: Update changed RTL codes.
4613         * doc/sourcebuild.texi: Update build instructions.
4614         * doc/standards.texi: Document Fortran changes.
4615         * doc/tm.texi: Update.
4616
4617 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4618
4619         Replace several arrays with a struct of arrays.
4620         * combine.c (struct reg_stat): New.
4621         (init_reg_last_arrays): Renamed to...
4622         (init_reg_last): ...this.  Callers adjusted.
4623         (reg_stat): New.
4624         (combine_instructions): Allocate it and use it.
4625         (reg_last_death, reg_last_set, reg_last_set_value,
4626         reg_last_set_label, reg_last_set_table_tick,
4627         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4628         reg_last_set_mode, reg_last_set_nonzero_bits,
4629         reg_last_set_sign_bit_copies): Replace throughout
4630         with items of reg_stat.
4631
4632 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4633
4634         PR optimization/15100
4635         * combine.c (distribute_notes): Don't create a dangling
4636         REG_LIBCALL/REG_RETVAL note.
4637
4638 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4639
4640         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4641
4642         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4643         negv2si2.
4644
4645 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4646
4647         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4648
4649 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4650
4651         * doc/gty.texi (GTY Options): Clarify example.
4652
4653 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4654
4655         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4656         Add const qualifier to altivec vector type if one is needed.
4657
4658 2004-05-11  Paul Brook  <paul@codesourcery.com>
4659
4660         * flags.h (flag_short_enums): Update comment.
4661         * opts.c (decode_options): Set flag_short_enums to 2.
4662         * toplev.c (flag_short_enums): Update comment.
4663         (process_options): Call default_short_enums target hook.
4664
4665 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4666
4667         PR target/14063
4668         * config/rs6000/altivec.md (altivec_dssall):
4669         Change to unspec_volatile.
4670         (altivec_dss): Likewise.
4671
4672 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4673
4674         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4675         vnor.
4676         ("one_cmplv8hi2"): Same.
4677         ("one_cmplv4si2"): Same.
4678
4679 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4680
4681         PR target/15130
4682         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4683         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4684         into account.  Compute the correct number of general registers
4685         for the return value.  Generate a special push/pop sequence when
4686         failing to get a temporary register for non SHmedia epilogue.
4687         (sh_expand_epilogue): Add an argument to show whether it's for
4688         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4689         -1 if needed.
4690         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4691         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4692         with 1.
4693         (epilogue): Call sh_expand_epilogue with 0.
4694
4695 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4696
4697         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4698         goto a cleanup label.  After the cleanup, free the allocated memory.
4699
4700 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4701
4702         * config/rs6000/altivec.h (vec_sld): Add overloads for
4703         argument/return types of 'vector bool int', 'vector bool short'
4704         and 'vector bool char'.
4705
4706 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4707
4708         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4709         nested function.
4710
4711 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4712
4713         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4714         treating missing ones as "".
4715         * config/mips/mips.md: Remove constraints from match_operands and
4716         match_scratches if they appear in define_expands (except reload*),
4717         define_peephole2s, define_splits or attribute specifications.
4718         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4719         constraint strings.
4720
4721 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4722
4723         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4724         AltiVec vectors.
4725         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4726         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4727         byte boundary.  Remove useless code.  Add function comment.
4728         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4729         call to where it belongs.
4730         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4731         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4732         (rs6000_va_arg): Adjust for AltiVec change.
4733
4734 2004-05-10  Paul Brook  <paul@codesourcery.com>
4735
4736         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4737         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4738         (TARGET_DOUBLEWORD_ALIGN): Use it.
4739         (WCHAR_TYPE): Define.
4740         (WCHAR_SIZE_TYPE): Define.
4741         (SIZE_TYPE): Define.
4742
4743 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4744
4745         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4746         when size is 8 bytes.
4747         (function_arg_advance): Account for stack space used by AltiVec
4748         args when -mabi=altivec.  Simplify alignment calculations.  For
4749         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4750         (function_arg): Similarly.
4751         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4752         not AltiVec ABI.
4753         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4754         Correct alignment, and align before testing reg count.  Remove
4755         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4756         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4757         TARGET_FPRS here..
4758         (rs6000_function_value): .. not here before call.
4759
4760 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4761
4762         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4763
4764 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4765
4766         PR 15007
4767         * c-decl.c (current_file_decl): Rename to all_translation_units,
4768         adjust comment.
4769         (pop_scope): If popping file_scope, construct a
4770         TRANSLATION_UNIT_DECL and make it the context of all the
4771         symbols in the scope.
4772         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4773         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4774         anything to current_file_decl.
4775         (pushdecl_top_level): Likewise.
4776         (store_parm_decls_newstyle): Adjust check for nested function.
4777         (c_write_global_declarations): Update for renamed variable.
4778
4779 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4780
4781         * config/rs6000/rs6000-protos.h
4782         (rs6000_conditional_register_usage): Protoize.
4783
4784         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4785
4786         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4787         function.
4788
4789 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4790
4791         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4792         where op is a comparison operator and C1 and C2 are integer constants
4793         into a range check.
4794         (fold): Call fold_div_compare.
4795
4796 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4797
4798         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4799         problems with earlier versions of the GNU compiler.
4800
4801 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4802
4803         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4804         Declare.
4805
4806         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4807         (rs6000_hard_regno_mode_ok): New.
4808         (rs6000_init_hard_regno_mode_ok): New.
4809         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4810
4811         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4812         result.
4813
4814 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4815
4816         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4817         define as macros #ifdef __APPLE_ALTIVEC__.
4818
4819 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4820
4821         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4822         Generate appropriate parallels for vector arguments
4823         passed to vararg functions. (function_arg): make the call
4824         to rs6000_mixed_function_arg for vector args as needed.
4825
4826 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4827
4828         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4829         EABI_FLOAT_VARARGS_P.
4830
4831 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4832
4833         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4834         * config/mips/mips.c (override_options): Disable branch likely
4835         instructions if TUNE_MIPS5500.
4836
4837 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4838
4839         * config/mips/mips.c (override_options): Allow the hi and lo registers
4840         to store any integral mode, not just MODE_INTs.
4841
4842 2004-05-07  Paul Brook  <paul@codesourcery.com>
4843
4844         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4845         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4846         (TARGET_DOUBLEWORD_ALIGN): Use it.
4847         (WCHAR_TYPE): Define.
4848         (WCHAR_SIZE_TYPE): Define.
4849         (SIZE_TYPE): Define.
4850
4851 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4852
4853         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4854         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4855
4856 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4857
4858         * loop-doloop.c (doloop_valid_p): Make sure that body
4859         gets freed.
4860
4861 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4862
4863         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4864         declaration.
4865         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4866         (sparc_skip_caller_unimp): New global variable.
4867         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4868         Use it instead of SKIP_CALLERS_UNIMP_P.
4869         * config/sparc/sparc.md (call expander): Add sanity check.
4870         (call_address_struct_value_sp32): Re-sync with expander.
4871         (call_symbolic_struct_value_sp32): Likewise.
4872         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4873         of custom predicate.
4874
4875 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4876
4877         PR c++/14962
4878         * c-pragma.c (handle_pragma_redefine_extname): Only change
4879         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4880
4881 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4882
4883         * optabs.h (enum optab_index): Add new OTI_log1p.
4884         (log1p_optab): Define corresponding macro.
4885         * optabs.c (init_optabs): Initialize log1p_optab.
4886         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4887         patterns.
4888         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4889         using log1p_optab.
4890         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4891         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4892
4893         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4894
4895         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4896         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4897         Prototype here.
4898         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4899         x87's fyl2xp1 instruction.
4900         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4901         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4902         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4903         log1p  and log1pl built-ins as inline x87 intrinsics.
4904
4905 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4906
4907         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4908         * config/arm/freebsd.h: Likewise.
4909         * config/ia64/freebsd.h: Likewise.
4910         * config/sparc/freebsd.h: Likewise.
4911
4912 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4913
4914         PR optimization/15296
4915         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4916         getting last consecutive label at a branch.
4917         (relax_delay_slots): Similar, near top of loop.
4918
4919 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4920
4921         PR target/15202
4922         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4923         register to general register.
4924
4925 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4926
4927         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4928         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4929         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4930         (STACK_BOUNDARY): Delete.
4931
4932 2004-05-06  Stuart Hastings  <stuart@apple.com>
4933
4934         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4935         mistakenly clobbered by 1.423.
4936
4937 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4938
4939         * doc/invoke.texi: Document -mvr4130-align.
4940         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4941         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4942         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4943         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4944         * config/mips/mips.md: Include sched-int.h.
4945         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4946         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4947         (override_options): Enable -mvr4130-align at -O3 and above.
4948         (mips_sim_insn): New variable.
4949         (mips_sim): New structure.
4950         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4951         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4952         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4953         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4954         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4955         (mips_reorg): Call vr4130_align_insns.
4956         (vr4130_last_insn): New variable.
4957         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4958         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4959         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4960         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4961         (mips_use_dfa_pipeline_interface): Return true for the same.
4962         * config/mips/4130.md: New file.
4963         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4964         "mult;mflo" into "mtlo;macc".
4965         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4966         target of maccs.
4967         (*msac_using_macc): New pattern.
4968
4969 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4970
4971         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4972         (ir_vr55_hilo): Split into...
4973         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4974         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4975         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4976         Add various multiplication bypasses.
4977         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4978         multiplication.
4979
4980 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4981
4982         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4983         attribute to "XF".
4984
4985 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4986
4987         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4988         (fmod_optab, drem_optab): Define corresponding macros.
4989         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4990         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4991         using fmod?f3 and drem?f3 patterns.
4992         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4993         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4994         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4995         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4996         flag_unsafe_math_optimizations is set.
4997
4998         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4999         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5000
5001         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5002         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5003         Prototype here.
5004         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5005         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5006         fprem and fprem1 instructions.
5007         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5008         Rename insn definition to x86_fnstsw_1.
5009         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5010         x87 instructions.
5011         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5012         and fmodl built-ins as inline x87 intrinsics.
5013         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5014         and dreml built-ins as inline x87 intrinsics.
5015
5016 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5017
5018         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5019
5020 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5021
5022         PR driver/9822
5023         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5024
5025 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5026
5027         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5028         representation.
5029
5030 2004-05-06  Paul Brook  <paul@codesourcery.com>
5031
5032         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5033         (arm_coproc_mem_operand): ... To this.
5034         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5035         (arm_legitimate_index_p): Ditto.
5036         (vfp_mem_operand): Rename ...
5037         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5038         (vfp_secondary_reload_class): Use it.
5039         (output_move_double): Use doubleword load/store instructions.
5040         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5041         * config/arm/arm.h (TARGET_LDRD): Define.
5042         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5043         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5044         New splitter for invalid doubleword loads.
5045         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5046         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5047         * doc/md.texi: Document Uy constraint.
5048
5049 2004-05-05  Jan Hubicka  <jh@suse.cz>
5050
5051         PR opt/14980
5052         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5053         inline clones.
5054
5055 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5056
5057         PR target/15290
5058         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5059         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5060
5061 2004-05-05  Mike Stump  <mrs@apple.com>
5062
5063         * config/darwin-c.c (add_framework): Copy the directory name as it
5064         can be freed later.  Also, ensure we always allocate enough room
5065         for the cached framework information.
5066         (find_subframework_header): Keep track of the directory where the
5067         subframework header was found.
5068         (framework_construct_pathname): Speed up by not trying to re-add a
5069         framework.
5070         * cppfiles.c (search_path_exhausted): Arrange for the missing
5071         header callback to be able to set the directory where the header
5072         was found.
5073         (cpp_get_dir): Add.
5074         * cpplib.h (missing_header_cb): Add a parameter.
5075         (cpp_get_dir): Add.
5076
5077 2004-05-03  Mike Stump  <mrs@apple.com>
5078
5079         * doc/invoke.texi (Directory Options): Document -iquote.
5080         * doc/cpp.texi: Likewise.
5081         * doc/cppopts.texi: Likewise.
5082         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5083         (c_common_handle_option): Likewise.
5084         * c.opt (iquote): Add.
5085         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5086         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5087
5088         * c-opts.c (case OPT_I): Deprecate -I- support.
5089         * doc/invoke.texi: Likewise.
5090         * doc/cpp.texi: Likewise.
5091         * doc/cppopts.texi: Likewise.
5092
5093 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5094
5095         * basic-block.h (free_basic_block_vars): Update prototype.
5096         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5097         argument.
5098         (life_analysis): Update call.
5099         * ifcvt.c (if_convert): Likewise.
5100         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5101         * passes.c (rest_of_handle_final): Likewise.
5102         (rest_of_compilation): Likewise.
5103         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5104
5105         * emit-rtl.c (next_real_insn): Use INSN_P.
5106         (prev_real_insn): Likewise.
5107
5108 2004-05-05  Eric Christopher  <echristo@redhat.com>
5109
5110         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5111         representation.
5112
5113 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5114
5115         * config/rs6000/rs6000.c (build_opaque_vector_type):
5116         New function.
5117         (rs6000_init_builtins): Use it.
5118
5119 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5120
5121         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5122         (func_table): Change type from char ** to vms_func_ref.
5123         (write_rtnbeg):  Update to reflect func_table change.  Use
5124         fde->funcdef_number instead of rtnnum in output.
5125         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5126
5127 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5128             Richard Henderson  <rth@redhat.com>
5129
5130         PR target/14899
5131
5132         * c-common.c (vector_types_convertible_p): New function.
5133         * c-typeck.c (comptypes): Recurse on vector types.
5134         (convert_for_assignment): Use vector_types_convertible_p.
5135         (digest_init): Use vector_types_convertible_p to check
5136         validness of constant vector initializers; otherwise treat
5137         them as scalars.
5138         * tree.c (make_or_reuse_type): New.
5139         (build_common_tree_nodes): Use it.
5140         * cp/call.c (standard_conversion): Likewise.
5141         * cp/typeck.c (comptypes): Recurse on vector types.
5142         (convert_for_assignment): Use vector_types_convertible_p.
5143
5144 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5145
5146         * config/mips/mips.c (override_options): Default to no
5147         generation of branch-likely operations when tuning for
5148         CPUs where they tend to have a negative performance impact
5149         (e.g., SB-1).
5150
5151 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5152
5153         * expr.c (store_constructor_field): Don't call store_constructor
5154         if bitsize is not a multiple of a byte.
5155
5156 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5157
5158         * reload1.c (inherit_piecemeal_p): New function.
5159         (emit_reload_insns): When reloading a group of hard registers, use
5160         inherit_piecemeal_p to decide whether the values of individual hard
5161         registers can be inherited.
5162
5163 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5164
5165         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5166         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5167         * config/t-linux (LIB2ADDEHDEP): Likewise.
5168
5169 2004-05-04  Paul Brook  <paul@codesourcery.com>
5170
5171         * config/arm/crti.asm: Push an even number of registers.
5172         * config/arm/crtn.asm: And restore them.  Load via sp.
5173
5174 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5175
5176         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5177         Collect overhead information.
5178         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5179         parameter and pass it through.
5180         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5181         MEM_STAT_DECL parameter and pass it through.
5182         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5183         MEM_STAT_DECL parameter and pass it through.
5184
5185 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5186
5187         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5188
5189         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5190
5191         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5192         rs6000_hard_regno_nregs.
5193
5194 2004-05-03  Eric Christopher  <echristo@redhat.com>
5195
5196         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5197         prologue insn instead of setting up call.
5198         (s390_emit_epilogue): Ditto.
5199         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5200         (define_constants): Add numbers for above patterns.
5201
5202 2004-05-03  Eric Christopher  <echristo@redhat.com>
5203
5204         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5205         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5206         * config/s390/s390-protos.h: Prototype.
5207
5208 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5209
5210         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5211         assignment.
5212
5213 2004-05-03  Eric Christopher  <echristo@redhat.com>
5214
5215         * config/mips/mips.md: Fix branch length attribute definition.
5216
5217 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5218
5219         * config.gcc: Remove --enable-altivec support.
5220
5221         * config/rs6000/altivec-defs.h: Remove.
5222
5223 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5224
5225         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5226         * fixinc/fixincl.x: Regenerate.
5227
5228 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5229
5230         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5231         definition.
5232         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5233         float_truncate insn.
5234         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5235         (logb?f2): Reimplement expanders with float_truncate insn.
5236
5237 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5238
5239         PR 14718
5240         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5241         force_type_die for CONST_DECL.
5242
5243 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5244             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5245
5246         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5247         tm-dwarf2.h to tm_file.
5248         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5249         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5250         (ASM_DEBUG_SPEC): Delete.
5251
5252 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5253
5254         * optabs.h (enum optab_index): Add new OTI_expm1.
5255         (expm1_optab): Define corresponding macro.
5256         * optabs.c (init_optabs): Initialize expm1_optab.
5257         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5258         patterns.
5259         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5260         using expm1_optab.
5261         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5262         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5263
5264         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5265         to implement expm1, expm1f and expm1l built-ins as inline x87
5266         intrinsics.
5267
5268 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5269
5270         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5271         * config/frv/frv.md (*return_true, *return_false): New patterns.
5272
5273 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5274
5275         * rtl.h (PHI_NODE_P): Remove.
5276
5277 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5278
5279         PR middle-end/14988
5280         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5281         when passed -2 as 'align'.
5282         (put_var_into_stack): Use 'bool' as the type for the three local
5283         predicates.  Adjust calls to put_reg_into_stack.
5284         When passed a CONCAT, instruct put_reg_into_stack to use
5285         a consecutive stack slot for the second part.
5286         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5287         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5288         parameters.  Retrieve the register mode from 'reg'.
5289         When consecutive_p is true, instruct assign_stack_local_1 to use
5290         BITS_PER_UNIT alignment.
5291         (put_addressof_into_stack): Use 'bool' as the type for the two
5292         local predicates. Adjust call to put_reg_into_stack.
5293
5294 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5295
5296         * fold-const.c (fold_convert_const, fold): Add missing
5297         FIX_ROUND_EXPR case.
5298
5299 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5300
5301         * configure.ac (FLEX, BISON): Only use tools from the build tree
5302         if build equals host.
5303         * configure: Rebuilt.
5304
5305         * config/frv/frv-protos.h (frv_expand_epilogue,
5306         frv_expand_fdpic_call): Add bool argument.
5307         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5308         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5309         (frv_expand_epilogue): Use new argument to decide whether to emit
5310         return instruction or copy the return address to LR.
5311         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5312         sibcalls.
5313         (sibcall_operand): New.
5314         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5315         PLUS nor LABEL_REF.  Add sibcall_operand.
5316         * config/frv/frv.md (call, call_value): Pass false to
5317         frv_expand_fdpic_call.
5318         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5319         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5320         sibcall_value_internal, sibcall_value_fdpicdi): New.
5321         (return_unsigned_true, return_unsigned_false): New.
5322         (epilogue): Adjust call to frv_expand_epilogue.
5323         (sibcall_epilogue): New.
5324
5325         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5326         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5327         before redefining them.
5328
5329 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5330
5331         * builtins.c (fold_fixed_mathfn): New function.
5332         (fold_builtin_lround, fold_builtin): Use it.
5333
5334 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5335
5336         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5337         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5338
5339 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5340
5341         * config/cris/cris.h: Revert my "fix comment typos" patch.
5342
5343 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5344
5345         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5346
5347 2004-05-01  Falk Hueffner  <falk@debian.org>
5348
5349         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5350         builtin_insll): Disallow 0 as first input operand.
5351
5352 2004-05-01  Falk Hueffner  <falk@debian.org>
5353
5354         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5355
5356 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5357
5358         PR middle-end/15054
5359         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5360         on a TARGET_EXPR temp.
5361         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5362         TARGET_EXPR temp slots.
5363
5364 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5365
5366         * simplify-rtx.c (simplify_ternary_operation): When
5367         converting an IF_THEN_ELSE to a relational op, return
5368         correct mode.
5369
5370 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5371
5372         * builtins.c (fold_builtin_round): Fix comment typo.
5373         (fold_builtin_lround): New function.
5374         (fold_builtin): Use it.
5375
5376 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5377
5378         PR target/11608
5379         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5380         more like the one in config/dbxelf.h.
5381
5382 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5383
5384         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5385         and adjust definition accordingly.
5386         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5387         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5388         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5389         VECTOR_TYPE.
5390
5391 2004-04-30  Jason Merrill  <jason@redhat.com>
5392
5393         PR c++/14587
5394         * config/i386/winnt.c (associated_type): Look for attributes on
5395         the TYPE_MAIN_VARIANT of *this.
5396         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5397         apply the attributes to the variants.
5398
5399 2004-04-30  Paul Brook  <paul@codesourcery.com>
5400
5401         * config.gcc: Simplify arm --with-{cpu,tune} test.
5402         * config/arm/arm-cores.def: Document whitespace restrictions.
5403
5404 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5405
5406         PR other/1963
5407         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5408
5409 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5410             DJ Delorie  <dj@redhat.com>
5411
5412         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5413         (DWARF2_DEBUGGING_INFO): Define to enable.
5414         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5415         DWARF2.
5416         * configure.ac (Target-specific assembler checks)
5417         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5418         relocs.
5419         * configure: Regenerate.
5420         * config.in: Likewise.
5421
5422         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5423         (ASM_OUPUT_DWARF_OFFSET): Define.
5424
5425 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5426
5427         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5428         (s390_emit_call): New function prototype added.
5429         (s390_tls_get_offset): Function removed.
5430         * config/s390/s390.c (s390_function_ok_for_sibcall,
5431         s390_call_saved_register_used_p): New functions.
5432         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5433         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5434         (s390_emit_tls_call_insn): New function.
5435         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5436         emit_call_insn.
5437         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5438         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5439         added.
5440         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5441         register number used to hold the target address for sibcalls.
5442         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5443         New expanders.
5444         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5445         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5446         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5447         Expanders removed.
5448         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5449         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5450         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5451         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5452         new parameter.
5453
5454 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5455
5456         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5457         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5458         reg-stack.c, varasm.c, config/alpha/ev4.md,
5459         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5460         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5461         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5462         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5463         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5464         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5465         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5466         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5467         comment typos.
5468
5469 2004-04-30  Paul Brook  <paul@codesourcery.com>
5470
5471         * config.gcc: Default ep9312 to hard-float.
5472         * config/arm/arm-cores.def: Add ARCH field.
5473         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5474         (arm_arch_cirrus): New variable.
5475         (all_cores): Set and use arch.
5476         (all_architectures): Ditto.
5477         (arm_arch_name): New variable.
5478         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5479         Set and use arm_arch_cirrus.
5480         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5481         (enum processor_type): Update ARM_CORE define.
5482         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5483         (CPP_SPEC): Remove %(cpp_cpu_arch).
5484         (CPP_ARCH_DEFAULT_SPEC): Remove.
5485         (CPP_CPU_ARCH_SPEC): Remove.
5486         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5487         (FPUTYPE_DEFAULT): Don't define here.
5488
5489 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5490
5491         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5492         updates too.
5493
5494 2004-04-30  Paul Brook  <paul@codesourcery.com>
5495
5496         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5497
5498 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5499
5500         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5501         vec_sububs.
5502         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5503         duplicates.
5504
5505 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5506
5507         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5508         atan2?f3 expanders.
5509
5510 2004-04-29  Nick Clifton  <nickc@redhat.com>
5511
5512         Bug 14093
5513         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5514         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5515         Delete static from definition.
5516         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5517
5518 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5519
5520         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5521         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5522         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5523         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5524
5525 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5526
5527         * commom.opt (Wfatal-errors): Add it.
5528         * diagnostic.c (flag_fatal_errors): Define it.
5529         (diagnostic_action_after_output): Check for flag_fatal_errors.
5530         * flags.h (flag_fatal_errors): Declare it.
5531         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5532         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5533
5534 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5535
5536         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5537         blocks which have kill flag set.
5538
5539 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5540
5541         * configure.ac (--with-as): Abort if user-supplied assembler
5542         cannot be executed.
5543         (--with-ld): Likewise for the linker.
5544         * configure: Regenerate.
5545
5546 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5547
5548         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5549         isn't NULL before using it.
5550
5551 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5552
5553         PR target/15189
5554         * config/mips/mips.md (load_df_low): Use default length.
5555         (load_df_high, store_df_high): Likewise.
5556
5557 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5558
5559         * config/mips/mips.md, config/mips/sb1.md,
5560         config/rs6000/rs6000.c: Fix comment typos.
5561
5562 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5563
5564         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5565         Fix comment typos.
5566
5567 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5568
5569         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5570         (delete_if_ordinary): Use above macro.
5571         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5572         Update copyright.
5573         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5574
5575 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5576
5577         * c-decl.c (get_parm_info): Use the correct tag keywords when
5578         warning about type declarations in prototypes.
5579
5580 2004-04-29  Paul Brook  <paul@codesourcery.com>
5581
5582         * config.gcc: Pull list of cores from arm-cores.def.
5583
5584 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5585
5586         * combine.c (combine_simplify_rtx): Adjust call to use
5587         simplify_relational_operation.  Do not use SELECT_CC_MODE
5588         when a comparison already has a MODE_CC mode.
5589
5590 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5591
5592         (simplify_set): simplify_relational_operation may now
5593         return another relational expression.
5594         * cse.c (fold_rtx): simplify_relational_operation now
5595         takes of computing the comparison mode.
5596         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5597         remove dead code.
5598         (do_compare_rtx_and_jump): Likewise.
5599         * integrate.c (subst_constants): simplify_relational_operation
5600         may now return another relational expression.
5601         * simplify-rtx.c (simplify_gen_relational): Move most code to
5602         the new simplify_relational_operation and
5603         simplify_relational_operation_1 functions.
5604         (simplify_relational_operation): Rewritten.
5605         (simplify_relational_operation_1): New function.
5606         (simplify_ternary_operation): simplify_relational_operation
5607         may now return another relational expression.
5608         (simplify_rtx): Remove unnecessary temp variable.
5609
5610 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5611
5612         * reg-stack.c (swap_to_top): New function.
5613         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5614         swap_to_top().
5615         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5616         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5617         UNSPEC_FSCALE_EXP.
5618
5619         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5620         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5621         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5622         x87's fscale insn.
5623         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5624         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5625         patterns.
5626
5627 2004-04-28  Serge Belyshev  <1319@bot.ru>
5628
5629         PR 14944
5630         * coverage.c (read_counts_file): Fix usage of warning () call.
5631         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5632
5633 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5634
5635         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5636         options with "-" in the option index.
5637         (SPARC Options): Likewise.
5638         (M32R/D Options): Likewise.
5639
5640 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5641
5642         * convert.c (convert_to_integer): Convert (long)round -> lround,
5643         etc.
5644
5645 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5646
5647         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5648         Return false if we do not have fp register.
5649         (addrs_ok_for_quad_peep): Rename to ...
5650         (mems_ok_for_quad_peep): this.
5651         Add check for volatile memory.
5652         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5653         Rename to ...
5654         (mems_ok_for_quad_peep): this.
5655         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5656         to peephole2's.
5657         (lfq_power2): New instruction.
5658         (stfq_power2): Likewise.
5659
5660 2004-04-28  Jan Hubicka  <jh@suse.cz>
5661
5662         PR c/15004
5663         * function.c (do_warn_unused_parameter): Break out form ...
5664         (expand_function_end): ... here; warn only when not using cgraphunit.
5665         * function.h (do_warn_unused_parameter): Declare.
5666         * cgraphunit.c: Include function.h.
5667         (cgraph_finalize_function): Do unused parameter warning.
5668         * Makefile.in (cgraphunit.o): Depend on function.h
5669
5670 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5671
5672         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5673         calling install-info on $(DESTDIR)$(infodir)/dir already being
5674         present.
5675
5676 2004-04-28  Paul Brook  <paul@codesourcery.com>
5677
5678         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5679
5680 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5681
5682         * gcse.c (find_moveable_store): Do not accept store insns with
5683         REG_EH_REGION note.
5684
5685 2004-04-28  Paul Brook  <paul@codesourcery.com>
5686
5687         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5688         * function.c (assign_temp): Ditto.
5689         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5690
5691 2004-04-28  Paul Brook  <paul@codesourcery.com>
5692
5693         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5694
5695 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5696
5697         * var-tracking.c (variable_different_p): Add a parameter
5698         compare_current_location, compare current location of variable parts
5699         if it is true.
5700         (dataflow_set_different_1): Pass compare_current_location == false.
5701         (dataflow_set_different_2): Pass compare_current_location == false.
5702         (emit_notes_for_differences_1): Pass compare_current_location == true.
5703
5704 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5705
5706         * config/s390/s390.md ("casesi"): Mark jump table access as
5707         non-trapping and unchanging.
5708
5709 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5710
5711         PR debug/14829
5712         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5713         callers.
5714         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5715         number for indexing hard_regno_nregs array.
5716
5717 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5718
5719         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5720         * config/darwin-crt2.c: Only have contents on __ppc__.
5721
5722 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5723
5724         * config/xtensa/xtensa.c (call_insn_operand): Check
5725         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5726         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5727         * config/xtensa/xtensa.md (call, call_value): Likewise.
5728
5729 2004-04-27  Wu Yongwei  <adah@sh163.net>
5730
5731         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5732         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5733         (__gthread_mutex_init_function): Replace CreateMutex with
5734         initialization of custom mutex using CreateSemaphore.
5735         (__gthread_mutex_lock): Use InterlockedIncrement.
5736         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5737         (__gthread_mutex_unlock): Use InterlockedDecrement and
5738         ReleaseSemaphore to unlock
5739         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5740         __gthread_mutex_lock, __gthread_mutex_trylock,
5741         __gthread_mutex_unlock): Adjust to match inline versions in
5742         gthr-win32.h.
5743
5744 2004-04-27  Paul Brook  <paul@codesourcery.com>
5745
5746         * config/arm/arm.c (arm_promote_prototypes): New function.
5747         (TARGET_PROMOTE_PROTOTYPES): Use it.
5748
5749 2004-04-27  Paul Brook  <paul@codesourcery.com>
5750
5751         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5752
5753 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5754
5755         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5756         correctly output .pdesc directive before .end.
5757
5758 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5759
5760         Bug 14927
5761         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5762         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5763
5764 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5765
5766         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5767         * config/pa/pa-hpux10.h: Likewise.
5768         * config/pa/pa-hpux11.h: Likewise.
5769
5770 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5771
5772         * doc/invoke.texi (Overall Options): Document default for -o
5773         for PCH files.
5774
5775 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5776
5777         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5778         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5779         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5780
5781 2004-04-26  Paul Brook  <paul@codesourcery.com>
5782
5783         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5784
5785 2004-04-26  Paul Brook  <paul@codesourcery.com>
5786
5787         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5788
5789 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5790
5791         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5792         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5793         X % -1 as 0.
5794
5795 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5796
5797         PR bootstrap/15141
5798         * except.c (connect_post_landing_pads): Delete insns after the
5799         barrier when generating a unwind_resume_libfunc call.
5800
5801 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5802
5803         PR/c++ 15119
5804         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5805         for TARGET_EXPR.
5806
5807 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5808
5809         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5810         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5811         inhibit_libc is defined.
5812
5813 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5814
5815         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5816         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5817         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5818         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5819         (mips_adjust_cost): Move later in file, next to other sched hooks.
5820         (mips_macc_chains_last_hilo): New variable.
5821         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5822         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5823         * config/mips/mips.md (may_clobber_hilo): New attribute.
5824
5825 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5826             Bruce Korb  <bkorb@gnu.org>
5827
5828         * fixinc/inclhack.def (aix_syswait_2): New fix.
5829         * fixinc/fixincl.x: Regenerate.
5830         * fixinc/tests/base/sys/wait.h: Update for new test.
5831
5832 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5833
5834         PR target/14960
5835         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5836         to non_fixed_size, and leave out fixed_size from the sum.
5837         (generate_set_vrsave): Correct clobbers.
5838         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5839         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5840         (rs6000_libcall_value): Likewise.
5841         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5842         (FUNCTION_ARG_REGNO_P): Likewise.
5843
5844 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5845
5846         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5847         is a CONST_INT.
5848         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5849         with NARROW_OP1 instead of OP1.
5850
5851 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5852
5853         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5854         and __s390x__ hosts.
5855
5856 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5857
5858         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5859         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5860         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5861         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5862         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5863         * builtins.c (expand_builtin_fork_or_exec): New.
5864         (expand_builtin): Call it.
5865         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5866         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5867         * c-common.c (PID_TYPE): New macro.
5868         (c_common_nodes_and_builtins): Initialize pid_type_node.
5869         * calls.c (special_function_p): Do not handle fork and exec.
5870         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5871         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5872         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5873         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5874         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5875         * tree.h (enum tree_index): Add TI_PID_TYPE.
5876         (pid_type_node): New macro.
5877         (ECF_FORK_OR_EXEC): Removed.
5878
5879 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5880
5881         PR optimization/13985
5882         * cfgloopmanip.c (fix_loop_placements): New prototype.
5883         Call fix_bb_placements on the preheader of loops that have
5884         been reparented.
5885         (remove_path): Adjust call to fix_loop_placements.
5886
5887 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5888
5889         * config/darwin7.h: New file.
5890         * config.gcc (*-*-darwin*): Add darwin7.h if the
5891         version is greater than 6.
5892         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5893         (MATH_LIBRARY): Wrap in ifdefs.
5894
5895 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5896
5897         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5898         loading iWMMXt registers with a frame pointer.  Use post-increment
5899         without a frame pointer.
5900         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5901
5902 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5903
5904         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5905         mode" rather than "-funit-at-a-time" since -O2 enables it
5906         without requiring -f* options.  Refer to -fprofile-generate and
5907         -fprofile-use correctly.  Move -funit-at-a-time among options
5908         enabled by -O.  Add information about unit-at-a-time caveats.
5909
5910 2004-04-22  Per Bothner  <per@bothner.com>
5911
5912         * line-map.h (struct line_maps):  New field highest_line.
5913         (linemap_position_for_column):  Make non-inline function.
5914         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5915         * line-map.c (linemap_init):  Clear highest_line field.
5916         (linemap_add):  Set highest_line field.
5917         (linemap_line_start):  Minor optimization - use highest_line field.
5918         Reduce maximum column hint to 10000.  Update highest_line field.
5919         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5920         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5921         line_table->highest_line.
5922         (saved_line):  Remove unused field.
5923         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5924         Use  line_table's highest_line field instead of cpp_reader's line.
5925         * cpplib.c (start_directive):  Likewise use highest_line field.
5926         (do_line, do_linemarker):  Likewise just use newest map.
5927         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5928         * cpperror.c (cpp_error):  Likewise use highest_line field.
5929         * cppfiles.c (open_file_failed:  Likewise.
5930         (cpp_make_system_header):  Likewise use newest map and highest_line.
5931         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5932         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5933         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5934         _cpp_lex_direct):  Likewise use highest_line.
5935         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5936         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5937         and use newest map.
5938         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5939         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5940         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5941
5942 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5943
5944         PR bootstrap/14992
5945         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5946         * config/linux.h (USE_LD_AS_NEEDED): Define.
5947         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5948         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5949         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5950         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5951         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5952         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5953         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5954
5955 2004-04-22  Per Bothner  <per@bothner.com>
5956
5957         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5958         Fixes PR preprocessor/15067.
5959
5960 2004-04-23  Andreas Schwab  <schwab@suse.de>
5961
5962         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5963         avoid aliasing warning.
5964
5965 2004-04-22  Jan Hubicka  <jh@suse.cz>
5966             Mostafa Hagog <mustafa@il.ibm.com>
5967
5968       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5969       * cfgloopanal.c (expected_loop_iterations): Change the return value
5970
5971 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5972
5973         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5974         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5975         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5976         traces.
5977
5978 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5979
5980         Revert
5981         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5982
5983                 * var-tracking.c (variable_part_different_p): Variable parts
5984                 differ when the most recent locations differ.
5985
5986 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5987
5988         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5989         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5990         (embedded_pic_offset): Delete.
5991         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5992         MASK_* constants.
5993         (TARGET_EMBEDDED_PIC): Delete.
5994         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5995         (ASM_SPEC): Remove -membedded-pic.
5996         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5997         (ASM_OUTPUT_CASE_LABEL): Likewise.
5998         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5999         * config/mips/windiss.h (ASM_SPEC): Likewise.
6000         * config/mips/mips.c (struct machine_function): Remove
6001         embedded_pic_fnaddr_rtx.
6002         (TARGET_ENCODE_SECTION_INFO): Remove override.
6003         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6004         (override_options): Remove -membedded-pic handling.
6005         (print_operand): Remove handling of '%S'.
6006         (mips_select_section: Remove -membedded-pic handling.
6007         (mips_encode_section_info): Delete.
6008         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6009         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6010         -membedded-pic handling.
6011         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6012
6013 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6014
6015         * var-tracking.c (frame_base_decl): Remove useless GTY.
6016
6017 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6018
6019         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6020         user wants altivec and e500 instructions.
6021
6022 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6023
6024         PR target/14813
6025         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6026         in .init_array section to ...
6027         * config/ia64/crtbegin.asm: Here.
6028
6029         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6030         and hidden if HAVE_INITFINI_ARRAY is defined.
6031
6032 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6033
6034         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6035         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6036         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6037         (fp_register_operand, lo_operand): New.
6038         (mips_rtx_costs): Add TUNE_SB1 support.
6039         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6040         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6041         (mips_multipass_dfa_lookahead): New.
6042         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6043         TUNE_SB1): New.
6044         (TARGET_SWITCHES): Add -mfp-exceptions support.
6045         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6046         (BRANCH_COST): Fix whitespace.
6047         * config/mips/mips.md: Include sb1.md.
6048         * config/mips/sb1.md: New file.
6049         * doc/invoke.texi: Document -mfp-exceptions.
6050
6051         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6052         comment.
6053         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6054         (fixincl.o-warn): Delete.
6055
6056 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6057
6058         * config/rs6000/rs6000 (print_operand) ['z']:
6059         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6060
6061 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6062
6063         * config.gcc: Support --with-arch=iwmmxt for ARM.
6064
6065 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6066
6067         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6068         in two more places; remove unneeded force_reg
6069
6070 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6071
6072         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6073         for TARGET_MACHO.
6074         (print_operand): For TARGET_MACHO check to see if we need a stub
6075         and output one if we need it.
6076
6077         PR debug/15033
6078         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6079         rtl.
6080
6081 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6082
6083         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6084         (vall_value_gp): Likewise.
6085
6086 2004-04-20  DJ Delorie  <dj@redhat.com>
6087
6088         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6089         variables stored in word registers, then in memory.
6090
6091 2004-04-20  Eric Christopher  <echristo@redhat.com>
6092
6093         * cp/parser.c (cp_parser_declaration): Move translate
6094         up before tokens are lexed.
6095
6096 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6097
6098         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6099         (asin_optab, acos_optab): Define corresponding macros.
6100         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6101         * genopinit.c (optabs): Implement asin_optab and acos_optab
6102         using asin?f2 and acos?f2 patterns.
6103         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6104         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6105         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6106         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6107
6108         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6109         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6110         acos, acosf and acosl built-ins as inline x87 intrinsics.
6111
6112 2004-04-20  Paul Brook  <paul@codesourcery.com>
6113
6114         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6115
6116 2004-04-20  Paul Brook  <paul@codesourcery.com>
6117
6118         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6119
6120 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6121
6122         Revert part of 2004-04-17 change that moved -frename-registers
6123         to -O1.  -frename-registers is buggy.
6124
6125         * toplev.c (flag_rename_registers): Initialize to 0.
6126         * doc/invoke.texi (Optimize options): Move -frename-registers
6127         to "Not triggered by any -O level" section.  Adjust commentary
6128         accordingly.
6129
6130 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6131
6132         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6133
6134 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6135
6136         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6137         for mflo and mfhi instructions.
6138         (mips_output_move): Remove mflo and mfhi handling.
6139         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6140         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6141         Likewise various define_peephole2s.
6142         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6143         alternatives.
6144         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6145         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6146         (mfhilo_di, mfhilo_si): New patterns.
6147
6148 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6149
6150         * function.c (assign_parms): Force
6151         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6152
6153 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6154
6155         * var-tracking.c (variable_part_different_p): Variable parts differ
6156         when the most recent locations differ.
6157
6158 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6159
6160         * rtl.h (reg_set_last): Delete declaration.
6161         * rtlanal.c (reg_set_last): Delete.
6162
6163 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6164
6165         * fold-const.c (fold_convert): Make function extern/public.
6166         * tree.h (fold_convert): Prototype here.
6167         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6168         expand_builtin_strrchr, expand_builtin_strpbrk,
6169         expand_builtin_mempcpy, expand_builtin_bcopy,
6170         expand_builtin_bzero, expand_builtin_memcmp,
6171         expand_builtin_strcmp, expand_builtin_strncmp,
6172         stabilize_va_list, expand_builtin_sprintf,
6173         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6174         fold_builtin_exponent, fold_builtin_mempcpy,
6175         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6176         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6177         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6178
6179 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6180
6181         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6182         (move_from_CR_gt_bit): New.
6183         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6184         E500.
6185         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6186         E500.
6187
6188         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6189         (tstsfeq_gpr): Same.
6190         (cmpsfgt_gpr): Same.
6191         (tstsfgt_gpr): Same.
6192         (cmpsflt_gpr): Same.
6193         (tstsflt_gpr): Same.
6194         (e500_cceq_ior_compare): New.
6195         (e500_flip_gt_bit): New.
6196
6197         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6198         (print_operand): Add 'c' and 'D'.
6199         (rs6000_generate_compare): Rewrite to generate correct rtl.
6200         (rs6000_emit_sCOND): Handle E500.
6201         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6202         (output_e500_flip_gt_bit): New.
6203
6204         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6205         Protoize.
6206
6207 2004-04-19  Eric Christopher  <echristo@redhat.com>
6208
6209         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6210
6211 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6212
6213         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6214         fix information.
6215
6216 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6217
6218         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6219         download URL.
6220
6221 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6222
6223         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6224         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6225
6226 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6227
6228         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6229         (fold_builtin): Update caller to match.
6230
6231         PR bootstrap/15009
6232         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6233
6234         PR bootstrap/14999
6235         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6236
6237 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6238
6239         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6240
6241         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6242         (expand_mult_highpart_optab): Likewise.
6243         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6244
6245 2004-04-19  Paul Brook  <paul@codesourcery.com>
6246
6247         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6248         floatunssisf2, floatunssidf2): New patterns.
6249
6250 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6251
6252         PR other/14918
6253         * doc/invoke.texi (-fprofile-generate): Document requirement to
6254         use -fprofile-generate when linking.
6255
6256         * doc/extend.texi (Strong Using): Warn users against using this
6257         feature.
6258
6259 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6260
6261         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6262         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6263         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6264         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6265         constant.  Propogate change throughout file.
6266         (struct machine_function): Remove insns_len.
6267         (mips_string_length, mips16_strings, string_constants): Delete.
6268         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6269         when generating mips16 code.  Remove special mips16 treatment of
6270         string constants.
6271         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6272         to have the form LABEL+CONSTANT.
6273         (mips_symbolic_address_p): Fix comment.
6274         (m16_usym8_4, m16_usym5_4): Delete.
6275         (mips_output_function_epilogue): Remove mips16 string handling.
6276         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6277         (mips_select_section, mips_encode_section_info): Remove mips16
6278         string handling.
6279         (struct mips16_constant_pool): New.
6280         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6281         sorted into order of ascending mode size.  Keep track of the highest
6282         possible start address, taking padding and the masking of the base PC
6283         value into account.
6284         (dump_constants_1): New function, split out from dump_constants.
6285         Handle vector constants.  Use gen_consttable_{int,float} rather than
6286         separate functions for each mode.
6287         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6288         rather than separate functions for each alignment.
6289         (mips_find_symbol): Delete.
6290         (mips16_insn_length): New function, split out from
6291         mips16_lay_out_constants.
6292         (mips16_rewrite_pool_refs): New function.
6293         (mips16_lay_out_constants): Rework. Remove string handling.
6294         Always create an inline constant pool.
6295         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6296         (UNSPEC_ALIGN): New constants.
6297         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6298         (UNSPEC_ALIGN_[248]): Delete.
6299         (consttable_int, consttable_float, align): New patterns.
6300         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6301
6302 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6303
6304         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6305         __unn_args_eq.
6306
6307 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6308
6309         PR target/14715
6310         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6311         with STARTING_FRAME_OFFSET.
6312
6313 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6314
6315         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6316         * config/mips/mips.c (macc_msac_operand): New function.
6317         * config/mips/mips.md (*msac): Move after *macc.
6318         (*msac2): New.  Generalize macc-related peepholes so that they apply
6319         to msac too.
6320
6321 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6322
6323         * opts.c (decode_options): Do not enable flag_rename_registers
6324         and flag_web at -O3.
6325         * toplev.c (flag_rename_registers): Initialize
6326         flag_rename_registers and flag_web to
6327         AUTODETECT_FLAG_VAR_TRACKING.
6328         (default_debug_hooks): New global.
6329         (process_options): Initialize default_debug_hooks.  Warn if
6330         -fvar-tracking specified but not supported by the current
6331         debug format.  Do not run var tracking at -O0 or if not
6332         supported by the current debug format, even if
6333         -fvar-tracking was given.  If -fno-rename-registers
6334         is not specified, always run register renaming if var
6335         tracking is supported by the default debugging information
6336         format for the target, and we are at -O1 or higher; similarly
6337         for -fweb, but only at -O2 or higher.
6338         * doc/invoke.texi (Optimize Options): Document this.
6339
6340 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6341
6342         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6343         * configure: Regenerate.
6344
6345 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6346
6347         * gcc.c (used_arg): Check whether an option has been removed.
6348
6349 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6350
6351         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6352         debugging on Solaris 7 and up.
6353
6354 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6355
6356         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6357         IRIX 5 port.
6358         Remove -save-temps workaround, handled automatically.
6359         Require GNU binutils 2.15 for debugging.
6360         Remove SGI make warnings since GNU make is now required.
6361         (Specific, mips-sgi-irix6): Some markup fixes.
6362         Describe MIPSpro C problems and workarounds.
6363         Mention working O32 ABI support.
6364         Recommend GNU as 2.15 for O32 with debugging.
6365         Remove description of fixed structure pass/return bug.
6366
6367 2004-04-16  DJ Delorie  <dj@redhat.com>
6368
6369         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6370         TYPE_FIELDS.
6371         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6372
6373 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6374
6375         * pa.md: Remove unnecessary declarations for asm_out_file.
6376
6377         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6378         SAR register.  Fix comment.
6379         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6380         (%cr11).
6381
6382         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6383
6384 2004-04-16  Nick Clifton  <nickc@redhat.com>
6385
6386         * config/arm/arm.c (arm_override_options): Revert previous patch.
6387         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6388         be safely built.
6389
6390 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6391
6392         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6393         bug.
6394         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6395         TARGET_DEFAULT): Changed. Ditto.
6396         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6397         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6398         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6399         (TARGET_ENDIAN_DEFAULT): Added.
6400
6401 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6402
6403         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6404         ATTR_CONST_NOTHROW_LIST.
6405
6406 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6407
6408         PR/middle-end 14915
6409         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6410         BITS_BIG_ENDIAN.
6411
6412 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6413
6414         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6415
6416 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6417
6418         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6419
6420 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6421
6422         * libada-mk.in: New file.
6423         * configure.ac: Create libada-mk from libada-mk.in.
6424         * configure: Regenerate.
6425
6426 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6427
6428         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6429         (logb_optab, ilogb_optab): Define corresponding macros.
6430         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6431         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6432         using logb?f2 and ilogb?i2 patterns.
6433         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6434         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6435         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6436         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6437
6438         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6439         and UNSPEC_XTRACT_EXP.
6440
6441         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6442         patterns to implement fxtract x87 instruction.
6443         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6444         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6445         intrinsics.
6446         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6447         x87's fxtract insn.
6448
6449 2004-04-14  Eric Christopher  <echristo@redhat.com>
6450
6451         * config/mips/t-elf: Enable multilibs by default.
6452
6453 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6454
6455         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6456         previous fix to check HAVE_return at runtime too.
6457
6458 2004-04-14  Nick Clifton  <nickc@redhat.com>
6459
6460         * config/arm/arm.c (arm_override_options): If the user has not
6461         specified an ABI, then default to AAPCS for the iWMMXt processor.
6462         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6463         * config/arm/t-xscale-coff: Likewise.
6464
6465 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6466
6467         * builtins.c (fold_builtin_isdigit): New.
6468         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6469         * defaults.h: Add TARGET_DIGIT0 and sort.
6470         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6471
6472 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6473
6474         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6475         `mathfn_built_in' to determine the new builtin.
6476         * fold-const.c (fold): Likewise.
6477
6478 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6479
6480         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6481         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6482         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6483         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6484         (ASM_SPEC): Update accordingly.
6485         * config/mips/mips.c: Update after above renaming.
6486         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6487         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6488
6489 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6490
6491         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6492         increment errorcount and return false instead of true.
6493
6494 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6495
6496         * optabs.c (expand_twoval_unop): Reorder function arguments.
6497         * builtins.c (expand_builtin_mathfn_3): Update calls to
6498         expand_twoval_unop.
6499
6500         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6501         and UNSPEC_TAN_TAN. Add missing comment.
6502
6503         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6504         patterns to implement fptan x87 instruction.
6505         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6506         and tanl built-ins as inline x87 intrinsics. Define corresponding
6507         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6508         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6509         x87's fptan insn.
6510
6511 2004-03-13  Richard Henderson  <rth@redhat.com>
6512
6513         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6514         for LABEL_REFs.
6515
6516         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6517         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6518         * doc/invoke.texi: Update to match.
6519
6520         * varasm.c (unlikely_text_section): Use assemble_align instead of
6521         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6522         correct alignment argument.
6523
6524 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6525
6526         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6527         after setting reg_last_reload_reg for optional output reloads.
6528
6529 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6530
6531         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6532         Definition of these two macros are corrected by adding
6533         matchine right paren.
6534
6535 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6536
6537         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6538
6539 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6540
6541         * config/i386/i386.c (output_387_reg_move): New function.
6542         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6543         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6544         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6545         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6546         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6547
6548 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6549
6550         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6551         TYPE_DECL.
6552         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6553         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6554         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6555         Use skip_simple_arithmetic to find SAVE_EXPR.
6556         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6557         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6558         Properly chain multiple pointers.
6559         (copy_tree_r): Copy a TYPE_DECL.
6560         * tree.c (variably_modified_type_p): Add some missing tests and
6561         make some other minor changes.
6562         * tree.h (force_type_save_exprs): New declaration.
6563
6564 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6565
6566         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6567         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6568         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6569         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6570         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6571         x%-1 into 0 (or x&0 if x has side-effects).
6572
6573 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6574
6575         * config/rs6000/rs6000.md: Document why a pattern is not
6576         available.
6577
6578         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6579         of floats on the E500.
6580         (branch_positive_comparison_operator): Do not allow NE even on the
6581         E500.
6582
6583 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6584
6585         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6586         in_text_unlikely_section to in_unlikely_text_section.
6587
6588 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6589
6590         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6591         calling convention to allow a NULL_TREE to be returned.  Factor
6592         sanity checks from callers, return NULL_TREE when appropriate.
6593         (fold): Handle COMPOUND_EXPR operands of binary expressions
6594         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6595         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6596         calls to fold_binary_op_with_conditional_arg.
6597
6598 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6599
6600         * config/mips/iris5.h (current_section_flags):  Add
6601         in_unlikely_executed_text and default case.
6602
6603 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6604
6605         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6606         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6607         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6608         HAVE_return and place it around the place where it is needed.
6609
6610 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6611
6612         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6613         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6614         and NORMAL_TEXT_SECTION_NAME.
6615         (unlikely_text_section): Check targetm.have_named_sections
6616         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6617         instead of SECTION_FORMAT_STRING.
6618         * config/mips/iris5.h (current_section_name): Add
6619         in_unlikely_executed_text case and move the abort into the switch.
6620         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6621         (NORMAL_TEXT_SECTION_NAME): Remove.
6622         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6623         (SECTION_FORMAT_STRING): Remove.
6624         * defaults.h (SECTION_FORMAT_STRING): Remove.
6625         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6626         (SECTION_FORMAT_STRING): Remove.
6627
6628 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6629
6630         * c-typeck.c (common_type): Prefer long long to long when same
6631         precision.
6632
6633 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6634
6635         PR 14887
6636         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6637         mode argument.
6638         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6639         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6640
6641 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6642
6643         * simplify-rtx.c (mode_signbit_p): New function to check whether
6644         an RTX is an immediate constant that represents the most significant
6645         bit of a given machine mode.
6646         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6647         C is the sign bit.
6648         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6649         when C2 is the sign bit.
6650         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6651         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6652         sign bit.
6653
6654 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6655
6656         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6657         TYPE_MODE.
6658
6659 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6660
6661         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6662         of TREE_READONLY for types.
6663
6664 2004-04-09  Caroline Tice  <ctice@apple.com>
6665
6666         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6667         (struct basic_block_def):  Add new field, partition.
6668         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6669         definitions.
6670         (partition_hot_cold_basic_blocks): Add extern function
6671         declaration.
6672         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6673         include statements.
6674         (N_ROUNDS): Increase the maximum number of rounds by 1.
6675         (branch_threshold): Add array value for new round.
6676         (exec_threshold): Add array value for new round.
6677         (push_to_next_round_p): New function.
6678         (add_unlikely_executed_notes): New function.
6679         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6680         (mark_bb_for_unlikely_executed_section): New function.
6681         (add_labels_and_missing_jumps): New function.
6682         (add_reg_crossing_jump_notes): New function.
6683         (fix_up_fall_thru_edges): New function.
6684         (find_jump_block): New function.
6685         (fix_crossing_conditional_branches): New function.
6686         (fix_crossing_unconditional_branches): New function.
6687         (fix_edges_for_rarely_executed_code): New function.
6688         (partition_hot_cold_basic_blocks): New function.
6689         (find_traces):  Add an extra round for partitioning hot/cold
6690         basic blocks.
6691         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6692         and only cold blocks, into the last (extra) round of collecting traces.
6693         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6694         over crossing edges.
6695         (bb_to_key):  Add code to correctly identify cold blocks when
6696         doing partitioning.
6697         (connect_traces): Modify to connect all the non-cold traces first, then
6698         go back and connect up all the cold traces.
6699         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6700         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6701         entry and exit blocks.
6702         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6703         if we are doing hot/cold partitioning.
6704         * cfgcleanup.c (cfglayout.h): Add new include statement.
6705         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6706         that cross section boundaries.
6707         (try_forward_edges): Likewise.
6708         (merge_blocks_move_predecessor_nojumps): Likewise.
6709         (merge_blocks_move_successor_nojumps): Likewise.
6710         (merge_blocks_move): Likewise.
6711         (try_crossjump_to_edge): Modify to not attempt after we have done
6712         the block partitioning.
6713         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6714         cross section boundaries.
6715         (try_optimize_cfg): Likewise.
6716         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6717         jumps that cross section boundaries.
6718         * cfglayout.c (flags.h): Add new include statement.
6719         (update_unlikely_executed_notes):  New function.
6720         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6721         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6722         updated appropriately.
6723         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6724         introduced by this optimization.
6725         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6726         extern function declaration.
6727         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6728         list of notes that can be deleted.
6729         (create_basic_block_structure):  Add initialization for partition field.
6730         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6731         section boundaries.
6732         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6733         cross section boundaries.
6734         (commit_one_edge_insertion): Add code so newly created basic block
6735         ends up in correct (hot or cold) section.  Modify to disallow
6736         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6737         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6738         crosses section boundaries.
6739         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6740         cross section boundaries.
6741         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6742         ends up in correct section, with correct notes attached.
6743         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6744         optimization.
6745         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6746         the end of functions are written into the correct (hot or cold)
6747         section.
6748         (dbx_source_file): Add code so writing debug file information
6749         doesn't incorrectly change sections.
6750         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6751         in partitioning hot/cold basic blocks into separate sections.
6752         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6753         section partitioning.
6754         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6755         conditional branches can span all of memory.
6756         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6757         unconditional branches can span all of memory.
6758         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6759         (final_scan_insn):  Add code to check for NOTE instruction indicating
6760         whether basic block belongs in hot or cold section, and to make sure
6761         the current basic block is being written to the appropriate section.
6762         Also added code to ensure that jump table basic blocks end up in the
6763         correct section.
6764         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6765         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6766         one of the branches has a jump that crosses between sections.
6767         (find_if_case_2): Likewise.
6768         (ifcvt): Modify to not attempt to mark loop exit edges after
6769         hot/cold partitioning has occurred.
6770         * opts.c (decode_options): Code to handle new flag,
6771         flag_reorder_blocks_and_partition; also to turn it off if
6772         flag_exceptions is on.
6773         (common_handle_option): Code to handle new flag,
6774         flag_reorder_blocks_and_partition.
6775         * output.h (unlikely_text_section): New extern function declaration.
6776         (in_unlikely_text_section): New extern function declaration.
6777         * passes.c (rest_of_handle_stack_regs):  Add
6778         flag_reorder_blocks_and_partition as an 'or' condition for calling
6779         reorder_basic_blocks.
6780         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6781         as an 'or' condition for calling reorder_basic_blocks.
6782         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6783         * print-rtl.c (print_rtx): Add code for handling new note,
6784         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6785         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6786         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6787         cross between section boundaries.
6788         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6789         indicating the basic block containing it belongs in the cold section.
6790         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6791         between hot and cold sections.
6792         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6793         initialize this flag, and to tie it to the command-line option
6794         freorder-blocks-and-partition.
6795         * varasm.c (cfglayout.h):  Add new include statement.
6796         (unlikely_section_label_printed):  New global variable, used for
6797         determining when to output section name labels for cold sections.
6798         (in_section):  Add in_unlikely_executed_text to enum data structure.
6799         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6800         NORMAL_TEXT_SECTION_NAME macros.
6801         (unlikely_text_section):  New function.
6802         (in_unlikely_text_section):  New function.
6803         (function_section):  Add code to make sure beginning of function is
6804         written into correct section (hot or cold).
6805         (assemble_start_function):  Add code to make sure stuff is written to
6806         the correct section.
6807         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6808         to an if statement that was checking 'in_text_section'.
6809         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6810         condition to an if statement that was checking 'in_text_section'.
6811         (default_section_type_flags_1):  Add check: if in cold section
6812         flags = SECTION_CODE.
6813         * config/darwin.c (darwin_asm_named_section):  Modify to use
6814         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6815         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6816         specifically for the i386.
6817         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6818         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6819         text string to something more informative.
6820         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6821         (SECTION_FORMAT_STRING):  Add new definition.
6822         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6823         '!in_unlikely_text_section' as an 'and' condition to an if statement
6824         that was already checking '!in_text_section'.
6825         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6826         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6827         sure these are properly defined for linux on ppc.
6828         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6829         for this new flag.
6830         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6831         reg_note.
6832         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6833         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6834         these new macros.
6835
6836 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6837
6838         * function.c (gen_mem_addressof): When changing the RTX from a REG
6839         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6840
6841 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6842
6843         PR target/14888
6844         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6845         truncxfdf2_noop): Provide dummy "fmov" implementations.
6846
6847 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6848
6849         * gcc.c (default_compilers): Add missing initializers.
6850
6851         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6852         Return 1 if file was successfully mapped.
6853
6854 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6855
6856         PR pch/13419
6857         PR pch/14137
6858         Radar #: 3315288
6859         * doc/invoke.texi (Precompiled Headers): Suggest -o
6860         to put an output file in a particular place.  Be more detailed
6861         about which options affect PCH validity and which options
6862         might not work.
6863         * c-pch.c (pch_matching): New.
6864         (MATCH_SIZE): New.
6865         (struct c_pch_validity): New field 'match'.
6866         (pch_init): Handle pch_matching.
6867         (c_common_valid_pch): Check pch_matching.
6868
6869         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6870
6871 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6872
6873         * doc/invoke.texi (Precompiled Headers): Warn about known
6874         problems.
6875
6876 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6877
6878         PR c++/14808
6879         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6880         to 1 if ASM_OUTPUT_DEF is defined.
6881         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6882         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6883         Set to non-zero iff not a one_only decl.
6884
6885 2004-04-08  Paul Brook  <paul@codesourcery.com>
6886
6887         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6888
6889 2004-04-08  Paul Brook  <paul@codesourcery.com>
6890
6891         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6892         PROMOTE_FOR_CALL_ONLY.
6893         * config/arm/arm-protos.h (arm_function_value): Declare.
6894         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6895         (TARGET_PROMOTE_PROTOTYPES): Return false.
6896         (arm_function_value): New function.
6897         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6898         (FUNCTION_VALUE): Call arm_function_value.
6899         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6900         (PROMOTE_FUNCTION_MODE): ... to this.
6901         (PROMOTE_FOR_CALL_ONLY): Remove.
6902         * config/mmix/mmix.h: Likewise.
6903         * config/s390/s390.h: Likewise.
6904         * config/sparc/sparc.h: Likewise.
6905         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6906         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6907         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6908         (PROMOTE_FOR_CALL_ONLY): Remove.
6909
6910 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6911
6912         PR ada/14538
6913         * ada/5rosinte.adb: Remove fake mprotect() body.
6914         * ada/5rosinte.ads: Add SA_SIGINFO.
6915         * ada/5rtpopsp.adb: Rewrite to use new interface.
6916         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6917         is tested before more complex ones which mix UNIX and embedded
6918         systems in the conditional.
6919
6920 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6921
6922         PR ada/14665
6923         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6924         filenames which end in .exe or have versioning suffixes like VMS.
6925
6926 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6927
6928         PR target/10129
6929         * config/darwin.c (darwin_encode_section_info): When the decl has
6930         a DECL_INITIAL, it is only defined also when it is not a common.
6931
6932 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6933
6934         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6935         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6936
6937 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6938
6939         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6940         global register variables.
6941
6942 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6943
6944         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6945         rpc_xdr_lvalue_cast_b): New fixes.
6946         * fixinc/fixincl.x: Regenerate.
6947         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6948
6949 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6950
6951         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6952         to power4 and power5 entries.
6953
6954 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6955
6956         * c-common.h (pending_lang_change): Mark for PCH.
6957
6958 2004-04-07  Caroline Tice  <ctice@apple.com>
6959
6960         * gcc.c (main): Move 'break' in main loops (on an error)
6961         to wait until error processing has occurred.
6962
6963 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6964
6965         * config.gcc: Stop changing enable_threads midstream.
6966         Replace uses of enable_threads_flag with enable_threads.
6967         * configure.ac: Replace uses of enable_threads_flag with
6968         enable_threads.  Improve autoconf quotation in one place.
6969         * configure: Regenerate.
6970
6971 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6972
6973         * builtins.c: Implement support for sincos function.
6974         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6975         BUILT_IN_COS{,F,L}.
6976         (expand_builtin_mathfn_3): New function.
6977         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6978         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6979         flag_unsafe_math_optimization is set.
6980
6981         * optabs.h (enum optab_index): Add new OTI_sincos.
6982         (sincos_optab): Define corresponding macro.
6983
6984         * optabs.c (init_optabs): Initialize sincos_optab.
6985         (expand_twoval_unop): New function.
6986
6987         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6988         patterns.
6989
6990         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6991         and UNSPEC_SINCOS_SIN.
6992
6993         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6994         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6995         built-ins as inline x87 intrinsics. Define splits for
6996         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6997         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6998         sincos patterns.
6999         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7000         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7001
7002         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7003         x87's fsincos insn.
7004
7005 2004-04-06  Devang Patel  <dpatel@apple.com>
7006
7007         PR 14467
7008         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7009
7010 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7011
7012         * doc/install.texi: Update HP-UX 11 installation procedure.
7013
7014 2004-04-06  Paul Brook  <paul@codesourcery.com>
7015
7016         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7017
7018 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7019
7020         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7021         when the TLS address is generated by a function call.
7022         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7023         (tls_local_dynamic): Likewise.
7024
7025 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7026
7027         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7028         and TYPE_VOLATILE.
7029
7030 2004-04-05  Caroline Tice  <ctice@apple.com>
7031
7032         * gcc.c (combine_flag): New global variable, for new driver option.
7033         (struct compiler): Add two new fields, to be used when
7034         combining multiple input files in a single pass (IMA).
7035         (default_compilers):  Add values for the new fields to all
7036         compiler entries. Modify the "@c" compiler entry for doing IMA
7037         properly with "-save-temps" and the "combine" flag.
7038         (option_map):  Add new driver option, "--combine", to tell driver
7039         to pass multiple input files to compiler at one time.
7040         (have_o_argbuf_index): New global variable.
7041         (store_arg): Modify to assign value to have_o_argbuf_index.
7042         (struct infile):  Add three new fields, to help with IMA.
7043         (display_help): Add help for new "combine" option.
7044         (process_command): Remove local variable have_o; add code to check
7045         for new "combine" option; remove assignment to combine_inputs.
7046         (do_spec_1):  Modify to deal with IMA better.
7047         (main): Make variable 'lang_n_infiles' local to entire function
7048         rather than to a single block.  Use flag combine_flag to
7049         determine whether to do IMA or not; Modify loop initializing
7050         infiles to deal properly with linker files.
7051         Add code for doing preprocessing in presence of
7052         IMA with "-save-temps" flag.  Modify "main" loop to handle
7053         multiple input files, in multiple languages, with or without
7054         preprocessing,  gracefully.
7055         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7056         re-set it to same directory it's previously been set to (avoid
7057         irritating, meaningless warning messages when doing IMA with
7058         save-temps).
7059         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7060         remove documentation about IMA that is no longer accurate; Add
7061         documentation explaining what "-combine" does.
7062         * ada/lang-specs.h: Add initialization values for new fields in
7063         "struct compiler".
7064         * cp/lang-specs.h: Likewise.
7065         * f/lang-specs.h: Likewise.
7066         * java/lang-specs.h: Likewise.
7067         * objc/lang-specs.h: Likewise.
7068         * treelang/lang-specs.h: Likewise.
7069
7070 2004-04-05  David Edelsohn
7071
7072         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7073         symbol handling.
7074
7075 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7076             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7077
7078         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7079         * pa.md: Use replace_equiv_address to retain the attributes of the
7080         memory operands used in the split and peephole2 patterns for optimizing
7081         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7082
7083 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7084
7085         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7086         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7087         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7088         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7089         PARM_DECL.
7090         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7091         for a type.
7092         * print-tree.c (print_node): Properly handle side-effects, readonly,
7093         and constant flags.
7094         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7095         and TREE_CONSTANT if not a type.
7096         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7097         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7098         (NON_TYPE_CHECK): New macro.
7099         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7100
7101 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7102
7103         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7104         to DWARF2_DEBUG unconditionally.
7105         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7106
7107 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7108             Nathanael Nerode  <neroden@gcc.gnu.org>
7109
7110         PR target/14548
7111         * config.host: Set the shell variable host_can_use_collect2.
7112         Set it to yes by default, and to no for alpha*-dec-*vms*,
7113         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7114         * configure.ac: Set and substitute the shell variable collect2.
7115         Give an error if use_collect2 is yes and host_can_use_collect2 is
7116         no.
7117         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7118         uses.  Initialize to @collect2@.
7119         (STAGESTUFF): Remove $(USE_COLLECT2).
7120         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7121         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7122         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7123         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7124         * configure: Regenerate.
7125
7126 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7127
7128         * simplify-rtx.c (simplify_binary_operation): Constant fold
7129         DIV, MOD, UDIV and UMOD using div_and_round_double.
7130
7131 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7132
7133         PR c++/14804
7134         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7135         RECORD_TYPEs.
7136
7137 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7138
7139         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7140         documentation.
7141
7142 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7143
7144         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7145         updating the REG_EQUAL note on an insn's libcall_insn.
7146
7147 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7148
7149         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7150
7151 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7152
7153         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7154         with reorder_operands_p.
7155
7156 2004-04-03  Jan Hubicka  <jh@suse.cz>
7157
7158         * md.texi (vec_set, vec_extract, vec_init): Document.
7159
7160 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7161
7162        * opts.c (decode_options): Do function inlining with very small
7163        max-inline-insns-* parameters when optimizing for size.
7164
7165 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7166
7167         * config/i386/i386.h (TARGET_NOCONA): New macro.
7168         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7169         (processor_type): Add PROCESSOR_NOCONA.
7170
7171         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7172
7173         * config/i386/i386.c (nocona_cost): New variable.
7174         (m_NOCONA): New macro.
7175         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7176         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7177         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7178         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7179         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7180         x86_decompose_lea, x86_arch_always_fancy_math_387,
7181         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7182         x86_ext_80387_constants, x86_four_jump_limit):
7183         (override_options): Add nocona_cost to processor_target_table.
7184         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7185         (incdec_operand): Prevent inc/dec generation for Nocona too.
7186         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7187
7188 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7189
7190         * rtlanal.c (find_reg_note): Manually
7191         unswitch the loop.
7192
7193 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7194
7195         * genemit.c (gen_split): Change prototype of generated code.
7196         * genrecog.c (write_action): Adjust prototype for and calls to
7197         gen_split_*.
7198         * gensupport.c (struct queue_elem): Add split field.
7199         (queue_pattern): Return a value.  Clear the split field.
7200         (process_rtx): Maintain an association between an insn and the
7201         split generated from it for a define_insn_and_split.
7202         (process_one_cond_exec): Generate a new split for a
7203         define_insn_and_split.
7204         * config/arm/arm-protos.h (arm_split_constant): Add insn
7205         parameter.
7206         (emit_constant_insn): New function.
7207         (arm_gen_constant): Use it.
7208         * config/arm/arm.md: Adjust calls to arm_split_constant.
7209
7210 2004-04-02  Jan Hubicka  <jh@suse.cz>
7211
7212         * cgraph.c: Add overall comment.
7213         (cgraph_inline_hash): New global variable.
7214         (cgraph_create_node): Break out from ...
7215         (cgraph_node): ... here.
7216         (cgraph_edge): New function.
7217         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7218         (cgraph_remove_edge): Accept edge, intead of source and destination.
7219         (cgraph_redirect_edge_callee): New.
7220         (cgraph_remove_node): Update all new datastructures.
7221         (cgraph_record_call, cgraph_remove_call): Kill.
7222         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7223         (dump_cgraph): ... here.
7224         (cgraph_function_possibly_inlined_p): Use new hashtable.
7225         (cgraph_clone_edge, cgraph_clone_node): New.
7226         * cgraph.h: Include hashtab.h
7227         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7228         fields, add inlined_to pointer.
7229         (cgraph_node): Add pointer to next_clone.
7230         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7231         (cgraph_remove_call, cgraph_record_call): Kill.
7232         (cgraph_inline_hash): Declare.
7233         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7234         cgraph_redirect_edge_callee): Declare.
7235         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7236         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7237         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7238         * cgraphunit.c: Add overall comment.
7239         (cgraph_optimize_function): Kill.
7240         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7241         (cgraph_finalize_function): Update call of cgraph_remove_node
7242         (record_call_1): Record call sites.
7243         (cgraph_create_edges): Accept node instead of decl argument.
7244         (error_found): New static variable.
7245         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7246         (cgraph_analyze_function): Update for new datastructures.
7247         (cgraph_finalize_compilation_unit): Plug memory leak.
7248         (cgraph_optimize_function): Kill.
7249         (cgraph_expand_function): Do not use cgraph_optimize_function.
7250         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7251         cgraph_inlined_callees): Kill.
7252         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7253         clones.
7254         (estimate_growth): Simplify.
7255         (cgraph_clone_inlined_nodes): New function.
7256         (cgraph_mark_inline_edge): Re-implement.
7257         (cgraph_mark_inline): Likewise.
7258         (cgraph_check_inline_limits): Simplify.
7259         (cgraph_recursive_inlining_p): New.
7260         (update_callee_keys): Break out from ...
7261         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7262         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7263         Likewise.
7264         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7265         list.
7266         (cgraph_preserve_function_body_p): New predicate.
7267         (cgraph_optimize): Verify cgraph.
7268         * function.h (struct function): Add fields saved_tree/saved_args.
7269         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7270         * toplev.c (rest_of_compilation): Do not free cfun.
7271         * tree-inline.c: Include function.h
7272         (struct inline_data): Add saving_p field; replace decl/current_decl by
7273         node/current_node.
7274         (insert_decl_map): New function.
7275         (copy_body_r): Handle saving; update cgraph datastructure.
7276         (copy_body): Handle recursive inlining.
7277         (initialize_inlined_parameters): Likewise.
7278         (expand_call_inline): Propagate node attributes; update cgraph.
7279         (optimize_inline_calls): Verify that datastructure still match.
7280         (save_body): New function.
7281         * tree-inline.h (save_body): New.
7282         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7283         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7284         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7285
7286 2004-04-01  Serge Belyshev  <1319@bot.ru>
7287
7288         PR target/14702
7289         * config/i386/i386.md: fix source operand constraints in
7290         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7291
7292 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7293
7294         * fold-const.c (folda): Preserve types of comparisons.
7295
7296 2004-04-01  Richard Henderson  <rth@redhat.com>
7297
7298         * toplev.c (backend_init): Move init_optimization_passes call ...
7299         (lang_dependent_init): ... here.
7300
7301 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7302             Jakub Jelinek  <jakub@redhat.com>
7303
7304         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7305         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7306         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7307         * configure: Rebuilt.
7308         * config.in: Rebuilt.
7309         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7310         (stage2-start, stage3-start, stage4-start): Likewise.
7311         (stageprofile-start, stagefeedback-start): Likewise.
7312
7313 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7314
7315         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7316         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7317         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7318         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7319         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7320         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7321         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7322         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7323         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7324         * config/sparc/t-linux: Removed.
7325
7326 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7327
7328         PR c++/14755
7329         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7330         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7331
7332 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7333
7334         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7335         * stor-layout.c (layout_decl): Likewise.
7336         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7337         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7338         * print-tree.c (print_node): Handle various used of unsigned_flag.
7339         * tree.def (BIT_FIELD_REF): Update comment.
7340         * tree.h (TREE_UNSIGNED): Deleted.
7341         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7342
7343 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7344
7345         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7346         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7347         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7348         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7349         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7350         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7351         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7352         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7353         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7354         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7355         REAL_TYPE, not INTEGER_TYPE.
7356         (layout_type, case VECTOR_TYPE): Simplify code.
7357         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7358         * tree.h: Update comments.
7359         (STRIP_NOPS): Use TYPE_UNSIGNED.
7360         (TYPE_UNSIGNED): New macro.
7361         (TYPE_TRAP_SIGNED): Remove now redundant check.
7362         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7363
7364 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7365
7366         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7367
7368 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7369
7370         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7371         Add darwin-fpsave.asm, darwin-vecsave.asm,
7372         and darwin-world.asm.
7373         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7374         as the asm files contain altivec instructions.
7375         * config/rs6000/darwin-fpsave.asm: New file.
7376         * config/rs6000/darwin-vecsave.asm: New file.
7377         * config/rs6000/darwin-world.asm: New file.
7378
7379 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7380
7381         * gengtype-yacc.y (option, stringseq): Add missing
7382         terminating semicolon.
7383
7384 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7385
7386         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7387         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7388         tls_dtprel_ha_32, tls_dtprel_ha_64,
7389         tls_dtprel_lo_32, tls_dtprel_lo_64,
7390         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7391         tls_tprel_ha_32, tls_tprel_ha_64,
7392         tls_tprel_lo_32, tls_tprel_lo_64,
7393         tls_got_tprel_32, tls_got_tprel_64,
7394         tls_tls_32, tls_tls_64): Replace register_operand with
7395         gpc_reg_operand.
7396
7397 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7398
7399         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7400         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7401         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7402         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7403         *ctrdi_internal6): Replace register_operand with
7404         nonimmediate_operand.
7405
7406 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7407
7408         * fold-const.c (fold): Reassociate multiply expression
7409         with an adjacent non-multiply expression to use
7410         architecture's multiply-add instruction.
7411
7412 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7413
7414         * gengtype.c (create_option): New function.
7415         * gengtype.h: Prototype it.
7416         * gengtype-yacc.y (stringseq): New rule.
7417         (option): Use create_option.  Add new bare ID production.  Use
7418         stringseq, not STRING directly.
7419
7420         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7421         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7422         * varray.h, config/alpha/alpha.c:
7423         Use new shorter form of GTY markers.
7424
7425         * doc/gty.texi: Rewrite.
7426
7427 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7428
7429         * config/darwin.c (machopic_function_base_name):
7430         Remove current_name and getting the name of the
7431         current function.
7432
7433 2004-03-30  Nick Clifton  <nickc@redhat.com>
7434
7435         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7436         range, and increase the forward branch range, to allow for
7437         the fact that the PC will be off by 4.
7438
7439 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7440
7441         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7442
7443 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7444
7445         * config/rs6000/rs6000.c (output_vec_const_move):
7446         Find all cases of EASY_VECTOR_15_ADD_SELF.
7447         (easy_vector_constant_add_self): Accept
7448         all vector constant loadable by vsplt* and vadd*.
7449         (easy_vector_same): Use easy_vector_splat_const.
7450         (easy_vector_const): Use easy_vector_splat_const.
7451         (easy_vector_splat_const): New function.
7452         (gen_easy_vector_constant_add_self): New function.
7453
7454         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7455         New prototype.
7456
7457         * config/rs6000/altivec.md (movv4si splitter): Change to
7458         emit move insn with halfed vector constant.
7459         (*movv8hi splitter): Likewise.
7460         (*movv16qi splitter): Likewise.
7461
7462 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7463
7464         PR 11591
7465         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7466         Allow any offset to argument pointer in no-strict case.
7467
7468 2004-03-30  Jan Hubicka  <jh@suse.cz>
7469
7470         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7471         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7472         dump file in non-unit-at-a-time mode.
7473
7474 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7475
7476         * config/cris/cris.h: Correct #ifdef to test for
7477         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7478         HAVE_AS_MUL_BUG_ABORT_OPTION.
7479
7480 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7481
7482         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7483         the address inside the old RTL.
7484
7485 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7486
7487         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7488         (struct c_binding, struct c_scope): Add chain_next
7489         attributes to GTY markers.
7490         (struct lang_identifier, struct lang_tree_node): Define
7491         here...
7492         * c-tree.h: ... not here.  No longer need to declare struct
7493         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7494         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7495         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7496
7497         PR 14734, 11944
7498         * c-decl.c (get_parm_info): If error_mark_node is encountered
7499         in the bindings chain, unbind and discard it; don't abort.
7500
7501 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7502             Dorit Naishlos <dorit@il.ibm.com>
7503
7504         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7505         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7506
7507 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7508
7509         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7510
7511         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7512         (m68hc11_attribute_table): New attribute "page0" to mark a global
7513         variable as being allocated from within page0 section.
7514         (m68hc11_encode_label): New function.
7515         (m68hc11_strip_name_encoding): New function.
7516         (m68hc11_page0_symbol_p): New function.
7517         (m68hc11_indirect_p): Accept global variables marked in page0.
7518         (m68hc11_encode_section_info): Lookup "page0" attribute.
7519
7520         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7521         represents access to page0 variables.
7522
7523         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7524         ("*logicalsi3_silshl16_zext"): Likewise.
7525         ("*ashldi3_const32"): Likewise.
7526         (peephole2 ashift): Likewise.
7527
7528 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7529
7530         * c-tree.h (C_DECL_REGISTER): New.
7531         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7532         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7533         (build_array_ref, c_mark_addressable): Set and use it.
7534         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7535         Allow structures with volatile fields to be declared register.
7536         Don't check TREE_ADDRESSABLE before warning about taking address
7537         of register.
7538         * c-decl.c (finish_decl): Don't allow structures with volatile
7539         fields to be placed in named register.
7540         * doc/trouble.texi: Remove reference to structures with volatile
7541         fields in registers.
7542
7543 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7544
7545         * function.c (thread_prologue_and_epilogue): Move
7546         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7547         before the epilogue.
7548
7549 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7550
7551         * expr.c (store_constructor): Use gen_int_mode to correctly
7552         sign-extend CONST_INT value.
7553
7554 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7555
7556         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7557         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7558         * doc/extend.texi: Likewise.
7559
7560 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7561
7562         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7563           with TYPE_ORIG_SIZE_TYPE.
7564
7565 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7566
7567         PR 14219
7568         * c-typeck.c (build_binary_op): Do not allow comparisons of
7569         vectors.
7570
7571 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7572
7573         * config.gcc: Remove sparc-tti-*.
7574         * config/sparc/pbd.h: Delete.
7575
7576         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7577         * config/sparc/aout.h: Likewise.
7578
7579         * config/sparc/sparc.h: Remove if 0'd code.
7580         * config/sparc/sparc.md (call): Remove if 0'd code.
7581         (call_value): Likewise.
7582         (nonlocal_goto): Likewise.
7583         (unimp_insn): Delete.
7584
7585 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7586
7587         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7588         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7589
7590 2004-03-25  Richard Henderson  <rth@redhat.com>
7591
7592         PR 11527
7593         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7594         rather than later.
7595
7596 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7597
7598         * builtins.c (fold_builtin): Fix error in last change.
7599
7600 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7601
7602         * config/mips/mips.h: Formatting fix.
7603
7604 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7605
7606         * builtins.def: Add ctype builtins.
7607         * doc/extend.texi: Likewise.
7608
7609 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7610
7611         * builtins.c (fold_builtin): Add new builtin optimizations for
7612         sqrt and/or cbrt.
7613         * fold-const.c (fold): Likewise.
7614
7615 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7616
7617         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7618         (rs6000_sched_groups): New variable.
7619         (processor_target_table): Add power5.
7620         (rs6000_override_options): Set rs6000_sched_insert_nops,
7621         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7622         from rs6000_sched_groups.
7623         (output_cbranch): Use rs6000_always_hint.
7624         (rs6000_variable_issue): Use rs6000_sched_groups.
7625         (rs6000_adjust_cost): Add CPU_POWER5.
7626         (is_microcoded_insn): Use rs6000_sched_groups.
7627         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7628         Return 2 for POWER5 cracked instructions.
7629         (is_cracked_insn): Use rs6000_sched_groups.
7630         (is_branch_slot_insn): Use rs6000_sched_groups.
7631         (rs6000_issue_rate): Add CPU_POWER5.
7632         (rs6000_sched_finish): Use rs6000_sched_groups.
7633         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7634         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7635         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7636         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7637         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7638         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7639         * config/rs6000/power5.md: New file.
7640         * doc/invoke.texi: Add power5 option.
7641
7642 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7643
7644         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7645         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7646         * doc/invoke.texi: Fix a typo.
7647
7648 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7649
7650         PR optimization/9707.
7651         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7652         of recursing if both children are single-valued cases with no
7653         children.
7654
7655 2004-03-25  Paul Brook  <paul@codesourcery.com>
7656
7657         * config/arm/arm.c (vfp_print_multi): Remove.
7658         (arm_output_fldmx): New function.
7659         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7660         (arm_expand_prologue): Update to match.
7661         (arm_get_vfp_saved_size): New Function.
7662         (arm_get_frame_offsets): Use it.
7663         (arm_output_epilogue): Use new functions.
7664
7665 2004-03-24  Richard Henderson  <rth@redhat.com>
7666
7667         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7668         (reg_known_value, reg_known_value_size): Likewise; make static.
7669         (reg_known_equiv_p): Make static.
7670         (clear_reg_alias_info): Update for new indexing.
7671         (get_reg_known_value, set_reg_known_value): New.
7672         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7673         (canon_rtx): Use them.
7674         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7675         Don't play queer offsetting games with reg_known_value and
7676         reg_known_equiv_p.
7677         (end_alias_analysis): Free reg_known_value with gc.
7678         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7679         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7680         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7681         functions instead.
7682
7683 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7684
7685         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7686         config/i386/mmintrin.h: Update copyright.
7687
7688 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7689
7690         * configure.ac: Add --enable-werror-always (for top level bootstrap
7691         support).
7692         * configure: Regenerate.
7693
7694 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7695
7696         * objc/objc-act.c (objc_comptypes): Treat comparisons
7697         between 'Class' and '<class> *' as explicitly invalid.
7698
7699 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7700
7701         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7702         (-fprofile-values): Add enabled with profile-{generate,use}.
7703         (-fvpt): Same.
7704         (-ftracer): Add enabled with profile-use.
7705         (-funit-at-a-time): Add enabled at -O2,-O3.
7706         (-funroll-loops): Add enabled with profile-use.
7707         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7708         (max-gcse-passes): Mention default.
7709         (max-cse-path-length): Mention default.
7710
7711 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7712
7713         * Makefile.in (STRICT2_WARN): Reorder.
7714         * configure.ac: Check for -Wold-style-definition, and use it
7715         in strict1_warn if it's available.
7716         * configure: Regnerate.
7717
7718 2004-03-24  Paul Brook  <paul@nowt.org>
7719
7720         * config.gcc <arm>: Add --with-abi=
7721         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7722         thumb_far_jump_used): Remove prototypes.
7723         (arm_needs_doubleword_align): Add prototype.
7724         (thumb_compute_initial_elimination_offset): Ditto.
7725         * config/arm/arm.c (arm_get_frame_offsets): New function.
7726         (use_return_insn, output_return_instruction, arm_output_epilogue,
7727         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7728         arm_expand_prologue, thumb_expand_epilogue): Use it.
7729         (arm_abi, target_abi_name, all_arm_abis): New variables.
7730         (arm_override_options): Set them.  Set structure padding for AAPCS.
7731         (arm_return_in_memory): Update ABI check.
7732         (arm_init_cumulative_args): Initialize can_split.
7733         (arm_needs_doubleword_align): New function.
7734         (arm_function_arg): Don't split args after pushing to stack. Handle
7735         doubleword/even reg alignment.
7736         (arm_va_arg): Handle all doubleword aligned args.
7737         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7738         on ABI, not CPU.
7739         (arm_compute_save_reg0_reg12_mask): Fix comment.
7740         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7741         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7742         value for alignment.
7743         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7744         to match.
7745         (thumb_compute_initial_elimination_offset): New function.
7746         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7747         unneccessary rounding.
7748         * config/arm/arm.h (target_abi_name): Declare.
7749         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7750         arm_abi_type, ARM_DEFAULT_ABI): Define.
7751         (ARM_FLAG_ATPCS): Remove.
7752         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7753         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7754         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7755         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7756         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7757         Contitionalize on ABI, not CPU.
7758         (struct arm_stack_offsets): Define.
7759         (struct machine_function): Add stack_offsets.  Remove frame_size.
7760         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7761         pushed.
7762         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7763         doubleword alignment.
7764         (THUMB_INITIAL_ELIMINATION_OFFSET,
7765         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7766         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7767         * config/arm/arm.md (align_8): Enable for all targets.
7768         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7769         (ARM_DEFAULT_ABI): Define.
7770         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7771         -mstructure-size-boundary.
7772
7773 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7774
7775         * configure.ac: Check for -Wno-variadic-macros; don't use
7776         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7777         and if it's available, use it.  Also, clean up check for
7778         -Wno-long-long.
7779         * configure: Regenerate.
7780
7781 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7782
7783         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7784         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7785         (MULTILIB_DEFAULTS): Use it.
7786         (MIPS_CPU_STRING_DEFAULT): Remove.
7787         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7788         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7789         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7790         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7791         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7792         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7793         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7794         accordingly.
7795
7796 2004-03-24  DJ Delorie  <dj@redhat.com>
7797             Richard Sandiford  <rsandifo@redhat.com>
7798
7799         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7800         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7801         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7802         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7803         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7804         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7805         if TARGET_FIX_VR4122.
7806         * config/mips/mips.md (define_attr length): Account for nops inserted
7807         after macc and dmult when using -mfix-vr4122-bugs.
7808         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7809         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7810         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7811         * config/mips/vr4122-div.S: New file.
7812         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7813
7814 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7815
7816         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7817         (TARGET_MIPS4130): New macro.
7818         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7819         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7820         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7821         with PROCESSOR_R4130.
7822         * config/mips/mips.md (define_attr cpu): Add r4130.
7823         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7824
7825 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7826             Richard Sandiford  <rsandifo@redhat.com>
7827
7828         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7829
7830 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7831
7832         PR preprocessor/14438
7833         * cpplib.c (do_pragma): Remove line_change call after pragma
7834         handler.
7835
7836 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7837
7838         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7839         declarations.
7840
7841 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7842
7843         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7844         if flag_unsafe_math_optimizations.
7845         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7846         and TARGET_80387 expand using truncdfsf2_noop pattern.
7847         (truncxfsf2): Likewise using truncxfsf2_noop.
7848         (truncxfdf2): Likewise using truncxfdf2_noop.
7849         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7850
7851 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7852
7853         * hooks.c (hook_constcharptr_tree_null): New hook.
7854         * hooks.h (hook_constcharptr_tree_null): New prototype.
7855         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7856         * target.h (mangle_fundamental_type): New target hook.
7857         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7858         target hook at rs6000_mangle_fundamental_type.
7859         (rs6000_mangle_fundamental_type): New function.
7860         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7861
7862 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7863
7864         PR 12267, 12391, 12560, 13129, 14114, 14133
7865         * c-tree.h: Forward declare struct c_binding.  Declare
7866         c_override_bindings_to_false.  Update prototypes.
7867         (struct lang_identifier): Update comments.  Change fields to be
7868         struct c_binding *.
7869         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7870         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7871         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7872         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7873         * c-common.h: Update prototypes.
7874         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7875         names_last, parms, parms_last, tags, and shadowed fields.  Add
7876         bindings and depth fields.
7877         (scope_freelist): Move to more appropriate location.
7878         (c_print_identifier): Update for changes to struct lang_identifier.
7879         (objc_mark_locals_volatile): Update for new bindings structures.
7880         (global_bindings_p): Honor c_override_global_bindings_to_false.
7881         (pushlevel): Rename to push_scope; take no arguments; use the
7882         scope_freelist; initialize scope->depth and check for overflow.
7883         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7884         structures.
7885         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7886         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7887         Improve some commentary.  Adjust handling of forward parm decls.
7888         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7889         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7890         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7891         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7892         decls.  Rewrite for new bindings structures.  Improve commentary.
7893         Eliminate the copy_node call.
7894         (implicit_decl_warning): Use the "diag" idiom (as seen in
7895         locate_old_decl) to reduce code duplication; call locate_old_decl
7896         if appropriate.  Relocate to remove need for forward declaration.
7897         (implicitly_declare): Adjust for new bindings structures.  Kludge
7898         around Objective-C not-really-builtin functions.
7899         (undeclared_variable): Improve diagnostics.  If current_function_decl
7900         is nonnull but current_function_scope is null, use current_scope.
7901         Use bind.
7902         (lookup_tag): Adjust for new bindings structures.  Kludge around
7903         Objective-C's tag declarations that wind up in the external scope.
7904         (lookup_name): Adjust for new bindings structures.  Kludge around
7905         c-common.c's pseudo-typedefs that wind up in the external scope.
7906         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7907         second argument indicating the scope to examine; rewrite for
7908         new bindings structures.
7909         (c_init_decl_processing): Adjust for renamed functions.  Do not
7910         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7911         First scope pushed is the external scope, not the global scope.
7912         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7913         for new data structures.  Keep track of builtins that should be
7914         made visible automatically.
7915         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7916         expand_decl.
7917         (grokparms): Return 0 if arg_types is error_mark_node.
7918         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7919         reversed sense.  Rewrite for new bindings structures.  Do not
7920         leave any decls in the scope, to prevent pop_scope from doing
7921         contradictory things with them.
7922         (finish_struct, finish_enum): Remove redundant diagnostics.
7923         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7924         Mark location where -pedantic changes the meaning of the program.
7925         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7926         parameter decls into the function's scope structure using bind.
7927         Warn here about function definitions in the wrong style.
7928         Adjust diagnostics.
7929         (store_parm_decls): Correct the determination of whether a
7930         function was defined with a prototype.
7931         (c_write_global_declarations): Operate on all file decls and on
7932         the external scope.  Split body of the loop to...
7933         (c_write_global_declarations_1): ... this new function, to avoid
7934         code duplication.
7935         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7936         (make_scope, pop_scope, in_parm_level_p, set_block)
7937         (any_external_decl, record_external_decl, bind_label, getdecls)
7938         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7939         (c_reset_state): Delete.
7940         (visible_builtins, c_override_global_bindings_to_false)
7941         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7942         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7943         (external_scope, binding_freelist, bind, free_binding_and_advance)
7944         (push_file_scope, pop_file_scope): New.
7945         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7946         (define_label, c_make_fname_decl, finish_decl)
7947         (mark_forward_parm_decls, build_compound_literal)
7948         (grokdeclarator, start_function, check_for_loop_decls)
7949         (identifier_global_value, record_builtin_type): Minor adjustments
7950         for new bindings structures.  Improve diagnostics and commentary.
7951         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7952         pushlevel/poplevel respectively.
7953         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7954         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7955         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7956         correct loop over multiple translation units; call fatal_error if
7957         requested to compile more than one file at once.  (This disables
7958         IMA temporarily - an up-front error being preferable to a crash.)
7959         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7960         (all actions): Adjust calls to pushlevel/poplevel.
7961         (parsing_iso_function_signature): Delete.
7962         (extdef_1): Fold into extdef.
7963         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7964         warn here about function definitions in the wrong style.
7965         (after_tyle_declarator, parm_declarator_starttypename)
7966         (parm_declarator_nostarttypename, notype_declarator): Remove
7967         commented-out productions.
7968         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7969         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7970         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7971         to suppress -Wold-style-definition after this error.
7972         (c_parse_file): Don't clear the binding stack or call
7973         finish_fname_decls here.  Correct comment.
7974         * c-typeck.c (same_translation_unit_p): Export.
7975         (common_type): Use c_override_global_bindings_to_false, not
7976         pushlevel/poplevel/declare_parm_level.
7977         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7978         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7979         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7980         * objc/objc-lang.c: Likewise.
7981         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7982         get_parm_info.
7983         (OBJC_VOID_AT_END): Delete; replace all uses
7984         with void_list_node.
7985         (generate_forward_declaration_to_string_table): Delete.
7986         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7987
7988         * coverage.c (create_coverage): Don't pushdecl anything.
7989         * langhooks.c (lhd_clear_binding_stack): Call
7990         lang_hooks.decls.poplevel, not poplevel.
7991         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7992         circular list rather than going into an infinite loop.
7993
7994 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7995
7996         * optabs.c (expand_binop): When synthesizing double word rotates
7997         from single word shifts, use a new register target if the provided
7998         target is not a REG already.
7999
8000 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8001
8002         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8003         * c-common.c (handle_mode_attribute): Add extra arg to
8004         build_pointer_type_for_mode and build_reference_type_for_mode.
8005         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8006         for INTEGER_CST.
8007         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8008         Chain pointers via TYPE_NEXT_PTR_TO.
8009         (build_reference_type_for_mode): Similarly.
8010         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8011         and build_reference_type_for_mode.
8012         (tree_check4_failed): New function.
8013         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8014         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8015         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8016         Add check.
8017
8018 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8019
8020         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8021         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8022         when both A and B are nonnegative.
8023         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8024         nonzero.
8025
8026 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8027
8028         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8029         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8030
8031 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8032
8033         PR optimization/14669
8034         * fold-const.c (fold): Only unwiden integer comparisons for equality
8035         and inequality operators, or when the signedness doesn't change.
8036
8037 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8038
8039         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8040         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8041         * config/sparc/t-linux: New file.
8042
8043 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8044
8045         * gcse.c (can_assign_to_reg_p): New function, split out from...
8046         (want_to_gcse_p): ...here.
8047         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8048         the rhs of a store.
8049
8050 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8051
8052         * c-typeck.c (same_translation_unit_p): Fix pasto.
8053
8054 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8055
8056         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8057         (PARAM_MAX_SCHED_REGION_INSNS): New.
8058         * sched-rgn.c: Include params.h
8059         (MAX_RGN_BLOCKS): Delete.
8060         (MAX_RGN_INSNS): Delete.
8061         (too_large): Return bool.  Convert to PARAM_VALUE.
8062         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8063         * doc/invoke.texi (param): Document max-sched-region-blocks and
8064         max-sched-region-insns.
8065
8066 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8067
8068         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8069         for base types.
8070
8071 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8072
8073         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8074         change.
8075
8076 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8077
8078         PR c/14069
8079         * c-decl.c (finish_struct): Change type of incorrect flexible array
8080         field into error_mark_node.
8081
8082 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8083
8084         PR target/14580
8085         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8086         who are not local for Darwin PIC.
8087
8088 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8089
8090         * regrename.c (regrename_optimize): Set regs_ever_live for all
8091         registers introduced as replacement.
8092
8093 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8094
8095         PR middle-end/14470
8096         * expr.c (mark_queue): New function.
8097         (emit_insns_enqueued_after_mark): New function replacing
8098         emit_queue.  Clear the body of emitted queued insns.
8099         (emit_queue): Call emit_insns_enqueued_after_mark.
8100         (store_expr): Mark the increment queue on entry.  Emit
8101         only the incrementations queued when expanding the source.
8102
8103 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8104
8105         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8106         of top level bootstrap, and consistency).  Reindent.
8107         * configure: Regenerate.
8108
8109 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8110
8111         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8112         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8113         unnecessary casts.
8114
8115 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8116
8117         PR target/14291
8118         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8119         __MINGW32__.
8120
8121 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8122
8123         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8124         to nonimmediate_operand.
8125         ("*doloop_di"): Likewise.
8126
8127 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8128
8129         * real.h (struct real_value): Use the same type for all
8130         bitfields.  Rename exp to uexp.
8131         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8132         Adjust all uses of exp...
8133         * builtins.c: ... here, ...
8134         * emit-rtl.c: ... here, and ...
8135         * real.c: ... and here.
8136
8137 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8138
8139         * pretty-print.c (pp_base_maybe_space): New function.
8140         * pretty-print.h (pp_base_maybe_space): Declare.
8141         (pp_maybe_space): New macro.
8142
8143 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8144
8145         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8146
8147 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8148
8149         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8150         of using register multiplication cost.
8151         (expand_mult): Adapt choose_mult_variant call.
8152         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8153         of MODE; pass appropriate cost bound.  Adjust result when
8154         performing signed multiplication by a negative constant.
8155         Don't use intermediate modes larger than word_mode.
8156
8157 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8158
8159         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8160         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8161         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8162         * explow.c (expr_size): Likewise.
8163         * expr.h (placeholder_list, find_placeholder): Deleted.
8164         * expr.c (store_constructor): Likewise.
8165         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8166         (placeholder_list, find_placeholder): Deleted.
8167         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8168         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8169         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8170         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8171         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8172         Likewise.
8173         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8174         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8175         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8176         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8177         Clean up by using first_rtl_op.
8178         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8179         (substitute_placeholder_in_expr): New function.
8180         * tree.def (WITH_RECORD_EXPR): Deleted.
8181         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8182         (substitute_placeholder_in_expr): New.
8183
8184 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8185
8186         * dojump.c (prefer_and_bit_test): Fix which part of
8187         the and_test is replaced.
8188
8189 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8190
8191         * frontends.texi: Add missing line.
8192
8193 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8194             Chris Devers  <cdevers@pobox.com>
8195             Joseph S. Myers  <jsm@polyomino.org.uk>
8196
8197         * doc/frontends.texi: Rewrite.
8198         * doc/gcc.texi: Update last modification date.
8199
8200 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8201
8202         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8203         message before redirecting the edge.
8204
8205 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8206
8207         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8208         flag.
8209         * explow.c (force_not_mem): Set REG_POINTER flag according to
8210         MEM_POINTER one.
8211         * rtl.h (MEM_POINTER): New macro.
8212         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8213         for MEM_POINTER.
8214
8215 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8216
8217         PR target/13889
8218         * cse.c (fold_rtx): Avoid substituting constants into unary
8219         conversion operations.
8220
8221 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8222
8223         * fold-const.c (fold): Replace "expr" with "t".
8224
8225 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8226
8227         PR c/12373
8228         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8229         DECL_ORIGINAL_TYPE if there isn't one.
8230
8231 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8232
8233         * fold-const.c (fold): Replace "final_type" with "type".
8234         Remove variable "final_type".
8235
8236 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8237
8238         * fold-const.c (fold): Constify "type".
8239         Replace "TREE_TYPE (t)" with "type".
8240
8241 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8242
8243         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8244         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8245         via (*targetm.foo) () with targetm.foo ().
8246
8247 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8248
8249         PR other/14630
8250         * doc/install.texi: Add info directory category and entry.
8251
8252 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8253
8254         * fold-const.c (fold): Replace "t" with "tem" where it is used
8255         as a temporary variable.  Remove "orig_t" and all of its uses.
8256
8257 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8258
8259         * fold-const.c (fold): Remove variable "invert".
8260         Move the handling of relational expressions that can be folded
8261         to a constant ...
8262         (fold_relational_const): ... here.
8263         (tree_expr_nonzero_p): New.
8264
8265 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8266
8267         PR c/14635
8268         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8269         DEF_GCC_BUILTIN.
8270
8271 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8272
8273         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8274         (GTFILES): Add $(srcdir)/dojump.h.
8275         (gt-dojump.h): New dependency.
8276         * dojump.c (and_reg, and_test, shift_test): New static variables.
8277         (prefer_and_bit_test): New function.
8278         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8279
8280 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8281
8282         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8283         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8284         reorg.c, tree.h: Fix comment typos.
8285
8286 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8287
8288         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8289         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8290         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8291         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8292         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8293         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8294         targetm.foo ().
8295
8296 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8297
8298         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8299         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8300         always_inline attribute.
8301         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8302         Treat expansion as completed even if literal argument is
8303         invalid (so that other expansions are not tried in vain).
8304
8305 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8306
8307         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8308         const0_rtx.
8309
8310 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8311
8312         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8313         ...
8314         (fold_abs_const): ... here.
8315
8316 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8317
8318         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8319
8320 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8321
8322         PR target/11520
8323         * config/avr/avr.md ("call_insn"): Handle explicit integer
8324         specially.
8325         (call_value_insn): Likewise.
8326
8327 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8328
8329         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8330
8331 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8332
8333         * fold-const.c (negate_expr): Move the handling of constants
8334         ...
8335         (fold_negate_const): ... here.
8336
8337 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8338
8339         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8340         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8341         * tree.c (debug_no_type_hash): Deleted.
8342         (type_hash_canon): Abort if passed a variant.
8343         Check lang_hooks.types.hash_types.
8344         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8345         (build_array_type): Remove unnecessary allocation of pointer type.
8346         (build_complex_type): Properly qualify resulting type.
8347
8348 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8349
8350         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8351
8352 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8353
8354         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8355         (expand_mult): ...here.
8356         (extract_high_half): New, split out from expand_mult_highpart.
8357         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8358         (expand_highpart): Evaluate the cost of a shift/add sequence,
8359         then see if any of the specialized optabs are cheaper.
8360
8361 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8362
8363         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8364
8365 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8366
8367         * convert.c (convert_to_real): Add more math builtins.
8368
8369 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8370
8371         * convert.c (convert_to_real): Reformat using switch stmt.
8372
8373 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8374
8375         * c-common.c (pointer_int_sum): Do not complain about using
8376         pointers to pointers-to-members.
8377
8378 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8379
8380         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8381         have moved to the target hooks structure".
8382
8383 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8384
8385         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8386         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8387         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8388         Likewise.
8389         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8390         Likewise.
8391         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8392         rm7_fp_quick): Likewise.
8393         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8394         rm9k_fquick): Likewise.
8395         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8396         Likewise.
8397         (ir_sr70_icmp): Delete.
8398
8399 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8400
8401         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8402         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8403         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8404         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8405         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8406         Protect with proper check.
8407         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8408         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8409         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8410         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8411         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8412         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8413         not TYPE_FIELDS.
8414         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8415
8416 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8417
8418         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8419         dest is set between beginning and current insn.
8420
8421 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8422
8423         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8424         visible "static" identifiers "extern" in a local scope.
8425         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8426         post-increments/decrements.
8427
8428 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8429
8430         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8431         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8432         (xtensa_va_start): Remove assignment to current_function_arg_words.
8433
8434 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8435
8436         * alias.c (record_set): Detect the case where a register is assigned
8437         a new value that has the same base term as the old one.
8438
8439 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8440
8441         * doloop.c: Removed.
8442         * loop-doloop.c: New file.
8443         * Makefile.in (doloop.o): Remove.
8444         (loop-doloop.o): New.
8445         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8446         * cfgloopanal.c (get_loop_level): New function.
8447         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8448         is leaved immediatelly.
8449         * loop.c (strength_reduce): Do not call doloop optimization.
8450         * loop.h (LOOP_BCT): Removed.
8451         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8452         (rest_of_handle_loop2): Call doloop_optimize_loops.
8453         (rest_of_compilation): Test for optimizations moved to
8454         rest_of_handle_loop2.
8455
8456 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8457
8458         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8459         for mixed mode.
8460         (rs6000_emit_prologue): Ditto.
8461         (rs6000_emit_epilogue): Ditto.
8462         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8463         macro for mixed mode.
8464
8465 2004-03-18  Jan Hubicka  <jh@suse.cz>
8466
8467         * predict.c (propagate_freq): Compute correctly frequency of
8468         EXIT_BLOCK.
8469
8470 2004-03-17  Eric Christopher  <echristo@redhat.com>
8471
8472         * builtins.c (apply_args_size): Use reg_raw_mode.
8473         (apply_result_size): Ditto.
8474
8475 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8476
8477         PR target/14620
8478         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8479
8480 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8481
8482         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8483         32-bit builds when defaulting to 32-bit.
8484
8485 2004-03-17  Jan Hubicka  <jh@suse.cz>
8486
8487         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8488         array.
8489
8490 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8491
8492         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8493         (hazard_nop): Change type to nop.
8494         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8495         Fix all uses.  Change arith to multi if more than one insn emitted.
8496         * config/mips/5400.md (ir_vr54_arith): Likewise.
8497         * config/mips/5500.md (ir_vr55_arith): Likewise.
8498         * config/mips/7000.md (rm7_int_other): Likewise.
8499         * config/mips/9000.md (rm9k_int): Likewise.
8500         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8501
8502 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8503
8504         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8505         to hold the subtype tree instead of recomputing it several times.
8506
8507 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8508
8509         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8510         CC_INVERT.
8511         * config/mn10300/mn10300.md (cc): Remove "invert".
8512
8513 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8514
8515         * builtins.c (integer_valued_real_p): Add builtin rint.
8516         (fold_builtin): Likewise.
8517         * convert.c (convert_to_real): Likewise.
8518
8519         * convert.c (convert_to_real): Fix typos in `long double'
8520         builtins.
8521
8522 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8523
8524         PR c++/14481
8525         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8526         generated COMPOUND_EXPRs.
8527
8528 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8529
8530         * config/h8300/t-rtems (h8300-*-rtems*): New.
8531
8532 2004-03-16  Eric Christopher  <echristo@redhat.com>
8533
8534         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8535
8536 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8537
8538         * config/i386/i386-protos.h: Add a prototype for
8539         ix86_reverse_condition.
8540         * config/i386/i386.c (ix86_reverse_condition): New.
8541         * config/i386/i386.h (REVERSE_CONDITION): Use
8542         ix86_reverse_condition.
8543         * config/i386/i386.md: Use ix86_reverse_condition instead of
8544         REVERSE_CONDITION.
8545
8546 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8547
8548         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8549
8550 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8551
8552         PR bootstrap/12974
8553         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8554
8555 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8556
8557         * c-common.c (c_common_type_for_mode): Build vector types on
8558         demand.
8559         (handle_mode_attribute): Deprecate using the mode attribute
8560         to create vector types.  Fix indentation.
8561         (vector_type_node_list): Remove.
8562         (handle_vector_size_attribute): Create vector types on demand.
8563         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8564         * c-typeck.c (comptypes): Make vector types compatible if they
8565         have the same underlying mode.
8566         (convert_for_assignment): Use comptypes to convert between
8567         vector types.
8568         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8569         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8570         vector types.
8571         * tree.h: Remove vector types.
8572         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8573         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8574         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8575         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8576         * doc/extend.texi (Vector Types): Document how to use the
8577         vector_size attribute to create vectors, rather than mode.
8578
8579         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8580         * config/i386/emmintrin.h: Likewise.
8581         * config/i386/mmintrin.h: Likewise.
8582         * config/i386/xmmintrin.h: Likewise.
8583         * config/sh/ushmedia.h: Likewise.
8584
8585 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8586
8587         * config/freebsd-spec.h, config/arc/arc-protos.h,
8588         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8589         config/arm/linux-gas.h, config/arm/semi.h,
8590         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8591         config/ia64/freebsd.h, config/mips/7000.md,
8592         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8593         config/sparc/pbd.h: Update copyright.
8594
8595 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8596
8597         PR target/14577
8598         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8599
8600 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8601
8602         * combine.c (combine_simplify_rtx): Remove the "last"
8603         parameter and its documentation.  Adjust recursive calls.
8604         (simplify_logical): Always perform the only simplification
8605         controlled by "last", if the simplified expression is
8606         actually different.
8607         (try_combine): Do not pass the "last" parameter to
8608         combine_simplify_rtx.
8609
8610 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8611
8612         PR target/14599
8613         * config/mips/mips.md (UNSPEC_GP): New constant.
8614         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8615         an UNSPEC instead of (reg $gp).
8616         (mips16_gp_pseudo_reg): Change accordingly.
8617         (print_operand): Print $gp directly when handling CONST_GP_P.
8618
8619 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8620
8621         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8622         * longlong.h: Make code 68060 clean when compiling for m68060.
8623
8624 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8625
8626         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8627         * doc/md.texi: Clarify description of "i" constraint.
8628
8629 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8630
8631         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8632         Split store into store, fpstore, fpidxstore.  Fix all uses.
8633         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8634         Likewise.
8635         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8636         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8637         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8638         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8639         ir_sr70_fstore): Likewise.
8640
8641 2004-03-15  Richard Henderson  <rth@redhat.com>
8642
8643         PR middle-end/14535
8644         * except.c (collect_one_action_chain): Record action for cleanup
8645         outer of exception spec.
8646
8647 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8648
8649         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8650         Fix the check for abort and only do the mmap if we can.
8651
8652 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8653
8654         * config/sparc/sparc.h: Rework comments about the code model
8655         in 64-bit environment and the mode 'Pmode'.
8656         * doc/invoke.texi (SPARC options): Rework description of the
8657         different code models supported in 64-bit environment.
8658
8659 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8660
8661         * defaults.h (REVERSIBLE_CC_MODE): Define.
8662         * jump.c (reversed_comparison_code_parts): Don't check if
8663         REVERSIBLE_CC_MODE is defined.
8664
8665 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8666
8667         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8668         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8669         hosthooks.h, params.h, ra-colorize.c, web.c,
8670         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8671         config/avr/avr-protos.h, config/avr/avr.md,
8672         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8673         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8674         config/i386/freebsd.h, config/i386/freebsd64.h,
8675         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8676         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8677         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8678         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8679         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8680         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8681         config/sparc/aout.h, config/sparc/freebsd.h,
8682         config/sparc/litecoff.h, config/vax/vax-protos.h,
8683         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8684         copyright.
8685
8686 2004-03-15  Paul Brook  <paul@codesourcery.com>
8687
8688         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8689
8690 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8691
8692         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8693         (pp_c_cv_qualifier): Document.
8694         (pp_c_space_for_pointer_operator): Likewise.
8695         (pp_c_integer_constant): Likewise.
8696         (pp_c_identifier): Likewise.
8697         (pp_c_init_declarator): Don't print function body.
8698
8699 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8700
8701         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8702         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8703         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8704         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8705         wording and grammar.
8706
8707 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8708
8709         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8710         with lang_hooks.foo ().
8711         * builtins.c (expand_builtin_va_arg): Likewise.
8712         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8713         c_common_type_for_mode, c_common_nodes_and_builtins,
8714         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8715         * c-convert.c (convert): Likewise.
8716         * c-format.c (check_format_types): Likewise.
8717         * c-objc-common.c (c_tree_printer): Likewise.
8718         * c-typeck.c (build_unary_op, build_conditional_expr,
8719         build_binary_op): Likewise.
8720         * calls.c (try_to_integrate, expand_call,
8721         emit_library_call_value_1): Likewise.
8722         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8723         Likewise.
8724         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8725         cgraph_expand_function): Likewise.
8726         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8727         * coverage.c (build_fn_info_type, build_ctr_info_type,
8728         build_gcov_info, create_coverage): Likewise.
8729         * dbxout.c (dbxout_init): Likewise.
8730         * diagnostic.c (diagnostic_report_current_function): Likewise.
8731         * dojump.c (do_jump): Likewise.
8732         * dwarf2out.c (dwarf2_name): Likewise.
8733         * except.c (init_eh): Likewise.
8734         * explow.c (expr_size, int_expr_size): Likewise.
8735         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8736         Likewise.
8737         * expr.c (store_expr, store_constructor, safe_from_p,
8738         expand_expr_real, do_store_flag, try_casesi): Likewise.
8739         * function.c (push_function_context_to, pop_function_context_from,
8740         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8741         put_var_into_stack, allocate_struct_function, current_function_name):
8742         Likewise.
8743         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8744         Likewise.
8745         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8746         lhd_print_error_function): Likewise.
8747         * opts.c (handle_option, decode_options): Likewise.
8748         * passes.c (open_dump_file): Likewise.
8749         * print-tree.c (print_node): Likewise.
8750         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8751         expand_decl_cleanup, emit_case_nodes): Likewise.
8752         * stor-layout.c (variable_size): Likewise.
8753         * toplev.c (announce_function, wrapup_global_declarations,
8754         check_global_declarations, compile_file, default_tree_printer,
8755         process_options, lang_dependent_init, finalize): Likewise.
8756         * tree-dump.c (dequeue_and_dump): Likewise.
8757         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8758         initialize_inlined_parameters, declare_return_variable,
8759         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8760         walk_tree, copy_tree_r): Likewise.
8761         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8762         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8763         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8764         variably_modified_type_p, dump_tree_statistics): Likewise.
8765         * varasm.c (assemble_variable, compare_constant, copy_constant,
8766         force_const_mem, compute_reloc_for_constant, output_constant,
8767         output_addressed_constants, initializer_constant_valid_p): Likewise.
8768
8769 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8770
8771         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8772
8773 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8774
8775         * doc/install.texi: Reflect autoconf and automake version for
8776         libffi. Update autoconf version to 2.59.
8777
8778 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8779
8780         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8781         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8782         make_range, build_range_check, fold_range_test, unextend,
8783         constant_boolean_node, fold_binary_op_with_conditional_arg,
8784         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8785         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8786         with lang_hooks.foo ().
8787
8788 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8789
8790         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8791
8792 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8793
8794         * doc/install.texi: Note status of -fnew-ra.
8795
8796 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8797
8798         PR middle-end/14470
8799         * expr.c (store_expr): Call emit_queue before generating the move
8800         from the temporary to the original target.  Protect the temporary
8801         from emit_queue.
8802
8803 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8804
8805         PR target/14533
8806         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8807         other than UNSPEC_GOTOFF.
8808
8809 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8810
8811         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8812         to arm_legitimate_index_p.  Update all callers with SET as default
8813         value.
8814         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8815         range if OUTER is a sign-extend operation on QImode.  Correctly
8816         reject shift operations on sign-extended QImode addresses.
8817         (bad_signed_byte_operand): Delete.
8818         (arm_extendqisi_mem_op): New function.
8819         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8820         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8821         constraints.
8822         (CONSTRAINT_LEN): New.
8823         (EXTRA_CONSTRAINT): Delete.  Replace with...
8824         (EXTRA_CONSTRAINT_STR): ... this.
8825         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8826         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8827         is now always default.
8828         (define_splits for bad sign-extend loads): Delete.
8829         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8830         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8831         Rework 'U' constraint to 'Uv'.
8832         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8833         arm_extendqisi_mem_op.
8834         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8835         Add Uq constraint.
8836
8837 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8838
8839         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8840         with targetm version.
8841
8842         PR target/14567
8843         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8844         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8845         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8846         Update all users of RS6000_ARG_SIZE.
8847         (function_arg_advance): Count fregno using mode size.
8848         (function_arg): Handle long double split over regs and memory.
8849         (function_arg_partial_nregs): Likewise.
8850         (rs6000_va_arg): Repackage complex args.
8851
8852 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8853
8854         PR target/14047
8855         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8856         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8857         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8858
8859 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8860
8861         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8862         prototype.
8863         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8864         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8865
8866 2003-03-12  Andrew Pinski  <apinski@apple.com>
8867
8868         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8869         Use ret instead of result. Use addr instead of base.
8870
8871 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8872
8873         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8874         fixes required by libstdc++ and update installation instructions
8875         for libstdc++.a.
8876
8877 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8878
8879         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8880         leading '@' on fastcall symbols before stripping suffix.
8881
8882 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8883
8884         * combine.c (unmentioned_reg_p): New function to check whether an
8885         expression is a "specialization" of another, i.e. that there are
8886         no registers or memory references mentioned in the first that don't
8887         appear in the second.
8888         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8889         (combine_instructions): Also try combining instructions using the
8890         REG_EQUAL note from a preceding log-linked instruction.
8891
8892 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8893
8894         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8895
8896 2004-03-12  Matt Austern  <austern@apple.com>
8897
8898         * target.h (struct gcc_target): New target hook, unwind_label.
8899         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8900         * output.h (default_emit_unwind_label): New function.
8901         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8902         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8903         (TARGET_SUPPORTS_HIDDEN): New target macro.
8904         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8905         that corresponds to this FDE.
8906         (FRAME_BEGIN_LABEL): Allow target to override default label.
8907         (output_call_frame_info): If FDEs are linknonce, then use extra
8908         indirection for FDE encoding, output a label for each FDE, and
8909         output an empty label for each function without an FDE.
8910         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8911         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8912         decls with DECL_ONE_ONLY set, if that macro is defined.
8913         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8914         for a SUPPORTS_ONE_ONLY target.
8915         * config/darwin-protos.h (darwin_unique_section): Declare.
8916         (darwin_asm_named_section): Likewise.
8917         (darwin_section_type_flags): Likewise.
8918         (darwin_non_lazy_pcrel): Likewise.
8919         (darwin_emit_unwind_label): Likewise.
8920         (darwin_make_decl_one_only): Likewise.
8921         * config/darwin.c (machopic_finish): Get rid of tweak that
8922         eliminate stubs for symbols that are defined.
8923         (darwin_encode_section_info): Don't treat weak functions as defined.
8924         (darwin_make_decl_one_only): Define.
8925         (darwin_asm_named_section): Likewise.
8926         (darwin_section_type_flags): Likewise.
8927         (darwin_unique_section): Likewise.
8928         (darwin_emit_unwind_label): Likewise.
8929         (darwin_non_lazy_pcrel): Likewise.
8930         (darwin_asm_output_dwarf_delta): Difference between two labels is
8931         local only if both labels are local.
8932         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8933         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8934         (TARGET_SUPPORTS_HIDDEN): Likewise.
8935         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8936         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8937         (FRAME_BEGIN_LABEL): Likewise.
8938         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8939         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8940         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8941         (TARGET_ASM_UNIQUE_SECTION): Define.
8942         (EH_FRAME_SECTION_NAME): Define.
8943         (EH_FRAME_SECTION_ATTR): Likewise.
8944         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8945         (TARGET_ASM_NAMED_SECTION): Likewise.
8946         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8947         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8948         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8949         TARGET_ASM_EMIT_UNWIND_LABEL.
8950
8951 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8952
8953         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8954         existing exp10* case.
8955         (expand_builtin): Likewise.
8956
8957 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8958
8959         * doc/tm.texi (registers) <Values in Registers>: Add
8960         entry for REGMODE_NATURAL_SIZE.
8961
8962 2004-03-12  Richard Henderson  <rth@redhat.com>
8963
8964         PR target/14547
8965         * target.h (struct gcc_target): Move calls substructure before
8966         booleans.  Add split_complex_arg.
8967         * function.c (assign_parms, split_complex_args): Use it.
8968         * calls.c (expand_call): Likewise.
8969         (split_complex_values): Likewise.  Check for splittable types
8970         before allocating memory.
8971         (split_complex_types): Likewise.
8972         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8973         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8974         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8975         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8976         (TARGET_SPLIT_COMPLEX_ARG): New.
8977         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8978         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8979         (rs6000_override_options): Zap it for non-AIX.
8980         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8981         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8982         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8983         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8984         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8985         SPLIT_COMPLEX_ARGS entry.
8986
8987 2004-03-11  Richard Henderson  <rth@redhat.com>
8988
8989         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8990         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8991         (alpha_emit_xfloating_arith): Update to match.
8992         (alpha_emit_xfloating_compare): Likewise.
8993         (alpha_emit_xfloating_cvt): Likewise.
8994         (alpha_emit_xfloating_libcall): Take already built symbol,
8995         mark call const.
8996         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8997         op1 in a register.
8998
8999 2004-03-11  Richard Henderson  <rth@redhat.com>
9000
9001         PR target/14539
9002         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9003
9004         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9005
9006 2004-03-11  Richard Henderson  <rth@redhat.com>
9007
9008         PR middle-end/14477
9009         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9010
9011 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9012
9013         PR target/14262
9014         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9015         defined, pass small BLKmode values in registers in the low-order part.
9016
9017 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9018
9019         * combine.c (if_then_else_cond): Check for NULL return value of
9020         simplify_gen_subreg.
9021
9022 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9023
9024         PR target/14496
9025         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9026         TARGET_SINGLE_FLOAT.
9027
9028 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9029
9030         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9031         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9032         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9033         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9034
9035 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9036
9037         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9038         -((int)X>>C) where C is an integer constant one bit less than the
9039         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9040         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9041
9042         * simplify-rtx.c (simplify_unary_operation): Also implement the
9043         above transformations at the RTL level.
9044
9045 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9046
9047         * real.c (encode_ibm_extended): Do round low word.
9048
9049 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9050
9051         * config/arm/arm.md (is_xscale): Comment this attribute and move
9052         it a bit further up in the file, closer to related attributes.
9053
9054 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9055
9056         * config/host-solaris.c (sol_gt_pch_use_address): Add
9057         missing terminating marker to comment.
9058
9059 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9060
9061         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9062         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9063         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9064         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9065         move_operand as source predicate in all cases.
9066         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9067         Test reg_or_0_operand.  Use move_operand as source predicate.
9068         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9069         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9070         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9071         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9072         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9073         Use move_operand as source predicate.  Remove 'K' constraint.
9074         (*movqi_internal): Likewise movqi_internal.
9075         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9076         reg_or_0_operand.  Use move_operand as source predicate.
9077         (*movsf_softfloat): Likewise movsf_internal2.
9078         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9079         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9080         (*movdf_softfloat): Likewise movdf_internal2.
9081         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9082         for DImode if !TARGET_64BIT.
9083         (mips_legitimize_move): Simplify accordingly.
9084
9085 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9086
9087         PR/14362
9088         * var-tracking.c (struct variable_def): Added field refcount.
9089         (variable_htab_free): Decrease the refcount and delete variable
9090         only if there are no more references.
9091         (unshare_variable): New function.
9092         (vars_copy_1): Increase refcount instead of copying the variable.
9093         (variable_union): Share the variables where possible, unshare
9094         the variables if needed.
9095         (variable_different_p): Return false if var1 and var2 are
9096         the same structure.
9097         (variable_was_changed): Init the refcount of new variable.
9098         (set_frame_base_location): Unshare variable if needed.
9099         (set_variable_part): Init the refcount of new variable.
9100         Unshare the variables if needed.
9101         (delete_variable_part): Unshare the variables if needed.
9102         (emit_notes_for_differences_1): Init the refcount of new variable.
9103         (vt_add_function_parameters): Do not add function parameters to
9104         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9105         (vt_initialize): Do not add frame_base_decl to IN set of
9106         ENTRY_BLOCK_PTR because it is unused anyway.
9107
9108 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9109
9110         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9111         (vars_copy): Likewise.
9112         (variable_union): Likewise.
9113         (set_variable_part): Likewise.
9114         (delete_variable_part): Likewise.
9115
9116 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9117
9118         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9119         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9120         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9121         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9122         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9123         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9124         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9125         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9126         config/stormy16/stormy16.c: Fix comment typos and formatting.
9127
9128 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9129
9130         * configure: Regenerate, since I forgot to while committing Paolo's
9131         changes.
9132
9133 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9134
9135         PR ada/14131
9136         Move language detection to the top level.
9137         * configure.ac: Remove code to detect languages,
9138         it now lives exclusively in the top level.
9139         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9140         top level, renamed to ACX_PROG_GNAT.
9141
9142 2004-03-10  Richard Henderson  <rth@redhat.com>
9143
9144         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9145         extra arguments.
9146         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9147         and host_xmake_file fragments.
9148         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9149         (gt_pch_restore): Similarly for gt_pch_use_address.
9150         (default_gt_pch_get_address): New.
9151         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9152         (default_gt_pch_use_address): Split out of gt_pch_restore.
9153         (mmap_gt_pch_use_address): Likewise.
9154         * hooks.c (hook_voidp_size_t_null): Remove.
9155         (hook_bool_voidp_size_t_false): Remove.
9156         * hooks.h: Likewise.
9157         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9158         default_ or mmap_ definitions.
9159         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9160         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9161         and gt_pch_use_address.
9162         * config/host-linux.c, config/host-solaris.c: New files.
9163         * config/x-linux, config/x-solaris: New files.
9164         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9165         Update for changed definition.
9166         (darwin_rs6000_gt_pch_use_address): Likewise.
9167         * doc/hostconfig.texi: Update docs.
9168
9169 2004-03-10  Richard Henderson  <rth@redhat.com>
9170
9171         PR c/14517
9172         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9173         except for pedantic c90 mode.
9174
9175 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9176
9177         * configure.ac: Bump AC_PREREQ to 2.59.
9178         * configure: Regenerate.
9179
9180 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9181
9182         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9183         (exp10_optab, exp2_optab): Define corresponding macros.
9184         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9185         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9186         using exp10?f2 and exp2?f2 patterns.
9187         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9188         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9189         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9190         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9191
9192         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9193         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9194         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9195
9196 2004-03-10  Anthony Green  <green@redhat.com>
9197
9198         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9199
9200 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9201
9202         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9203         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9204         __LONGDOUBLE128.
9205         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9206         TARGET_OS_AIX_CPP_BUILTINS.
9207         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9208         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9209         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9210         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9211         previous change.
9212
9213 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9214
9215         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9216
9217 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9218
9219         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9220         __LONGDOUBLE128 on AIX.
9221
9222 2004-03-10  Andrew Haley  <aph@redhat.com>
9223
9224         PR optimization/14381
9225         * function.c (expand_function_end): Emit a blockage insn before
9226         the epilogue when -fnon-call-exceptions is used.
9227
9228         * except.c (expand_start_all_catch): Make comment more accurate.
9229
9230 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9231
9232         PR target/14480
9233         * config/rs6000/t-rtems: Add missing file on branch.
9234
9235 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9236
9237         * dbxout.c (dbxout_symbol_location): Do not output references
9238         to optimized-out constant pool symbols.
9239
9240 2004-03-10  Andreas Schwab  <schwab@suse.de>
9241
9242         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9243         twon34_r.
9244
9245 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9246
9247         * alias.c (alias_sets_might_conflict_p): New.
9248         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9249         * common.opt (Wstrict-aliasing=): New.
9250         * flags.h (warn_strict_aliasing): Change type to int.
9251         * opts.c (warn_strict_aliasing): Change type to int.
9252         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9253         * tree.h (alias_sets_might_conflict_p): Declare it.
9254         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9255
9256 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9257
9258         PR bootstrap/12371
9259         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9260         (CALL_USED_REGISTERS): Likewise.
9261         (REG_CLASS_CONTENTS): Likewise.
9262         (REG_ALLOC_ORDER): New.
9263         (REGNO_REG_CLASS): Use regno_reg_class.
9264         * config/m68k/m68k.c: Add regno_reg_class array.
9265
9266 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9267
9268         * config/ia64/ia64.md (divsi3): Fix algorithm.
9269           (udivsi3): Ditto.
9270           (setf_exp_xf): Remove '*' from name.
9271         * testsuite/gcc.dg/20040309-1.c: New test.
9272
9273 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9274
9275         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9276         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9277         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9278         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9279         (sparc_aout_select_rtx_section): Don't check
9280         SUNOS4_SHARED_LIBRARIES.
9281         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9282
9283 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9284
9285         PR other/14474
9286         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9287         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9288         INTERNALS".
9289
9290 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9291
9292         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9293         (LIBGCC_SPEC): Update to match.
9294
9295 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9296
9297         * c-decl.c (last_function_parms, last_function_parm_tags)
9298         (last_function_parm_others, current_function_parms)
9299         (current_function_parm_tags, current_function_parm_others):
9300         Delete.
9301         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9302         New macros.
9303         (grokdeclarator): For function definitions, save the arg-info
9304         block from the declarator in DECL_ARGUMENTS.
9305         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9306         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9307         contains only PARM_DECLs.  Improve diagnostics.
9308         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9309         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9310         (store_parm_decls_newstyle): Take the function to operate on,
9311         and an arg-info block, as arguments; don't get anything from
9312         current_function_* globals.
9313         (store_parm_decls_oldstyle): Likewise.
9314         (store_parm_decls): Pass fndecl and its arg-info block down to
9315         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9316         argument lists through store_parm_decls_newstyle to reduce
9317         overhead.
9318         (pushdecl): Comment on the problems with the call to copy_node.
9319         Clear DECL_ARGUMENTS of the old node after copying it, if it
9320         is an arg-info block instead of a chain of decls.
9321         (start_function): Do not manipulate current_function_parm* or
9322         last_function_parm*.
9323
9324 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9325             Andrew Pinski  <pinskia@physics.uc.edu>
9326
9327         * ifcvt.c (noce_try_sign_mask): New function to transform
9328         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9329         (noce_process_if_block): Call noce_try_sign_mask.
9330
9331 2004-03-09  Andrew Pinski  <apinski@apple.com>
9332
9333         * c-typeck.c (tagged_types_tu_compatible_p):
9334         Fix typo.
9335
9336 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9337
9338         * simplify-rtx.c (simplify_const_relational_operation): New function
9339         renamed from simplify_relational_operation.
9340         (simplify_relational_operation): Change prototype to accept an
9341         additional mode argument.  Call simplify_const_relational_operation.
9342         (simplify_gen_relational): Update simplify_relational_operation call.
9343         (simplify_ternary_operation): Update simplify_relational_operation
9344         subroutine call to use simplify_const_relational_operation instead.
9345
9346         * rtl.h (simplify_const_relational_operation): Prototype here.
9347         (simplify_relational_operation): Add addtional mode argument.
9348
9349         * combine.c (combine_simplify_rtx): Update calls to
9350         simplify_relational_operation.
9351         (simplify_set): Likewise.
9352         (gen_binary): Likewise.
9353         * cse.c (fold_rtx): Likewise.
9354         * dojump.c (compare_from_rtx): Likewise.
9355         (do_compare_rtx_and_jump): Likewise.
9356         * integrate.c (subst_constants): Likewise.
9357         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9358
9359 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9360
9361         * config/m32r/m32r.md: Remove all define_peephole's.
9362
9363 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9364
9365         * config/rs6000/rs6000.md: Remove trailing whitespace.
9366
9367 2004-03-08  Eric Christopher  <echristo@redhat.com>
9368
9369         * Makefile.in (site.exp): Add libiconv variable definition.
9370
9371 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9372
9373         * configure: Regenerate for config/accross.m4 correction.
9374
9375 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9376
9377         PR target/14480
9378         * config/rs6000/t-rtems: Add missing file on branch.
9379
9380 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9381
9382         PR middle-end/14289
9383         * c-typeck.c (c_mark_addressable): A register variable should
9384         be considered global if its not automatic, i.e. TREE_PUBLIC,
9385         TREE_STATIC or DECL_EXTERNAL.
9386         * function.c (put_var_into_stack): Call abort when placing a
9387         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9388
9389 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9390
9391         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9392         ("*extendqisi2_short_displ"): Likewise.
9393
9394 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9395
9396         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9397         (comp_operator): Likewise.
9398         * config/pdp11/pdp11-protos.h: Remove corresponding
9399         prototypes.
9400
9401 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9402
9403         * expr.c (highest_pow2_factor_for_type): Rename into
9404         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9405         TYPE_ALIGN when the target is a COMPONENT_REF.
9406         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9407
9408 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9409
9410         * config/rs6000/rs6000.c: Formatting fix.
9411         (legitimate_offset_address_p): Correct offset range check.
9412
9413         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9414         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9415         and MASK_STRING.
9416
9417 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9418
9419         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9420         for little endian.
9421         ("ashrdi3_no_power"): Disable for little endian.
9422         (ashrdi3): Same.
9423
9424 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9425
9426         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9427         builtins.
9428
9429 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9430
9431         PR target/14471
9432         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9433         case, checking for -no-mul-bug-abort option.
9434         * configure, config.in: Regenerate.
9435         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9436         and -mno-mul-bug-workaround.
9437         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9438         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9439         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9440         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9441         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9442         sure mulu.d is not last on cache-line.
9443         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9444         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9445         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9446         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9447         -mno-mul-bug-workaround.
9448         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9449         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9450         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9451         relation to MULT in head comment.
9452         (cris_op_str): Abort for MULT.
9453         (cris_print_operand) <case '!'>: New case.
9454
9455 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9456
9457         PR debug/11983
9458         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9459         dw_val_class_vec.  Replace use throughout file.
9460         (dw_float_const): Delete.
9461         (dw_vec_const): New.
9462         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9463         throughout file.
9464         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9465         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9466         (size_of_die): Adjust dw_val_class_vec sizing.
9467         (output_die): Output dw_val_class_vec.
9468         (insert_int, extract_int, insert_float): New functions.
9469         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9470         Handle CONST_VECTOR.
9471         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9472
9473 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9474
9475         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9476         AltiVec abi cannot co-exist.
9477
9478         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9479
9480 2004-03-07  Jan Hubicka  <jh@suse.cz>
9481
9482         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9483
9484 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9485
9486         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9487         ("*lshrsi3"): Also accept an immediate for 68HC12.
9488         ("*ashrsi3_const"): Likewise.
9489         ("*ashrsi3"): Likewise.
9490         ("*ashlsi3_const"): Likewise.
9491         ("*ashlsi3"): Likewise.
9492         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9493         comparing with a pop; don't use a split for that.
9494         ("cmphi split"): Disable compare split for 68HC12.
9495
9496         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9497         the status operands if they have side effects.
9498
9499 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9500
9501         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9502         definition.
9503         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9504         config/h8300/h8300.h, config/ia64/ia64.h,
9505         config/mcore/mcore.h, config/mmix/mmix.h,
9506         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9507         config/stormy16/stormy16.h, config/v850/v850.h,
9508         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9509         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9510         definition.
9511
9512 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9513
9514         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9515         <XOR_EXPR>: Fold x ^ x as zero.
9516         <AND_EXPR>: Fold x & x as x.
9517
9518 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9519
9520         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9521         "foo++ == const" into "++foo == const+incr".
9522
9523 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9524
9525         * config/mips/mips.c (mips_in_small_data_p): Return false if
9526         TARGET_ABICALLS.
9527
9528 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9529
9530         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9531         the stack register.
9532         (expand_prologue): Don't make an interrupt or a trap handler a far
9533         symbol.
9534         (m68hc11_initial_elimination_offset): Likewise.
9535
9536 2004-03-06  Richard Henderson  <rth@redhat.com>
9537
9538         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9539
9540 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9541
9542         * config/ns32k/ns32k-protos.h: Add a prototype for
9543         ns32k_notice_update_cc.
9544         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9545         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9546         ns32k_notice_update_cc.
9547
9548 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9549
9550         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9551         "*load_multiple_si"): Allow only if reload_completed.
9552         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9553         Likewise.
9554
9555 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9556
9557         * config/vax/vax-protos.h: Add a prototype for
9558         vax_notice_update_cc.
9559         * config/vax/vax.c (vax_notice_update_cc): New.
9560         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9561         vax_notice_update_cc.
9562
9563 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9564
9565         * collect2.c (main): Only export initfunc and finifunc if
9566         LD_INIT_SWITCH not defined.
9567         (scan_prog_file): Only export constructors and destructors if
9568         LD_INIT_SWITCH not defined.  Only export symbols not found in
9569         shared objects.
9570
9571 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9572
9573         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9574         last.
9575         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9576         from calls to gen_icacheflush.
9577
9578 2004-03-06  Richard Henderson  <rth@redhat.com>
9579
9580         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9581         (TARGET_LONG_DOUBLE_128): New.
9582         (TARGET_SWITCHES): Add long-double-{128,64}.
9583         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9584         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9585         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9586         (WIDEST_HARDWARE_FP_SIZE): New.
9587         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9588         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9589         if TARGET_VAX_FLOAT.
9590         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9591         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9592
9593 2004-03-06  Richard Henderson  <rth@redhat.com>
9594
9595         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9596         botched rtx class conversion.
9597
9598 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9599
9600         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9601         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9602
9603         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9604         macros.
9605         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9606
9607 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9608
9609         PR target/14343
9610         * config/i386/i386.md (movv2di_internal): Conditionalize on
9611         TARGET_SSE, not TARGET_SSE2.
9612
9613 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9614
9615         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9616         duplicated line.
9617
9618 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9619
9620         * builtins.c: Consistently use logN not log* in comments.
9621
9622 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9623
9624         * rtl.h (mem_expr_equal_p): Function prototype added.
9625         * cfgcleanup.c (merge_memattrs): New function.
9626         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9627         * emit-rtl.c (mem_expr_equal_p): New function.
9628
9629 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9630
9631         * objc/objc-act.c (synth_module_prologue): Const-qualify
9632         objc_selector type if using the GNU runtime; fix generated
9633         signatures for objc_msg_lookup and objc_msg_lookup_super
9634         to match what GNU ObjC headers provide; reformat and clean up.
9635         (synth_self_and_ucmd_args): Use previously constructed (and
9636         hence possibly const-qualified) objc_selector type.
9637
9638 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9639
9640         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9641
9642 2004-03-05  Jason Merrill  <jason@redhat.com>
9643
9644         * tree.h (TYPE_HASH): Use TYPE_UID.
9645         (TREE_HASH): New macro with old definition of TYPE_HASH.
9646         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9647         (build_array_type, build_function_type): Likewise.
9648         (build_method_type_directly): Likewise.
9649         (build_offset_type, build_complex_type): Likewise.
9650         (type_hash_list, attribute_hash_list): Likewise. Now static.
9651         * except.c: s/TYPE_HASH/TREE_HASH/.
9652
9653 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9654
9655         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9656         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9657         __va_ndx by 2 words when referencing an argument on the stack.
9658         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9659         words when an arg on the stack is first seen.
9660
9661 2004-03-05  Paul Brook  <paul@codesourcery.com>
9662
9663         * arm.h (ARM_FLAG_VFP): Remove.
9664         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9665         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9666
9667 2004-03-05  Paul Brook  <paul@codesourcery.com>
9668
9669         * function.c (assign_parms): Include pretend alignment offset.
9670
9671 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9672
9673         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9674         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9675
9676 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9677
9678         * configure.ac: When passing --enable-languages to subdir
9679         configure when host != build, make sure we don't pass an empty
9680         value.
9681         * configure: Regenerate.
9682
9683 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9684
9685         PR 13577
9686         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9687         options.
9688
9689 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9690
9691         * simplify-rtx.c (simplify_relational_operation): If
9692         flag_wrapv is set, do not move terms between the two
9693         side of a relational operator.
9694
9695 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9696
9697         * rtlanal.c: Include target.h and output.h
9698         (rtx_cost, address_cost, default_address_cost): Move from...
9699         * cse.c (rtx_cost, address_cost, default_address_cost):
9700         ... this file.
9701         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9702         * Makefile.in: Adjust dependencies.
9703
9704 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9705
9706         * cse.c (cse_end_of_basic_block): Make static.
9707         * local-alloc.c (function_invariant_p): Move to
9708         reload1.c.
9709         * loop.c (libcall_other_reg, record_excess_regs):
9710         Make static.
9711         * reload1.c (function_invariant_p): Moved here
9712         from local-alloc.c, made static.
9713         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9714         libcall_other_reg, record_excess_regs): Remove
9715         declarations.
9716
9717 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9718
9719         * config/m32r/m32r.c (signed_comparison_operator): Add a
9720         missing parenthesis.
9721
9722 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9723
9724         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9725         going to call mmap again.  Read the file into the right place.
9726         Give a fatal error if we have to relocate.
9727
9728 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9729
9730         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9731         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9732
9733 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9734
9735         PR other/14354
9736         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9737         round the same.  When rounding, clear bits that would cause a
9738         second rounding in pack_d.
9739         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9740
9741 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9742
9743         PR c++/14425, c++/14426
9744         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9745         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9746         Change C++ definitions to accept a 'const int' argument;
9747         the prototypes already do.
9748         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9749         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9750         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9751         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9752         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9753         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9754         end in ..._int; change them to accept an int instead of a char
9755         as the last parameter.
9756
9757 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9758
9759         * genmultilib:  Change '=' to '-' when translating option names
9760         to directory names.
9761
9762 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9763
9764         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9765         stack slot for temp used for result of BLKmode but in integral mode.
9766
9767 2004-03-04  Jan Hubicka  <jh@suse.cz>
9768
9769         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9770
9771         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9772         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9773
9774 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9775
9776         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9777         * testsuite/gcc.dg/20040303-1.c: New test.
9778
9779 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9780
9781         * ppro.md: Rewrite as a DFA pipeline description.
9782         * i386.md: Remove all uses of the ppro_uops attribute.
9783         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9784         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9785         ix86_sched_reorder, ix86_variable_issue,
9786         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9787         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9788         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9789         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9790         * athlon.md (athlon_ssecmp_load): Fix comment
9791
9792 2004-03-04  Stuart Hastings  <stuart@apple.com>
9793
9794         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9795
9796 2004-03-04  Stuart Hastings  <stuart@apple.com>
9797
9798         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9799         686, tell Darwin assembler to allow prefetch insns, non-empty def
9800         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9801
9802 2004-03-04  DJ Delorie  <dj@redhat.com>
9803
9804         PR optimization/14282
9805         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9806         between a call and the assignment of its return value.
9807
9808 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9809
9810         * config/h8300/h8300.c: Put a comment for every function.
9811
9812 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9813
9814         * config/h8300/h8300.md: Add comments about peephole2's.
9815
9816 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9817
9818         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9819
9820 2004-03-04  Jan Hubicka  <jh@suse.cz>
9821
9822         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9823         * cselib.c (cselib_record_memory): New static variable.
9824         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9825         Give up on memories when asked for.
9826         (cselib_init): Accept new argument.
9827         * cselib.h (cselib_init): Update prototype.
9828         * gcse.c (local_cprop_pass): Update call of cselib_init.
9829         * loop.c (load_mems): Update call of cselib_init.
9830         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9831         * sched-deps.c (sched_analyze): Update call of cselib_init.
9832
9833 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9834             GP <gp@qnx.com>
9835
9836         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9837         when compiling PIC.
9838
9839 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9840
9841         PR/14362
9842         * var-tracking.c (track_expr_p): Do not track variables which
9843         should be ignored for debugging purposes.
9844
9845 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9846
9847         * real.c (encode_ibm_extended): Don't bother rounding low double.
9848         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9849         when fmt->pnan < fmt->p.
9850
9851 2004-03-04  Eric Christopher  <echristo@redhat.com>
9852
9853         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9854         only range of valid arg registers and fixed_regs.
9855
9856 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9857
9858         PR target/14406
9859         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9860         (abstf2, abstf2_internal): New define_expand.
9861
9862 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9863
9864         PR optimization/14235
9865         * expr.c (convert_move): Copy the source to a new pseudo
9866         when converting from a sub-word source to a larger-than-word
9867         register which conflicts with the source.
9868
9869 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9870
9871         PR 13728
9872         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9873         parameters with the same name, unless one is a forward decl.
9874         Do not issue a redundant-redeclaration warning for forward
9875         decls of parameters.
9876
9877 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9878
9879         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9880         configuration.
9881
9882 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9883
9884         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9885
9886 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9887
9888         * target-def.h (TARGET_OPTF): Delete.
9889         * c-opts.c (TARGET_OPTF): Define.
9890
9891 2004-03-04  Jan Hubicka  <jh@suse.cz>
9892
9893         * cselib.c (cselib_finish): Fix another miss-application of my previous
9894         patch.
9895
9896 2004-03-03  Mike Stump  <mrs@apple.com>
9897
9898         Add framework support for darwin.
9899
9900         * c-incpath.c: Include target.h and machmode.h.
9901         (add_path): Use a consistent style for cpp_dir.  Initialize
9902         p->construct to 0.
9903         (add_cpp_dir_path): New.
9904         (register_include_chains): Add use of extra_includes callback.
9905         (hook_void_int): Add.
9906         (target_c_incpath): Add.
9907         * c-incpath.h (add_cpp_dir_path): New.
9908         (target_c_incpath_s): Add.
9909         (target_c_incpath): Add.
9910         (C_INCPATH_INIT): Add.
9911         * c-opts.c (c_common_missing_argument,
9912         c_common_handle_option): Add -F argument processing.
9913         * c.opt: Add -F argument processing.
9914         * gcc.c (trad_capable_cpp): Add -F argument processing.
9915         * cppfiles.c (find_file_in_dir): Update to use construct
9916         callback.
9917         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9918         cpp_get_prev): New.
9919         (_cpp_find_file): Use search_path_exhausted.
9920         (make_cpp_dir): Initialize construct to 0.
9921         * cpplib.h (missing_header_cb
9922         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9923         (cpp_callbacks): Add missing_header
9924         (cpp_dir): Add construct.
9925         * target-def.h: (TARGET_OPTF): New.
9926         * hooks.c (hook_void_int, hook_void_charptr): Add.
9927         * hooks.h (hook_void_int, hook_void_charptr): Add.
9928         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9929         $(MACHMODE_H) dependencies.
9930         * doc/invoke.texi (Darwin Options): Document -F.
9931         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9932         (TARGET_OPTF): Add.
9933         * fix-header.c (target_c_incpath): Add.
9934
9935         * config/darwin-c.c: Add c-incpath.h include.
9936         (using_frameworks, find_subframework_file,
9937         find_subframework_header, add_system_framework_path,
9938         frameworks_in_use, num_frameworks, max_frameworks,
9939         add_framework, find_framework, struct framework_header,
9940         framework_header_dirs, framework_construct_pathname,
9941         find_subframework_file, add_system_framework_path,
9942         add_framework_path, framework_defaults,
9943         darwin_register_frameworks, find_subframework_header): Add.
9944         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9945         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9946         (CPP_SPEC): Add __APPLE_CC__ support.
9947         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9948
9949 2004-03-04  Jan Hubicka  <jh@suse.cz>
9950
9951         * cselib.c (cselib_finish): Fix miss-application of my previous
9952         patch.
9953
9954 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9955
9956         * hooks.c (hook_tree_tree_identity): New.
9957         * hooks.h: Add a prototype for hook_tree_tree_identity.
9958         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9959         instead of MD_ASM_CLOBBERS.
9960         * system.h (MD_ASM_CLOBBERS): Poison.
9961         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9962         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9963         * target.h (gcc_target): Add md_asm_clobbers.
9964         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9965         (ix86_md_asm_clobbers): New.
9966         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9967         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9968         TARGET_MD_ASM_CLOBBERS.
9969
9970 2004-03-03  Stuart Hastings  <stuart@apple.com>
9971
9972         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9973
9974 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9975
9976         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9977
9978         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9979         (ASM_DOUBLE): Likewise.
9980         (ASM_LONGDOUBLE): Likewise.
9981         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9982
9983 2003-03-03  Richard Henderson  <rth@redhat.com>
9984
9985         PR opt/13862
9986         * cselib.c (cselib_record_sets): Don't record multiple sets in
9987         asm insns.
9988
9989 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9990
9991         * common.opt: Add description of the new -fgcse-after-reload flag.
9992
9993         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9994
9995         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9996         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9997         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9998         get_bb_avail_insn, hash_scan_set_after_reload,
9999         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10000         gcse_after_reload, get_bb_avail_insn): New functions to implement
10001         gcse-after-reload.
10002         (gcse_after_reload_main): New function, the main entry point to
10003         gcse-after-reload.
10004
10005         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10006
10007         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10008
10009         * toplev.c (flag_gcse_after_reload): Initialization.
10010
10011         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10012
10013         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10014         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10015         the gcse after reload optimization.
10016
10017         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10018         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10019         parameters.
10020
10021         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10022
10023 2004-03-03  Nicolas Pitre <nico@cam.org>
10024
10025         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10026         small negative values.
10027
10028 2004-03-03  Jan Hubicka  <jh@suse.cz>
10029
10030         * cselib.c (hash_table):  Remove GTY marker.
10031         (reg_values): Turn into array.
10032         (used_regs): Likewise.
10033         (n_used_regs): New static variable.
10034         (reg_values_old): Kill.
10035         (clear_table): Update uses of arrays.
10036         (cselib_lookup): Likewise.
10037         (cselib_record_set): Likewise.
10038         (cselib_init): Likewise.
10039         (cselib_finish): Likewise.
10040         (cselib_udpate_varray_sizes): Kill.
10041         * cselib.h (cselib_update_varray_sizes): Kill.
10042
10043 2004-03-03  Paul Brook  <paul@codesourcery.com>
10044
10045         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10046
10047 2004-03-03  Jan Hubicka  <jh@suse.cz>
10048
10049         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10050         Rename from ...; make statistics transparent.
10051         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10052         (loc_descriptor): New structure.
10053         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10054         add_statistics):
10055         New static function.
10056         (ggc_record_overhead, dump_statistics): New global function.
10057         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10058         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10059         from ...; accept locations
10060         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10061         ggc_realloc, ggc_alloc_typed):  ... this one.
10062         from ...; accept locations
10063         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10064         ggc_alloc_stat): Rename from ... ; pass locations
10065         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10066         ... this one.
10067         (ggc_alloc_stat): Record overehead.
10068         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10069         ggc_realloc, ggc_alloc_typed):  Turn to macros
10070         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10071         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10072         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10073         * langhooks.h (lhd_make_node): Declare.
10074         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10075         * langhooks.c (lhd_make_node): New.
10076         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10077         locations.
10078         (rtx_alloc, swallow_copy_rtx): ... this one.
10079         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10080         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10081         * toplpev.c (finalize): Dump stats.
10082         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10083         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10084         Rename from ... ; pass locators.
10085         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10086         build?,  build_decl): Declare.
10087         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10088         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10089         Declare.
10090         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10091         build?,  build_decl): New macros.
10092         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10093         * statistics.h: New file.
10094
10095 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10096             Richard Sandiford  <rsandifo@redhat.com>
10097
10098         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10099         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10100         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10101         * config/mips/mips.c (mips_output_division): Fill the branch delay
10102         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10103         TARGET_FIX_R4400.
10104         (mips_output_division): Adjust accordingly.
10105         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10106         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10107
10108 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10109
10110         * alias.c (rtx_equal_for_memref_p): Use predicates
10111         to test rtx classes and new rtx class codes, possibly
10112         splitting conditionals that tested against '<' and 'o'.
10113         * caller-save.c (save_call_clobbered_regs): Likewise.
10114         * combine.c (contains_muldiv, find_split_point, subst,
10115         combine_simplify_rtx, simplify_if_then_else,
10116         simplify_set, simplify_logical, expand_compound_operation,
10117         make_compound_operation, if_then_else_cond, known_cond,
10118         apply_distributive_law, cached_nonzero_bits,
10119         cached_num_sign_bit_copies, simplify_shift_const,
10120         gen_binary, simplify_comparison, update_table_tick,
10121         record_value_for_reg, get_lsat_value_validate): Likewise.
10122         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10123         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10124         Likewise.
10125         * emit-rtl.c (copy_insn_1): Likewise.
10126         * expr.c (force_operand): Likewise.
10127         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10128         * flow.c (notice_stack_pointer_modification_1,
10129         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10130         and_reg_cond, elim_reg_cond): Likewise.
10131         * function.c (update_epilogue_consts): Likewise.
10132         * genattrtab.c (attr_rtx_1): Likewise.
10133         * genopinit.c (gen_insn): Likewise.
10134         * integrate.c (subst_constants): Likewise.
10135         * jump.c (reversed_comparison_code_parts,
10136         reversed_comparison_code, delete_related_insns,
10137         rtx_renumbered_equal_p): Likewise.
10138         * local-alloc.c (block_alloc): Likewise.
10139         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10140         canonicalize_condition): Likewise.
10141         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10142         Likewise.
10143         * optabs.c (add_equal_node, expand_binop): Likewise.
10144         * predict.c (estimate_probability): Likewise.
10145         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10146         * recog.c (validate_replace_rtx_1, comparison_operator,
10147         offsettable_address_p, constrain_operands): Likewise.
10148         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10149         Likewise.
10150         * regclass.c (scan_one_insn): Likewise.
10151         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10152         * regrename.c (kill_autoinc_value): Likewise.
10153         * reload.c (find_reusable_reload, find_reloads,
10154         reg_overlap_mentioned_for_reload_p): Likewise.
10155         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10156         * rtl.c (copy_rtx): Likewise.
10157         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10158         * rtlanal.c (commutative_operand_precedence): Likewise.
10159         * sched-deps.c (conditions_mutex_p): Likewise.
10160         * sched-rgn.c (is_cfg_nonregular): Likewise.
10161         * simplify-rtx.c (simplify_gen_binary,
10162         simplify_gen_relational, simplify_replace_rtx,
10163         simplify_unary_operation, simplify_binary_operation,
10164         simplify_ternary_operation, simplify_rtx): Likewise.
10165         * unroll.c (reg_dead_after_loop): Likewise.
10166         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10167         print_operand): Likewise.
10168         * config/arc/arc.c (proper_comparison_operator): Likewise.
10169         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10170         Likewise.
10171         * config/avr/avr.c (_reg_unused_after): Likewise.
10172         * config/frv/frv.c (frv_ifcvt_modify_tests,
10173         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10174         * config/i386/i386.c (ix86_comparison_operator,
10175         ix86_carry_flag_operator, fcmov_comparison_operator,
10176         arith_or_logical_operator, print_operand,
10177         ix86_expand_binary_operator, ix86_binary_operator_ok):
10178         Likewise.
10179         * config/i386/i386.md: Likewise.
10180         * config/ia64/ia64.c (not_postinc_memory_operand,
10181         ia64_print_operand, update_set_flags, errata_emit_nops):
10182         Likewise.
10183         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10184         CONSTRAINT_OK_FOR_S): Likewise.
10185         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10186         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10187         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10188         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10189         Likewise.
10190         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10191         eqne_comparison_operator, signed_comparison_operator):
10192         Likewise.
10193         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10194         Likewise.
10195         * config/mmix/mmix (mmix_foldable_comparison_operator,
10196         mmix_comparison_operator): Likewise.
10197         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10198         * config/rs6000/rs6000.c (stmw_operation,
10199         branch_comparison_operator, trap_comparison_operator,
10200         ccr_bit): Likewise.
10201         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10202         * config/s390/s390.c (s390_alc_comparison,
10203         s390_slb_comparison):L Likewise.
10204         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10205         Likewise.
10206         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10207         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10208         emit_hard_tfmode_operation, reg_unused_after)
10209         * doc/md.texi, doc/rtl.texi: Likewise.
10210
10211         * ra-debug.c: Add 2004 to list of copyright years.
10212         * unroll.c: Likewise.
10213
10214         * combine.c (simplify_logical): Remove dummy test,
10215         (apply_distributive_law): Fix typo in comment.
10216         GET_CODE (x) == AND so x is a commutative binary op.
10217         * jump.c (delete_related_insns): simplify loop
10218         condition, move testing of RTX codes inside the loop.
10219         (rtx_renumbered_equal_p): do not use RTX_CODE.
10220         * rtl.c (rtx_class): Declare as enum rtx_class.
10221         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10222         Move to RTX_COMM_COMPARE class.
10223         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10224         Move to RTX_CONST_OBJ class.
10225         * rtl.h (enum rtx_class): New declaration,
10226         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10227         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10228         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10229         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10230         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10231         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10232         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10233         OBJECT_P): New macros.
10234         * config/sparc/sparc.c (noov_compare_op): Remove register
10235         from parameter.
10236
10237 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10238
10239         * target.h: Remove texi jargons in comments.
10240
10241 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10242
10243         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10244         threshold to 0x4f.
10245
10246         Revert:
10247         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10248         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10249         as well.
10250         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10251         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10252
10253 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10254
10255         * doc/md.texi (cbranchmode4): New.
10256
10257 2004-03-02  Eric Christopher  <echristo@redhat.com>
10258
10259         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10260         fix_trunc.
10261         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10262         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10263         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10264         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10265
10266 2004-03-02  Richard Henderson  <rth@redhat.com>
10267
10268         PR middle-end/11767
10269         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10270         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10271         before the compare, if flag_non_call_exceptions.
10272
10273 2004-03-02  Richard Henderson  <rth@redhat.com>
10274
10275         PR middle-end/14327
10276         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10277         emitting the label, not after.
10278
10279 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10280
10281         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10282         (m68hc11_mov_addr_mode): Likewise.
10283         (m68hc11_override_options): Initialize them based on target.
10284         (register_indirect_p): Allow a MEM for indirect addressing modes and
10285         use flags to control what is allowed.
10286         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10287         supported addressing modes.
10288         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10289         (go_if_legitimate_address_internal): Likewise.
10290         (m68hc11_indirect_p): Likewise and check the mode.
10291         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10292
10293 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10294
10295         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10296         (expand_builtin_setjmp_setup): Use
10297         targetm.builtin_setjmp_frame_value instead of
10298         BUILTIN_SETJMP_FRAME_VALUE.
10299         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10300         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10301         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10302         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10303         * targhooks.c (default_builtin_setjmp_frame_value): New.
10304         * targhooks.h: Add a prototype for
10305         default_builtin_setjmp_frame_value.
10306         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10307         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10308
10309 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10310
10311         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10312         sequences of moves.
10313         (add peepholes): New peepholes to optimize sequences adding small
10314         constants.
10315         (bset peepholes): New peepholes to transform an OR in a bset form
10316         (bclr peepholes): Likewise for bclr form.
10317         (cmp peepholes): New peepholes to avoid register copies when comparing.
10318
10319 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10320
10321         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10322         to separate push from moves.
10323         ("*pushdf_internal"): Likewise.
10324         ("*pushsf_internal"): Likewise.
10325         ("*pushsi_internal"): Likewise.
10326         ("movdi_internal"): Use define_insn_and_split; non push operand.
10327         ("movdf_internal"): Likewise.
10328         ("movsf_internal"): Likewise.
10329         ("movsi_internal"): Likewise.
10330         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10331         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10332         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10333
10334 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10335
10336         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10337         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10338         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10339         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10340         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10341         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10342         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10343         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10344         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10345         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10346         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10347
10348 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10349
10350         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10351         (SOFT_XY_REGNUM): Define.
10352         (cmp split): Use the above instead of hard coded numbers.
10353         (8-bit op split): No need to check the mode; allow Q_REG.
10354         (ashift split): Adjust the first operand if it uses the SP and we
10355         are pushing the shifted value.
10356         (plus shift split): Fix when a source is in register D+X.
10357         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10358
10359 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10360
10361         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10362         comparing with Z register.
10363
10364 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10365
10366         * cfgloop.h (struct loop_desc): Removed.
10367         (struct loop): Fields simple, desc and has_desc removed.
10368         (simple_loop_p, count_loop_iterations): Declaration removed.
10369         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10370         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10371         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10372         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10373         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10374         simple_condition_p, simple_increment, count_strange_loop_iterations,
10375         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10376         Removed.
10377         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10378
10379 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10380
10381         * genattrtab.c: Don't handle MATCH_INSN.
10382         * genrecog.c: Likewise.
10383         * gensupport.c: Likewise.
10384         * rtl.def (match_insn): Remove.
10385         * doc/md.texi (match_insn, match_insn2): Remove.
10386
10387 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10388
10389         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10390         macro results in memory allocation.
10391
10392 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10393
10394         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10395         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10396         %(fbsd_dynamic_linker),
10397         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10398         config/i386/freebsd.h
10399         * config/arm/freebsd.h: Ditto.
10400         * config/i386/freebsd.h: Ditto.
10401         * config/i386/freebsd64.h: Ditto.
10402         * config/ia64/freebsd.h: Ditto.
10403         * config/rs6000/sysv4.h: Ditto.
10404         * config/sparc/freebsd.h: Ditto.
10405
10406 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10407
10408         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10409
10410 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10411
10412         * rtl.def (define_combine): Remove.
10413
10414 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10415
10416         * config/h8300/h8300.md: Tweak formatting.
10417
10418 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10419
10420         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10421         *cmphi_h8300_znvc.
10422         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10423
10424 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10425
10426         PR bootstrap/14356
10427         * gcc.c (process_command): Remove const-qualification from argv.
10428         (main): Likewise.
10429
10430 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10431
10432         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10433         pushqi1_h8300hs_advanced.  Adjust its caller.
10434         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10435         Adjust its caller.
10436
10437 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10438
10439         * Makefile.in (install-libgcc, install-multilib): Pass
10440         mkinstalldirs var to libgcc.mk.
10441
10442 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10443
10444         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10445         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10446
10447 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10448
10449         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10450         * config/h8300/h8300.md: Split several peephole2's, each into
10451         two.
10452
10453 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10454
10455         * dominance.c (recount_dominator): Handle postdominators.
10456
10457 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10458
10459         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10460         (NUM_SYMBOL_TYPES): Likewise.
10461         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10462         (mips_unspec_address): Declare.
10463         (mips_gotoff_page, mips_gotoff_global): Delete.
10464         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10465         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10466         (mips_symbolic_constant_p, mips_symbolic_address_p)
10467         (mips_symbol_insns): Handle new symbol types.
10468         (general_symbolic_operand): New predicate.
10469         (mips_unspec_address): Make extern.
10470         (mips_gotoff_page, mips_gotoff_global): Delete.
10471         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10472         Handle new symbol types.
10473         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10474         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10475         mips_unspec_address directly.
10476         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10477         the documentation of -mexplicit-relocs.
10478
10479 2004-03-01  Jeff Law  <law@redhat.com>
10480
10481         * fold-const.c (fold): An equality comparison of a non-weak object
10482         against zero has a known result.  Similarly an equality comparison
10483         of the address of two non-weak, unaliased symbols has a known result.
10484
10485         * ggc-page.c (struct page_entry): New field PREV.
10486         (ggc_alloc): Update PREV field appropriately.
10487         (sweep_pages): Likewise.
10488         (ggc_free): Likewise.  Use PREV field rather than loop to
10489         improve ggc_free performance.
10490
10491 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10492
10493         * config/mips/mips.c (mips_output_division): Use the division
10494         instruction to fill the delay slot of a zero check.
10495         (mips_idiv_insns): Adjust accordingly.
10496
10497 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10498
10499         * config.gcc: Create a default tmake_file for linux, and use
10500         it in all but two linux clauses.  Comment those two.
10501
10502 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10503
10504         * combine.c (try_combine):  Do not refer to is_replaced.
10505         (gen_lowpart_for_combine):  Perverse subregs now have a
10506         more politically correct name.
10507         * cse.c (cse_insn): Likewise.
10508         * jump.c: Fix bogus reference to delete_insn.
10509
10510 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10511
10512         PR debug/14328
10513         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10514         constants as signed values.
10515
10516         PR middle-end/13448
10517         * c-tree.h (readonly_warning): Rename to ...
10518         (readonly_error): ... this.
10519         * c-typeck.c (build_unary_op): Adjust accordingly.
10520         (readonly_warning): Rename to ...
10521         (readonly_error): ... this and issue errors, not warnings.
10522         (build_modify_expr): Call readonly_error, not readonly_warning.
10523         (c_expand_asm_operands): Likewise.
10524         * tree-inline.c (optimize_inline_calls): Do not inline functions
10525         after errors have occurred.
10526
10527 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10528
10529         * configure.ac: Rearrange some threading code for clarity;
10530         add section comment.
10531         * configure: Regenerate.
10532
10533 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10534
10535         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10536         typos.
10537         * doc/cppopts.texi: Fix a typo.
10538
10539 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10540
10541         * config/i386/i386.md: Fix formatting.
10542
10543 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10544
10545         * configure.ac: Add some comments delineating sections of code.
10546
10547         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10548
10549         * doc/install.texi: Fix idiot typo in previous commit.
10550
10551         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10552
10553 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10554
10555         * config/h8300/h8300.md: Add comments about peephole2's.
10556
10557 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10558
10559         * config/h8300/h8300.md: Tweak operand numbers of some
10560         peephole2's.
10561
10562 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10563
10564         * config/h8300/h8300.md: Tweak comments about peephole2's.
10565
10566 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10567
10568         PR middle-end/14203
10569         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10570         instead of testing whether DECL_RTL is not NULL.
10571
10572 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10573
10574         * config/sh/sh.c: Fix formatting.
10575
10576 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10577
10578         * config/sh/sh.c: Convert to ISO-C.
10579
10580 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10581
10582         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10583         my previous patch.
10584
10585         * config/darwin.h (machopic_finish): Output stub even if the
10586         symbol is already defined.
10587
10588 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10589
10590         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10591
10592 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10593
10594         * genattr.c (main): Don't define
10595         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10596         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10597         (DFA_PIPELINE_INTERFACE): Likewise.
10598         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10599         (DFA_PIPELINE_INTERFACE): Likewise.
10600
10601 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10602
10603         * config/mips/mips.md (tstsi, tstdi): Delete.
10604
10605 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10606
10607         * config/mips/mips.c (override_options): Remove an obsolete
10608         duplicate definition of the "e" constraint.
10609         * config/mips/mips.h: Update a comment accordingly.
10610
10611 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10612
10613         * config/mips/mips.md: Complete the unfinished R4000
10614         multiply/shift errata workaround.  Improve documentation.
10615         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10616         has a hilo hazard.
10617         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10618         (muldi3, muldi3_internal): Likewise.
10619         (muldi3_internal2): Remove, replacing with...
10620         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10621         (mulsidi3): Take the errata into account.
10622         (mulsidi3_32bit): Remove, replacing with...
10623         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10624         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10625         (umulsidi3): Take the errata into account.
10626         (umulsidi3_32bit): Remove, replacing with..
10627         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10628         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10629         TARGET_FIX_R4000.
10630         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10631         (smuldi3_highpart, umuldi3_highpart): Likewise.
10632         * doc/invoke.texi: Document the errata workaround.
10633
10634 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10635
10636         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10637         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10638         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10639         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10640         * config/mips/mips.c (mips_idiv_insns): New function.
10641         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10642         (mips_output_division): Add a workaround for the R4000 divide/shift
10643         errata.
10644         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10645         the length of an "idiv" instruction.
10646         * doc/invoke.texi: Document the new switches.
10647
10648 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10649
10650         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10651         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10652
10653 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10654
10655         PR optimization/14229
10656         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10657
10658 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10659
10660         * fold-const.c (fold): Strip NOPs that change the signedness
10661         for RSHIFT too.  Expand comment.
10662
10663 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10664
10665         PR optimization/7871
10666         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10667         from or to call insns.
10668
10669 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10670
10671         PR optimization/7871
10672         * flow.c (propagate_one_insn): Interpret calls as setting global
10673         registers, not merely clobbering them.
10674
10675 2004-02-27  Dale Johannesen  <dalej@apple.com>
10676
10677         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10678         config/darwin-protos.h:  Ditto.
10679         config/darwin.h:  Remove call to it.
10680         * combine.c (distribute_notes): Do not place a REG_DEAD note
10681         when value is both set and used.
10682
10683 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10684
10685         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10686         as well.
10687         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10688         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10689
10690 2004-02-27  Andrew Pinski  <apinski@apple.com>
10691
10692         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10693         Speedup common case of the type values being in the same order.
10694
10695 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10696
10697         * config/ia64/ia64.h (no-inline-float-divide): New option.
10698         * config/ia64/ia64.h (no-inline-int-divide): New option.
10699         * config/ia64/ia64.h (no-inline-sqrt): New option.
10700         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10701         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10702         * config/ia64/ia64.c (ia64_override_options): Modify error
10703         checking for inlined division/sqrt.
10704
10705 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10706
10707         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10708         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10709         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10710         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10711         copyright.
10712
10713 2004-02-27  Paul Brook  <paul@codesourcery.com>
10714
10715         * function.c (assign_parms): Don't count pretend args for alignment.
10716
10717 2004-02-27  Richard Henderson  <rth@redhat.com>
10718
10719         * passes.c: New file.
10720         * Makefile.in (OBJS-common): Add it.
10721         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10722         * flags.h (rtl_dump_and_exit): ... here.
10723         * output.h (size_directive_output, last_assemble_variable_decl):
10724         Move from toplev.c.
10725         * rtl.h (reg_alloc): Move from toplev.c.
10726         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10727         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10728         open_dump_file, close_dump_file, rest_of_decl_compilation,
10729         rest_of_type_compilation, rest_of_handle_final,
10730         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10731         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10732         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10733         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10734         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10735         rest_of_handle_tracer, rest_of_handle_if_conversion,
10736         rest_of_handle_if_after_combine, rest_of_handle_web,
10737         rest_of_handle_branch_prob,
10738         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10739         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10740         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10741         rest_of_handle_null_pointer, rest_of_handle_combine,
10742         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10743         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10744         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10745         (decode_d_option): Use enable_rtl_dump_file.
10746         (compile_file, finalize, do_compile): Move profile+combine+graph
10747         cleanup to finish_optimization_passes.
10748         * toplev.h (init_optimization_passes, finish_optimization_passes,
10749         enable_rtl_dump_file): Declare.
10750
10751 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10752             Roger Sayle  <roger@eyesopen.com>
10753
10754         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10755         operands to build a tree with swapped operands.
10756         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10757         'unsignedp' predicate to specify the signedness.
10758
10759 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10760
10761         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10762         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10763         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10764         comment typos and formatting.  Follow spelling conventions.
10765
10766 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10767
10768         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10769         fix_truncsfsi2.
10770
10771         * config/rs6000/spe.md: Delete spe_efsctuiz.
10772         Add spe_fixuns_truncsfsi2.
10773         Add spe_fix_truncsfsi2.
10774
10775 2004-02-26  Eric Christopher  <echristo@redhat.com>
10776
10777         * c-lex.c (c_lex_string_translate): New variable.
10778         (lex_string): Use to determine string translation.
10779         * c-pragma.h: Prototype.
10780         * c-parse.in (start_string_translation): New. Set above.
10781         (stop_string_translation): Ditto.
10782         (attribute, attribute_list, asm_def, asm_stmt,
10783         asm_operand): Use above functions.
10784         * cp/parser.c (cp_parser_declaration): Translate strings
10785         unless token is RID_EXTERN. Set c_lex_string_translate
10786         for recursive use.
10787         (cp_parser_asm_definition): Only translate argument strings
10788         to asms.
10789         (cp_parser_asm_operand_list): Ditto.
10790         (cp_parser_attribute_list): Do not translate attribute strings.
10791
10792 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10793
10794         * stmt.c (expand_start_case_dummy): Remove.
10795         * tree.h: Remove the corresponding prototype.
10796
10797 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10798
10799         * builtins.c (apply_args_register_offset): Remove.
10800         * tree.h: Remove the corresponding prototype.
10801
10802 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10803
10804         * stor-layout.c (is_pending_size): Remove.
10805         * tree.h: Remove the corresponding prototype.
10806
10807 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10808
10809         * recog.c (validate_replace_src): Remove.
10810         * recog.h: Remove the corresponding prototype.
10811
10812 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10813
10814         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10815         MAYBE_REG_PARM_STACK_SPACE.
10816         * function.c: Likewise.
10817         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10818         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10819         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10820         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10821
10822 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10823
10824         * c-decl.c (c_expand_deferred_function): Remove.
10825         * c-tree.h: Remove the corresponding prototype.
10826
10827 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10828
10829         * postreload.c (reload_cse_move2add): Generate just a PLUS
10830         instead of an entire SET.
10831
10832 2004-02-26  Jan Hubicka  <jh@suse.cz>
10833
10834         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10835         /pentium4m.
10836         * i386.c (override_options): Add support for new CPUs.
10837         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10838         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10839         constants.
10840         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10841
10842 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10843
10844         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10845
10846 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10847
10848         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10849         (sparc_emit_fixunsdi): New prototype.
10850         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10851         (sparc_emit_fixunsdi): New function.
10852         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10853         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10854         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10855         to sparc_emit_floatunsdi.
10856         (fixuns_truncsfdi2): New expander.
10857         (fixuns_truncdfdi2): Likewise.
10858
10859 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10860
10861         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10862         unless HAVE_cc0.
10863
10864 2004-02-25  Richard Henderson  <rth@redhat.com>
10865
10866         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10867         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10868         use (op0-op1) == 0 if op0 is a pointer.
10869         * config/alpha/alpha.md (cmpdi): Use some_operand.
10870         (three comparison combine splits): Remove.
10871
10872 2004-02-25  Richard Henderson  <rth@redhat.com>
10873
10874         PR c/12794
10875         * c-common.c (handle_alias_attribute): Reject the attribute if
10876         current_function_decl is set.
10877
10878 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10879
10880         * config.gcc: Add comment describing extra_gcc_objs.
10881         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10882         * configure.ac (extra_gcc_objs): New substitution variable.
10883         (host_extra_gcc_objs): Don't substitute.
10884         * configure: Regenerate.
10885         * Makefile.in: Use extra_gcc_objs.
10886
10887 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10888
10889         * doc/contrib.texi: Add an entry for myself.
10890
10891 2004-02-25  Jan Hubicka  <jh@suse.cz>
10892
10893         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10894         * cfgbuild.c (make_eh_edge):  Make global.
10895         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10896         * except.c (build_post_landing_pads, connect_post_landing_pads,
10897         dw2_build_landing_pads, sjlj_emit_function_enter,
10898         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10899         sjlj_build_landing_pads): Update CFG.
10900         (emit_to_new_bb_before): New function.
10901         (finish_eh_generation): Do not rebuild the CFG.
10902
10903 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10904
10905         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10906         target_cpu_default defines.
10907         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10908         * pa.h (TARGET_DEFAULT): Likewise.
10909
10910 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10911
10912         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10913         comparisons with regard to signedness.
10914
10915 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10916
10917         * arm.c (thumb_legitimize_address): New function.
10918         * arm-protos.h: Prototype it.
10919         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10920         (LEGITIMIZE_ADDRESS): Use it.
10921
10922 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10923
10924         * reload1.c (reload): Only spill eliminable register with multiple
10925         adjacent elimination alternatives if all alternatives fail.
10926
10927 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10928
10929         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10930         is -4095...+4095 inclusive.
10931
10932 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10933
10934         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10935         the bootstrap failure with Sun CC 5.4 and 5.5.
10936
10937 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10938
10939         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10940         which modifies NEWREG.
10941         (cse_condition_code_reg): Update the mode of CC_REG in
10942         CC_SRC_INSN on our own.
10943
10944 2004-02-24  Michael Matz  <matz@suse.de>
10945
10946         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10947         regparm attributes.
10948
10949 2004-02-24  Richard Henderson  <rth@redhat.com>
10950
10951         * toplev.c (dump_file_tbl): Rename from dump_file.
10952         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10953         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10954         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10955         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10956         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10957         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10958         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10959         s/rtl_dump_file/dump_file/g.
10960
10961 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10962
10963         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10964         (spe_fixuns_truncsfsi2): Delete.
10965
10966         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10967         (fixuns_truncsfsi2): Delete.
10968
10969 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10970
10971         PR/14240
10972         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10973
10974 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10975
10976         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10977
10978 2004-02-24  Jason Merrill  <jason@redhat.com>
10979
10980         * tree.c (check_qualified_type): New fn.
10981         (get_qualified_type): Use it.  If type already has the desired
10982         quals, just return it.
10983         * tree.h: Declare it.
10984
10985 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10986
10987         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10988         TARGET_SCHED_FINISH_GLOBAL): New macros.
10989
10990         * target.h (md_init_global, md_finish_global): Function
10991         declarations corresponding to new target macros.
10992
10993         * haifa-sched.c (sched_init, sched_finish): Allow target to
10994         call the new schedular hooks.
10995
10996         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10997         call to update_life_info.
10998
10999         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11000         flag_schedule_insns for SH4.
11001
11002         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11003         find_set_regmode_weight, find_insn_regmode_weight,
11004         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11005         sh_variable_issue, high_pressure, ready_reorder,
11006         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11007         functions used to throttle the insn movement in first
11008         scheduling pass for SH.
11009
11010         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11011         TARGET_SCHED_FINISH_GLOBAL.
11012
11013 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11014
11015         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11016         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11017         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11018         symbols in sections named by the user.
11019         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11020         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11021         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11022         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11023         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11024         the above.
11025         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11026         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11027         one more pseudo to further improve code generation.
11028         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11029         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11030         inside UNSPEC.
11031         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11032         * config/frv/frv.c (frv_legitimate_address_p): Added
11033         allow_double_reg_p argument.  Adjust all callers.  Use it to
11034         decide whether to enable double-register indirect addressing.
11035         (frv_funcdesc_alias_set): Remove.
11036         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11037         register.  Emit movdi_ldd.
11038         (ldd_address_operand): New.
11039         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11040         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11041         (PREDICATE_CODES): Add ldd_address_operand.
11042         * config/frv/frv.md (movdi_ldd): New.
11043         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11044         intermediate computations if possible.
11045         (symGOTOFF2reg_i): Fix harmless typo.
11046         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11047         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11048         relocated p_vaddr to vaddr type.
11049         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11050         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11051         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11052         MEM, or use a funcdesc alias set.  Use regular move instead of
11053         ldd.
11054         (dbl_memory_one_insn_operand): Recognize function descriptors by
11055         type or by alias set, and don't split them.
11056         * config/frv/frv.md (call, call_value): Never use call_internal
11057         for fdpic.
11058         (call_internal, call_value_internal): Never match for FDPIC.
11059         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11060         call_value_fdpicsi): Require FDPIC.
11061         (ldd): Removed.
11062         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11063         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11064         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11065         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11066         FDPIC.  Compute data base address.
11067         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11068         before the other self-specs are processed.
11069         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11070         Build with -fPIC.
11071         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11072         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11073         inhibit_libc is defined.
11074         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11075         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11076         __FRV_FDPIC__.
11077         (__RELOC_POINTER): Define.
11078         (_Unwind_IteratePhdrCallback): Use it.
11079         * config/frv/frv.h (Twrite): Define.
11080         (TRANSFER_FROM_TRAMPOLINE): Use it.
11081         * config/frv/linux.h (INVOKE__main): Undefine.
11082         (Twrite): Override.
11083         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11084         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11085         (-mlibrary-pic): Emphasize that this option generates EABI code.
11086         (-mcpu): Add fr550.
11087         (-mpack): Remove.
11088         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11089         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11090         and CONSTs in FDPIC mode.
11091         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11092         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11093         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11094         constants.
11095         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11096         rather than 'i' constraint for the 2-instruction alternative.
11097         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11098         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11099         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11100         EXTRA_CONSTRAINT_FOR_Y.
11101         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11102         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11103         (addsi3): Change 'Y' constraint to 'Q'.
11104         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11105         * reload.c (CONST_POOL_OK_P): New macro.
11106         (find_reloads): Use it to decide whether a constant can be forced
11107         into memory.
11108         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11109         constant satisfies got12_operand.
11110         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11111         (frv_legitimate_address_p): Check for valid unspec offsets using
11112         got12_operand rather than frv_legitimate_fdpic_operand_p.
11113         (frv_legitimate_fdpic_operand_p): Delete.
11114         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11115         or after reload.
11116         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11117         TARGET_FDPIC.
11118         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11119         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11120         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11121         (frv_fdpic_fptr_operand): Don't declare here.
11122         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11123         rather than fdpic_got12_operand.
11124         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11125         got12_operand and const_unspec_operand.
11126         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11127         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11128         (symbolic_operand): Remove.
11129         (const_unspec_operand): New predicate.
11130         * config/frv/frv.md (*movsi_got): Use got12_operand.
11131         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11132         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11133         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11134         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11135         * config/frv/frv.c (frv_unspec): New structure.
11136         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11137         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11138         validate CONST indices.  Use frv_output_const_unspec to print them.
11139         (frv_print_operand): Update call to unspec_got_name.  Use
11140         frv_output_const_unspec to print constant unspecs.
11141         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11142         Reject UNSPECs otherwise.
11143         (unspec_got_name): Take the relocation number as argument, not an
11144         rtx containing it.
11145         (frv_output_addr_const_extra): Remove, replacing with...
11146         (frv_output_const_unspec): ...this new function.
11147         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11148         (gpr_or_int12_operand): Use fdpic_got12_operand.
11149         (dbl_memory_one_insn_operand): Likewise.
11150         (fdpic_got12_operand): Use frv_const_unspec_p.
11151         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11152         are already legitimate.  Use frv_small_data_reloc_p when deciding
11153         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11154         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11155         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11156         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11157         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11158         label, for real this time.
11159         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11160         representation of visibility.
11161         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11162         such.
11163         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11164         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11165         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11166         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11167         it was explicitly disabled.
11168         (frv_stack_info): There is no need to save the link register in every
11169         frame unless TARGET_LINKED_FP is true.
11170         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11171         frame pointer if the stack pointer might change value.
11172         (frv_return_addr_rtx): Check and process "count" argument.
11173         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11174         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11175         (frv_find_base_term): Declare.
11176         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11177         (FIND_BASE_TERM): Define.
11178         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11179         small_data_register_operand, small_data_symbolic_operand.  Add
11180         symbolic_operand.
11181         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11182         (frv_print_operand_memory_reference, output_move_single): Remove
11183         special handling for unlegitimized sdata addresses.
11184         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11185         and symbolic addresses.
11186         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11187         (frv_find_base_term): New function.
11188         (int_2word_operand): Check specifically for symbolic address constants.
11189         (pic_register_operand, pic_symbolic_operand): Delete.
11190         (small_data_register_operand, small_data_symbolic_operand): Delete.
11191         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11192         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11193         (move_source_operand): Only accept CONSTs if they're a two-insn
11194         symbolic constant.
11195         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11196         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11197         using gen_symGOTOFF2reg*.
11198         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11199         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11200         themselves a cost of 3 insns.
11201         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11202         Change predicate to symbolic_operand.
11203         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11204         (*movsi_lda_sdata): Delete.
11205         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11206         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11207         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11208         frv-*-*linux*.
11209         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11210         label.
11211         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11212         -multilib-library-pic.
11213         (LINK_SPEC): Add -z text for -mfdpic.
11214         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11215         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11216         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11217         Override.
11218         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11219         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11220         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11221         crtstuff-generated files.
11222         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11223         * config.gcc: Add frv-*-*linux*.
11224         * config/frv/linux.h, config/frv/t-linux: New.
11225         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11226         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11227         when -mfdpic even if a linker script is explicitly listed.
11228         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11229         * config/frv/frv.c (frv_override_options): Clear asm_out
11230         unaligned_op for SImode on FDPIC.
11231         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11232         argument passed to decl_readonly_section.
11233         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11234         whole block run with FDPIC even with -fno-PIC.
11235         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11236         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11237         symbol or label plus offset to memory.
11238         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11239         GOTOFF and GPREL for LABEL_REF.
11240         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11241         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11242         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11243         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11244         * doc/invoke.texi: Document them.
11245         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11246         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11247         (frv_splittable_got_operand): Removed.
11248         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11249         LO_SUM.  Add comments.
11250         (frv_override_options): Moved enabling of FDPIC to
11251         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11252         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11253         (frv_legitimize_fdpic_address): Don't duplicate logic in
11254         frv_emit_movsi.
11255         (frv_gen_GPsym2reg): New.
11256         (unspec_got_name): Added gprel.
11257         (frv_expand_fdpic_call): Add support for inlining PLTs.
11258         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11259         (gpr_or_int12_operand): Added GPREL12.
11260         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11261         (small_data_symbolic_operand): Fail if FDPIC.
11262         (fdpic_splittable_got_operand): Removed.
11263         (fdpic_got12_operand): Added GPREL12.
11264         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11265         when appropriate.  Fix sdata GOTOFF.
11266         (frv_legitimate_constant_p): Require legitimate PIC operand for
11267         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11268         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11269         flag_pic case.
11270         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11271         frv_assemble_integer fails.
11272         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11273         (SUBTARGET_DRIVER_SELF_SPECS): New.
11274         (ASM_SPEC): Don't pass -mno-fdpic.
11275         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11276         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11277         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11278         -multilib-library-pic.
11279         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11280         condexec_si_media_operator, condexec_sf_add_operator and
11281         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11282         and condexec_sf_unary_operator.
11283         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11284         New.
11285         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11286         movsi_internal.  Give them internal names.  movsi_got has type
11287         int.
11288         (fdpic got splitters): Remove.
11289         (symGPREL2reg, symGPREL2reg_hilo): New.
11290         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11291         to -mlibrary-pic.  Map -multilib-library-pic to it.
11292         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11293         Document.
11294         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11295         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11296         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11297         (frv_cannot_force_const_mem): New function.
11298         (const_small_data_p, plus_small_data_p): Update comments on sdata
11299         on FDPIC.
11300         (frv_override_options): Set flag_pie for FDPIC too.
11301         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11302         call-saved registers on FDPIC.
11303         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11304         don't force LR to be preserved.
11305         (frv_expand_prologue): Likewise.
11306         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11307         (frv_frame_pointer_required): Don't force it just because the
11308         FDPIC register is used.
11309         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11310         operand only if !condexec_p.
11311         (frv_legitimize_address): Return the FDPIC-legitimized address.
11312         Don't match small data here on FDPIC.
11313         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11314         symbols.  Use TRUE/FALSE instead of 1/0.
11315         (frv_local_funcdesc_p): New.
11316         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11317         immediates when possible.
11318         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11319         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11320         an UNSPEC_GOT.
11321         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11322         12-bit immediates when possible.
11323         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11324         are not legitimate pic operands.
11325         (frv_in_small_data_p): Re-enable for FDPIC.
11326         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11327         (FRV_GLOBAL_P): Removed.
11328         * config/frv/frv.md: Add modes to CONSTs.
11329         (movsi_got): New.
11330         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11331         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11332         (fdpic splittable operations): Match on flag_pic != 1.
11333         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11334         * config/frv/frv.c (frv_asm_out_constructor,
11335         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11336         bytes, not bits.
11337         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11338         * config/frv/frv.c (frv_assemble_integer): Reject complex
11339         expressions referencing function SYMBOL_REFs.
11340         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11341         (move_source_operand): Reject CONSTs that reference function
11342         SYMBOL_REFs on FDPIC.
11343         (frv_emit_movsi): If we get such a CONST, break it up.
11344         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11345         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11346         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11347         MEM.
11348         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11349         (frv_trampoline_size): Increase for FDPIC.
11350         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11351         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11352         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11353         Disable use of GOTOFF for now.
11354         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11355         Disable use of small data in FDPIC for now.
11356         (frv_asm_output_mi_thunk): Implement for FDPIC.
11357         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11358         * config/frv/frv.c (frv_asm_out_constructor): Use
11359         frv_assemble_integer for FDPIC pointers.
11360         (frv_asm_out_destructor): Likewise.
11361         * config/frv/frv.md (ldd): Fix order of operands.  Use
11362         address_operand for input.
11363         2003-09-18  DJ Delorie  <dj@redhat.com>
11364         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11365         (unspec_got_name): Correct typo.
11366         (frv_emit_movsi): Pre-expand splittable GOTs.
11367         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11368         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11369         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11370         * config/frv/t-frv: Add -mfdpic multilibs.
11371         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11372         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11373         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11374         flag_pic, default to 32-bit pics, require DWORD ops.
11375         (frv_override_options): Add W and Z constraints.
11376         (frv_expand_prologue): No pic prologue for -mfdpic.
11377         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11378         (frv_print_operand_memory_reference): Handle GOT constants.
11379         (frv_legitimate_address_p): Allow GOT constants.
11380         (frv_legitimize_address): Handle GOT addresses too.
11381         (frv_legitimate_fdpic_operand_p): New.
11382         (frv_legitimize_fdpic_address): New.
11383         (unspec_got_name): New.
11384         (frv_output_addr_const_extra): New.
11385         (frv_expand_fdpic_call): New.
11386         (frv_fdpic_fptr_operand): New.
11387         (gpr_or_int12_operand): Handle GOT operands.
11388         (int_2word_operand): Handle GOT operands.
11389         (fdpic_operand): New.
11390         (fdpic_splittable_got_operand): New.
11391         (fdpic_got12_operand): New.
11392         (frv_emit_movsi): Handle GOT operands.
11393         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11394         (frv_print_operand): Support 'g' code for GOT operands.
11395         * config/frv/frv-protos.h: Add prototypes as needed.
11396         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11397         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11398         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11399         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11400         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11401         R_FRV_GOTOFFLO): New.
11402         (movsi_high_got, movsi_lo_sum_got): New.
11403         (*movsi_pic): Don't use this splitter for -mfdpic.
11404         (addsi3): Allow GOT references also.
11405         (call, call_value): Handle -mfdpic separately.
11406         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11407         call_value_fdpicsi): New.
11408         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11409         symGOTOFF2reg_i): New.
11410         * config/frv/frv.h (MASK_FDPIC): New.
11411         (TARGET_FDPIC): New.
11412         (TARGET_SWITCHES): Add -mfdpic.
11413         (FDPIC_FPTR_REGNO): New.
11414         (FDPIC_REGNO): New.
11415         (OUR_FDPIC_REG): New.
11416         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11417         FDPIC_CALL_REGS.
11418         (REG_CLASS_NAMES): Likewise.
11419         (REG_CLASS_CONTENTS): Likewise.
11420         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11421         (EXTRA_CONSTRAINT): Add it here.
11422         (FRV_GLOBAL_P): New.
11423         (OUTPUT_ADDR_CONST_EXTRA): New.
11424
11425 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11426
11427         * config/sparc/sparc.h: Remove commented-out definitions of
11428         TARGET_EDOM and GEN_ERRNO_RTX.
11429
11430 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11431
11432         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11433         df_analyse with df_analyze.
11434
11435 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11436
11437         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11438         beginning of block.
11439
11440 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11441
11442         * calls.c (precompute_arguments): Update comment.
11443
11444 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11445
11446         * et-forest.c: Replace et_occurences with et_occurrences.
11447
11448 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11449
11450         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11451         with iv_analyze.
11452
11453 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11454
11455         * config/i386/i386.c: Rename pni to sse3.
11456         * config/i386/i386.h: Likewise.
11457         * config/i386/i386.md: Likewise.
11458         * config/i386/pmmintrin.h: Likewise.
11459         * doc/extend.texi: Likewise.
11460         * doc/invoke.texi: Likewise.
11461
11462 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11463             Kazu Hirata  <kazu@cs.umass.edu>
11464
11465         Remove -fwritable-strings.
11466         * c-common.c (fix_string_type): Don't check
11467         flag_writable_strings.
11468         (fix_string_type): Likewise.
11469         * c-opts.c (set_std_c89): Don't initialize
11470         flag_writable_strings.
11471         (set_std_c99): Likewise.
11472         * common.opt (fwritable-strings): Remove.
11473         * flags.h: Remove the external declaration of
11474         flag_writable_strings.
11475         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11476         Remove.
11477         * toplev.c (flag_writable_strings): Remove.
11478         (f_options): Remove an entry for writable-strings.
11479         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11480         flag_writable_strings.
11481         (compare_constant) <STRING_CST>: Likewise.
11482         (build_constant_desc): Likewise.
11483         * config/darwin.c (machopic_select_section): Likewise.
11484         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11485         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11486         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11487         * config/mips/mips.c (mips_select_section): Likewise.
11488         (mips_encode_section_info): Likewise.
11489         * config/pa/pa.c (pa_select_section): Likewise.
11490         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11491         * config/v850/v850.c (v850_select_section): Likewise.
11492         * doc/invoke.texi (-fwritable-strings): Remove.
11493         (-fno-const-strings): Don't mention -fwritable-strings.
11494         * doc/trouble.texi: Don't mention -fwritable-strings.
11495
11496 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11497
11498         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11499
11500 2004-02-23  Dale Johannesen  <dalej@apple.com>
11501
11502         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11503         (movdf_hardfloat64):  Ditto.
11504         (movdf_softfloat64):  Ditto.
11505
11506 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11507         * config/rs6000/rs6000.c (function_arg): call to
11508         rs6000_mixed_function_arg for DFmode moved to allow
11509         normal DFmode incoming register assignment.
11510
11511 2004-02-23  Dale Johannesen  <dalej@apple.com>
11512
11513         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11514         (movdf_hardfloat64):  Ditto.
11515
11516 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11517
11518         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11519         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11520         copyright.
11521
11522 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11523
11524         PR c/14156
11525         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11526         to use DECL_P instead.
11527
11528         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11529         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11530
11531 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11532
11533         * Makefile.in (opts.o): Depend on target.h.
11534         * opts.c (decode_options): Use targetm.default_short_enums
11535         instead of DEFAULT_SHORT_ENUMS.
11536         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11537         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11538         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11539         * target.h (gcc_target): Add default_short_enums.
11540         * config/cris/cris.h: Remove a comment about
11541         DEFAULT_SHORT_ENUMS.
11542         * config/ip2k/ip2k.h: Likewise.
11543         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11544         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11545
11546 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11547             Falk Hueffner  <falk@debian.org>
11548
11549         PR c/14188
11550         * builtins.c (expand_builtin_va_arg): Emit an informative message
11551         if a trap is generated.
11552         * c-typeck.c (build_function_call): Likewise.
11553
11554 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11555
11556         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11557         fopen.
11558         * libgcov.c: Include sys/stat.h.
11559         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11560         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11561         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11562         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11563
11564 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11565
11566         * reorg.c: Remove comments about dead ports.
11567
11568 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11569
11570         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11571         extra host object file when targetting cygwin rather than generic
11572         object files.
11573
11574 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11575
11576         Merge from tree-ssa:
11577         2003-11-20  Richard Henderson  <rth@redhat.com>
11578
11579                 * tree-inline.c (insert_decl_map): New.
11580                 (remap_decl, remap_type, remap_block, copy_body_r,
11581                 initialize_inlined_parameters, declare_return_variable,
11582                 remap_save_expr): Use it.
11583
11584         * function.c (copy_body_r): Add mapping from id->ret_label to
11585         id->ret_label.  Revert test for ret_label.
11586
11587 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11588
11589         * genoutput.c (process_template): Strip trailing whitespace in @
11590         templates and issue a warning if there was any.
11591
11592 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11593
11594         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11595         object file when targetting cygwin.
11596         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11597         overridden by top-level Makefile.
11598
11599 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11600
11601         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11602         the x87's load constant instructions when optimizing for size.
11603
11604 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11605
11606         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11607         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11608         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11609         * fold-const.c: Likewise.
11610         * simplify-rtx.c: Likewise.
11611
11612 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11613
11614         * combine.c (can_combine_p): Don't ignore SETs marked with
11615         REG_EH_REGION notes.
11616         (try_combine): When attemting to fix unrecognized insns, don't
11617         split a PARALLEL that contains the original i2.
11618
11619 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11620
11621         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11622         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11623         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11624         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11625         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11626         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11627         portion of header.
11628         (__altivec_link_error_invalid_argument): Remove prototype; will use
11629         __builtin_altivec_compiletime_error("vec_*") instead.
11630         (vec_*): Fix/complete set of available operation overloads given the
11631         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11632         cv-correctness of pointer arguments; in C, always check for correct
11633         argument types before macro expansion.
11634         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11635         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11636         '-W[no-]altivec-long-deprecated' switches.
11637         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11638         '__vector', '__pixel' and '__bool' macros using
11639         '__attribute__((altivec(...)))' types.
11640         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11641         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11642         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11643         New type nodes.
11644         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11645         handling '-W[no-]altivec-long-deprecated'.
11646         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11647         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11648         altivec_expand_dst_builtin): Remove casts from integer literals.
11649         (altivec_expand_builtin): Likewise; handle expansion of new
11650         '__builtin_altivec_compiletime_error' function.
11651         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11652         types, and make them distinct from other vector types; register
11653         '__builtin_altivec_compiletime_error' function.
11654         (print_operand): For 'P', print a full target register name instead of
11655         merely its number.
11656         (rs6000_attribute_table): Add "altivec" attribute.
11657         (rs6000_handle_altivec_attribute): New function.
11658         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11659         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11660         maps to).
11661         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11662         declare.
11663         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11664
11665 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11666
11667         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11668         check.
11669         (shift_mix4left+2): Delete redundant pattern.
11670
11671 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11672
11673         * alias.c (OUTGOING_REGNO): Don't define the default.
11674         * builtins.c (OUTGOING_REGNO): Likewise.
11675         (INCOMING_REGNO): Likewise.
11676         (apply_args_register_offset): Always use OUTGOING_REGNO.
11677         * combine.c (OUTGOING_REGNO): Likewise.
11678         * sibcall.c (OUTGOING_REGNO): Likewise.
11679         * defaults.h (INCOMING_REGNO): Provide the default.
11680         (OUTGOING_REGNO): Likewise.
11681
11682 2004-02-21  Jan Hubicka  <jh@suse.cz>
11683
11684         * params.def (max-peeled-insns, max-completely-peeled-insns,
11685         max-once-peeled-insns): Set to 400.
11686
11687 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11688
11689         PR c++/12007
11690         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11691         are set for parameters before outputing debugging information.
11692
11693 2004-02-20  Falk Hueffner  <falk@debian.org>
11694
11695         PR target/14201
11696         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11697         numbers.
11698
11699 2004-02-20  Per Bothner  <per@bothner.com>
11700
11701         * input.h:  Don't #include line-map.h.  It may cause link problems
11702         with undefined linemap_line_start when line-map.h is included but
11703         line-map.o is not linked, as currently happens with gengtype on
11704         compilers that don't support inline.
11705         * toplev.c:  So we do have to explicitly #include line-map.h here.
11706
11707 2004-02-20  Richard Henderson  <rth@redhat.com>
11708
11709         * doc/invoke.texi: Add -Wvariadic-macros.
11710
11711 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11712
11713         * haifa-sched.c (sched_emit_insn): Remove.
11714         * sched-int.h: Remove the corresponding prototype.
11715
11716 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11717
11718         Revert:
11719         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11720         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11721         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11722         * config/cris/cris.h: Remove a comment about
11723         DEFAULT_SHORT_ENUMS.
11724         * config/ip2k/ip2k.h: Likewise.
11725         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11726
11727 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11728             Tom Tromey  <tromey@redhat.com>
11729
11730         * doc/install.texi: Moved --disable-libgcj and
11731         --with-system-zlib documentation to new section for
11732         Java-specific options.
11733         Added explicit Cross-Compiler-Specific Options subheading.
11734         Added section for Java-specific options.
11735
11736 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11737
11738         * doc/install.texi (Building the Ada compiler): Remove
11739         example.
11740
11741 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11742
11743         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11744
11745 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11746
11747         * gcc.c (process_command): Allow translation of the copyright
11748         symbol but not the rest of the copyright message.
11749         * gcov.c (print_version): Likewise.  Allow translation of the
11750         message about warranty.
11751
11752 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11753
11754         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11755         predicate.
11756         ("*andsi_clear"): Tweak constraints to not match postincrement.
11757         Adjust the predicate to exclude a volatile memory reference.
11758         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11759         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11760
11761 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11762
11763         * move-if-change: Remove.
11764         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11765         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11766         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11767         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11768         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11769         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11770
11771 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11772
11773         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11774         for operand2.  Add condition that requires register_operand operand2
11775         before reload.
11776
11777 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11778             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11779
11780         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11781         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11782
11783 2004-02-19  Richard Henderson  <rth@redhat.com>
11784
11785         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11786         * tree.c (build0, build1, build2, build3, build4): Split out from...
11787         (build): ... here.  Call them.
11788         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11789
11790         * convert.c (convert_to_integer): Remove extra build argument.
11791         * tree-inline.c (expand_call_inline): Likewise.
11792
11793 2004-02-19  Richard Henderson  <rth@redhat.com>
11794
11795         * c-opts.c (warn_variadic_macros): New.
11796         (c_common_handle_option): Set it.
11797         (sanitize_cpp_opts): Copy it to cpp_opts.
11798         * c.opt (Wvariadic-macros): New.
11799         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11800         * cppinit.c (cpp_create_reader): Initialize it.
11801         * cppmacro.c (parse_params): Check it.
11802
11803 2004-02-19  David Daney <ddaney@avtrex.com>
11804
11805         PR preprocessor/14198
11806         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11807         builtin_assert ("machine=mips")
11808
11809 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11810
11811         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11812         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11813         * config/cris/cris.h: Remove a comment about
11814         DEFAULT_SHORT_ENUMS.
11815         * config/ip2k/ip2k.h: Likewise.
11816         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11817
11818 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11819
11820         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11821         when passing single SFmode quantities in general registers,
11822         put them in the high half.
11823
11824 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11825
11826         * doc/md.texi (Standard Names): Document additional dependency on
11827         fix pattern.
11828
11829         * optabs.c (ftruncify): Remove.
11830         (expand_fix): Manually inline ftruncify above.
11831         (can_fix_p): Add FIXME note.
11832
11833 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11834
11835         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11836         spe_fixuns_truncsfsi2.
11837
11838         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11839         fixuns_truncsfsi2.
11840
11841 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11842
11843         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11844         * testsuite/gcc.dg/20040219-1.c: New test.
11845
11846 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11847
11848         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11849         "*subsf3_cconly"): Subtraction is not commutative.
11850
11851 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11852
11853         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11854         (sdbout_symbol): If called before sdbout_init, queue DECL for
11855         later and return.
11856         (sdbout_init): Set sdbout_initialized true, process decls
11857         queued earlier by sdbout_symbol.
11858         (sdbout_finish): Use size_t for index variable.
11859
11860 2004-02-19  Jeff Law  <law@redhat.com>
11861
11862         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11863         for unordered comparison codes.
11864
11865 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11866
11867         * reload1.c (reload): Correct comment.
11868         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11869         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11870         register variables are not used by reload.
11871
11872 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11873
11874         PR target/14209
11875         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11876         constraints to not match postincrement.  Adjust the predicate to
11877         exclude a volatile memory reference.
11878
11879 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11880
11881         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11882
11883 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11884
11885         * hooks.c (hook_void_tree_int): Remove.
11886         (hook_void_constcharptr): Likewise.
11887         (hook_int_void_0): Likewise.
11888         * hooks.h: Remove the prototypes for the above three
11889         functions.
11890         * targhooks.c (hook_bool_machine_mode_true): Remove.
11891         * targhooks.h: Remove the prototype for
11892         hook_bool_machine_mode_true.
11893
11894 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11895
11896         * emit-rtl.c (subreg_realpart_p): Remove.
11897         (reorder_insns_with_line_notes): Likewise.
11898         (end_full_sequence): Likewise.
11899         * rtl.h: Remove the prototype for the above functions.
11900
11901 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11902
11903         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11904         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11905         config/iq2000/iq2000.h, config/m32r/m32r.h,
11906         config/pdp11/pdp11.h, config/sparc/sparc.h,
11907         config/xtensa/xtensa.h: Remove commented-out or useless
11908         definitions of CASE_VECTOR_PC_RELATIVE.
11909
11910 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11911
11912         * loop.c (all_sets_invariant_p): Remove.
11913
11914 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11915
11916         PR target/12916
11917         * config/sparc/sparc.h (NPARM_REGS): Delete.
11918         (BASE_RETURN_VALUE_REG): Likewise.
11919         (BASE_OUTGOING_VALUE_REG): Likewise.
11920         (BASE_PASSING_ARG_REG): Likewise.
11921         (BASE_INCOMING_ARG_REG): Likewise.
11922         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11923         TARGET_ARCH64, not TARGET_V9.
11924         (function_arg_slotno): Dispatch based on the mode class.
11925         Handle vector modes like floating-point modes.
11926         (function_arg_record_value_1): Handle vector types like
11927         floating-point types.
11928         (function_arg_record_value_2): Likewise.
11929         Calculate regno after mode transformation.
11930         (function_arg): Handle vector modes like floating-point modes.
11931         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11932         If ARCH64, do not recheck alignment.
11933         (function_arg_pass_by_reference): Reorder the conditions.
11934         (sparc_return_in_memory): Move after function_arg_padding.
11935         Implement calling conventions for vector modes.
11936         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11937         (function_value): Move scope of 'regbase'.
11938         Implement calling conventions for vector modes.
11939         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11940         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11941         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11942         the argument is passed by reference.
11943         (sparc_type_code): Handle vector types.
11944
11945 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11946
11947         * function.c (assign_parms): When building decl_rtl for
11948         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11949
11950 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11951
11952         * expr.c (is_aligning_offset): Check if we are aligning the
11953         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11954         in bits.
11955
11956 2003-02-18  Matt Austern  <austern@apple.com>
11957
11958         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11959         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11960         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11961         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11962         spec string.
11963         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11964
11965 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11966
11967         * dwarf2out.c (loclabel_num): Move outside #ifdef
11968         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11969         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11970         Mark with GTY(()).
11971         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11972         Allocate memory with ggc_alloc.  No need to copy anything.
11973         (ia64_hpux_file_end): Update to match.
11974
11975 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11976
11977         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11978         by default.
11979
11980 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11981
11982         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11983         ("divmodtisi3"): Likewise.
11984         ("udivmoddi4", "udivmodtidi3"): Likewise.
11985         ("divmodsi4", "divmoddisi3"): Likewise.
11986         ("udivmodsi4", "udivmoddisi3"): Likewise.
11987         ("udivsi3", "umodsi3"): Likewise.
11988
11989 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11990
11991         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11992         placeholder insn when chunkifying the pool.
11993
11994 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11995
11996         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11997         generating PIC code.
11998
11999 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12000
12001         * config/h8300/h8300-protos.h: Add a prototype for
12002         h8300_expand_branch.
12003         * config/h8300/h8300.c (h8300_expand_branch): New.
12004         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12005         bgtu, beq, bne): Call h8300_expand_branch().
12006
12007 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12008
12009         * config/h8300/h8300-protos.h: Add prototypes for
12010         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12011         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12012         (h8300_hard_regno_mode_ok): Likewise.
12013         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12014         h8300_hard_regno_nregs().
12015         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12016
12017 2004-02-18  Per Bothner  <per@bothner.com>
12018
12019         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12020         partly reverts my 2003-10-01 change, because we're back to logically
12021         including <command line> inside the main line.
12022         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12023         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12024         Fixes PR preprocessor/14103.
12025
12026         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12027         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12028         (cpp_push_include):  Don't need to increment pfile's line field.
12029         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12030
12031         * c-ppoutput.c (print struct):  New first_time field.
12032         (init_pp_output):  Set print.first_time.
12033         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12034         which is set also for (say) <command line>.  Clear print.first_time.
12035
12036         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12037         does not match the code, so fix both.
12038         (should_stack_file):  Inline include_pch_p function.
12039         (include_pch_p):  Remove pointless function.
12040
12041         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12042
12043 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12044
12045         * config/h8300/h8300.md (four define_peephole2's): Use
12046         h8300_regs_ok_for_stm().
12047
12048 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12049
12050         * config/h8300/h8300-protos.h: Update the prototype for
12051         expand_a_rotate().
12052         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12053         argument.
12054         * config/h8300/h8300.md: Update all callers.
12055
12056 2004-02-18  Jan Hubicka  <jh@suse.cz>
12057
12058         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12059         floats.
12060         (simplify_binary_operation): Deal with logicals on floats.
12061
12062         * i386.md (SSE fabs splitters): Emit new patterns.
12063         (SSE cmov splitters): Likewise.
12064         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12065         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12066         subregs.
12067         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12068         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12069
12070 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12071
12072         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12073         by hand.
12074         (output_a_rotate): Tweak a comment.
12075         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12076         (*rotlhi3_1): Change to rotlhi3_1.
12077         (*rotlsi3_1): Change to rotlsi3_1.
12078
12079 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12080
12081         PR target/13866
12082         * arm.c (load_multiple_operation): Don't insist that the source reg
12083         of a post-increment component is the same as the destination.
12084         (store_multiple_operation): Likewise.
12085
12086 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12087
12088         * config/h8300/h8300.md: Move movsf patterns into one section
12089         of the file.
12090
12091 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12092
12093         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12094         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12095         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12096         config/mips/linux64.h, config/pa/pa-64.h,
12097         config/rs6000/aix51.h, config/rs6000/aix52.h,
12098         config/rs6000/spe.md, config/sparc/linux.h,
12099         config/sparc/linux64.h: Update copyright.
12100
12101 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12102
12103         * config/h8300/h8300.md: Move push patterns into one
12104         section of the file.
12105
12106 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12107
12108         PR c++/11326
12109         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12110         fntype.
12111
12112 2004-02-18  Paul Brook  <paul@codesourcery.com>
12113
12114         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12115
12116 2004-02-18  Paul Brook  <paul@codesourcery.com>
12117
12118         PR debug/12934
12119         * dwarf2out.c (loc_descriptor_from_tree): Handle
12120         EXPR_WITH_FILE_LOCATION.
12121
12122 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12123
12124         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12125         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12126         trailing whitespace from instructions.
12127
12128 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12129
12130         * configure.ac: When generating auto-build.h, pass
12131         --enable-languages to the sub-configure.
12132         Put quotes around ${program_transform_name} when generating
12133         name of as, ld, nm, objdump.
12134         * configure: Regenerate.
12135
12136 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12137
12138         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12139         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12140         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12141         (s-preds, s-iov): Do not depend on move-if-change.
12142
12143 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12144
12145         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12146         (insert_save): Likewise.
12147
12148 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12149
12150         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12151         warning.
12152
12153 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12154
12155         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12156         *one_cmplsi2_h8300.
12157         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12158
12159 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12160
12161         * config/h8300/h8300-protos.h: Update the prototype of
12162         fix_bit_operand().
12163         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12164         argument "what".
12165         * config/h8300/h8300.md: Update all callers.
12166
12167 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12168
12169         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12170         the last argument to "code" from "type".
12171
12172 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12173
12174         * config/h8300/h8300.c: Remove an extern declaration of
12175         rtx_equal_function_value_matters.
12176
12177 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12178
12179         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12180         by hand.
12181         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12182         (*iorqi3_1): Change to iorqi3_1.
12183         (*xorqi3_1): Change to xorqi3_1.
12184
12185 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12186
12187         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12188         typos.
12189
12190 2004-02-17  Jan Hubicka  <jh@suse.cz>
12191
12192         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12193
12194 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12195
12196         PR optimization/14119
12197         * combine.c (try_combine): When attemting to fix unrecognized insns,
12198         don't delete SETs marked with REG_EH_REGION notes.
12199
12200 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12201
12202         * combine.c (simplify_if_then_else): Do not replace
12203         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12204         modes differ.
12205
12206 2004-02017  Steven Bosscher  <stevenb@suse.de>
12207
12208         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12209         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12210         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12211         * ada/utils.c: Likewise.
12212         * cp/decl.c: Likewise.
12213         * f/com.c: Likewise.
12214         * java/class.c: Likewise.
12215
12216 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12217
12218         * config/h8300/h8300.md: Fix comment typos.
12219
12220 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12221
12222         * config/mips/t-iris6gld: Renamed to ...
12223         * config/mips/t-irix-gld: ... this.
12224         * config.gcc (mips-sgi-irix6*): Reflect this
12225         (mips-sgi-irix5*): Use it with GNU ld.
12226
12227         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12228         to ...
12229         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12230         * config/mips/t-irix-gld: Reflect this.
12231         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12232
12233         * config/mips/iris5gld.h: New file.
12234         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12235         Only use collect2 without gas.
12236
12237         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12238         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12239         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12240         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12241
12242         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12243         * config/mips/iris5.h: ... here.
12244
12245         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12246         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12247         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12248
12249         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12250         using irix_startfile_spec, irix_endfile_spec.
12251
12252 2004-02-16  Gunther Nikl  <gni@gecko.de>
12253
12254         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12255
12256 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12257
12258         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12259         insns by hand.
12260
12261 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12262
12263         * cfghooks.c (split_edge): Speed up updating of dominators.
12264
12265 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12266
12267         PR c++/11326
12268         * c-common.c (flag_abi_version): Remove.
12269         * c-common.h (flag_abi_version): Likewise.
12270         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12271         * c.opt (fabi-version): Remove.
12272         * calls.c (expand_call): Always pass a function type to
12273         struct_value_rtx.  Use convert_memory_address.
12274         * common.opt (fabi-version): Add it.
12275         * flags.h (flag_abi_version): Likewise.
12276         (abi_version_at_least): New macro.
12277         * opts.c (common_handle_option): Add OPT_fabi_version.
12278         * toplev.c (flag_abi_version): Define it.
12279         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12280         New function.
12281         (ia64_output_mi_thunk): Use it.
12282         (ia64_struct_value_rtx): Likewise.
12283
12284 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12285
12286         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12287         Don't generate insns by hand.
12288
12289 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12290
12291         PR c++/14178
12292         * doc/invoke.texi (fabi-version): The default is 2 now.
12293
12294 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12295
12296         * loop-iv.c: New file.
12297         * Makefile.in (loop-iv.o): New.
12298         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12299         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12300         num_loop_branches): New functions.
12301         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12302         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12303         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12304         get_simple_loop_desc, free_simple_loop_desc): Declare.
12305         (simple_loop_desc): New inline function.
12306         (struct rtx_iv, struct niter_desc): New.
12307         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12308         * expr.c (force_operand): Handle subregs of expressions created by
12309         loop unroller.
12310         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12311         parts of the initialization to toplev.c
12312         * loop-unroll.c (loop_exit_at_end_p): New.
12313         (unroll_and_peel_loops): Call iv_analysis_done.
12314         (decide_peel_once_rolling, decide_peel_completely,
12315         decide_unroll_stupid, decide_unroll_constant_iterations,
12316         decide_unroll_runtime_iterations, decide_peel_simple,
12317         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12318         unroll_loop_runtime_iterations): Use new simple loop analysis.
12319         * loop-unswitch.c (compare_and_jump_seq): New.
12320         (may_unswitch_on_p): Renamed to ...
12321         (may_unswitch_on): Use new iv analysis.
12322         (reversed_condition): Export.
12323         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12324         * predict.c (estimate_probability): Use new simple loop analysis.
12325         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12326         canon_condition, simplify_using_condition): Declare.
12327         * stor-layout.c (get_mode_bounds): New.
12328         * toplev.c (rest_of_handle_loop2): Some parts of
12329         initialization/finalization moved here from loop-init.c.
12330
12331 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12332
12333         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12334         pointer.
12335         (CALL_USED_REGISTERS): Likewise.
12336         (REG_ALLOC_ORDER): Likewise.
12337         (REG_CLASS) <GENERAL_REGS>: Likewise.
12338
12339 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12340
12341         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12342         in associative operators.
12343         * rtlanal.c (commutative_operand_precedence): Create some new
12344         variables.  Prefer a commutative operand on the left, then
12345         binary expressions, then NEG and NOT.
12346
12347 2004-02-16  Matthias Klose  <doko@debian.org>
12348
12349         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12350         in terms of SHLIB_SOVERSION.
12351         * config/m68k/t-slibgcc-elf-ver: New file.
12352         * config/pa/t-slibgcc-elf-ver: New file.
12353         * config.gcc (m68k-linux, parisc-linux): Use them when not
12354         sjlj exceptions are not configured.
12355
12356 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12357
12358         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12359
12360 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12361
12362         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12363
12364 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12365
12366         * doc/sourcebuild.texi: Mention backends.html.
12367
12368 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12369
12370         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12371         line-map.c, line-map.h, var-tracking.c: Fix comment
12372         formatting.
12373
12374 2004-02-16  Richard Henderson  <rth@redhat.com>
12375
12376         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12377
12378         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12379
12380 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12381
12382         * config/h8300/h8300.md: Remove unnecessary parallels from
12383         all define_insn and define_split patterns.
12384
12385 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12386
12387         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12388         "clobber").
12389
12390 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12391
12392         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12393         '%#'.
12394
12395 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12396
12397         * config/ia64/ia64.c, config/mips/mips.c,
12398         config/mmix/mmix-modes.def: Fix comment typos.
12399
12400 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12401
12402         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12403         (get_directive_line): Remove unused function prototype.
12404
12405 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12406
12407         * tree-inline.c (copy_body_r): Do not replace ret_label.
12408
12409 2004-02-14  Jan Hubicka  <jh@suse.cz>
12410
12411         * i386.c (x86_four_jump_limit): New variable.
12412         (k8_avoid_jump_misspredicts): Rename to ...
12413         (ix86_avoid_jump_misspredicts): .. this one.
12414         (ix86_pad_returns): Break out from ...
12415         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12416         to.
12417         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12418
12419 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12420
12421         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12422         PARALLEL is NULL.
12423
12424 2004-02-14  Per Bothner  <per@bothner.com>
12425
12426         * fix-header.c (line_table):  Move local variable in main to global.
12427         * scan.h (line_table):  Use it.
12428         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12429         line (recently renamed to src_loc) before calling recognized_function.
12430
12431 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12432
12433         * Makefile.in: Fix comment typos.
12434
12435 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12436
12437         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12438         for start_value when it is directly moved into reg, and factorize
12439         the retrieval of GET_MODE (reg).
12440
12441 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12442
12443         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12444         (mips_load_got_global): Delete.
12445         (mips_gotoff_page): Declare.
12446         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12447         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12448         UNSPEC_LOAD_GOT pattern rather than a MEM.
12449         (*load_got[sd]i): New patterns.
12450         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12451         (mips_load_got_page, mips_load_got_global): Delete.
12452         (mips_gotoff_page): New function.
12453         (override_options): Don't initialize mips_got_alias_set.
12454
12455 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12456
12457         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12458         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12459         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12460         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12461         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12462         * config/mips/mips.c: Fix some overly-long lines.
12463         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12464         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12465
12466 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12467
12468         * configure.ac: Search for as, ld below libexec/gcc.
12469         * configure: Regenerate.
12470
12471 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12472
12473         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12474         __builtin_arm_setwcx ().
12475         * config/arm/arm.c (arm_expand_builtin): Generate operands
12476         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12477
12478 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12479
12480         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12481         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12482         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12483         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12484         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12485         (_mm_mulhi_pu16): Likewise.
12486
12487 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12488
12489         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12490         DECL_NAME != 0 before dereferencing.
12491
12492 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12493
12494         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12495         (s390_output_addr_const_extra): Declare.
12496         (s390_output_pool_entry): Remove FILE * argument.
12497         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12498         (s390_output_addr_const_extra): New function.
12499         (print_operand_address): Call output_addr_const instead of
12500         s390_output_symbolic_const.
12501         (print_operand): Likewise.
12502         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12503         Remove FILE * argument.
12504         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12505         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12506         call.
12507
12508 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12509
12510         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12511         (struct edge, struct vertex, struct graph): New.
12512         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12513         free_graph): New functions.
12514
12515 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12516
12517         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12518         Use ".set macro" to avoid warnings about multi-instruction
12519         macros, since they're intentional.
12520
12521 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12522
12523         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12524         comment about STANDARD_EXEC_PREFIX.
12525
12526         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12527         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12528         for installing .1 manpages.  Add rules for installing cpp
12529         and gcov manpages under their installed names.
12530
12531 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12532
12533         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12534         host, but try LD_FOR_TARGET first.
12535         * configure: Rebuilt.
12536
12537 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12538
12539         * dbxout.c: Move declaration of dbxout_type_decl outside
12540         #ifdef DBX_DEBUGGING_INFO.
12541         * c-parse.in: Don't give the asmdef production a type.
12542
12543 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12544
12545         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12546         (debug_nothing_tree_int): Prototype.
12547         (dwarf_debug_hooks): Delete, unused.
12548         * debug.c (do_nothing_debug_hooks): Update.
12549         (debug_nothing_tree_int): New function.
12550         * langhooks.h (struct lang_hooks_for_decls):
12551         Remove builtin_type_decls field.
12552         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12553         (LANG_HOOKS_DECLS): Update.
12554         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12555         Use debug_hooks->type_decl.
12556         * dbxout.c (preinit_symbols): New static.
12557         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12558         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12559         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12560         for symbols to output.
12561         (dbxout_type_decl): New function.
12562         (dbxout_symbol): If called before dbxout_init has run, queue
12563         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12564         to TYPE_DECLs before emitting them.
12565         * xcoffout.c (assign_type_number): Delete.
12566         (xcoff_type_numbers): New static table.
12567         (xcoff_assign_fundamental_type_number): New function.
12568         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12569         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12570         * sdbout.c: Include varray.h.
12571         (deferred_global_decls): New static.
12572         (sdb_debug_hooks): Update.
12573         (sdbout_global_decl): If we can't emit something right now,
12574         remember it in deferred_global_decls.
12575         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12576         (sdbout_init): Initialize deferred_global_decls.
12577         * Makefile.in: Update dependencies of sdbout.o.
12578         * dwarf2out.c (dwarf2out_type_decl): New function.
12579         (dwarf2_debug_hooks): Update.
12580         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12581         * c-decl.c (getdecls): Just return 0.
12582         (check_for_loop_decls): Don't use getdecls.
12583         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12584         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12585
12586 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12587
12588         * config/s390/s390.c (s390_sched_reorder2): Remove.
12589         (TARGET_SCHED_REORDER2): Do not redefine.
12590
12591 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12592
12593         * c-parse.in (maybe_type_qual): Delete.
12594         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12595         (asm_argument): New grammar rules.
12596         (extdef_1): Use asmdef.
12597         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12598         (xexpr): Move up with other expression rules.
12599         (stmt): Use asm_stmt.
12600
12601         * c-typeck.c (build_asm_expr): New function - body mostly
12602         pulled from build_asm_stmt.
12603         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12604         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12605
12606 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12607
12608         PR bootstrap/13617
12609         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12610         (mips_declare_object): Make variadic.
12611         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12612         mips_output_aligned_decl_common.
12613         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12614         (mips_declare_object): Make variadic.
12615
12616 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12617
12618         * function.c (update_epilogue_consts): Teach about binary operations.
12619
12620         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12621         previous MEM_VOLATILE in REF.
12622         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12623         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12624
12625 2004-02-12  Gunther Nikl  <gni@gecko.de>
12626
12627         * config.gcc: Restore support for m68k-openbsd.
12628
12629 2004-02-12  Jan Hubicka  <jh@suse.cz>
12630
12631         * tree-optimize.c (tree_rest_of_compilation): Do not release
12632         DECL_ARGUMENTS.
12633
12634 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12635
12636         * doc/install.texi: Fix the spelling of "explicitly".
12637
12638 2004-02-11  Eric Christopher  <echristo@redhat.com>
12639
12640         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12641         duplicate argument structure of cpp_interpret_string.
12642         * cpphash.h: Move prototype...
12643         * cpplib.h: Here.
12644         * cpplib.c: Fix calls to match new function signature.
12645
12646 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12647
12648         PR c/456
12649         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12650         constant expressions at all outside C99 mode if pedantic.
12651
12652 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12653
12654         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12655         (log10_optab, log2_optab): Define corresponding macros.
12656         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12657         * genopinit.c (optabs): Implement log10_optab and log2_optab
12658         using log10?f2 and log2?f2 patterns.
12659         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12660         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12661         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12662         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12663
12664         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12665         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12666         log2, log2f and log2l built-ins as inline x87 intrinsics.
12667
12668 2004-02-11  Richard Henderson  <rth@redhat.com>
12669
12670         PR target/1532
12671         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12672         dead insn after reload.
12673
12674 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12675
12676         * tree.h (frame_base_decl): Add GTY marker.
12677         * var-tracking.c (frame_base_decl): Likewise.
12678
12679 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12680
12681         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12682         incorrect, hunk.
12683         (add_location_or_const_value_attribute): Use text_section_label,
12684         not TEXT_SECTION_NAME.
12685
12686 2004-02-11  Per Bothner  <per@bothner.com>
12687
12688         Represent column numbers using line-map's source_location.
12689         The "next available source_location" is now managed internally by
12690         line-maps.c rather than by clients.
12691         * line-map.h (struct line_map):  New field column_bits.
12692         <from_line>:  Rename field to start_location.
12693         (struct line_maps):  New fields highest_location and max_column_hint.
12694         (linemap_check_files_exited):  New declaration.
12695         (linemap_line_start):  New declaration.
12696         (linemap_add):  Remove from_line parameter; use highest_location field.
12697         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12698         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12699         (CURRENT_LINE_MAP):  Remove macro.
12700         (linemap_position_for_column):  New inline function.
12701         * line-map.c (linemap_init):  Clear new fields.
12702         (linemap_check_files_exited):  New function, extracted from ...
12703         (linemap_free):  Use linemap_check_files_exited.
12704         (linemap_add):  Remove from_line parameter.  Various updates.
12705         (linemap_line_start):  New function.
12706         (linemap_lookeup):  Update for new field names.
12707         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12708         linemap_position_for_column may unpredictably change the current map,
12709         it is cleaner and simpler for us to not cache it in cpp_reader.
12710         (struct cpp_buffer):  New sysp field.
12711         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12712         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12713         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12714         current map using linemap_lookup.
12715         (do_linemarker):  Also set buffer's sysp field.
12716         (destringize_and_run):  No longer need to decrement current line.
12717         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12718         (search_path_head, open_file_failed):  Use buffer's sysp.
12719         (cpp_make_system_header):  Get current map using linemap_lookup.
12720         Also set buffer's sysp flag.
12721         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12722         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12723         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12724         (struct cpp_reader):  ... and adding saved_line_base field.
12725         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12726         Update accordingly.  Don't adjust line.
12727         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12728         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12729         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12730         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12731         * cpplex.c (_cpp_lex_direct):  Likewise.
12732         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12733         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12734         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12735         Remove col field as it is now subsumed by src_loc.
12736         * cpperror.c:  Update various field, parameter, and macro names.
12737         (print_location):  If col==0, try SOURCE_COLUMN of line.
12738         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12739         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12740         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12741         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12742         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12743         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12744         (_cpp_lex_direct):  Use linemap_position_for_column.
12745         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12746         parameter.  Instead get it from the line_table global.  Adjust callers.
12747         (print):  Remove map field.  Replace line field to src_line.
12748         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12749         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12750         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12751         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12752         * cpptrad.c (copy_comment):  Rename variable.
12753         * c-lex.c (map):  Remove static variable, for same reason we removed
12754         cpp_reader's map field.
12755         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12756         to call linemap_lookup.
12757         (cb_line_change):  Token's line field replaced by src_loc.
12758         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12759         Don't save new_map.
12760
12761         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12762         source_location.
12763
12764 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12765
12766         * config/rs6000/altivec.md (*movv4si_internal): At least one
12767         operand must be register_operand.
12768         (*movv8hi_internal1): Likewise.
12769         (*movv16qi_internal1): Likewise.
12770         (*movv4sf_internal1): Likewise.
12771
12772 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12773
12774         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12775         operand.
12776         (movv4hi_internal): Same.
12777         (movv2sf_internal): Same.
12778         (movv1di_internal): Same.
12779
12780 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12781
12782         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12783         TARGET_OLDABI consistently.
12784         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12785         mips_va_arg,override_options,compute_frame_size,
12786         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12787         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12788         and TARGET_OLDABI consistently.
12789         * config/mips/mips.md (exception_receiver): Likewise.
12790         * config/mips/linux64.h: Likewise.
12791
12792 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12793
12794         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12795         Set AltiVec ABI and vrsave as default for ppc64 linux.
12796         (init_cumulative_args): Post error, if try to return
12797         value in AltiVec register without enable AltiVec.
12798         (function_arg_advance): Ditto for passing arguments.
12799
12800 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12801
12802         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12803         a label before updating its usage count.
12804
12805 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12806
12807         * doc/install.texi: Remove extra cd.
12808
12809 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12810
12811         * c-common.c (vector_size_helper): Remove; call
12812         reconstruct_complex_type() instead.
12813         * tree.c (reconstruct_complex_type): New function
12814         (formerly vector_size_helper() in c-common.c).
12815         (make_vector): Make externally visible.
12816         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12817
12818 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12819
12820         * config/h8300/h8300-protos.h: Add a prototype for
12821         h8300_regs_ok_for_stm.
12822         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12823         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12824         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12825         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12826         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12827         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12828         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12829         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12830         h8300_regs_ok_for_stm().
12831
12832 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12833
12834         PR c/14088
12835         * real.c (real_from_string): Look for 'X' as well as 'x' in
12836         hexfloat strings.
12837
12838 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12839
12840         * config/h8300/h8300.md: Remove an incorrect comment about
12841         peephole2.  Add comments.
12842
12843 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12844
12845         PR/14058
12846         * emit-rtl.c (set_decl_incoming_rtl): New.
12847         * tree.h (set_decl_incoming_rtl): New.
12848         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12849         DECL_INCOMING_RTL.
12850         * ada/misc.c (adjust_decl_rtl): Likewise.
12851
12852 2004-02-10  Per Bothner  <per@bothner.com>
12853
12854         * c-opts.c (c_common_post_options):   Don't emit working directory
12855         in cpp output if -P was specified.
12856
12857 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12858
12859         PR c/14092
12860         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12861         negate_expr back to the original type.
12862
12863 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12864
12865         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12866         bump retaddr here.
12867
12868 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12869
12870         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12871         gen_lowpart_SUBREG): Move under the file in which they
12872         are actually declared.
12873
12874 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12875
12876         * doc/sourcebuild.texi: Add libada documentation.
12877
12878         * doc/install.texi: Update documentation on Ada build, now
12879         that the GNAT lib and tools are built automatically.
12880
12881 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12882
12883         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12884         && TARGET_IRIX.
12885
12886 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12887
12888         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12889         boundaries outside build_component_ref() call (a macro in ObjC++).
12890
12891 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12892
12893         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12894         (init_cumulative_args): Likewise.
12895         (a7_overlap_mentioned_p): Delete prototype.
12896         * config/xtensa/xtensa.c (struct machine_function): Replace
12897         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12898         Add set_frame_ptr_insn field.
12899         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12900         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12901         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12902         at the function entry and replace the operand with the pseudo.
12903         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12904         argument and record this flag in CUMULATIVE_ARGS.
12905         (function_arg): Remove result_mode and special-case code to handle
12906         arguments in a7.  Instead, set need_a7_copy flag when there is an
12907         incoming argument in a7.
12908         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12909         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12910         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12911         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12912         special-case code.
12913         (a7_overlap_mentioned_p): Delete.
12914         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12915         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12916         arguments to init_cumulative_args and pass "incoming" flag instead.
12917         (BLOCK_REG_PADDING): Delete.
12918         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12919         checks for reload_in_progress and reload_completed.  Update calls to
12920         xtensa_copy_incoming_a7.
12921         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12922         to call xtensa_copy_incoming_a7.
12923
12924 2004-02-09  DJ Delorie  <dj@redhat.com>
12925
12926         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12927         longer modify standard_exec_prefix, standard_bindir_prefix, or
12928         standard_startfile_prefix.
12929
12930 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12931
12932         PR c++/11295
12933         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12934         to expand_expr_real call, and pass in alt_rtl as last argument.
12935
12936         PR libstdc++/5625
12937         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12938         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12939         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12940         * except.c (expand_builtin_extend_pointer): New.
12941         * except.h (expand_builtin_extend_pointer): Declare.
12942
12943 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12944
12945         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12946         unaligned loads and stores.
12947
12948 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12949
12950         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12951         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12952
12953         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12954         * config/mips/iris5.h: ... here.
12955         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12956
12957         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12958         * config/mips/iris5.h: ... here.
12959
12960 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12961
12962         * configure.ac: Remove default executable files before AC_PROG_CC.
12963         * configure: Regenerate.
12964
12965 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12966
12967         PR target/13721
12968         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12969         print a operand other than a register.
12970
12971 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12972
12973         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12974         tree code rather than call fold_convert, which doesn't specify a
12975         default floating point to integer conversion.
12976
12977 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12978
12979         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12980         code to support SGS assembler.  Reformat adjacent code where possible.
12981         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12982         definition.
12983         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12984         for '%#'.
12985         * config/m68k/linux.h, config/m68k/m68k.c,
12986         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12987         macros and asm_printf() format strings.
12988         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12989         * config/m68k/linux.h: Update copyright.
12990         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12991
12992 2004-02-08  Andreas Schwab  <schwab@suse.de>
12993             Bernardo Innocenti  <bernie@develer.com>
12994
12995         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12996         REGISTER_PREFIX.
12997         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12998         frame pointer register, overridable by OS targets.
12999         * (M68K_REGNAME): Macro to obtain register name for asm output,
13000         eventually replacing %a6 with M68K_FP_REG_NAME.
13001         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13002         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13003         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13004         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13005         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13006
13007 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13008
13009         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13010         hook_rtx_tree_int_null.
13011         * targhooks.c (default_struct_value_rtx): Remove.
13012         * targhooks.h: Remove the prototype for
13013         default_struct_value_rtx.
13014         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13015         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13016         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13017         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13018         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13019         config/rs6000/rs6000.c, config/s390/s390.c,
13020         config/stormy16/stormy16.c, config/v850/v850.c,
13021         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13022         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13023
13024 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13025
13026         * README.Portability: Change "ISO C89" to "ISO C90".
13027         * c-parse.in (primary, initelt): Likewise.
13028
13029 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13030
13031         * real.c (encode_ibm_extended): Normalize the input value before
13032         converting it to a double.  Handle the case where a normal value
13033         rounds to infinity.
13034
13035 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13036
13037         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13038         warning.
13039         * cse.c (preferrable): Change to preferable. Update all of its
13040         callers.
13041         * genautomata.c (ainsn): Change
13042         first_ainsn_with_given_equialence_num to
13043         first_ainsn_with_given_equivalence_num.  Update all of its
13044         references.
13045
13046 2004-02-08  Jan Hubicka  <jh@suse.cz>
13047
13048         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13049
13050 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13051
13052         * function.c (assign_parms): Fix formatting.
13053
13054 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13055
13056         * default.h (PROMOTE_PROTOTYPES): Remove.
13057         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13058         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13059         EXPAND_BUILTIN_SAVEREGS): Poison.
13060         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13061         hook_bool_tree_false.
13062         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13063         * target.h: Replace SETUP_INCOMING_VARARGS with
13064         targetm.calls.setup_incoming_varargs().
13065         * targhooks.c (default_promote_function_return): Remove.
13066         (default_promote_prototypes): Likewise.
13067         (default_struct_value_rtx): Always abort().
13068         (default_expand_builtin_saveregs): Always print an error
13069         message.
13070         (default_setup_incoming_varargs): Do nothing.
13071         (default_pretend_outgoing_varargs_named): Don't depend on
13072         SETUP_INCOMING_VARARGS.
13073         * targhooks.h: Remove the prototype for
13074         default_promote_function_return and
13075         default_promote_prototypes.
13076
13077 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13078
13079         * system.h (SHARED_SECTION_ASM_OP): Poison.
13080         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13081         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13082
13083 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13084
13085         Bug 13856
13086         * c-decl.c (diagnose_mismatched_decls): Only give special
13087         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13088         is also true.
13089         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13090         DECL_FUNCTION_CODE when defining a built-in function.
13091         Don't update DECL_ESTIMATED_INSNS.
13092         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13093         FUNCTION_DECLs.
13094         * tree.h: Delete DECL_ESTIMATED_INSNS.
13095         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13096         (expand_call_inline, optimize_inline_calls): Don't update
13097         DECL_ESTIMATED_INSNS nor inlined_insns.
13098         * cgraphunit.c (cgraph_analyze_function): Don't update
13099         DECL_ESTIMATED_INSNS.
13100
13101 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13102
13103         * c-common.c (shadow_warning): Delete.
13104         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13105         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13106         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13107         * c-parse.in (free_parser_stacks): Delete.
13108
13109 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13110
13111         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13112         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13113         Use the top level mkinstalldirs, not the one in the gcc subdir.
13114         * mkinstalldirs: Remove (from the gcc subdir).
13115
13116 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13117
13118         PR middle-end/13696
13119         * fold-const.c (fold_convert): New function to provide type
13120         conversion to the middle-end without using convert.
13121         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13122         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13123         invert_truthvalue, optimize_bit_field_compare, range_binop,
13124         decode_field_reference, make_range, build_range_check, unextend,
13125         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13126         fold_binary_op_with_conditional_arg, fold_inf_compare,
13127         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13128         convert with calls to fold_convert.
13129
13130 2004-02-07  Jan Hubicka  <jh@suse.cz>
13131
13132         * genrecog.c (find_operand): add extra argument stop.
13133         (validate_pattern): Verify that mach_dup is duplicating operand
13134         defined lexically earlier.
13135
13136 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13137
13138         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13139         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13140         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13141         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13142         config/ia64/ia64.h, config/ip2k/ip2k.h,
13143         config/iq2000/iq2000.h, config/mips/iris5.h,
13144         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13145         config/rs6000/aix51.h, config/rs6000/aix52.h,
13146         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13147         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13148         config/sparc/linux.h, config/sparc/linux64.h,
13149         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13150         config/xtensa/xtensa.h: Remove the definitions of
13151         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13152         MAX_WCHAR_TYPE_SIZE.
13153         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13154         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13155
13156 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13157
13158         PR bootstrap/13990
13159         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13160         gen_rtx_NE.
13161
13162 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13163
13164         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13165         #ifdef ENABLE_CHECKING and #endif.
13166
13167 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13168
13169         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13170         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13171         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13172         integer types and floating point with unsafe_math_optimizations.
13173         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13174         Optimize A - B as A + (-B), if B is easily negated.
13175
13176 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13177
13178         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13179         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13180         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13181         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13182         Update copyright.
13183
13184 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13185
13186         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13187
13188 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13189
13190         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13191         glibc 2.3 or better.
13192
13193 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13194
13195         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13196         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13197
13198 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13199
13200         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13201         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13202         (SHLIB_MKMAP_OPTS): Delete.
13203         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13204         (bispecs): Add rule.
13205         * config/rs6000/libgcc-ppc64.ver: New file.
13206         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13207         (__floatdidf, __floatdisf): Optimize multiply.
13208         (__fixunstfdi): New function.
13209         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13210         real and imag parts larger than one register.
13211         (function_arg): Correct type of reg used when fp arg split partially
13212         to stack.
13213         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13214         and __MACH__ or __powerpc64__.
13215
13216 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13217             Ulrich Weigand  <uweigand@de.ibm.com>
13218
13219         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13220         of gen_highpart or gen_lowpart when the floating point format is
13221         wider than the result mode.
13222
13223 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13224
13225         * dwarf2out.c (loclabel_num): Move into #ifdef
13226         DWARF2_DEBUGGING_INFO.
13227
13228 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13229
13230         * objc/objc-act.c (build_super_template) the 'class' field of
13231         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13232         (get_super_receiver): Likewise.
13233
13234 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13235
13236         * reload1.c (check_eliminable_occurrences): Optimize the reset
13237         of can_eliminate.
13238         (eliminate_regs_in_insn): Likewise.
13239
13240 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13241             Josef Zlomek  <zlomekj@suse.cz>
13242
13243         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13244         at the beginning of function, call dwarf2out_var_location for
13245         NOTE_INSN_VAR_LOCATION note.
13246         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13247         decl_loc_table): New.
13248         (lookup_decl_loc): New function.
13249         (add_var_loc_to_decl): New function.
13250         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13251         only if can_use_fbreg.
13252         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13253         functions.
13254         (loc_descriptor): Likewise. Process VAR_LOCATION.
13255         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13256         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13257         can_use_fbreg == true.
13258         (add_location_or_const_value_attribute): Added parameter enum
13259         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13260         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13261         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13262         with attr == DW_AT_location.
13263         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13264         if frame_base_decl is defined and has a location list.
13265         (gen_variable_die): Call add_location_or_const_value_attribute with
13266         attr == DW_AT_location.
13267         (dwarf2out_var_location): New function.
13268         (dwarf2out_begin_function): New function.
13269         (dwarf2out_init): Create decl_loc_table.
13270
13271 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13272
13273         * loop.c (force_movables): Transitively increase the priorities of
13274         all insns forces by an insn, not just the first one.
13275
13276 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13277             Daniel Berlin <dberlin@dberlin.org>
13278
13279         Josef Zlomek  <zlomekj@suse.cz>
13280         * Makefile.in (var-tracking.o): New.
13281         * common.opt (fvar-tracking): New.
13282         * flags.h (flag_var_tracking): New.
13283         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13284         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13285         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13286         * rtl.c (note_insn_name): Likewise.
13287         * rtl.def (VAR_LOCATION): New.
13288         * rtl.h (NOTE_VAR_LOCATION): New.
13289         (NOTE_VAR_LOCATION_DECL): New.
13290         (NOTE_VAR_LOCATION_LOC): New.
13291         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13292         (variable_tracking_main): New exported function.
13293         * timevar.def (TV_VAR_TRACKING): New.
13294         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13295         (dump_file): "vartrack" was added (-dV).
13296         (flag_var_tracking): New.
13297         (f_options): "var-tracking" was added.
13298         (rest_of_handle_variable_tracking): New function.
13299         (rest_of_compilation): Run variable tracking.
13300         (process_options): If user has not specified flag_var_tracking set it
13301         according to optimize, debug_info_level and debug_hooks.
13302         * tree.h (frame_base_decl): New.
13303         * var-tracking.c: New file.
13304         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13305         (ia64_override_options): Set flags to run variable tracking in machine
13306         dependent reorg instead of toplev.c.
13307         (ia64_reorg): Run variable tracking if wanted.
13308         * doc/invoke.texi: Mention variable tracking in -dV,
13309         add and -fvar-tracking.
13310         * doc/passes.texi: Added variable tracking pass.
13311
13312         Daniel Berlin <dberlin@dberlin.org>
13313         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13314         * dbxout.c (dbx_debug_hooks): Likewise.
13315         (xcoff_debug): Likewise.
13316         * debug.c (do_nothing_debug_hooks): Likewise.
13317         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13318         * dwarfout.c (dwarf_debug_hooks): Likewise.
13319         * sdbout.c (sdb_debug_hooks): Likewise.
13320         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13321         * final.c (final_scan_insn): Call var_location debug hook for each
13322         NOTE_INSN_VAR_LOCATION.
13323
13324 2004-02-06  Jan Hubicka  <jh@suse.cz>
13325
13326         * flow.c (update_life_info): Allocate reg_deaths when called from
13327         scheudler.
13328         (attempt_auto_inc):  Update life ranges accordingly.
13329
13330 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13331
13332         PR debug/11816
13333         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13334
13335 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13336
13337         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13338
13339 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13340
13341         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13342         a separate line info table in use.
13343         Use the correct size for terminators.
13344         (output_die): Use offset, not delta.
13345
13346 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13347
13348         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13349
13350 2004-02-06  Jan Hubicka  <jh@suse.cz>
13351
13352         * recog.c (split_all_insns): Do not update reg info.
13353         * regrename.c (regrename_optimize): Likewise.
13354         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13355         * flow.c (struct propagate_block_info): Add insn_num field.
13356         (reg_deaths): New array.
13357         (life_analysis): Free reg_deaths info.
13358         (allocate_reg_life_data): Allocate reg_deaths array.
13359         (propagate_one_insn): Use new array.
13360         (init_propagate_block): Initialize it.
13361         (free_propagate_block_info): Finish compuation of
13362         REG_LIVE_LENGTH
13363         (attempt_auto_inc): Sanity check that REG_INFO is not
13364         computed at same time.
13365         (mark_used_regs): Update new array.
13366
13367         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13368         substitution.
13369
13370 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13371
13372         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13373         *extendqisi2_short_displ.
13374
13375 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13376
13377         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13378         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13379         (emit_library_call_value_1): Likewise pass nargs.
13380         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13381         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13382         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13383         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13384         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13385         prototype.
13386         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13387         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13388         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13389         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13390         INIT_CUMULATIVE_ARGS.
13391         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13392         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13393         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13394         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13395         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13396         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13397         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13398         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13399         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13400         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13401         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13402         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13403
13404 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13405
13406         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13407         possible.
13408
13409 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13410
13411         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13412         note containing (plus (reg) (const_int)), where reg is an
13413         eliminable reg, then perform the register elimination without
13414         depending on eliminate_regs().
13415
13416 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13417
13418         * config/arc/arc.c (arc_return_in_memory): Check the return
13419         value of int_size_in_bytes against -1.  Don't check
13420         TREE_ADDRESSABLE.
13421         * config/avr/avr.c (avr_return_in_memory): Check the return
13422         value of int_size_in_bytes against -1.
13423         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13424         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13425         Likewise.
13426         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13427         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13428         Likewise.
13429
13430 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13431
13432         * config/frv/frv-protos.h: Remove the prototype for
13433         frv_setup_incoming_varargs.
13434         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13435         (frv_setup_incoming_varargs): Make it static.
13436         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13437
13438 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13439
13440         * config/fr30/fr30-protos.h: Remove the prototype for
13441         fr30_setup_incoming_varargs.
13442         Update the prototypes for fr30_num_arg_regs and
13443         fr30_function_arg_partial_nregs.
13444         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13445         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13446         (fr30_setup_incoming_varargs): Make it static.
13447         Add argument second_time.  Don't do anything when second_time
13448         is nonzero.
13449         (fr30_num_arg_regs): Change the type of the first argument to
13450         enum machine_mode.
13451         (fr30_function_arg_partial_nregs): Change the type of the
13452         second argument to enum machine_mode.
13453         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13454         (SETUP_INCOMING_VARARGS): Remove.
13455
13456 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13457
13458         * config/arc/arc-protos.h: Remove the prototype for
13459         arc_setup_incoming_varargs.
13460         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13461         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13462         (arc_setup_incoming_varargs): Make it static.
13463         (arc_external_libcall): Likewise.
13464         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13465         Remove the commented-out definition of
13466         ASM_OUTPUT_EXTERNAL_LIBCALL.
13467
13468 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13469
13470         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13471         to $$(slibdir) in the installation commands.
13472
13473 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13474
13475         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13476         with inner_regno, not regno.
13477         * rtlanal.c (refers_to_regno_p): Same.
13478
13479 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13480
13481         * config.gcc: Remove i370 support.
13482
13483 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13484
13485         * doc/install.texi:  Update automake and autoconf version
13486         requirements.  Note where to find gcj automake version.
13487
13488 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13489
13490         * Makefile.in (generate-manpages): Move dependencies to ...
13491         (man): here.
13492         * doc/makefile.texi: Document new targets.
13493         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13494
13495 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13496
13497         PR/13485
13498         Makefile.in (srcextra):  Add a level of indirection to ...
13499         (gcc.srcextra): ... here.
13500         (po-generated): Delete.
13501         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13502         options.c.
13503         (start.encap): Remove superfluous lang.srcextra dependency.
13504         objc/Make-lang.in (po-generated):  Delete.
13505
13506 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13507
13508         * config/ia64/ia64.c (REG_GP): Remove.
13509
13510 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13511
13512         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13513
13514 2004-02-05  Devang Patel  <dpatel@apple.com>
13515
13516         * dwarf2out.c (force_type_die): Look up input type itself
13517         instead of root_type() of type.
13518
13519 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13520
13521         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13522         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13523         pre-reload splitters are transformed to post-reload
13524         define_insn_and_split patterns.
13525         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13526
13527 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13528
13529         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13530         TARGET_PROMOTE_PROTOTYPES.
13531
13532 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13533
13534         PR middle-end/13750
13535         Revert:
13536         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13537         PR pch/13361
13538         * c-typeck.c (constructor_asmspec): Delete.
13539         (struct initializer_stack): Delete field 'asmspec'.
13540         (start_init): Delete saving of asmspec.
13541         (finish_init): Don't update constructor_asmspec.
13542         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13543         * stmt.c (expand_asm): Duplicate strings from tree.
13544         (expand_asm_operands): Likewise.
13545         * tree.c (tree_size): Update computation of size of STRING_CST.
13546         (make_node): Don't make STRING_CST nodes.
13547         (build_string): Allocate string with tree node.
13548         * tree.def (STRING_CST): Update comment.
13549         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13550         (tree_string): Place contents of string in tree node.
13551         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13552         from tree.
13553
13554 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13555
13556         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13557         msgid.
13558
13559 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13560
13561         * config/rs6000/altivec.md (*movv4si_internal): At least one
13562         operand must be altivec_register_operand.
13563         (*movv8hi_internal1): Likewise.
13564         (*movv16qi_internal1): Likewise.
13565         (*movv4sf_internal1): Likewise.
13566
13567 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13568
13569         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13570         * configure: Regenerate.
13571
13572 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13573
13574         * doc/install.texi: Update description of --gxx-include-dir to
13575         give correct default value.
13576
13577 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13578
13579         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13580         8 with MAC_REG.
13581
13582 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13583
13584         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13585         gen_rtx_PARALLEL.
13586
13587 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13588
13589         * emit-rtl.c: Update the comment about the file.
13590
13591 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13592
13593         * sourcebuild.texi (Test Idioms): Update testcase naming
13594         conventions.
13595
13596 2004-02-04  Per Bothner  <per@bothner.com>
13597
13598         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13599         * c-ppoutput.c (pp_dir_change):  New function.
13600         * c-common.h (pp_dir_change):  New declaration.
13601         * cpplib.h (struct cpp_options):  Remove working_directory field.
13602         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13603         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13604         Don't handle -fworking_directory here, but in c_common_post_options.
13605         (read_original_directory): Don't back up when done.
13606         Don't clear no-longer used working_directory flag.
13607         * cpplib.h:  Update declarations to match.
13608         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13609         (init_c_lex):  Don't set dir_change callback here, since we want
13610         to set it even if flag_preprocess_only.
13611         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13612         (c_common_post_options):  Set dir_change callback.
13613         Call pp_dir_change if approporiate.
13614         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13615         unneeded parameter and result. Do LC_RENAME for <built-in>.
13616         (c_common_post_options):  Call cpp_read_main_file here instead.
13617         (c_common_init):  Update accordingly.
13618         (push_command_line_include):  Don't cpp_push_main_file.
13619         Do LC_RENAME rather than LC_LEASE to get back to main file.
13620         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13621         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13622         files, but call finish_options for all files.
13623         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13624         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13625         cpp_find_main_file + cpp_push_main_file.
13626         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13627         * opts.c (handle_options):  Only set main_input_filename first time.
13628
13629 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13630
13631         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13632
13633 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13634
13635         * reload.c (find_equiv_reg): When checking for register overlap,
13636         don't index hard_regno_nregs with a pseudo-reg.
13637
13638 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13639
13640         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13641
13642 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13643
13644         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13645         against FIRST_PSEUDO_REGISTER.
13646
13647 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13648
13649         * Makefile.in: Move target, host overrides after per-language
13650         fragments.
13651
13652         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13653         (GNATLIBCFLAGS): Remove -g.
13654
13655 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13656
13657         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13658         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13659         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13660         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13661         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13662         config/sparc/sparc.c, config/vax/vax.c: Revert the
13663         replacements of "FALLTHRU" with "Fall through" done in the
13664         previous patch.
13665
13666 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13667
13668         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13669         config/arm/arm.c, config/arm/arm.md,
13670         config/cris/cris-protos.h, config/fr30/fr30.c,
13671         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13672         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13673         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13674         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13675         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13676         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13677         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13678         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13679         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13680         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13681         config/s390/s390.md, config/sparc/netbsd-elf.h,
13682         config/sparc/openbsd.h, config/sparc/sparc.c,
13683         config/xtensa/lib2funcs.S: Fix comment formatting.
13684
13685 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13686
13687         * config/alpha/alpha.c, config/arc/arc.c,
13688         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13689         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13690         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13691         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13692         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13693         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13694         config/iq2000/iq2000.c, config/m32r/m32r.c,
13695         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13696         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13697         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13698         config/rs6000/rs6000.h, config/sparc/sparc.c,
13699         config/vax/vax.c: Fix comment typos.  Follow spelling
13700         conventions.
13701
13702 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13703
13704         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13705         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13706         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13707         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13708         config/arm/fpa.md, config/arm/iwmmxt.md,
13709         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13710         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13711         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13712         config/sparc/netbsd-elf.h: Update copyright.
13713
13714 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13715
13716         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13717         for all modes whose size is greater than 8 bytes if ARCH32.
13718         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13719         by reference if ARCH32.
13720
13721 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13722
13723         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13724
13725 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13726
13727         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13728         to before adddi3 insn patterns.
13729         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13730         "reload_insi"): Move to before addsi3 insn patterns.
13731
13732 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13733
13734         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13735         parameter.  Use it instead of current_function_is_thunk.
13736         * function.h (struct function): Update documentation for is_thunk.
13737         * tree.h (CALL_FROM_THUNK_P): New macro.
13738         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13739         no_new_pseudos when testing current_function_is_thunk.
13740         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13741
13742 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13743
13744         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13745         TARGET_SETUP_INCOMING_VARARGS.
13746
13747 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13748
13749         * emit-rtl.c (gen_rtx): Remove.
13750         * genattrtab.c: Don't mention gen_rtx in a comment.
13751         * rtl.h: Remove the prototype for gen_rtx.
13752         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13753
13754 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13755
13756         * config/arc/arc.h, config/fr30/fr30.h
13757         (SETUP_INCOMING_VARARGS): Remove the target-independent
13758         comments.
13759         * doc/tm.texi: Don't mention deprecated target macros.
13760
13761 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13762
13763         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13764         target-independent comment.
13765
13766 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13767
13768         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13769         mention deprecated target macros.
13770
13771 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13772
13773         * config.gcc: Remove obsolete ports and configurations.
13774         * config/linux-aout.h, config/netware.h,
13775         config/t-linux-gnulibc1, config/d30v/abi,
13776         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13777         config/d30v/d30v.h, config/d30v/d30v.md,
13778         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13779         config/dsp16xx/dsp16xx-modes.def,
13780         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13781         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13782         config/i370/README, config/i370/i370-c.c,
13783         config/i370/i370-protos.h, config/i370/i370.c,
13784         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13785         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13786         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13787         config/i386/moss.h, config/i386/netware.h,
13788         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13789         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13790         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13791         config/i960/i960-c.c, config/i960/i960-coff.h,
13792         config/i960/i960-modes.def, config/i960/i960-protos.h,
13793         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13794         config/i960/rtems.h, config/i960/t-960bare,
13795         config/m68k/hp310.h, config/m68k/hp320.h,
13796         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13797         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13798         Remove.
13799         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13800         doc/md.texi: Remove mentions of obsolete ports.
13801
13802 2004-02-04  Jan Hubicka  <jh@suse.cz>
13803
13804         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13805         pointer when all VALUE's locations has been invalidated.
13806         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13807
13808 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13809
13810         * doc/invoke.texi (x86 options): Fix spelling/wording.
13811
13812 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13813
13814         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13815         put the original string in a comment.
13816         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13817         * config/mips/mips.c (mips_output_ascii): Likewise.
13818         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13819
13820 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13821
13822         * system.h (GIV_SORT_CRITERION): Poison.
13823         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13824         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13825
13826 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13827
13828         PR target/9348
13829         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13830         multiplies with a multiplication of the wrong signedness, its the
13831         signedness of the multiplication that we've performed that needs to
13832         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13833         if expand_mult_highpart_adjust places the result in target.
13834
13835 2004-02-03  Richard Henderson  <rth@redhat.com>
13836
13837         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13838
13839 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13840
13841         * config.gcc (sh[234]l): Use little endian fragments.
13842
13843 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13844
13845         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13846         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13847         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13848         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13849         floating point format.
13850         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13851         the above functions.
13852         (output_move_quad): Output float values in correct target format.
13853         (legitimate_const_double_p): New function.
13854         * config/pdp11/pdp11.h: Fix typos.
13855         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13856         (TARGET_FLOAT_FORMAT): Ditto.
13857         (pdp11_f_format, pdp11_d_format): Add external declarations.
13858         (MAX_REGS_PER_ADDRESS): Corrected.
13859         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13860         (PRINT_OPERAND): Output float literals in target format.
13861
13862 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13863
13864         PR c++/13975
13865         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13866         TI_PRIVATE.
13867         (access_public_node): Redefine.
13868         (access_protected_node): Likewise.
13869         (access_private_node): Likewise.
13870         * tree.c (build_common_tree_nodes): Create access_public_node,
13871         access_protected_node, and access_private_node.
13872
13873 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13874
13875         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13876         (MASK_INLINE_INT_DIV_THR): Ditto.
13877         (MASK_INLINE_SQRT_LAT): Ditto.
13878         (MASK_INLINE_SQRT_THR): Ditto.
13879         (MASK_DWARF2_ASM): Ditto.
13880         (MASK_EARLY_STOP_BITS): Ditto.
13881
13882 2004-02-02  Paul Brook  <paul@codesourcery.com>
13883
13884         Merge from csl-arm-branch.
13885
13886         2004-01-30  Paul Brook  <paul@codesourcery.com>
13887
13888         * aof.h (REGISTER_NAMES): Add vfp reg names
13889         (ADDITIONAL_REGISTER_NAMES): Ditto.
13890         * aout.h (REGISTER_NAMES): Ditto.
13891         (ADDITIONAL_REGISTER_NAMES): Ditto.
13892         * arm-protos.h: Update/Add Prototypes.
13893         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13894         Only allow 0.0 for VFP.
13895         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13896         (values_fp): Rename from values_fpa.  Update Users.
13897         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13898         Update users.  Only check valid constants for this hardware.
13899         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13900         Only allow consts for FPA.
13901         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13902         Only allow consts for FPA.
13903         (use_return_insn): Check for saved VFP regs.
13904         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13905         (arm_legitimize_address): Ditto.
13906         (arm_general_register_operand): New function.
13907         (vfp_mem_operand): New function.
13908         (vfp_compare_operand): New function.
13909         (vfp_secondary_reload_class): New function.
13910         (arm_float_compare_operand): New function.
13911         (vfp_print_multi): New function.
13912         (vfp_output_fstmx): New function.
13913         (vfp_emit_fstm): New function.
13914         (arm_output_epilogue): Output VPF reg restore code.
13915         (arm_expand_prologue): Output VFP reg save code.
13916         (arm_print_operand): Add 'P'.
13917         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13918         (arm_regno_class): Return classes for VFP regs.
13919         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13920         (arm_get_frame_size): Ditto.
13921         * arm.h (FIXED_REGISTERS): Add VFP regs.
13922         (CALL_USED_REGISTERS): Ditto.
13923         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13924         (FIRST_VFP_REGNUM): Define.
13925         (LAST_VFP_REGNUM): Define.
13926         (IS_VFP_REGNUM): Define.
13927         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13928         (HARD_REGNO_NREGS): Handle VFP regs.
13929         (REG_ALLOC_ORDER): Add VFP regs.
13930         (enum reg_class): Add VFP_REGS.
13931         (REG_CLASS_NAMES): Ditto.
13932         (REG_CLASS_CONTENTS): Ditto.
13933         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13934         (REG_CLASS_FROM_LETTER): Add 'w'.
13935         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13936         (EXTRA_MEMORY_CONSTRAINT): Define.
13937         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13938         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13939         (REGISTER_MOVE_COST): Ditto.
13940         (PREDICATE_CODES): Add arm_general_register_operand,
13941         arm_float_compare_operand and vfp_compare_operand.
13942         * arm.md (various): Rename as above.
13943         (divsf3): Enable when TARGET_VFP.
13944         (divdf3): Ditto.
13945         (movdfcc): Ditto.
13946         (sqrtsf2): Ditto.
13947         (sqrtdf2): Ditto.
13948         (arm_movdi): Disable when TARGET_VFP.
13949         (arm_movsi_insn): Ditto.
13950         (movsi): Only split with general regs.
13951         (cmpsf): Use arm_float_compare_operand.
13952         (push_fp_multi): Restrict to TARGET_FPA.
13953         (vfp.md): Include.
13954         * vfp.md: New file.
13955         * fpa.md (various): Rename as above.
13956         * doc/md.texi: Document ARM w and U constraints.
13957
13958         2004-01-15  Paul Brook  <paul@codesourcery.com>
13959
13960         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13961         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13962         Break out of loop when we find a float-abi.  Fix typo.
13963         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13964         Set -mfloat-abi=.
13965         * doc/install.texi: Document --with-fpu.
13966
13967         2003-01-14  Paul Brook  <paul@codesourcery.com>
13968
13969         * config.gcc (with_arch): Add armv6.
13970         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13971         * config/arm/arm.c (arm_overrride_options): Ditto.
13972
13973         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13974
13975         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13976         (FL_ARCH6): Renamed from FL_ARCH6J.
13977         (arm_arch3m): Renamed from arm_fast_multiply.
13978         (arm_arch6): Renamed from arm_arch6j.
13979         * arm.h: Update all uses of above.
13980         * arm-cores.def: Likewise.
13981         * arm.md: Likewise.
13982
13983         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13984         not arm6j.  Add entry for arch armv6.
13985
13986         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13987
13988         * arm.c (arm_emit_extendsi): Delete.
13989         * arm-protos.h (arm_emit_extendsi): Delete.
13990         * arm.md (zero_extendhisi2): Also handle zero-extension of
13991         non-subregs.
13992         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13993         (thumb_zero_extendhisi2): Only match if not v6.
13994         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13995         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13996         (thumb_extendqisi2): Likewise.
13997         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13998         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13999         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14000         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14001         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14002         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14003         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14004         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14005         (arm_extendqisi2addsi): Likewise.
14006
14007         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14008
14009         Revert this change:
14010         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14011         + REG addressing modes.
14012
14013         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14014         + REG addressing modes.
14015
14016         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14017
14018         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14019         CONSTANT_P_RTX.
14020
14021         2003-30-12  Paul Brook  <paul@codesourcery.com>
14022
14023         * longlong.h: protect arm inlines with !defined (__thumb__)
14024
14025         2003-30-12  Paul Brook  <paul@codesourcery.com>
14026
14027         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14028
14029         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14030
14031         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14032         change.
14033
14034         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14035
14036         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14037         to the virtual incoming args pointer for downward stacks.
14038
14039         2003-12-29  Paul Brook  <paul@codesourcery.com>
14040
14041         * config/arm/arm-cores.def: Add cost function.
14042         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14043         (arm_rtx_costs): Remove
14044         (struct processors): Add rtx_costs field.
14045         (all_cores, all_architectures): Ditto.
14046         (arm_override_options): Set targetm.rtx_costs.
14047         (thumb_rtx_costs): New function.
14048         (arm_rtx_costs_1): Remove cases handled elsewhere.
14049         * config/arm/arm.h (processor_type): Add COSTS parameter.
14050
14051         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14052
14053         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14054         (arm926ejs.md): Include it.
14055         * config/arm/arm926ejs.md: New pipeline description.
14056
14057         2003-12-24  Paul Brook  <paul@codesourcery.com>
14058
14059         * config/arm/arm.c (arm_arch6j): New variable.
14060         (arm_override_options): Set it.
14061         (arm_emit_extendsi): New function.
14062         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14063         * config/arm/arm.h (arm_arch6j): Declare.
14064         * config/arm/arm.md: Add sign/zero extend insns.
14065
14066         2003-12-23  Paul Brook  <paul@codesourcery.com>
14067
14068         * config/arm/arm.c (all_architectures): Add armv6.
14069         * doc/invoke.texi: Document it.
14070
14071         2003-12-19  Paul Brook  <paul@codesourcery.com>
14072
14073         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14074         insn patterns to match.
14075         * config/arm/arm-generic.md: Ditto.
14076         * config/arm/cirrus.md: Ditto.
14077         * config/arm/fpa.md: Ditto.
14078         * config/amm/iwmmxt.md: Ditto.
14079         * config/arm/arm1026ejs.md: Ditto.
14080         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14081         for 11_loadb.
14082
14083         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14084
14085         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14086         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14087         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14088         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14089         arm_no_early_mul_dep): Correctly deal with conditional execution,
14090         parallels and single shift operations.
14091         (arm_no_early_alu_shift_value_dep): Define.
14092         * arm.md (attr type): Replace 'normal' with 'alu',
14093         'alu_shift' and 'alu_shift_reg'.
14094         (attr core_cycles): Adjust.
14095         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14096         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14097         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14098         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14099         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14100         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14101         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14102         attribute appropriately.
14103         * config/arm/arm1026ejs.md (alu_op): Adjust.
14104         (alu_shift_op, alu_shift_reg_op): New.
14105         * config/arm/arm1136.md: Add better bypasses for early
14106         registers. Remove load[234] and store[234] bypasses.
14107         (11_alu_op): Adjust.
14108         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14109
14110         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14111
14112         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14113         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14114         * config/arm/arm.c (arm_no_early_store_addr_dep,
14115         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14116         * config/arm/arm1026ejs.md: Add load-store bypass.
14117         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14118         Add bypasses between instructions.
14119
14120         2003-12-10  Paul Brook  <paul@codesourcery.com>
14121
14122         * config/arm/arm.c (arm_fpu_model): New variable.
14123         (arm_fload_abi): New variable.
14124         (target_fpe_name): Rename from target_fp_name.
14125         (target_fpu_name): New variable.
14126         (arm_is_cirrus): Remove.
14127         (fpu_desc): New struct.
14128         (all_fpus): Define.
14129         (pf_model_for_fpu): Define.
14130         (all_loat_abis): Define.
14131         (arm_override_options): Set fp arch flags based on -mfpu=
14132         and -float-abi=.
14133         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14134         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14135         (*): Use new TARGET_* flags.
14136         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14137         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14138         (TARGET_SOFT_FLOAT): Ditto.
14139         (TARGET_SOFT_FLOAT_ABI): New.
14140         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14141         TARGET_HARD_FLOAT.
14142         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14143         (TARGET_OPTIONS): Add -mfpu=.
14144         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14145         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14146         (arm_pf_model): Define.
14147         (arm_float_abi_type): Define.
14148         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14149         * config/arm/arm.md: Use new TARGET_* flags.
14150         * config/arm/cirrus.md: Ditto.
14151         * config/arm/fpa.md: Ditto.
14152         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14153         * config/arm/semi.h (ASM_SPEC): Ditto.
14154         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14155         (FPUTYPE_DEFAULT): Set to VFP.
14156         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14157
14158         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14159
14160         PR target/12476
14161         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14162         'bx' instead of 'b' to avoid branch range restrictions.  Output
14163         the thunk immediately before the thunked-to function.
14164         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14165         .thumb_func if a thunk is being generated.  Emit .code 16 along
14166         with .thumb_func if a thunk is not being generated.
14167
14168         2003-11-15  Nicolas Pitre <nico@cam.org>
14169
14170         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14171         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14172         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14173         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14174         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14175
14176         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14177             Ian Lance Taylor  <ian@wasabisystems.com>
14178
14179         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14180         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14181
14182         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14183
14184         * config/arm/arm.md (insn):  Add new V6 instruction names.
14185         (generic_sched):  New attr.
14186         * config/arm/arm-generic.md:  Use generic_sched here.
14187         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14188         stages of pipeline.  Adjust latency counts accordingly.
14189         * config/arm/arm1136jfs.md:  New file.
14190
14191         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14192
14193         * config/arm/arm.h (processor_type): New enumeration type.
14194         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14195         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14196         (CPP_CPU_ARCH_SPEC): Likewise.
14197         * config/arm/arm.c (arm_tune): New variable.
14198         (all_cores): Use cores.def.
14199         (all_architectures): Add representative processor.
14200         (arm_override_options): Restructure way in which tuning
14201         information is deduced.
14202         * arm.md: Update "insn" and "type" attributes throughout.
14203         (insn): New attribute.
14204         (type): Compute "mult" from "insn" attribute.  Add load2,
14205         load3, load4 alternatives.
14206         (arm automaton): Move to arm-generic.md.
14207         * config/arm/arm-cores.def: New file.
14208         * config/arm/arm-generic.md: Likewise.
14209         * config/arm/arm1026ejs.md: Likewise.
14210
14211 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14212
14213         * doc/invoke.texi (SPARC options): Remove -mflat and
14214         all -mxxx (xxx:chip) options.
14215         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14216         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14217         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14218         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14219         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14220         * config/sparc/sparc.c: Likewise.
14221         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14222         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14223         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14224         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14225         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14226         (sparc_flat_must_save_register_p): Likewise.
14227         (sparc_flat_compute_frame_size): Likewise.
14228         (sparc_flat_save_restore): Likewise.
14229         (sparc_flat_function_prologue): Likewise.
14230         (sparc_flat_function_epilogue): Likewise.
14231         (sparc_flat_epilogue_delay_slots): Likewise.
14232         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14233         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14234         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14235         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14236         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14237         (CONDITIONAL_REGISTER_USAGE): Likewise.
14238         (FRAME_POINTER_REQUIRED): Likewise.
14239         (INITIAL_ELIMINATION_OFFSET): Likewise.
14240         (BASE_RETURN_VALUE_REG): Likewise.
14241         (BASE_OUTGOING_VALUE_REG): Likewise.
14242         (BASE_PASSING_ARG_REG): Likewise.
14243         (BASE_INCOMING_ARG_REG): Likewise.
14244         (INCOMING_REGNO): Likewise.
14245         (OUTGOING_REGNO): Likewise.
14246         (LOCAL_REGNO): Likewise.
14247         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14248         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14249         (EPILOGUE_USES): Likewise.
14250         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14251         ("flat" attribute): Delete.
14252         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14253         handling.
14254         (call followed by jump define_peephole's): Delete.
14255         (exception_receiver): Likewise.
14256         (builtin_setjmp_receiver): Likewise.
14257         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14258
14259 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14260
14261         PR c/11658
14262         PR c/13994
14263         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14264         on langhooks.h.
14265         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14266         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14267         Include langhooks.h.  Replace c_common_truthvalue_conversion
14268         with the truthvalue_conversion language hook throughout.
14269         (expr_no_commas): Call default_conversion before save_expr
14270         for the first term of the production 'x ? : y'.
14271         * c-common.c (c_common_truthvalue_conversion): Remove
14272         obsolete block.  Invoke recursively the hook instead
14273         of this function.
14274         * c-convert.c (convert): handle ERROR_MARK_NODE.
14275         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14276         returned by the truthvalue_conversion language hook.
14277         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14278         c_objc_common_truthvalue_conversion.
14279         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14280         New function.
14281         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14282         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14283         c_objc_common_truthvalue_conversion.
14284
14285 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14286
14287         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14288         of gen_rtx.
14289         (LIBCALL_VALUE): Likewise.
14290         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14291         gen_rtx_CC0 instead of gen_rtx.
14292         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14293         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14294         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14295         gen_rtx.
14296         (m68hc11_emit_logical): Likewise.
14297
14298 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14299
14300         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14301         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14302         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14303         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14304         config/mips/mips.md, config/mmix/mmix.c,
14305         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14306         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14307         config/rs6000/altivec.md, config/s390/s390.c,
14308         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14309         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14310         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14311         constants that are readily available.
14312
14313 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14314
14315         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14316         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14317         instead of GEN_INT (0).  Do the same for other constants that
14318         are readily available.
14319
14320 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14321
14322         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14323         gen_rtx.
14324         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14325         instead of gen_rtx.
14326         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14327         gen_rtx.
14328         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14329         gen_rtx_ASHIFT instead of gen_rtx.
14330         (udivmodqi4): Likewise.
14331
14332 2004-02-02  Richard Henderson  <rth@redhat.com>
14333
14334         PR target/13789
14335         * expr.c (store_expr): Use force_operand before emit_move_insn.
14336
14337 2004-02-02  Jeff Law  <law@redhat.com>
14338             Roger Sayle  <roger@eyesopen.com>
14339
14340         * tree.c (commutative_tree_code, associative_tree_code): New
14341         functions.
14342         (iterative_hash_expr): Use commutative_tree_code.
14343         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14344         * fold-const.c (operand_equal_p): Use commutative_tree_code
14345         rather than inlining the commutativity check.
14346         (fold): Likewise.
14347
14348 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14349
14350         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14351         * config/frv/frv-protos.h: Remove the prototype for
14352         frv_function_arg_keep_as_reference.
14353         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14354         Remove.
14355         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14356         * config/stormy16/stormy16.h: Remove the commented-out
14357         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14358
14359 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14360
14361         PR target/13914
14362         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14363         for retaddr_column.
14364
14365 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14366
14367         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14368         gen_rtx.
14369
14370 2004-02-02  Eric Christopher  <echristo@redhat.com>
14371             Zack Weinberg  <zack@codesourcery.com>
14372
14373         * c-opts.c (c_common_handle_option): Add -finput-charset.
14374         * c.opt: Ditto.
14375         * cppcharset.c (one_iso88591_to_utf8): Remove.
14376         (convert_iso88591_utf8): Ditto.
14377         (conversion_tab): Remove 8859-1 converter.
14378         (_cpp_input_to_utf8): Remove.
14379         (_cpp_init_iconv_buffer): Ditto.
14380         (_cpp_close_iconv_buffer): Ditto.
14381         (_cpp_convert_input): New function.
14382         (_cpp_default_encoding): Ditto.
14383         * cpphash.h: Add/remove prototypes for above.
14384         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14385         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14386         for narrow execution and input character sets.
14387         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14388         * doc/cppopts.texi: Document -finput-charset.
14389
14390 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14391
14392         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14393         against FIRST_PSEUDO_REGISTER.
14394
14395 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14396
14397         * doc/invoke.texi (SPARC options): Further improve.
14398
14399 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14400
14401         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14402         config/h8300/h8300.c, config/ip2k/ip2k.md,
14403         config/iq2000/iq2000.c, config/mips/mips.c,
14404         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14405         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14406         config/v850/v850.md: Fix indentation.
14407
14408 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14409
14410         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14411         arguments on a 16-byte boundary in the parameter array if ARCH64.
14412         Split handling of TFmode.
14413
14414 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14415
14416         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14417         Don't test CONSTANT_P (x).
14418         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14419         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14420         Fix misindentation.
14421
14422 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14423
14424         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14425
14426 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14427
14428         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14429         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14430         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14431         config/iq2000/iq2000.c, config/m32r/m32r.c,
14432         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14433         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14434         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14435         config/stormy16/stormy16.c, config/v850/v850.md,
14436         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14437
14438 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14439
14440         * config/mcore/mcore.c (block_move_sequence): Replace
14441         gen_rtx_CONST_INT with GEN_INT.
14442
14443 2004-02-02  Jan Hubicka  <jh@suse.cz>
14444
14445         * alias.c (record_set): Use hard_regno_nregs.
14446         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14447         * builtins.c (apply_args_size): Likewise.
14448         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14449         mark_set_regs, add_stored_regs, mark_referenced_regs,
14450         insert_restore, insert_save, insert_one_insn): Likewise.
14451         * cfgcleanup.c: Include regs.h
14452         (mark_effect, mentions_nonequal_regs): Likewise.
14453         * cfgrtl.c (mark_killed_regs): Likewise
14454         * combine.c (update_table_tick, record_value_for_reg,
14455         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14456         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14457         reg_bitfield_target_p, distribute_notes): Likewise.
14458         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14459         exp_equiv_p, cse_insn): Likewise.
14460         * cselib.c (cselib_lookup): Likewise.
14461         (cselib_invalidate_regno, cselib_record_set): Likewise.
14462         * df.c (df_ref_record): Likewise.
14463         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14464         Likewise.
14465         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14466         count_or_remove_death_notes_bb): Likewise.
14467         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14468         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14469         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14470         * integrate.c (mark_stores): Likewise.
14471         * jump.c (delete_prior_computation): Likewise.
14472         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14473         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14474         * loop.c (LOOP_REGNO_NREGS): Likewise.
14475         * postreload.c (reload_combine, reload_combine_note_store,
14476         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14477         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14478         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14479         try_recolor_web, insert_coalesced_conflicts, check_colors,
14480         break_precolored_alias): Likewise.
14481         * ra-debug.c: Include regs.h
14482         (ra_print_rtx_object): Likewise.
14483         * ra-rewrite (choose_spill_colors): Likewise.
14484         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14485         * ra.c (init_ra): Likewise.
14486         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14487         peep2_find_free_register): Likewise.
14488         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14489         * regclass.c (hard_regno_nregs): New array.
14490         (init_reg_modes_once): Initialize it.
14491         (choose_hard_reg_mode): Use it.
14492         (record_reg_classes): Likewise.
14493         * regmove.c (mark_flags_life_zones): Likewise.
14494         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14495         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14496         copy_value, maybe_mode_change, find_oldest_value_reg,
14497         copyprop_hardreg_forward_1):
14498         * regs.h (hard_regno_nregs): Declare.
14499         * realod.c (reload_inner_reg_of_subreg): Use it.
14500         (push_reload, combine_reloads, find_dummy_reload,
14501         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14502         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14503         reload_adjust_reg_for_mode): Likewise.
14504         * reload1.c (compute_use_by_pseudos, count_pseudo,
14505         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14506         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14507         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14508         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14509         delete_output_reload): Likewise.
14510         * resource.c (update_live_status, mark_referenced_resources,
14511         mark_set_resources, mark_target_live_regs): Likewise.
14512         * rtlanal.c:  Include regs.h
14513         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14514         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14515         subreg_regno_offset, subreg_offset_representable_p,
14516         hoist_test_store): Likewise.
14517         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14518         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14519         * stmt.c: Include regs.h
14520         (decl_conflicts_with_clobbers_p): Likewise.
14521         * varasm.c (make_decl_rtl): Likewise.
14522         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14523
14524 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14525
14526         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14527         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14528         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14529         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14530         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14531         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14532         config/iq2000/iq2000.h, config/m32r/m32r.c,
14533         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14534         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14535         config/mcore/mcore.c, config/mcore/mcore.h,
14536         config/mcore/mcore.md, config/mips/mips.c,
14537         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14538         config/rs6000/rs6000.c, config/s390/s390.c,
14539         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14540         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14541         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14542
14543 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14544
14545         * config/h8300/h8300.md (two peephole2's): New.
14546
14547 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14548
14549         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14550         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14551         (ASM_CPU_SPEC): Likewise
14552         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14553         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14554
14555 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14556
14557         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14558         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14559         (expand_builtin): Always call expand_builtin_pow.
14560
14561 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14562
14563         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14564         BUILT_IN_SIGNBITL): New GCC builtins.
14565         * builtins.c (expand_builtin_signbit): New function to RTL expand
14566         calls to signbit, signbitf and signbitl as inline intrinsics.
14567         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14568         (fold_builtin_signbit): New function to perform constant folding
14569         of signbit, signbitf and signbitl.
14570         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14571
14572         * doc/extend.texi: Document new signbit{,f,l} builtins.
14573
14574 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14575
14576         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14577
14578 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14579
14580         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14581         "mips_const_double_ok" and "simple_memory_operand", which were
14582         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14583         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14584         for removal of simple_memory_operand.
14585
14586 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14587
14588         * config/c4x/c4x.md: Use GEN_INT instead of
14589         gen_rtx (CONST_INT, ...).
14590
14591 2004-01-31  Richard Henderson  <rth@redhat.com>
14592
14593         * varasm.c (output_constant_pool): Don't zap the pool.
14594
14595 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14596
14597         * genrecog.c (decision_type): Add DT_const_int.
14598         (write_cond) [DT_const_int]: Print a comparison against small
14599         constant.
14600         (write_node): Simplify comparisons against small constants
14601         before printing tests.
14602
14603 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14604
14605         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14606         instead of gen_rtx_CONST_INT.
14607
14608 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14609
14610         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14611         instead of gen_rtx_CONST_INT.
14612
14613 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14614
14615         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14616         hook_bool_CUMULATIVE_ARGS_false.
14617         * targhooks.c (default_strict_argument_naming): Rename to
14618         hook_bool_CUMULATIVE_ARGS_false.
14619         * targhooks.h: Update the prototype for
14620         default_strict_argument_naming.
14621
14622 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14623
14624         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14625         * config/sh/sh.h: Likewise.
14626         * config/sh/sh.md: Likewise.
14627
14628 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14629
14630         * doc/invoke.texi (SPARC options): Restructure and update.
14631
14632 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14633
14634         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14635         STRICT_ARGUMENT_NAMING): Poison.
14636         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14637         hook_bool_tree_false.
14638         * targhooks.c (default_promote_function_args): Remove.
14639         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14640         Don't check incoming.
14641         (default_strict_argument_naming): Don't use
14642         STRICT_ARGUMENT_NAMING.
14643         * targhooks.h: Remove the prototype for
14644         default_promote_function_args.
14645
14646 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14647
14648         * config/i386/i386-protos.h: Remove the prototype for
14649         ix86_setup_incoming_varargs.
14650         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14651         (ix86_setup_incoming_varargs): Make it static.
14652         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14653
14654 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14655
14656         * alloc-pool.c: Fix comment typos.
14657         * builtin-types.def: Likewise.
14658         * builtins.def: Likewise.
14659         * c-pretty-print.c: Likewise.
14660         * df.h: Likewise.
14661         * reload1.c: Likewise.
14662
14663 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14664
14665         * doc/invoke.texi: Follow spelling conventions.
14666         * doc/tm.texi: Likewise.
14667
14668 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14669
14670         * doc/install.texi: Fix typos.
14671         * doc/invoke.texi: Likewise.
14672
14673 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14674
14675         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14676         registers as pointers.
14677         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14678
14679 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14680
14681         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14682         and restore it to gen_lowpart_general on exit.
14683         (gen_lowpart_for_combine): Adjust all callers to go through
14684         gen_lowpart.
14685         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14686         and restore it to gen_lowpart_general on exit.
14687         (gen_lowpart_if_possible): Adjust all callers to go through
14688         gen_lowpart.
14689         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14690         (gen_lowpart): Declare as pointer to function, initialized to
14691         gen_lowpart_general.
14692         * rtl.h (gen_lowpart): Declare as pointer to function.
14693
14694 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14695
14696         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14697         * calls.c: Likewise.
14698         * emit-rtl.c: Likewise.
14699         * function.c: Likewise.
14700         * reload1.c: Likewise.
14701         * config/i386/cygming.h: Likewise.
14702         * config/i386/i386.c: Likewise.
14703         * config/i386/winnt.c: Likewise.
14704
14705 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14706
14707         PR bootstrap/9249
14708         * doc/install.texi: document --enable-__cxa_atexit option.
14709         * configure.ac: Disable __cxa_atexit if not supported.
14710         * configure: Regenerate.
14711
14712 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14713
14714         * ggc-zone.c (ggc_free): New function.
14715
14716 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14717
14718         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14719         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14720         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14721         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14722         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14723         config/alpha/alpha.c, config/alpha/alpha.h,
14724         config/alpha/alpha.md, config/alpha/unicosmk.h,
14725         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14726         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14727         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14728         config/frv/frvend.c, config/i386/cygming.h,
14729         config/i386/djgpp.h, config/i386/emmintrin.h,
14730         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14731         config/i386/i386-protos.h, config/i386/openbsd.h,
14732         config/i386/winnt.c, config/i386/xm-mingw32.h,
14733         config/i386/xmmintrin.h, config/ia64/ia64.md,
14734         config/iq2000/iq2000.md, config/m32r/m32r.md,
14735         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14736         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14737         config/mips/iris5gas.h, config/mips/iris6.h,
14738         config/mips/iris6gas.h, config/mips/linux.h,
14739         config/mips/mips.md, config/mips/netbsd.h,
14740         config/mips/openbsd.h, config/mips/windiss.h,
14741         config/pa/fptr.c, config/rs6000/aix.h,
14742         config/rs6000/altivec.h, config/rs6000/darwin.h,
14743         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14744         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14745         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14746         config/sparc/sol2.h: Update copyright.
14747
14748 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14749
14750         * Makefile.in (abs_docdir, abs_srcdir): Define.
14751         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14752
14753 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14754
14755         * genconfig.c (main): Have CC0_P check its operand even on a
14756         target without cc0.
14757
14758 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14759
14760         * config/alpha/alpha.c: Remove mentions of deprecates macros
14761         in comments, remove some target-independent comments about target
14762         macros, and/or add minimal function comments for target hook
14763         implementations.
14764         * config/avr/avr.c: Likewise.
14765         * config/ia64/ia64.h: Likewise.
14766         * config/ip2k/ip2k.c: Likewise.
14767         * config/iq2000/iq2000.c: Likewise.
14768         * config/m32r/m32r.h: Likewise.
14769         * config/m68hc11/m68hc11.c: Likewise.
14770         * config/mcore/mcore.c: Likewise.
14771         * config/mmix/mmix.c: Likewise.
14772         * config/mn10300/mn10300.c: Likewise.
14773         * config/pa/pa.c: Likewise.
14774         * config/pdp11/pdp11.c: Likewise.
14775         * config/rs6000/rs6000.h: Likewise.
14776         * config/sh/sh.c: Likewise.
14777         * config/sh/sh.h: Likewise.
14778         * config/sparc/sparc.c: Likewise.
14779         * config/sparc/sparc.h: Likewise.
14780         * config/stormy16/stormy16.c: Likewise.
14781         * config/xtensa/xtensa.c: Likewise.
14782
14783 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14784
14785         PR optimization/12147
14786         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14787         RELOAD_FOR_OPADDR_ADDR.
14788         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14789         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14790
14791 2004-01-30  Jan Hubicka  <jh@suse.cz>
14792
14793         * reload.c (get_secondary_mem): Fix updating of
14794         secondary_memlocs_elim_used.
14795
14796 2004-01-30  Richard Henderson  <rth@redhat.com>
14797
14798         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14799         (MAX_RTX_HASH_TABLE): Remove.
14800         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14801         (first_pool, last_pool, pool_offset): Remove.
14802         (struct rtx_constant_pool): Split out from ...
14803         (struct varasm_status): ... here.  Reference one via pointer.
14804         (struct constant_descriptor_rtx): Merge struct pool_constant.
14805         (SYMHASH): Remove.
14806         (decode_rtx_const): Remove.
14807         (const_hash_rtx, compare_constant_rtx): Remove.
14808         (record_constant_rtx): Remove.
14809         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14810         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14811         (const_rtx_hash_1, const_rtx_hash): New.
14812         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14813         (simplify_subtraction): Use simplify_rtx.
14814         (force_const_mem): Rewrite to use new data structures.
14815         (find_pool_constant): Likewise.
14816         (get_pool_constant, get_pool_constant_mark,
14817         get_pool_constant_for_function, get_pool_mode,
14818         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14819         (output_constant_pool_2): Split out from output_constant_pool.
14820         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14821         (output_constant_pool): Zap entire pool datastructure.
14822         (mark_constant): Use new pool datastructures.
14823         (mark_constants): Use for_each_rtx.
14824         (mark_constant_pool): Use new pool datastructures.
14825
14826 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14827
14828         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14829         Copy operands[1] to pseudo for simplify_gen_subreg.
14830
14831 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14832
14833         * gcse.c (bypass_block): Fix a typo in the previous check-in
14834         to the file.
14835
14836 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14837
14838         * toplev.c: Include alloc-pool.h.
14839         * Makefile.in (toplev.c): Update dependencies.
14840
14841 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14842
14843         * combine.c (simplify_shift_const, case XOR): Be careful when
14844         commuting XOR with ASHIFTRT.
14845
14846 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14847             Eric Botcazou  <ebotcazou@libertysurf.fr>
14848
14849         * config/sparc/sparc-protos.h: Remove the prototype for
14850         sparc_builtin_saveregs.
14851         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14852         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14853         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14854         (TARGET_STRUCT_VALUE_RTX): Likewise.
14855         (TARGET_RETURN_IN_MEMORY): Likewise.
14856         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14857         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14858         (sparc_builtin_saveregs): Make it static.
14859         (sparc_promote_prototypes): New.
14860         (sparc_struct_value_rtx): Likewise.
14861         (sparc_return_in_memory): Likewise.
14862         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14863         (PROMOTE_FUNCTION_RETURN): Likewise.
14864         (RETURN_IN_MEMORY): Likewise.
14865         (STRUCT_VALUE): Likewise.
14866         (STRUCT_VALUE_INCOMING): Likewise.
14867         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14868         (STRICT_ARGUMENT_NAMING): Likewise.
14869         (PROMOTE_PROTOTYPES): Likewise.
14870
14871         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14872
14873 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14874
14875         PR c/12818
14876         * varasm.c (const_hash_1) <STRING_CST>: Use the
14877         address to compute the hash value if flag_writable_strings.
14878         (compare_constant) <STRING_CST>: Compare the addresses
14879         if flag_writable_strings.
14880         (build_constant_desc): Do not copy the expression for a
14881         STRING_CST if flag_writable_strings.
14882
14883 2004-01-30  Jan Hubicka  <jh@suse.cz>
14884
14885         * alloc-pool.c: Include hashtab.h
14886         (alloc_pool_descriptor): New structure
14887         (alloc_pool_hash): New global variable.
14888         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14889         (create_alloc_pool): Update statistics.
14890         (free_alloc_pool): Likewise.
14891         (pool_alloc): Likewise.
14892         (output_info): New structure
14893         (print_statistics, dump_alloc_pool_statistics): New function.
14894         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14895         (dump_alloc_pool_statistics): Declare.
14896         * toplev.c (finalize):  Dump statistics.
14897
14898         * reload.c (secondary_memlocs_elim_used): New static variable.
14899         (get_secondary_mem): Update it.
14900         (find_reloads): Use it.
14901
14902 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14903
14904         * toplev.c: Fix broken checkin of 2003-12-30, again.
14905
14906 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14907
14908         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14909         s390*-*-* targets by specifying a 'nop' insn.
14910         * configure: Regenerate.
14911
14912 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14913
14914         PR target/11475
14915         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14916
14917 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14918
14919         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14920         of addr when creating MEM copy.
14921
14922 2004-01-29  Devang Patel  <dpatel@apple.com>
14923
14924         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14925
14926 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14927
14928         PR inline-asm/6162
14929         * reload.c (find_reloads): Only support one pair of commutative
14930         operands.
14931
14932 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14933
14934         PR java/13824
14935         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14936         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14937         recursion.
14938
14939 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14940
14941         * config/frv/frv.c: Don't mention deprecated macros in
14942         comments.  Remove some target-independent comments about
14943         target macros.
14944         * config/frv/frv.h: Likewise.
14945
14946 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14947
14948         * cfghooks.c (split_block): Set probability and count of the
14949         new edge.
14950
14951 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14952
14953         * dwarf2out.c (struct die_struct): Added field decl_id.
14954         (decl_die_table): Changed to hash table.
14955         (decl_die_table_allocated): Deleted.
14956         (decl_die_table_in_use): Deleted.
14957         (DECL_DIE_TABLE_INCREMENT): Deleted.
14958         (decl_die_table_hash): New function.
14959         (decl_die_table_eq): New function.
14960         (lookup_decl_die): Lookup in a hash table.
14961         (equate_decl_number_to_die): Insert into a hash table.
14962         (dwarf2out_init): Init hash table decl_die_table.
14963
14964 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14965
14966         PR optimization/13424
14967         * expr.c (store_constructor): Revert 2003-12-03 change.
14968
14969         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14970         expected before returning early.  Avoid sharing RTL if they
14971         need to be changed.
14972
14973         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14974         handling so that memory attributes are preserved.  Don't call
14975         ix86_set_move_mem_attrs.
14976         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14977         (ix86_expand_clrstr): Rename src argument to
14978         dst.  Rework rep_stos and strset handling so that memory attributes
14979         are preserved.
14980         (ix86_expand_strlen): Pass src argument to
14981         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14982         memory attributes are preserved.
14983         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14984         change_address instead of gen_rtx_MEM.
14985         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14986         expanders.
14987         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14988         strmovqi, strmovqi_rex64): Remove.
14989         (rep_mov*, strmov*): Prefix insn names with *.
14990         (strset, strset_singleop, rep_stos): New expanders.
14991         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14992         strsetqi, strsetqi_rex64): Remove.
14993         (rep_stos*, strset*): Prefix insn names with *.
14994         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14995         to SImode.
14996         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14997         are preserved.
14998         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14999         Prefix insn names with *.
15000         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15001         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15002         (strlenqi_1): New expander.
15003         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15004
15005 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15006
15007         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15008         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15009         verify_flow_info): Declaration removed.
15010         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15011         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15012         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15013         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15014         instead of delete_block.
15015         * cfghooks.c: Include timevar.h and toplev.h.
15016         (cfg_hooks): Define here.
15017         (verify_flow_info, dump_bb): Moved from cfg.c.
15018         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15019         split_block, split_block_after_labels, move_block_after,
15020         delete_basic_block, split_edge, create_basic_block,
15021         create_empty_bb, can_merge_blocks_p, merge_blocks,
15022         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15023         New functions.
15024         * cfghooks.h (struct cfg_hooks): Added fields name,
15025         make_forwarder_block, tidy_fallthru_edge and
15026         move_block_after. Changed type of verify_flow_info, dump_bb,
15027         split_block fields. Renamed cfgh_split_edge and delete_block
15028         fields.
15029         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15030         split_block, delete_block, split_edge, create_basic_block,
15031         can_merge_blocks_p, merge_blocks): Macros removed.
15032         (cfg_hooks): Do not export.
15033         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15034         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15035         move_block_after, delete_basic_block, split_edge, create_basic_block,
15036         create_empty_bb, can_merge_blocks_p, merge_blocks,
15037         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15038         Declare.
15039         (cfg_layout_rtl_cfg_hooks): Declare.
15040         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15041         New functions.
15042         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15043         (redirect_edge_with_latch_update): Removed.
15044         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15045         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15046         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15047         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15048         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15049         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15050         cfghooks.c.
15051         (rtl_create_basic_block): Coding style fix.
15052         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15053         rtl_make_forwarder_block): New functions.
15054         (update_cfg_after_block_merging): Removed.
15055         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15056         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15057         to dump_bb.
15058         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15059         find_if_case_2): Don't update dominators.
15060         * timevar.def (TV_CFG_VERIFY): New.
15061         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15062         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15063         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15064         (remove_bbs): Don't call remove_bbs.
15065         (create_preheader): Use make_forwarder_block.
15066         (mfb_keep_just, mfb_update_loops): New static functions.
15067
15068 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15069
15070         * config/avr/avr.h: Remove target-independent comments about
15071         target macros.
15072
15073 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15074
15075         * timevar.c (timevar_print): Mention when checking is enabled.
15076
15077 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15078
15079         * c-lex.c (c_lex): Rename to...
15080         (c_lex_with_flags): Add new parameter to get CPP flags.
15081         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15082         * c-pragma.h (c_lex_with_flags): Declare.
15083
15084 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15085
15086         * config/mcore/mcore.c (mcore_external_libcall): Add a
15087         comment.
15088         (mcore_return_in_memory): Likewise.
15089
15090 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15091
15092         * config/mcore/mcore-protos.h: Remove the prototype for
15093         mcore_setup_incoming_varargs.
15094         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15095         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15096         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15097         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15098         (TARGET_STRUCT_VALUE_RTX): Likewise.
15099         (TARGET_RETURN_IN_MEMORY): Likewise.
15100         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15101         (mcore_setup_incoming_varargs): Make it static.  Receive the
15102         first argument by reference.  Add argument second_time.
15103         (mcore_external_libcall): New.
15104         (mcore_return_in_memory): Likewise.
15105         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15106         (PROMOTE_FUNCTION_RETURN): Likewise.
15107         (STRUCT_VALUE): Likewise.
15108         (RETURN_IN_MEMORY): Likewise.
15109         (SETUP_INCOMING_VARARGS): Likewise.
15110         (PROMOTE_PROTOTYPES): Likewise.
15111         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15112
15113 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15114
15115         * config/m32r/m32r-protos.h: Remove the prototype for
15116         m32r_setup_incoming_varargs.
15117         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15118         (TARGET_STRUCT_VALUE_RTX): Likewise.
15119         (TARGET_RETURN_IN_MEMORY): Likewise.
15120         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15121         (m32r_return_in_memory): New.
15122         (m32r_setup_incoming_varargs): Make it static.
15123         * config/m32r/m32r.h: Remove #undef of
15124         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15125         definitions of PROMOTE_FUNCTION_ARGS and
15126         PROMOTE_FUNCTION_RETURN.
15127         (PROMOTE_PROTOTYPES): Remove.
15128         (RETURN_IN_MEMORY): Likewise.
15129         (STRUCT_VALUE): Likewise.
15130
15131 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15132
15133         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15134         (TARGET_STRUCT_VALUE_RTX): Likewise.
15135         (m68k_struct_value_rtx): Likewise.
15136         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15137         STRUCT_VALUE_REGNUM.
15138         (PROMOTE_PROTOTYPES): Remove.
15139         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15140         STRUCT_VALUE_REGNUM.
15141         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15142         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15143
15144 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15145
15146         * config/stormy16/stormy16.c
15147         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15148         TARGET_BUILD_BUILTIN_VA_LIST.
15149
15150 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15151
15152         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15153         (TARGET_STRUCT_VALUE_RTX): Likewise.
15154         (TARGET_RETURN_IN_MEMORY): Likewise.
15155         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15156         (v850_return_in_memory): Likewise.
15157         (v850_setup_incoming_varargs): Likewise.
15158         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15159         (SETUP_INCOMING_VARARGS): Likewise.
15160         (RETURN_IN_MEMORY): Likewise.
15161         (STRUCT_VALUE): Likewise.
15162
15163 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15164
15165         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15166         (fr30_setup_incoming_varargs): Don't use
15167         STRICT_ARGUMENT_NAMING.
15168         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15169         (STRICT_ARGUMENT_NAMING): Likewise.
15170
15171 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15172
15173         * config/frv/frv-protos.h: Remove the prototype for
15174         frv_expand_builtin_saveregs.
15175         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15176         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15177         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15178         STRUCT_VALUE_REGNUM.
15179         (frv_expand_builtin_saveregs): Make it static.
15180         (frv_struct_value_rtx): New.
15181         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15182
15183 2004-01-29  Jan Hubicka  <jh@suse.cz>
15184
15185         PR c++/12850
15186         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15187         initial pointers.
15188         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15189         for functions that will be only inlined.
15190         (cgraph_mark_function_to_output): Likewise.
15191         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15192         do not clear function body.
15193         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15194         (tree_rest_of_compilation): Reorganize the logic releasing function
15195         body to use callgraph datastructure.
15196
15197 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15198
15199         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15200         to register_operand.
15201
15202 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15203
15204         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15205         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15206         match_operand expressions so that all match_dups appear
15207         lexically after their corresponding match_operands.
15208
15209 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15210
15211         * config/h8300/h8300.c (WORD_REG_USED): Use
15212         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15213         (compute_saved_regs): Likewise.
15214         (h8300_expand_prologue): Likewise.  Allocate locals after
15215         saving registers.
15216         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15217         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15218         registers.
15219         (h8300_initial_elimination_offset): Adjust for the new frame
15220         layout, which swaps flips the order of locals and saved
15221         registers.
15222         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15223         (HARD_FRAME_POINTER_REGNUM): New.
15224         (ELIMINABLE_REGS): Add an elimination rule from
15225         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15226         (REGISTER_NAMES): Add fp.
15227         * config/h8300/h8300.md (FP_REG): Change to 11.
15228         (HFP_REG): New.
15229
15230 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15231
15232         * genrecog.c (write_node): Remove a useless local variable.
15233
15234 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15235
15236         * Makefile.in (options.c options.h): Use stamp file s-options to
15237         avoid unnecessary rebuilds.
15238         (options.o): New target listing dependencies.
15239         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15240         (STAGESTUFF): Add s-gtyp-gen.
15241
15242 2004-01-28  Richard Henderson  <rth@redhat.com>
15243
15244         * ggc.h (ggc_free): Declare.
15245         * ggc-common.c (ggc_realloc): Use it.
15246         * ggc-page.c: Remove lots of inline markers.
15247         (globals): Add free_object_list.
15248         (ggc_alloc): Tidy.
15249         (ggc_free, validate_free_objects): New.
15250         (poison_pages): Provide default.
15251         (ggc_collect): Call validate_free_objects; emit markers to
15252         the debug file.
15253
15254 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15255             Jim Wilson  <wilson@specifixinc.com>
15256
15257         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15258         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15259         scratch pointer.
15260         (ia64_secondary_reload_class): Delete case GR_REGS.
15261         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15262         Do not allocate a scratch register.
15263         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15264
15265 2004-01-28  Jan Hubicka  <jh@suse.cz>
15266
15267         * gcse.c (bypass_block): Prevent edges to be unified when we are
15268         about to emit compenstation code.
15269
15270 2004-01-28  Nick Clifton  <nickc@redhat.com>
15271
15272         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15273         the setcwx insn into a register.
15274
15275 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15276
15277         * config/fp-bit.c (pack_d): When using paired doubles to implement
15278         a long double, round the high part separately.
15279         (unpack_d): Fix the case in which the high part is a power of two
15280         and the low part is a nonzero value of the opposite sign.
15281
15282 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15283
15284         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15285         (TARGET_STRUCT_VALUE_RTX): Likewise.
15286         (c4x_external_libcall): Likewise.
15287         (c4x_struct_value_rtx): Likewise.
15288         * config/c4x/c4x.h: Remove.
15289         (STRUCT_VALUE_REGNUM): Likewise.
15290         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15291
15292 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15293
15294         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15295         (TARGET_STRUCT_VALUE_RTX): Likewise.
15296         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15297         (STRUCT_VALUE): Likewise.
15298         (PROMOTE_PROTOTYPES): Likewise.
15299
15300 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15301
15302         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15303         CONST_INT before using INTVAL.
15304
15305 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15306
15307         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15308         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15309         frame if !TARGET_BACKCHAIN.
15310         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15311         TARGET_BACKCHAIN.
15312         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15313
15314 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15315
15316         * ia64.c (ia64_function_arg): When placing HFAs in integer
15317         registers, do not special case the mode used for complex
15318         types.  Do not advance int_regs until the current register
15319         is full.
15320
15321 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15322
15323         PR target/7297
15324         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15325
15326 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15327
15328         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15329         slow, unaligned loads and stores while debugging.  Fix formatting.
15330
15331 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15332
15333         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15334         of computing wmode.
15335         (restore_stack_nonlocal): Same.
15336
15337 2004-01-27  Devang Patel <dpatel@apple.com>
15338
15339         * Makefile.in (dwarf2out.o): Depend on input.h
15340         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15341         imported_module_or_decl.
15342         (xcoff_debug_hooks): Same.
15343         * sdbout.c (sdb_debug_hooks): Same.
15344         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15345         * debug.c (do_nothing_debug_hooks): Same.
15346         (debug_nothing_tree_tree): New function.
15347         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15348         * dwarf2out.c: Include input.h.
15349         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15350         (remove_child_TAG): New function.
15351         (dwarf_tag_name): Handle DW_TAG_imported_module.
15352         (gen_subprogram_die): Equate decl number to declaration die. Do not
15353         remove all children dies while reusing declaration die for definition.
15354         Instead, selectively remove only formal parameters.
15355         (gen_variable_die): Equate variable decl to declaration die.
15356         (gen_field_die): Equate field decl to line number.
15357         (force_namespace_die): Replace it with ...
15358         (force_decl_die): ... this.
15359         (force_type_die): New function.
15360         (setup_namespace_context): Replace use of force_namespace_die() with
15361         force_decl_die().
15362         (gen_namespace_die): Same.
15363         (dwarf2out_imported_module_or_decl): New function.
15364
15365 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15366
15367         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15368         on CQImode and CHImode incoming arguments in register a7.
15369         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15370         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15371         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15372         xtensa_copy_incoming_a7 before reload.
15373
15374 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15375
15376         * coverage.c (get_coverage_counts): Give a different message
15377         if flag_guess_branch_prob is set.
15378         * predict.c (counts_to_freqs): Return an int.
15379         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15380         calculate estimates.
15381
15382 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15383
15384         * config/iq2000/iq2000-protos.h: Remove the prototype for
15385         iq2000_setup_incoming_varargs.
15386         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15387         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15388         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15389         (TARGET_STRUCT_VALUE_RTX): Likewise.
15390         (TARGET_RETURN_IN_MEMORY): Likewise.
15391         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15392         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15393         (iq2000_return_in_memory): Likewise.
15394         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15395         first argument by reference.
15396         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15397         (PROMOTE_FUNCTION_RETURN): Likewise.
15398         (PROMOTE_PROTOTYPES): Likewise.
15399         (RETURN_IN_MEMORY): Likewise.
15400         (STRUCT_VALUE): Likewise.
15401         (SETUP_INCOMING_VARARGS): Likewise.
15402         (STRICT_ARGUMENT_NAMING): Likewise.
15403
15404 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15405
15406         * fixinc/fixinc.c (test_test): Initialize res.
15407         (start_flexer): Initialize pz_cmd_save.
15408
15409 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15410
15411         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15412         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15413
15414 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15415
15416         PR 7198
15417         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15418         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15419         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15420         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15421         Possibly rename pattern for consistency.
15422         Remove ??? comments suggesting that this be done.
15423         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15424         New patterns.
15425         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15426         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15427         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15428         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15429         Update to match.
15430
15431 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15432
15433         * config/arm/arm.c (output_return_instruction): Only restore IP
15434         into SP if frame_pointer_needed.
15435
15436 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15437
15438         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15439         for SCmode and DCmode if ARCH32.
15440         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15441         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15442         if ARCH32.
15443         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15444         if ARCH32.
15445         (BASE_OUTGOING_VALUE_REG): Likewise.
15446
15447 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15448
15449         PR target/10904
15450         PR target/13058
15451         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15452         Forbid mode changes from SImode for lower FP regs if ARCH64.
15453
15454 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15455
15456         * Makefile.in (bt-load.o): Depend on except.h.
15457         * bt-load.c (except.h): #include.
15458         (compute_defs_uses_and_gen): If insn at end of BB can throw
15459         within this function, consider registers used by it unavailable for
15460         btr migration.
15461         (move_btr_def): If insn at end of BB can throw, insert before rather
15462         than after.
15463
15464         * flags.h (flag_btr_bb_exclusive): Declare.
15465         * toplev.c (flag_btr_bb_exclusive): New variable.
15466         (f_options): Add btr-bb-exclusive.
15467         * bt-load.c (augment_live_range): Restore old behaviour if
15468         flag_btr_bb_exclusive is set.
15469         * common.opt: Add entry for -fbtr-bb-exclusive.
15470         * opts.c (common_handle_options): Same.
15471         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15472
15473         * bt-load.c (btrs_live_at_end): New variable.
15474         (compute_defs_uses_and_gen): Compute its pointed-to array.
15475         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15476         (augment_live_range): When augmenting with a new dominator,
15477         use only its btrs_live_at_end set, but also add in the full set
15478         of the old dominator.
15479         (btr_def_live_range): Use btrs_live_at_end.
15480         (move_btr_def): Set other_btr_uses_before_def, and move new set
15481         to the end of the basic block, if appropriate.
15482         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15483
15484         * bt-load.c (basic_block_freq): Remove outdated comment.
15485
15486 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15487
15488         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15489         (PREDICATE_CODES): Remove duplicate.
15490         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15491         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15492         (MASK_PROFILE_KERNEL): Adjust define.
15493
15494 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15495
15496         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15497         of long string literals from 32 bytes to sizeof (void *) when !-Os
15498         and to 1 with -Os.
15499
15500 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15501
15502         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15503         constant addresses in the normal mode.
15504
15505 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15506
15507         * system.h (CHAR_BITFIELD): Delete.
15508         (BOOL_BITFIELD): New.
15509         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15510         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15511
15512 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15513
15514         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15515         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15516         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15517         (TARGET_STRUCT_VALUE_RTX): Likewise.
15518         (TARGET_RETURN_IN_MEMORY): Likewise.
15519         (arc_return_in_memory): Likewise.
15520         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15521         (PROMOTE_FUNCTION_RETURN): Likewise.
15522         (RETURN_IN_MEMORY): Likewise.
15523         (STRUCT_VALUE): Likewise.
15524
15525 2004-01-26  Richard Henderson  <rth@redhat.com>
15526
15527         * c-parse.in (extension): Use itype.
15528         (SAVE_EXT_FLAGS): Don't allocate a tree.
15529         (RESTORE_EXT_FLAGS): Don't read a tree.
15530
15531 2004-01-26  Jan Hubicka  <jh@suse.cz>
15532
15533         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15534         to datastructure to be recycled.
15535
15536 2004-01-25  Jan Hubicka  <jh@suse.cz>
15537
15538         * genextract.c (main): Do not output the memset when not checking.
15539
15540 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15541
15542         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15543         switch statement instead of a chain of if statements.
15544
15545 2004-01-26  Jeff Law  <law@redhat.com>
15546
15547         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15548         acute accents for Petur Runolfsson's entry.
15549
15550 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15551
15552         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15553         (TARGET_RETURN_IN_MEMORY): Likewise.
15554         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15555         (RETURN_IN_MEMORY): Likewise.
15556
15557 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15558
15559          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15560          unaligned load/store into smaller loads and stores.
15561
15562 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15563
15564         * function.c (assign_parms): Do not assign
15565         long long argument to memory in prologue if
15566         is it loaded into register.
15567
15568 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15569
15570          PR middle-end/13779
15571          * expr.c (emit_group_load): split constant
15572          correctly into register components of PARALLEL insn.
15573
15574 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15575
15576         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15577         Use adjust_address_nv directly with appropriate mode.
15578         (restore_stack_nonlocal): Ditto.
15579
15580 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15581
15582         * config/xtensa/xtensa-protos.h: Remove the prototype for
15583         xtensa_builtin_saveregs.
15584         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15585         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15586         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15587         (TARGET_STRUCT_VALUE_RTX): Likewise.
15588         (TARGET_RETURN_IN_MEMORY): Likewise.
15589         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15590         (xtensa_builtin_saveregs): Make it static.
15591         (xtensa_return_in_memory): New.
15592         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15593         (PROMOTE_FUNCTION_RETURN): Likewise.
15594         (PROMOTE_PROTOTYPES): Likewise.
15595         (STRUCT_VALUE): Likewise.
15596         (RETURN_IN_MEMORY): Likewise.
15597         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15598
15599 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15600
15601         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15602         (arm_setup_incoming_varargs): Likewise.
15603         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15604
15605 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15606
15607         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15608         (cris_setup_incoming_varargs): Likewise.
15609         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15610
15611 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15612
15613         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15614         (ns32k_struct_value_rtx): Likewise.
15615         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15616         NS32K_STRUCT_VALUE_REGNUM.
15617
15618 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15619
15620         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15621         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15622         (TARGET_STRUCT_VALUE_RTX): Likewise.
15623         (arm_struct_value_rtx): Likewise.
15624         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15625         (STRUCT_VALUE): Likewise.
15626         (STRUCT_VALUE_REGNUM): Likewise.
15627         (PROMOTE_PROTOTYPES): Likewise.
15628
15629 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15630
15631         * config/ia64/ia64-protos.h: Remove the prototype for
15632         ia64_setup_incoming_varargs and ia64_return_in_memory.
15633         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15634         (TARGET_RETURN_IN_MEMORY): Likewise.
15635         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15636         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15637         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15638         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15639         (ia64_return_in_memory): Make it static.  Change the return
15640         type to bool from int.  Add an argument.
15641         (ia64_struct_value_rtx): New.
15642         * config/ia64/ia64.h: Remove commented-out definitions of
15643         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15644         PROMOTE_PROTOTYPES.
15645         (RETURN_IN_MEMORY): Remove.
15646         (STRUCT_VALUE_REGNUM): Likewise.
15647         (STRICT_ARGUMENT_NAMING): Likewise.
15648
15649 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15650
15651         PR target/13666
15652         * config/sparc/sparc.c (function_arg_union_value): New function.
15653         (function_arg): Use it to deal with unions.
15654         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15655         Replace a conditional statement by a simpler one.
15656
15657 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15658
15659         * config/mips/mips.c (mips16_optimize_gp): Delete.
15660         (mips_reorg): Don't call it.
15661
15662 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15663
15664         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15665         (floatunsqihf2): Remove operand 6.
15666         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15667         fix patterns.
15668         (ldi_conditional, ldf_conditional): Validate operands.
15669
15670 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15671
15672         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15673         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15674
15675 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15676
15677         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15678         memory references if TARGET_EXPOSE_LDP nonzero.
15679
15680 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15681
15682         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15683
15684 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15685
15686         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15687         invalid operand combinations.
15688
15689 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15690
15691         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15692         c4x_legitimate_address_p.  Fix post_modify check.
15693
15694         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15695         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15696
15697 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15698
15699         * config/pa/pa-protos.h: Remove the prototype for
15700         hppa_builtin_saveregs.  Add a prototype for
15701         pa_return_in_memory.
15702         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15703         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15704         (TARGET_STRUCT_VALUE_RTX): Likewise.
15705         (TARGET_RETURN_IN_MEMORY): Likewise.
15706         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15707         (pa_struct_value_rtx): Likewise.
15708         (pa_return_in_memory): Likewise.
15709         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15710         PA_STRUCT_VALUE_REGNUM.
15711         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15712         (EXPAND_BUILTIN_SAVEREGS): Remove.
15713         (PROMOTE_PROTOTYPES): Likewise.
15714         (PROMOTE_FUNCTION_RETURN): Likewise.
15715
15716 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15717
15718         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15719         (TARGET_STRUCT_VALUE_RTX): Likewise.
15720         (vax_struct_value_rtx): Likewise.
15721         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15722         VAX_STRUCT_VALUE_REGNUM.
15723         (PROMOTE_PROTOTYPES): Remove.
15724
15725 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15726
15727         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15728
15729 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15730
15731         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15732         and MIPS64 have HI/LO interlocks.  Update comment.
15733
15734 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15735
15736         * config/stormy16/stormy16-protos.h: Remove the prototype for
15737         xstormy16_setup_incoming_varargs.
15738         * config/stormy16/stormy16.c
15739         (xstormy16_setup_incoming_varargs): Remove.
15740         (xstormy16_return_in_memory): New.
15741         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15742         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15743         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15744         (TARGET_STRUCT_VALUE_RTX): Likewise.
15745         (TARGET_RETURN_IN_MEMORY): Likewise.
15746         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15747         (PROMOTE_FUNCTION_RETURN): Likewise
15748         (PROMOTE_PROTOTYPES): Likewise
15749         (RETURN_IN_MEMORY): Likewise
15750         (STRUCT_VALUE): Likewise
15751         (SETUP_INCOMING_VARARGS): Likewise
15752
15753 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15754
15755         * config/mips/mips.c (mips_offset_within_object_p): New function.
15756         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15757         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15758         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15759
15760 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15761
15762         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15763         (PROMOTE_FUNCTION_RETURN): Likewise.
15764
15765 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15766
15767         * config/mn10300/mn10300-protos.h: Remove the prototype for
15768         mn10300_builtin_saveregs.
15769         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15770         (TARGET_STRUCT_VALUE_RTX): Likewise.
15771         (TARGET_RETURN_IN_MEMORY): Likewise.
15772         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15773         (mn10300_return_in_memory): Likewise.
15774         (mn10300_builtin_saveregs): Make it static.
15775         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15776         (RETURN_IN_MEMORY): Likewise.
15777         (STRUCT_VALUE): Likewise.
15778         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15779
15780 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15781
15782         PR bootstrap/13853
15783         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15784
15785 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15786
15787         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15788         using ccr.
15789
15790 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15791
15792         * config/i860/i860-protos.h: Remove the prototype for
15793         i860_saveregs.
15794         * config/i860/i860.c (i860_saveregs): Make it static.
15795         (i860_struct_value_rtx): New.
15796         (TARGET_STRUCT_VALUE_RTX): Likewise.
15797         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15798         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15799         I860_STRUCT_VALUE_REGNUM.
15800         (EXPAND_BUILTIN_SAVEREGS): Remove.
15801
15802 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15803
15804         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15805         (TARGET_RETURN_IN_MEMORY): Likewise.
15806         (m68hc11_struct_value_rtx): Likewise.
15807         (m68hc11_return_in_memory): Likewise.
15808         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15809         of PROMOTE_PROTOTYPES.
15810         (RETURN_IN_MEMORY): Remove.
15811         (STRUCT_VALUE_REGNUM): Likewise.
15812
15813 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15814
15815         * config/mmix/mmix-protos.h: Remove the prototype for
15816         mmix_setup_incoming_varargs.
15817         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15818         (TARGET_STRUCT_VALUE_RTX): Likewise.
15819         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15820         (mmix_setup_incoming_varargs): Make it static.
15821         (mmix_struct_value_rtx): New.
15822         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15823         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15824         (STRUCT_VALUE_REGNUM): Remove.
15825         (SETUP_INCOMING_VARARGS): Likewise.
15826
15827 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15828
15829         * config/mips/mips-protos.h: Remove the prototypes for
15830         mips_setup_incoming_varargs and mips_return_in_memory.
15831         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15832         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15833         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15834         (TARGET_STRUCT_VALUE_RTX): Likewise.
15835         (TARGET_RETURN_IN_MEMORY): Likewise.
15836         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15837         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15838         (mips_setup_incoming_varargs): Match the prototype for
15839         TARGET_SETUP_INCOMING_VARARGS.
15840         (mips_return_in_memory): Make it static.  Add argument fntype.
15841         (mips_strict_argument_naming): New.
15842         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15843         (PROMOTE_FUNCTION_ARGS): Likewise.
15844         (PROMOTE_FUNCTION_RETURN): Likewise.
15845         (STRUCT_VALUE): Likewise.
15846         (RETURN_IN_MEMORY): Likewise.
15847         (SETUP_INCOMING_VARARGS): Likewise.
15848         (STRICT_ARGUMENT_NAMING): Likewise.
15849
15850 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15851
15852         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15853         (TARGET_RETURN_IN_MEMORY): Likewise.
15854         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15855         (ip2k_return_in_memory): Likewise.
15856         (ip2k_setup_incoming_varargs): Likewise.
15857         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15858         (STRUCT_VALUE): Likewise.
15859         (STRUCT_VALUE_INCOMING): Likewise.
15860         (SETUP_INCOMING_VARARGS): Likewise.
15861
15862 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15863
15864         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15865         (TARGET_RETURN_IN_MEMORY): Likewise.
15866         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15867         (avr_return_in_memory): Remove.
15868         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15869         (STRUCT_VALUE): Likewise.
15870         (STRUCT_VALUE_INCOMING): Likewise.
15871         (STRICT_ARGUMENT_NAMING): Likewise.
15872
15873 2004-01-25  Jan Hubicka  <jh@suse.cz>
15874
15875         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15876
15877 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15878
15879         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15880         (mips_regno_mode_ok_for_base_p): Declare.
15881         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15882         (FRAME_POINTER_REGNUM): Renumber to 78.
15883         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15884         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15885         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15886         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15887         (REG_MODE_OK_FOR_BASE_P): Likewise.
15888         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15889         entry for 77 to "$arg" and entry for 78 to "$frame".
15890         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15891         (mips_reg_mode_ok_for_base_p): Remove.
15892         (mips_regno_mode_ok_for_base_p): New function, derived from old
15893         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15894         restrictions unless we're being strict.
15895         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15896
15897 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15898
15899         * c-common.h: Fix comment typos.
15900         * c-decl.c: Likewise.
15901         * cgraphunit.c: Likewise.
15902         * combine.c: Likewise.
15903         * et-forest.c: Likewise.
15904         * flow.c: Likewise.
15905         * function.c: Likewise.
15906         * ifcvt.c: Likewise.
15907         * integrate.c: Likewise.
15908         * jump.c: Likewise.
15909         * postreload.c: Likewise.
15910         * varray.c: Likewise.
15911
15912 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15913
15914         * doc/frontends.texi: Update copyright.
15915         * doc/gcov.texi: Likewise.
15916         * doc/gty.texi: Likewise.
15917         * doc/sourcebuild.texi: Likewise.
15918         * doc/standards.texi: Likewise.
15919
15920 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15921
15922         PR target/12978
15923         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15924         Remove movstrqi_small because it conflicts with movstrqi_large.
15925
15926 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15927
15928         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15929         (TARGET_STRUCT_VALUE_RTX): Likewise.
15930         (cris_struct_value_rtx): Likewise.
15931         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15932         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15933         STRUCT_VALUE_REGNUM.
15934         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15935
15936 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15937
15938         PR bootstrap/13848
15939         * cse.c (cse_cc_succs): Change the mode of the source expression
15940         as soon as decide we need a new mode.  Don't permit changing modes
15941         if we found a match in a successor block.
15942         (cse_condition_code_reg): Save original mode of source expression
15943         so that we know whether we have to change the mode in other
15944         insns.
15945
15946 2004-01-24  Jan Hubicka  <jh@suse.cz>
15947
15948         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15949         widen_memory_access):  Return early when there is nothing to change.
15950
15951 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15952
15953         * simplify-rtx.c (simplify_relational_operation): Don't
15954         simplify address == constant into address + -constant == 0.
15955
15956 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15957
15958         * gcc.c (process_command): Don't internationalize the
15959         Copyright message.
15960         * mips-tfile.c (main): Likewise.
15961
15962 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15963
15964         * cse.c: (cse_cc_succs) Fix comparison warning.
15965
15966 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15967
15968         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15969
15970 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15971
15972         * config/h8300/h8300-protos.h: Provide prototypes for
15973         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15974         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15975         (h8300_rtx_ok_for_base_p): Likewise.
15976         (h8300_legitimate_address_p): Likewise.
15977         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15978         h8300_legitimate_constant_p.
15979         (RTX_OK_FOR_BASE_P): Remove.
15980         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15981
15982 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15983
15984         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15985         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15986         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15987         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15988         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15989         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15990         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15991         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15992
15993 2004-01-24  Jan Hubicka  <jh@suse.cz>
15994
15995         * cselib.c (remove_useless_values):  Do not access discarded values.
15996
15997 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15998
15999         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16000         arrays.
16001
16002 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16003
16004         * recog.c: Fix a typo in copyright.
16005
16006 2004-01-23  Andrew Pinski  <apinski@apple.com>
16007
16008         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16009         (call_value): Likewise.
16010
16011 2004-01-23  Richard Henderson  <rth@redhat.com>
16012
16013         PR opt/12941
16014         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16015         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16016         if SHIFT_COUNT_TRUNCATED is set.
16017
16018 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16019
16020         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16021         separate real and imaginary parts.
16022         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16023
16024 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16025
16026         PR target/13674
16027         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16028         loading into GPR.
16029
16030 2004-01-23  Jan Hubicka  <jh@suse.cz>
16031
16032         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16033         change.
16034
16035         * alloc-pool.c (align_four): Kill.
16036         (create_alloc_pool): Align size to eight.
16037         (free_alloc_pool, free_pool): Invalidate deallocated data.
16038
16039 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16040
16041         PR gcc/1532
16042         * cse.c (cse_change_cc_mode): New static function.
16043         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16044         (cse_condition_code_reg): New function.
16045         * rtl.h (cse_condition_code_reg): Declare.
16046         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16047         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16048         cc_modes_compatible.
16049         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16050         (TARGET_CC_MODES_COMPATIBLE): Define.
16051         (TARGET_INITIALIZER): Add new initializers.
16052         * targhooks.c (default_cc_modes_compatible): New function.
16053         * targhooks.c (default_cc_modes_compatible): Declare.
16054         * hooks.c (hook_bool_intp_intp_false): New function.
16055         * hooks.h (hook_bool_intp_intp_false): Declare.
16056         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16057         (TARGET_CC_MODES_COMPATIBLE): Define.
16058         (ix86_fixed_condition_code_regs): New static function.
16059         (ix86_cc_modes_compatible): Likewise.
16060         * doc/tm.texi (Condition Code): Document new hooks.
16061
16062 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16063
16064         * fixinc/inclhack.def (bad_lval): Renamed to ...
16065         (alpha_bad_lval): ... this.
16066         Removed file list.
16067         Restrict to alpha*-dec-osf*.
16068         * fixinc/fixincl.x: Regenerate.
16069         * fixinc/tests/base/dirent.h: Remove, moving test ...
16070         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16071
16072 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16073
16074         PR c/13814
16075         * c-decl.c (diagnose_mismatched_decls): Also discard a
16076         built-in if we encounter an old-style definition with the
16077         same name.
16078
16079 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16080
16081         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16082         set to default{32,64}.
16083
16084 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16085
16086         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16087         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16088
16089 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16090             Olivier Hainque  <hainque@act-europe.fr>
16091
16092         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16093         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16094
16095 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16096
16097         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16098         size for minipool references.
16099
16100 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16101
16102         * real.c (real_floor, real_ceil): Tweak to allow input and output
16103         arguments to overlap.
16104         (real_round): New function to implement round(3m) semantics.
16105         * real.h (real_round): Prototype here.
16106         * builtins.c (fold_builtin_round): New function to constant fold
16107         round, roundf and roundl.
16108         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16109
16110 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16111
16112         PR optimization/13819
16113         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16114         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16115         (sh_handle_sp_switch_attribute): Remove warning.
16116
16117 2003-11-30  Jan Hubicka  <jh@suse.cz>
16118
16119         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16120
16121 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16122
16123         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16124         may or may not return non-NIL.
16125         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16126         check CANNOT_CHANGE_MODE_CLASS
16127
16128 2004-01-23  Jan Hubicka  <jh@suse.cz>
16129
16130         * basic-block.h (PROP_POSTRELOAD): New macro.
16131         (CLEANUP_LOG_LINKS): New.
16132         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16133         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16134
16135         * cselib.c (value_pool): New.
16136         (new_cselib_val): Use pool.
16137         (cselib_init): Initialize value_pool
16138         (cselib_finish): Free pool.
16139
16140 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16141
16142         * config/sparc/sparc.c (scan_record_type): New function.
16143         (function_arg_slotno): Use it to determine which kinds of
16144         registers the record can be passed in.
16145
16146 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16147
16148         * config/pa/fptr.c: Fix old-style definition.
16149
16150 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16151
16152         PR optimization/13724
16153         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16154         represents the zero bits produced by a ZERO_EXTEND operation.
16155
16156 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16157
16158         PR optimization/13821
16159         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16160         correctly calculate the lowpart offset of the contracted subreg.
16161
16162 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16163
16164         * doc/invoke.texi (Optimize Options): Note that --param arguments
16165         are subject to change without notice.
16166
16167 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16168
16169         * config.gcc (mips-sgi-irix6*o32): Removed.
16170         * config/mips/iris6-o32-as.h: Likewise.
16171         * config/mips/iris6-o32-gas.h: Likewise.
16172         * config/mips/iris6-o32.h: Likewise.
16173
16174 2004-01-22  Jan Hubicka  <jh@suse.cz>
16175
16176         * cfgcleanup.c (first_pass): New static variable.
16177         (try_forward_edges):  Add work limiting check for threading.
16178         (try_crossjump_bb):  Add work limiting check for crossjumping.
16179         (try_optimize_cfg):  Maintain first pass variable.
16180
16181 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16182
16183         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16184         handles complex and vector modes.
16185
16186 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16187
16188         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16189         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16190         (STRICT): Likewise.
16191
16192 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16193
16194         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16195         (genrtl_for_stmt): Remove emit_nop calls.
16196
16197 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16198
16199         PR target/13713
16200         PR target/13324
16201         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16202         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16203         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16204
16205 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16206
16207         * config/arm/arm.c: Include "debug.h".
16208         (thumb_pushpop): Take two new arguments.  Add some commentary.
16209         Output frame information when pushing.
16210         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16211         thumb_pushpop.
16212         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16213         offset, and pass it to thumb_pushpop.  Output CFI information.
16214         (thumb_expand_prologue): Add some frame-related markers and notes.
16215
16216 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16217
16218         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16219         for TARGET_64BIT.
16220         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16221         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16222
16223 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16224             Paolo Bonzini  <bonzini@gnu.org>
16225
16226         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16227         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16228         * rtl.h (subreg_lsb_1): Prototype here.
16229         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16230         sign extensions.
16231
16232 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16233
16234         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16235         macro need not be defined if jump-tables should contain
16236         relative addresses only when -fPIC or -fPIC is in effect.
16237
16238 2004-01-22  Jan Hubicka  <jh@suse.cz>
16239
16240         * alias.c (reg_base_value): Turn into varray.
16241         (reg_base_value_size): Kill.
16242         (old_reg_base_value): New deletable varray.
16243         (alias_invariant_size): New variable.
16244         (REG_BASE_VALUE): Update to use varray.
16245         (find_base_value): Likewise.
16246         (record_set): Likewise.
16247         (record_base_value): Likewise.
16248         (memrefs_conflict_p): Likewise.
16249         (record_set): Likewise
16250         (record_base_value): Likewise.
16251         (memrefs_conflict_p): Use alias_invariant_size.
16252         (init_alias_analysis): Use varray; set alias_invariant_size;
16253         rescale other arrays to be sized by maxreg.
16254         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16255
16256 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16257
16258         * config/sparc/sparc.c (function_arg_slotno): Use
16259         FLOAT_TYPE_P to detect FP fields in structures.
16260         (function_arg_record_value_1): Likewise.
16261         (function_arg_record_value_2): Likewise.
16262
16263 2004-01-22  Jan Hubicka  <jh@suse.cz>
16264
16265         * function.c (allocate_struct_function): Do not initialize expr, emit
16266         and varasm.
16267         (prepare_function_start): Do it here.
16268         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16269
16270 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16271
16272         PR target/13559
16273         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16274         to 'word_mode' once the first slot has been filled.
16275
16276 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16277
16278         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16279         computation of the number of integer registers required.
16280
16281 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16282
16283         * config/i386/i386.md: Simplify certain comparisons of
16284         const_int.
16285
16286 2004-01-21  Andrew Pinski  <apinski@apple.com>
16287
16288         PR target/13785
16289         * config/rs6000/rs6000.md (call_value): Force operand
16290         1 not operand 0 into a register.
16291
16292 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16293
16294         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16295         unwind-dw2-fde.h: Update copyright.
16296
16297 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16298
16299         * pa-protos.h: Update copyright.
16300         * pa.h: Likewise.
16301         * pa.md: Likewise.
16302
16303 2004-01-21  Caroline Tice  <ctice@apple.com>
16304
16305         PR target/12308
16306         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16307         flags register.
16308         (fix_truncdfdi2): Likewise.
16309         (fix_truncsfdi2): Likewise.
16310         (*fix_truncdi_1): Likewise.
16311         (fix_truncxfsi2): Likewise.
16312         (fix_truncdfsi2): Likewise.
16313         (fix_truncsfsi2): Likewise.
16314         (*fix_truncsi_1): Likewise.
16315         (fix_truncxfhi2): Likewise.
16316         (fix_truncdfhi2): Likewise.
16317         (fix_truncsfhi2): Likewise.
16318         (*fix_trunchi_1): Likewise.
16319
16320 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16321
16322         * alias.c, basic-block.h, c-common.c, c-common.h,
16323         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16324         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16325         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16326         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16327         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16328         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16329         genautomata.c, genconditions.c, genemit.c, genflags.c,
16330         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16331         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16332         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16333         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16334         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16335         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16336         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16337         unwind.h, varray.c, varray.h: Update copyright.
16338
16339 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16340
16341         * config/h8300/coff.h: Update copyright.
16342         * config/h8300/elf.h: Likewise.
16343         * config/h8300/h8300-protos.h: Likewise.
16344         * config/h8300/h8300.c: Likewise.
16345         * config/h8300/h8300.h: Likewise.
16346         * config/h8300/h8300.md: Likewise.
16347
16348 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16349
16350         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16351         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16352         ultrix_unistd): New hacks.
16353         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16354         ULTRIX_CONST2_CHECK): Add checks.
16355         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16356         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16357         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16358         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16359         * fixinc/tests/base/locale.h: New file.
16360         * fixinc/fixincl.x: Rebuilt.
16361
16362 2004-01-21  Andreas Jaeger  <aj@suse.de>
16363             Michael Matz  <matz@suse.de>
16364
16365         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16366
16367 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16368
16369         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16370         _Jv_RegisterClasses through a function pointer.
16371
16372 2004-01-21  Falk Hueffner  <falk@debian.org>
16373
16374         PR target/12898
16375         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16376         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16377         which need multiple instructions to emit.
16378
16379 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16380
16381         * config/m32r/m32r.h (CPP_SPEC): Define.
16382
16383 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16384
16385         * c-decl.c (merge_decls): Kill different_binding_level and
16386         different_tu arguments; simplify throughout.
16387         (duplicate_decls): Likewise.
16388         (pushdecl, merge_translation_unit_decls): Update calls to
16389         duplicate_decls.
16390
16391 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16392
16393         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16394         $(SYSTEM_H).
16395         (print-rtl1.o): Depend on $(SYSTEM_H).
16396
16397 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16398
16399         PR bootstrap/12730
16400         * configure.ac: Delete definition and subsitution of docdir.
16401         Add info, man, srcman and srcinfo to target hooks. Create doc/
16402         directory.
16403         * configure: Regenerate.
16404         * Makefile.in: Don't substitute docdir and delete all references
16405         throughout.
16406         (MAKEINFOFLAGS): Define.
16407         (stmp-docobjdir): Delete.
16408         (INFOFILES, MANFILES): Define.
16409         (info): Call lang.info, srcinfo and lang.srcinfo.
16410         (generated-manpages): Call lang.man, srcman and lang.srcman.
16411         (srcinfo, srcman): New rules to copy back files to source directory.
16412         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16413         (install-man): Revamp rule.
16414         (clean): Update dvi directory.
16415         (distclean): Delete TAGS from front end directorys.
16416         (maintainer-clean): Delete all document files in source directory.
16417
16418         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16419         (objc.srcman, objc.srcinfo): Likewise.
16420
16421 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16422
16423         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16424         (matherr_decl): rename & relocate as exception_structure.
16425         This fix must precede the math_exception fix.
16426
16427 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16428
16429         * fold-const.c (fold_convert): Rename to fold_convert_const.
16430         (fold_convert_const): Change arguments to take a tree_code,
16431         a type and the operand/expression to be converted.  Return
16432         NULL_TREE if no simplification is possible.  Add support for
16433         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16434         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16435         Adjust call to fold_convert to match new fold_convert_const.
16436         Avoid modifying the tree passed to fold in-place.
16437
16438 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16439
16440         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16441         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16442         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16443
16444 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16445
16446         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16447         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16448         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16449         (emit_move_sequence): Check scratch_reg first in various if statements.
16450         Extend source simplification to handle all 64-bit CONST_INTs.
16451         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16452         frame size.
16453         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16454         frame offset calculations.
16455         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16456         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16457         LEGITIMATE_64BIT_CONST_INT_P): Define.
16458         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16459         any CONST_INT as legitimate during and after reload.
16460         (VAL_32_BITS_P, INT_32_BITS): Define.
16461         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16462
16463 2004-01-20  Jan Hubicka  <jh@suse.cz>
16464
16465         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16466         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16467         containing hard regs are shared.
16468         (gen_hard_reg_clobber): New function.
16469         (hard_reg_clobbers): New array.
16470         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16471         (copy_rtx): Do not copy clobbers containing hard regs.
16472         * rtl.h (gen_hard_reg_clobber): Declare.
16473
16474 2004-01-20  Jan Hubicka  <jh@suse.cz>
16475
16476         * varray.c:  Include hashtab.h
16477         (varray_descriptor): New structure.
16478         (hash_descriptor, eq_descriptor, varray_descriptor,
16479         print_statistics): New static functions
16480         (varray_init, varray_grow): Update statistics
16481         (dump_varray_statistics): New function.
16482         * varray.h (dump_varray_statistics): Declare.
16483         * toplev.c (finalize): Call it.
16484         * Makefile.in (varray.o): Add dependency.
16485
16486 2004-01-20  Jan Hubicka  <jh@suse.cz>
16487
16488         * cselib.c: Include alloc-pool.h
16489         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16490         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16491         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16492         unchain_one_elt_loc_list_pool, unchain_one_value,
16493         new_cselib_val): Simplify using allocpool.
16494         (cselib_init): Initialize allocpools.
16495         (cselib_finish): Finish allocpools.
16496         * Makefile.in (cselib.o): Depend on alloc-pool.h
16497
16498 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16499
16500         * config/mips/mips.c (mips_load_call_address): Make the call insn
16501         use $gp if it could be calling a lazy binding stub.
16502
16503 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16504
16505         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16506         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16507         (TARGET_STRUCT_VALUE_RTX): Likewise.
16508         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16509         (PROMOTE_FUNCTION_RETURN): Remove.
16510         (STRUCT_VALUE): Remove.
16511
16512 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16513
16514         PR bootstrap/13735
16515         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16516         register as pointer after reload.
16517
16518 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16519
16520         PR optimization/12440
16521         * loop.c: Include ggc.h.
16522         (loop_optimize): Run garbage collector between optimization of loops.
16523         * Makefile.in (loop.o): Add GGC_H dependency.
16524
16525 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16526
16527         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16528         vector register special in function without prototype.
16529         (function_arg_advance): Vector parameters get always
16530         GPRs allocated for the linux64 target.
16531
16532 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16533
16534         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16535         not TARGET_M32RX_MASK.
16536
16537 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16538
16539         PR target/13557
16540         * config/sparc/sparc.c (function_arg): Reorder the cases.
16541
16542 2004-01-19  Per Bothner  <per@bothner.com>
16543
16544         Move cpp_reader's line_maps field to a shared global.
16545         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16546         and change the type to a pointer rather than a struct.
16547         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16548         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16549         Likewise.
16550         * cppfiles.c (validate_pch):  Likewise.
16551         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16552         Likewise.
16553         * cpperror.c (print_location):  Likewise.
16554         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16555         * cppinit.c (cpp_create_reader):  Handle new parameter.
16556         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16557         * input.h (line_table):  New variable.
16558         * toplev.c (line_table):  Declare variable.
16559         (general_init):  Initialize line_table.
16560         * c-opts.c (c_common_init_options):  Pass line_table to
16561         cpp_create_reader.
16562         * fix-header.c (read_scan_file):  New local variable line_table.
16563         Initialize, and pass it to cpp_create_reader.
16564         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16565         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16566
16567 2004-01-19  Per Bothner  <per@bothner.com>
16568
16569         Implement a cache for linemap_lookup.
16570         * line-map.h (struct_line_maps):  Add cache field.
16571         * line-map.c (linemap_init):  Zero cache field.
16572         (linemap_add):  Set cache field to offset of newly allocated map.
16573         (linemap_lookup):  Use and set cache field.
16574
16575 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16576
16577         PR optimization/13567
16578         * cse.c (cse_basic_block): Call cse_insn with a non-null
16579         libcall_insn for the last SET insn of a no-confilict block.
16580
16581 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16582
16583         * Makefile.in (target_noncanonical, program_transform_name): Use
16584         immediate define instead of deferred.
16585         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16586         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16587         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16588         deferred backquote.
16589
16590 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16591
16592         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16593         true unconditionally.
16594         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16595         Remove.
16596         (build_unary_op, build_modify_expr): Don't handle extended
16597         lvalues.
16598         (build_component_ref, build_conditional_expr): Call non_lvalue
16599         instead of pedantic_non_lvalue.
16600         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16601         * fold-const.c (fold): Don't check pedantic directly for
16602         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16603         passed to pedantic_non_lvalue.
16604         * doc/extend.texi: Remove documentation of extended lvalues.
16605
16606 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16607
16608         PR optimization/5263
16609         * simplify-rtx.c (associative_constant_p): Delete.
16610         (simplify_associative_operation): Rewrite to linearize terms, and
16611         attempt to simplify new term against both left and right subterms.
16612         (simplify_binary_operation): Call swap_commutative_operands_p on
16613         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16614         trueop0 and trueop1 down to where first needed.
16615         (simplify_relational_operation): Likewise.
16616         * rtlanal.c (commutative_operand_precedence): Also order constant
16617         operands using avoid_constant_pool_reference.
16618
16619 2004-01-19  Richard Henderson  <rth@redhat.com>
16620
16621         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16622         don't check memory mode.
16623         (unaligned_memory_operand): Likewise.
16624         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16625         abort for op0 not MEM.
16626
16627         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16628         is not a reg, copy to a scratch first.
16629         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16630         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16631         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16632         (reload_inqi, reload_inhi): Fix mode of op0.
16633         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16634         reload_outhi_help): Likewise.  Use define_insn_and_split.
16635
16636         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16637         as well as $29 dead.
16638
16639 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16640
16641         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16642         "tls_object" for thread-local objects.
16643         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16644         "#tls" for thread-local sections.
16645         * configure.ac (thread-local checks): Specify --fatal-warnings in
16646         every binutils-specific checks.  For sparc*-*-*, test whether the
16647         OS is Solaris and the tools are native and act accordingly.
16648         * configure: Rebuild.
16649
16650 2004-01-19  Jeff Law  <law@redhat.com>
16651
16652         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16653         Jerry Quinn and Petur Runolfsson.
16654
16655 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16656
16657         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16658         size, don't use the larger zero-extending loads.
16659
16660 2004-01-19  Richard Henderson  <rth@redhat.com>
16661
16662         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16663         * alpha.md (UNSPEC_NT_LDA): Remove.
16664         (UNSPEC_CVTLQ, cvtlq): New.
16665         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16666         (extendsidi2_fix): Remove.
16667         (extendsidi2 splitter): Use cvtlq.
16668         (extendsidi2 fp peepholes): Remove.
16669         (cvtql): Use SFmode instead of SImode.
16670         (fix_trunc?fsi): Update to match.
16671         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16672         (movsi): Rename from movsi_nofix, remove f alternatives.
16673         (movsi_nt_vms): Similarly.
16674         (movsi_fix, movsi_nt_vms_fix): Remove.
16675         (nt_lda): Remove.
16676         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16677
16678 2004-01-19  Jan Hubicka  <jh@suse.cz>
16679
16680         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16681         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16682         list.
16683         (cgraph_remove_unreachable_nodes): New function
16684         (cgraph_decide_inlining_of_small_function): Fix pasto.
16685         (cgraph_decide_inlining_incrementally): Fix pasto.
16686         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16687
16688 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16689
16690         * gengtype.c (header_file): Make it static.
16691         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16692         * gengtype.h (header_file): No longer extern.
16693
16694 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16695
16696         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16697         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16698         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16699
16700 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16701
16702         * stmt.c (HAVE_casesi): Define it not already defined.
16703         (HAVE_tablejump): Likewise.
16704         (expand_end_case_type): Resort to the binary tree method if
16705         neither casesi or tablejump is available.
16706
16707 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16708
16709         * final.c (final_scan_insn): Make non-static again.
16710         * output.h (final_scan_insn): Re-add prototype.
16711         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16712         to final_scan_insn call.
16713         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16714         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16715         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16716         * config/sh/sh.c (print_slot): Likewise.
16717         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16718         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16719
16720 2004-01-18  Jan Hubicka  <jh@suse.cz>
16721
16722         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16723         * cfgcleanup.c (try_optimize_cfg): Use it.
16724         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16725         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16726         Kill hack.
16727         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16728
16729         Revert:
16730         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16731
16732                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16733                 even after reload, just don't remove the actual jump tables.
16734
16735 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16736
16737         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16738
16739 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16740
16741         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16742         the size of a pointer in bytes.
16743
16744 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16745
16746         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16747         live "next" variable, which could lead to an infinite loop.
16748
16749 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16750
16751         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16752         block.
16753
16754         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16755         Check for NULL in the chain and remove repeated code.
16756
16757 2004-01-18  Jan Hubicka  <jh@suse.cz>
16758
16759         * coverage.c (checksum_string): Rename to ...
16760         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16761         names containing random number and zero the number out in order to get
16762         match.
16763
16764 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16765
16766         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16767
16768 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16769
16770         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16771         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16772         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16773         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16774         doc/trouble.texi: Remove trailing whitespace.
16775
16776 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16777
16778         PR target/7618
16779         * config/mips/mips.c: Include cfglayout.h.
16780         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16781         (mips_unspec_offset_high): Add temporary register argument.
16782         (mips_load_call_address): New function, split out from...
16783         (mips_expand_call): ...here.
16784         (mips_output_cplocal): New function.
16785         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16786         (mips_emit_loadgp): New function, split out from...
16787         (mips_expand_prologue): ...here.
16788         (mips_output_mi_thunk): New function.
16789
16790 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16791
16792         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16793         mcpu32): Remove redundant checks for implied target predefines.
16794
16795 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16796
16797         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16798         Return type is unsigned int not int.
16799         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16800         Likewise.
16801
16802 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16803
16804         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16805         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16806         "GNU/Linux" and "Microsoft Windows" terminology.
16807
16808 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16809
16810         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16811         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16812         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16813         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16814         @smallexample instead of @example.
16815
16816 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16817
16818         * objc/objc-act.c (build_objc_method_call): Use target
16819         hooks instead of macros to determine if ..._stret
16820         dispatchers should be used (NeXT runtime only).
16821
16822 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16823
16824         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16825         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16826
16827 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16828
16829         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16830         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16831         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16832         macros.
16833         * reload1.c (emit_reload_insns): Use them.
16834         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16835         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16836         for NULL PATTERN.
16837
16838 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16839
16840         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16841         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16842         a line note after the prologue.  Make static.
16843         (line_note_exists): Remove.
16844         (final): Don't initialize line_note_exists.  Update call to
16845         final_scan_insn.
16846         * output.h (final_scan_insn): Remove prologue.
16847         * function.c (set_insn_locators): Update comment.
16848         (thread_prologue_and_epilogue_insns): Add a comment.
16849
16850 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16851
16852         PR target/10781
16853         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16854         Prototype.
16855         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16856         New function.
16857         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16858         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16859         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16860
16861 2004-01-17  Jan Hubicka  <jh@suse.cz>
16862
16863         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16864         commit.
16865
16866         * toplev.c (HAVE_conditional_execution): Provide default.
16867         (rest_of_handle_reorder_blocks): For conditional_execution target
16868         update liveness once after all transformations
16869         (rest_of_compilation): Do crossjumping before ce3.
16870
16871 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16872
16873         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16874         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16875         for PCH.
16876         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16877         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16878         (get_TOC_alias_set): Mark 'set' for PCH.
16879
16880 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16881
16882         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16883         even after reload, just don't remove the actual jump tables.
16884
16885 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16886
16887         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16888         Remove checks for is_ada() and TREE_UNSIGNED.
16889         (subrange_type_die): Emit a byte_size attribute if the subrange
16890         type size is different from the base type size.
16891         (modified_type_die): Replace call to is_ada_subrange_type() by
16892         call to is_subrange_type().
16893
16894 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16895
16896         * config/sh/sh.c: Include ggc.h.
16897
16898 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16899
16900         * Makefile.in (MD5_H): New.
16901         (fold-const.o): Depend on md5.h.
16902         (dwarf2out.o): Likewise.
16903         (cppfiles.o): Likewise.
16904         * cppfiles.c: Include md5.h.
16905         (should_stack_file): Check against list read from PCH file.
16906         (struct pchf_data): New.
16907         (pchf): New variable.
16908         (struct pchf_adder_info): New.
16909         (pchf_adder): New.
16910         (pchf_save_compare): New.
16911         (_cpp_save_file_entries): New.
16912         (_cpp_read_file_entries): New.
16913         (struct pchf_compare_data): New.
16914         (pchf_compare): New.
16915         (check_file_against_entries): New.
16916         * cpphash.h (_cpp_save_file_entries): Prototype.
16917         (_cpp_read_file_entries): Prototype.
16918         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16919         (cpp_read_state): Read the list of headers.
16920
16921 2004-01-17  Jan Hubicka  <jh@suse.cz>
16922
16923         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16924         builtin_expect specially.
16925         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16926         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16927         * invoke.texi (max-inline-insns-single): Set to 100.
16928         (large-function-insns): Set to 3000.
16929
16930 2004-01-16  Eric Christopher  <echristo@redhat.com>
16931             Chandrakala Chavva <cchavva@redhat.com>
16932
16933         * cppcharset.c (one_iso88591_to_utf8): New function.
16934         (convert_iso88591_utf8): Ditto. Use.
16935         (conversion_tab): Use.
16936         (_cpp_input_to_utf8): New function.
16937         (_cpp_init_iconv_buffer): Ditto.
16938         (_cpp_close_iconv_buffer): Ditto.
16939         * cpphash.h: Prototype new functions.
16940         (cpp_buffer): Add input_cset_desc.
16941         * cppinit.c: Add input_charset default.
16942         * cpplib.c (cpp_push_buffer): Support init and
16943         close of iconv.
16944         * cpplib.h (cpp_options): Add input_charset.
16945
16946 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16947
16948         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16949         * config/alpha/unicosmk.h: Remove a commented-out definition
16950         of ASM_OUTPUT_SECTION_NAME.
16951         * config/stormy16/stormy16.h: Likewise.
16952
16953 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16954
16955         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16956         (alpha___extern_prefix_sys_stat): ... this.
16957         Apply to <sys/mount.h>, too.
16958         Tweak to match more variations.
16959         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16960
16961         * fixinc/inclhack.def (alpha___extern_prefix,
16962         alpha___extern_prefix_standards): New hacks to obey
16963         __PRAGMA_EXTERN_PREFIX.
16964         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16965         test.
16966         * fixinc/tests/base/standards.h: Likewise.
16967
16968         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16969         variations.
16970         New testcase.
16971         * fixinc/tests/base/pthread.h: Handle it.
16972
16973         * fixincl/inclhack.def (bad_lval): Sort file list.
16974         Add many missing files up to Tru64 UNIX V5.1B.
16975         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16976         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16977         order.
16978
16979         * fixinc/fixincl.x: Regenerate.
16980
16981 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16982
16983         * version.c (version_string): Change to 3.5.0.
16984         * doc/include/gcc-common.texi (version-GCC): Likewise.
16985
16986 2004-01-16  Jan Hubicka  <jh@suse.cz>
16987
16988         * i386.md (load_tp_di): Fix pasto.
16989
16990         PR opt/13608
16991         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16992
16993         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16994         pp_c_character_constant, pp_c_floating_constant,
16995         pp_c_additive_expression, pp_c_shift_expression,
16996         pp_c_equality_expression, pp_c_and_expression,
16997         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16998         pp_c_logical_and_expression): Remove inline modifier.
16999         * dwarf2out.c (get_AT): Likewise.
17000         * et-forest.c (et_splay): Likewise.
17001         * ra.h (ra_alloc, ra_calloc): Likewise
17002
17003 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17004
17005         * config/frv/frv-protos.h: Fix comment formatting.
17006         * config/frv/frv.c: Likewise.
17007         * config/frv/frv.h: Likewise.
17008         * config/frv/frv.md: Likewise.
17009         * config/frv/frvbegin.c: Likewise.
17010         * config/frv/frvend.c: Likewise.
17011
17012 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17013
17014         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17015         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17016         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17017         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17018
17019 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17020
17021         PR 11864
17022         * postreload.c (reload_cse_simplify_operands): Don't remove
17023         implicit extension from LOAD_EXTEND_OP.
17024
17025 2004-01-16  Jan Hubicka  <jh@suse.cz>
17026
17027         PR opt/11350
17028         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17029         after reload.
17030         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17031         rtl_try_redirect_by_replacing_branch): Likewise.
17032
17033 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17034
17035         PR pch/13689
17036         * alias.c (struct alias_set_entry): Mark for GC.
17037         (alias_sets): Make static, mark for GC.
17038         (record_alias_subset): Use GC to allocate alias structures.
17039         * varray.c (element): Make generic varrays GCed.
17040
17041         PR pch/13361
17042         * c-typeck.c (constructor_asmspec): Delete.
17043         (struct initializer_stack): Delete field 'asmspec'.
17044         (start_init): Delete saving of asmspec.
17045         (finish_init): Don't update constructor_asmspec.
17046         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17047         * stmt.c (expand_asm): Duplicate strings from tree.
17048         (expand_asm_operands): Likewise.
17049         * tree.c (tree_size): Update computation of size of STRING_CST.
17050         (make_node): Don't make STRING_CST nodes.
17051         (build_string): Allocate string with tree node.
17052         * tree.def (STRING_CST): Update comment.
17053         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17054         (tree_string): Place contents of string in tree node.
17055         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17056         from tree.
17057
17058         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17059         altivec operands.
17060
17061 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17062
17063         * c-common.h: Fix comment formatting.
17064         * c-cppbuiltin.c: Likewise.
17065         * c-pragma.c: Likewise.
17066         * calls.c: Likewise.
17067         * collect2.c: Likewise.
17068         * cppcharset.c: Likewise.
17069         * cpptrad.c: Likewise.
17070         * dbxout.c: Likewise.
17071         * defaults.h: Likewise.
17072         * dwarf2out.c: Likewise.
17073         * fold-const.c: Likewise.
17074         * genautomata.c: Likewise.
17075         * genconditions.c: Likewise.
17076         * genflags.c: Likewise.
17077         * gengtype.c: Likewise.
17078         * integrate.c: Likewise.
17079         * loop.c: Likewise.
17080         * predict.c: Likewise.
17081         * sdbout.c: Likewise.
17082
17083 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17084
17085         * config/ia64/ia64.md (*movti_internal): C output template
17086         extracted to ia64.c.
17087         (*movti_internal_reg): Delete.
17088         (reload_inti, reload_outti): Use the correct mode on operand 2
17089         in the first place, don't fix it up in the output template.
17090         (movtf, reload_ointf, reload_outtf): New expanders.
17091         (*movtf_internal): New define_insn_and_split.
17092         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17093         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17094         (ia64_split_tmode_move): New function, body mostly pulled
17095         from ia64.md:*movti_internal.
17096         (ia64_function_arg_words): New function, extracted common
17097         logic from ia64_function_arg et seq.
17098         (ia64_function_arg_offset): Likewise.  Handle correctly the
17099         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17100         (ia64_function_arg, ia64_function_arg_partial_nregs)
17101         (ia64_function_arg_advance): Use ia64_function_arg_words and
17102         ia64_function_arg_offset.
17103         (ia64_function_value): TCmode does not go in float regs.
17104         (ia64_secondary_reload_class): Also handle TFmode.
17105         * config/ia64/ia64-protos.h: Remove prototype for
17106         ia64_split_timode; add prototype for ia64_split_tmode_move.
17107
17108 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17109
17110         * Makefile.in (MAINT): Make it an immediate assignment.
17111
17112 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17113
17114         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17115
17116 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17117
17118         * config/h8300/coff.h: Replace Hitachi with Renesas.
17119         * config/h8300/elf.h: Likewise.
17120         * config/h8300/h8300-protos.h: Likewise.
17121         * config/h8300/h8300.c: Likewise.
17122         * config/h8300/h8300.h: Likewise.
17123         * config/h8300/h8300.md: Likewise.
17124         * config/h8300/lib1funcs.asm: Likewise.
17125
17126 2004-01-15  Andrew Pinski  <apinski@apple.com>
17127
17128         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17129         around it.
17130
17131 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17132
17133         * config/h8300/h8300.c (h8300_return_in_memory): New.
17134         (TARGET_STRUCT_VALUE_RTX): Likewise.
17135         (TARGET_RETURN_IN_MEMORY): Likewise.
17136         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17137         (RETURN_IN_MEMORY): Likewise.
17138
17139 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17140
17141         PR optimization/13375
17142         * gcse.c (handle_avail_expr): Just return if the source is not a
17143         single set.
17144
17145 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17146             Daniel Jacobowitz  <drow@mvista.com>
17147
17148         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17149         (EQUIV): Define.
17150         (ARM_FUNC_ALIAS): New macro.
17151         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17152         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17153
17154 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17155
17156         PR optimization/12372
17157         * calls.c (expand_call): Add call_fusage data for stack arguments in
17158         constant calls.
17159
17160 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17161
17162         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17163         (rs6000_elf_declare_function_name): Formatting.
17164         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17165
17166 2004-01-15  Jan Hubicka  <jh@suse.cz>
17167
17168         PR bootstrap/13692
17169         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17170         previous patch.
17171
17172 2004-01-15  Richard Henderson  <rth@redhat.com>
17173
17174         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17175         integer regs of the same call-savedness.
17176
17177 2004-01-15  Andreas Schwab  <schwab@suse.de>
17178
17179         PR bootstrap/13562
17180         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17181         status for NOTB/NOTW/NEGW methods.
17182
17183 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17184
17185         * doc/invoke.texi: Update dump file names.  Fix a typo.
17186
17187 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17188
17189         * builtins.c (expand_builtin_va_end): Don't use
17190         EXPAND_BUILTIN_VA_END.
17191         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17192         * config/d30v/d30v.h: Remove a commented-out definition of
17193         EXPAND_BUILTIN_VA_END.
17194         * config/stormy16/stormy16.h: Likewise.
17195
17196 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17197
17198         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17199         * targhooks.c (default_struct_value_rtx): Don't use
17200         STRUCT_VALUE_INCOMING_REGNUM.
17201
17202 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17203
17204         PR bootstrap/12744
17205         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17206         GENINSRC and not parsedir.  Define srcextra as a langhook.
17207         * configure: Regenerate.
17208         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17209         parsedir and delete all references throughout.  Conditionally define
17210         rule for srcextra dependent on GENINSRC.
17211         (stmp-docobjdir): Delete.
17212         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17213         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17214         and gengtype-yacc.h back to source directory.
17215         (maintainer-clean): Delete all parse files in source directory.
17216         (distclean): Delete generated files.
17217
17218         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17219         (objc-parse.c, objc-parse.y): Don't use parsedir.
17220         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17221         directory if requested.
17222         (po-generated): Don't use parsedir.
17223         (objc.maintainer-clean): Delete above files from source directory.
17224
17225 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17226
17227         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17228
17229 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17230
17231         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17232         TARGET_RETURN_IN_MEMORY.
17233
17234 2004-01-15  Jan Hubicka  <jh@suse.cz>
17235
17236         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17237         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17238         functions accepting SSE arguments
17239         (function_arg): Warn only when asked to warn.
17240         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17241
17242 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17243
17244         * c-parse.in (stmts_and_decls): Make label at end of compound
17245         statement a hard error.
17246
17247 2004-01-14  Jan Hubicka  <jh@suse.cz>
17248
17249         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17250         * cgraph.h (cgraph_local_info): Sort fields by size; add
17251         redefined_extern_inline
17252         (cgraph_global_info): Sort fields by size.
17253         (cgraph_node): Likewise.
17254         * cgraphunit.c (cgraph_finalize_function): Se
17255         local.redefined_extern_inline on redefinition.
17256         (cgraph_analyze_function): Use it; fix formating.
17257
17258 2004-01-14  Jan Hubicka  <jh@suse.cz>
17259
17260         PR c++/10776
17261         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17262         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17263         bitmaps
17264         (cache_size): New variable
17265         (add_dependence): Update use; canonize early memory locations
17266         (sched_analyze_1): Likewise.
17267         (sched_analyze_2): Likewise.
17268         (init_dependency_caches): Initialize bitmaps.
17269         (free_dependency_caches): Free bitmaps
17270
17271 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17272
17273         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17274         targetm.calls.strict_argument_naming().
17275         * target.h: Likewise.
17276
17277 2004-01-14  Richard Henderson  <rth@redhat.com>
17278
17279         PR debug/13231
17280         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17281         instructions.
17282
17283 2004-01-14  Richard Henderson  <rth@redhat.com>
17284
17285         PR c++/12491
17286         * except.c (struct eh_region): Add u.fixup.resolved.
17287         (resolve_one_fixup_region): Split out from ...
17288         (resolve_fixup_regions): ... here.
17289
17290 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17291
17292         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17293
17294 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17295
17296         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17297         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17298         (STRUCT_VALUE): Remove.
17299
17300 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17301
17302         * system.h: Poison PROMOTED_MODE
17303         * integrate.c (expand_inline_function): Don't mention the
17304         PROMOTED_MODE.
17305         * loop.c (update_giv_derive): Same.
17306         * tree.h (DECL_RTL): Same.
17307
17308 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17309
17310         PR target/9365
17311         * sh.c (gen_block_redirect): Add special handling of RETURN.
17312         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17313         far branch target (i.e. it's a return).
17314
17315 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17316
17317         * regrename.c (find_oldest_value_reg): Fix a warning.
17318
17319 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17320
17321         PR bootstrap/12527
17322         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17323         Move linux-gas.h and linux-elf.h before aout.h.
17324         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17325         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17326
17327 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17328
17329         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17330         (CONST_INT, VOIDmode, ...).
17331
17332 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17333
17334         * regrename.c (find_oldest_value_reg): If the replacement uses
17335         multiple hard registers, check that all of them are in CLASS.
17336
17337 2004-01-14  Jan Hubicka  <jh@suse.cz>
17338
17339         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17340         impossible.
17341
17342 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17343
17344         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17345
17346 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17347
17348         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17349         Calculate always vrsave_mask if TARGET_ALTIVEC.
17350         (rs6000_emit_prologue): Emit code for vrsave
17351         only if TARGET_ALTIVEC_VRSAVE.
17352         (rs6000_emit_epilogue): Likewise.
17353
17354 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17355
17356         * config/sparc/sparc.md (tie_add32): Fix pasto.
17357         (tie_add64): Likewise.
17358
17359 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17360
17361         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17362
17363 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17364
17365         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17366         * config/iq2000/iq2000.c: Likewise.
17367         * config/iq2000/iq2000.md: Likewise.
17368
17369 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17370
17371         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17372         (subrange_type_die): Add handle for nameless subrange types.
17373
17374 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17375
17376         * config/h8300/h8300-protos.h: Replace do_movsi with
17377         h8300_expand_movsi.
17378         * config/h8300/h8300.c (do_movsi): Change to
17379         h8300_expand_movsi.
17380         * config/h8300/h8300.md (movsi): Replace do_movsi with
17381         h8300_expand_movsi.
17382         (movsf): Likewise.
17383
17384 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17385
17386         * config/h8300/h8300.c (dosize): Change to
17387         h8300_emit_stack_adjustment.  Update callers.
17388
17389 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17390
17391         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17392         the source being post_inc.  Tighten the predicate for the
17393         destination to register_operand.
17394         (movstricthi): Likewise.
17395
17396 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17397
17398         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17399         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17400         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17401
17402 2004-01-14  Jan Hubicka  <jh@suse.cz>
17403
17404         Partial fix PR c++/12850
17405         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17406         at zero nest level.
17407
17408 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17409
17410         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17411         pseudo-register.
17412
17413 2004-01-13  Devang Patel <dpatel@apple.com
17414
17415         PR debug/7078
17416         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17417         NAMESPACE_DECL memebers.
17418
17419 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17420
17421         PR c++/12709
17422         * c-common.c (finish_fname_decls): Use the chain only if the
17423         tree is an expr_stmt.
17424
17425 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17426
17427         * rtl.def: Add comment about new option in automata_option.
17428
17429         * genautomata.c (PROGRESS_OPTION): New macro.
17430         (progress_flag): New global variable.
17431         (gen_automata_option): Process `progress'.
17432         (transform_insn_regexps, check_unit_distributions_to_automata,
17433         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17434         expand_automata, write_automata): Print about the progress only if
17435         progress_flag.  Remove fflush.
17436         (initiate_automaton_gen): Process command line flag `-progress'.
17437
17438         * doc/md.texi: Describe the new option.
17439
17440 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17441
17442         * cfg.c (dump_bb): Dump entry edges.
17443
17444 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17445
17446         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17447         references from SImode.
17448         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17449
17450 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17451
17452         * system.h (TEXT_SECTION): Poison.
17453         * varasm.c (text_section): Don't use TEXT_SECTION.
17454         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17455         * doc/tm.texi (TEXT_SECTION): Remove.
17456
17457 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17458
17459         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17460
17461 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17462
17463         * unwind-libunwind.c: Delete.
17464
17465 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17466
17467         PR 13656
17468         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17469         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17470         them at the very end.
17471         (validate_proto_after_old_defn): Restructure for comprehensibility;
17472         make error messages clearer.
17473
17474 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17475
17476         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17477         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17478         * varray.c: No need to prototype error.
17479         (varray_check_failed): Wrap long string onto two lines.
17480         (varray_underflow): New function.
17481
17482 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17483
17484         PR c++/13376
17485         * function.h (struct function): Kill `name' field.
17486         (current_function_name): Make it an extern function.
17487         * function.c (current_function_name): New function.
17488         * graph.c: Update all uses of current_function_name.
17489         * gcse.c: Likewise.
17490         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17491         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17492         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17493         instead of a strcmp with "main".
17494
17495 2004-01-13  Jan Hubicka  <jh@suse.cz>
17496
17497         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17498
17499         * cgraphunit.c (cgraph_optimize_function):  Always do
17500         optimize_inline_calls when there is always_inline callee.
17501         (cgraph_decide_inlining): Fix formating.
17502         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17503         functions.
17504         (expand_call_inline): Likewise.
17505         * toplev.h (sorry): Fix prototype.
17506
17507 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17508
17509         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17510         conditional jumps that drop through to unconditional jumps or the
17511         end of the sequence.
17512
17513 2004-01-13  Jan Hubicka  <jh@suse.cz>
17514
17515         * alias.c (new_alias_set): Construct the alias_set varray.
17516         (init_alias_once): Don't do it here.
17517
17518 2004-01-12  Marc Espie <espie@openbsd.org>
17519
17520         * system.h: handle YYBYACC like YYBISON.
17521
17522 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17523
17524         PR target/10847
17525         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17526         building on sparc64-*-openbsd*.
17527
17528 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17529
17530         PR debug/13539
17531         * dbxout.c (dbxout_type): Protected inheritance is not
17532         private but protected.
17533
17534 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17535
17536         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17537
17538 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17539
17540         PR optimization/12508.
17541         * combine.c (try_combine): Remove a dead set in a parallel
17542         even if its destination is a subreg.
17543
17544         Revert:
17545         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17546         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17547         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17548
17549 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17550
17551         * real.c: Update copyright date.
17552         * emit-rtl.c: Likewise.
17553         * rtl.h: Likewise.
17554         * dwarf2out.c: Likewise.
17555         * config/rs6000/darwin-ldouble.c: Likewise.
17556         * config/rs6000/rs6000.md: Likewise.
17557
17558 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17559
17560         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17561         TFmode to SImode libfuncs.
17562
17563 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17564
17565         PR middle-end/11397
17566         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17567
17568 2004-01-12  Jan Hubicka  <jh@suse.cz>
17569
17570         PR opt/12826
17571         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17572         stored.
17573
17574         PR opt/12863
17575         * cfgcleanup.c (label_is_jump_target_p): Move to...
17576         * rtlanal.c (label_is_jump_target_p): ... here.
17577         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17578         edges unified with branch edges.
17579
17580 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17581
17582         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17583         high word of an integral CONST_DOUBLE.
17584
17585 2004-01-12  Paul Brook  <paul@codesourcery.com>
17586
17587         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17588
17589 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17590
17591         PR target/13585
17592         * sh-protos.h (check_use_sfunc_addr): Declare.
17593         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17594         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17595
17596 2004-01-12  Jan Hubicka  <jh@suse.cz>
17597
17598         * alias.c:  Invlude varray.h
17599         (alias_sets): Turn into varray.
17600         (get_alias_set_entry): Use VARRAY; mark inline.
17601         (mems_in_disjoint_alias_sets_p): Mark inline.
17602         (record_alias_subset): Use varray.
17603         (init_alias_once): Initialize varray.
17604         (new_alias_set): Grow array.
17605         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17606
17607 2004-01-12  Jan Hubicka  <jh@suse.cz>
17608
17609         Partial fix for PR opt/10776 II
17610         * cselib.c: Include params.h
17611         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17612         locations.
17613         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17614         * Makefile.in (cselib.o): Depend on params.h
17615
17616 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17617
17618         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17619         simplify_unary_operation if the operand has a known mode.
17620
17621 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17622
17623         PR target/13534
17624         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17625         predicate to handle 'ld' conform addresses.
17626         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17627         contraint.
17628         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17629         are memory contraints.
17630         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17631         New prototype.
17632         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17633         Change 'o' to 'Y' constraint.
17634         (*movdf_softfloat64): Ditto.
17635
17636 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17637
17638         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17639         brace-enclosed syntax in all C output statements.
17640
17641 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17642
17643         PR target/13401
17644         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17645         Objective-C language type value is 14.
17646
17647 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17648
17649         PR c/12148
17650         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17651         `int' in a number of places to make sure we always have a SImode
17652         and not a HImode.  Add a 'L' suffix to a number of constants.
17653
17654 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17655
17656         * pa.c: Don't include obstack.h.
17657
17658         * pa.md: Correct constraint in pattern for loading PIC label address.
17659
17660 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17661
17662         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17663          before defining.
17664
17665 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17666
17667         PR fortran/9972
17668         * toplev.c (rest_of_handle_inline): Also consider functions
17669         for deferral if the language is GNU F77.
17670
17671 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17672
17673         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17674         diagnostic messages.
17675
17676 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17677
17678         PR middle-end/13392
17679         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17680         to drop through label.  Don't fall back to SCC even when conditional
17681         jump has not been found.
17682
17683 2004-01-11  Jan Hubicka  <jh@suse.cz>
17684
17685         * invoke.texi: Fix syntax error in previous patch.
17686
17687         Partial fix for PR opt/10776
17688         * Makefile.in (reload.o): Include param.h
17689         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17690         * reload.c: Include params.h.
17691         (find_equiv_reg): Work limiting check.
17692         * invoke.texi: Document.
17693
17694 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17695
17696         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17697         out-of-bounds accesses to string constants.  Simplify mips16
17698         case accordingly.
17699
17700 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17701
17702         PR optimization/13469
17703         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17704         reload_cse_regs (-fnon-call-exceptions only).
17705
17706 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17707
17708         * config/mcore/lib1.asm: Fix comment formatting.
17709         * config/mcore/mcore-elf.h: Likewise.
17710         * config/mcore/mcore.c: Likewise.
17711         * config/mcore/mcore.h: Likewise.
17712         * config/mcore/mcore.md: Likewise.
17713
17714 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17715
17716         * c-decl.c (duplicate_decls): Break apart into...
17717         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17718         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17719         ... these new functions.  Restructure for comprehensibility.
17720         Remove various archaic special cases.  Always report the
17721         location of the previous declaration when a diagnostic is issued.
17722         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17723         (match_builtin_function_types): Delete unnecessary forward declaration.
17724
17725 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17726
17727         * genautomata.c (make_automaton, NDFA_to_DFA):
17728         Print progress bars with '.' characters instead of '*'.
17729         (build_automaton): Change notes to match.
17730
17731 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17732
17733         * config/m32r/m32r.md: Use define_constants for unspec and
17734         unspec_volatile.
17735
17736 2004-01-10  Jan Hubicka  <jh@suse.cz>
17737
17738         PR opt/11635
17739         * expr.c (expand_expr_real):  More curefully expand union casts.
17740
17741 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17742
17743         * config/m32r/m32r.md (flush_icache): Use 1 for
17744         unspec_volatile.
17745
17746 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17747             James E Wilson  <wilson@specifixinc.com>
17748
17749         PR debug/12860
17750         * dbxout.c (dbxout_symbol): Remove initialization of
17751         current_sym_code, current_sym_value, and current_sym_addr.
17752         (dbxout_symbol_location): Same.
17753         (dbxout_prepare_symbol): Zero current_sym_code,
17754         current_sym_value, and current_sym_addr.
17755
17756 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17757
17758         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17759         check is done first.
17760
17761 2004-01-09  Eric Christopher  <echristo@redhat.com>
17762
17763         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17764         if we're running mark_constant_function.
17765
17766 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17767
17768         PR target/12561
17769         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17770
17771 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17772
17773         PR debug/11231
17774         * dbxout.c (dbxout_type_fields): Return if any item is
17775         error_mark_node or the type is error_mark_node.
17776
17777 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17778
17779         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17780         exactly what is expected as a 'long double'.
17781         (_xlqadd): When a value to be returned is representable as a
17782         'double', just return it directly, do not construct it using a union.
17783         Also, correct final fixup.
17784         (_xlqmul): Likewise.
17785         (_xlqdiv): Likewise.
17786         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17787
17788         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17789
17790 2004-01-09  Richard Henderson  <rth@redhat.com>
17791
17792         * recog.c (constrain_operands): Validate mem operands.
17793
17794 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17795
17796         * gcc.c (init_spec): Remove -lunwind from shared case.
17797         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17798
17799 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17800
17801         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17802         * configure: Regenerate
17803
17804 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17805
17806         PR c/11234
17807         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17808         between function and object pointers.
17809         (digest_init): When comparing a pointer to function type to the
17810         target type, only apply TREE_TYPE once to the pointer to function
17811         type.
17812         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17813         function pointer rather than casting it to a function pointer.
17814         (for_each_eh_label): Update caller.
17815         * recog.h (struct insn_data): Use a struct or union for output.
17816         * genoutput.c (output_insn_data): Update.
17817         * final.c (get_insn_template): Update.
17818
17819 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17820
17821         * expr.h (expand_expr): Make it a macro, not a function.
17822         (expand_expr_real): New function.
17823         * expr.c (store_expr): Adjust logic for deciding whether or not to
17824         copy the value returned by expand_expr.
17825         (expand_expr): Rename to ...
17826         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17827         calls to language hooks.
17828         * c-common.h (c_expand_expr): Adjust prototype.
17829         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17830         * langhooks-def.h (lhd_expand_expr): Change prototype.
17831         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17832         * langhooks.h (lang_hooks): Change type of expand_expr.
17833         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17834         (last_expr_alt_rtl): Likewise.
17835         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17836         (clear_last_expr): Clear it.
17837         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17838         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17839         * tree.def (RTL_EXPR): Give it an additional operand.
17840         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17841
17842 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17843
17844         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17845         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17846
17847 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17848
17849         PR target/13380.
17850         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17851         or (ne:SI (reg:CC 17) (const_int 0)).
17852         Be specific about modes wherever possible.
17853
17854 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17855
17856         * config/m32r/m32r.c (m32r_expand_block_move): Call
17857         gen_movestrsi_internal with two more arguments.
17858         (m32r_output_block_move): Adjust operand numbers.
17859         Properly update the source and destination pointers.
17860         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17861         'r+'.  Change the set detinations to match_operand.
17862
17863 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17864
17865         * final.c (FIRST_INSN_ADDRESS): Remove.
17866         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17867         * system.h (FIRST_INSN_ADDRESS): Poison.
17868         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17869         * config/m32r/m32r-protos.h: Remove the prototype for
17870         m32r_first_insn_address.
17871         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17872         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17873         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17874
17875 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17876
17877         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17878         we just created.
17879         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17880         emitted as subrange types too.
17881         (subrange_type_die): Add handling of enumeration subtypes.
17882
17883 2004-01-08  Richard Henderson  <rth@redhat.com>
17884
17885         PR opt/12441
17886         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17887         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17888         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17889         (ix86_address_cost): Be prepared for SUBREGed registers.
17890         (legitimate_address_p): Accept SUBREGed registers.
17891
17892 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17893
17894         * Makefile.in: Rename configure.in to configure.ac
17895         * doc/sourcebuild.texi: Likewise.
17896         * configure: Regenerate.
17897         * config.in: Regenerate.
17898
17899 2004-01-08  Stuart Hastings  <stuart@apple.com>
17900
17901         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17902
17903 2004-01-08  Jan Hubicka  <jh@suse.cz>
17904
17905         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17906
17907 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17908
17909         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17910         (UNSPEC_FIX_TRUNC_TF): New constant.
17911         (movtf_internal): Make splitter active only when insn is active.
17912         (extenddftf2): Rewrite to properly load zero into low part.
17913         (extenddftf2_internal): New.
17914         (extendsftf2): Rewrite.
17915         (truncdftf2): Correct length.
17916         (floatditf2): Delete.
17917         (fix_trunc_helper): New.
17918         (fix_trunctfdi2): Use fix_trunc_helper.
17919         (fix_trunctfsi2): Likewise.fix_trunc
17920         (fix_trunctfsi2_internal): New.
17921
17922         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17923         addresses are legitimate on Darwin even when flag_pic.
17924         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17925         non-offsettable addresses for loads of TFmode constants.
17926
17927 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17928
17929         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17930         variables in the appropriate bss section.
17931
17932 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17933
17934         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17935         target_flags has MASK_POWERPC64 when -m64.
17936         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17937         to 620, 630, power3, power4 and rs64a entries.
17938         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17939
17940 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17941
17942         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17943         floating-point constants.
17944
17945 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17946
17947         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17948         Create the subrange_type DIE using the given context DIE.
17949         (modified_type_die): Update call to subrange_type_die.
17950
17951 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17952
17953         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17954         Add multiple-include guard.
17955
17956 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17957
17958         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17959         all vector constant loadable by vsplt*.
17960         (output_vec_const_move): Likewise.
17961
17962 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17963
17964         PR c/6024
17965         * c-typeck.c (comptypes): Only treat enumerated types in the same
17966         translation unit as compatible with each other when they are the
17967         same type.
17968         * doc/extend.texi: Update.
17969
17970 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17971
17972         PR c/12165
17973         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17974         array type from the array element type.
17975
17976 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17977
17978         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17979         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17980         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17981         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17982         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17983
17984 2004-01-06  Eric Christopher  <echristo@redhat.com>
17985
17986         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17987         (DWARF2_DEBUGGING_INFO): Define.
17988         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17989         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17990         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17991         for irix as.
17992         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17993         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17994         * config/mips/iris5gas.h: Ditto.
17995         (DBX_DEBUGGING_INFO): Remove.
17996         (DWARF2_DEBUGGING_INFO): Ditto.
17997         (MIPS_DEBUGGING_INFO): Ditto.
17998         (PREFERRED_DEBUGGING_TYPE): Ditto.
17999         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18000         (PREFERRED_DEBUGGING_TYPE): Ditto.
18001         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18002         * config/mips/elf64.h: Ditto.
18003
18004 2004-01-06  Jan Hubicka  <jh@suse.cz>
18005
18006         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18007         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18008
18009 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18010
18011         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18012         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18013         * config/rs6000/darwin-ldouble.c: New.
18014
18015         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18016         for constants.
18017         (constant_subword): Delete.
18018         * rtl.h (constant_subword): Delete prototype.
18019         (immed_double_const): Is not in varasm.c.
18020         * simplify-rtx.c (simplify_immed_subreg): New.
18021         (simplify_subreg): Use simplify_immed_subreg.
18022
18023         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18024         than trying to generate RTL directly.
18025         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18026         RTL directly.
18027
18028         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18029
18030 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18031
18032         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18033         function into a separate macro.
18034         (read_only_data_section): Add void argument.
18035         (private_data_section): Same.
18036         (read_only_private_data_section): Same.
18037         (toc_section): Same.
18038
18039 2004-01-06  Jan Hubicka  <jh@suse.cz>
18040
18041         * invoke.texi:  Remove typo in last change.
18042
18043         PR target/10301
18044         * config.gcc: Accept opteron and athlon-64 as variants
18045         of k8.
18046         * i386.c (override_options): Likewise.
18047         * invoke.texi (i386 -mtune): Expand documentation.
18048
18049 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18050
18051         * alias.c: Fix comment typos.
18052         * builtins.c: Likewise.
18053         * cfg.c: Likewise.
18054         * df.c: Likewise.
18055         * dominance.c: Likewise.
18056         * dwarf2out.c: Likewise.
18057         * emit-rtl.c: Likewise.
18058         * expr.c: Likewise.
18059         * final.c: Likewise.
18060         * fold-const.c: Likewise.
18061         * gcse.c: Likewise.
18062         * genattrtab.c: Likewise.
18063         * genrecog.c: Likewise.
18064         * gensupport.c: Likewise.
18065         * ggc-zone.c: Likewise.
18066         * integrate.c: Likewise.
18067         * local-alloc.c: Likewise.
18068         * loop.c: Likewise.
18069         * recog.c: Likewise.
18070         * regmove.c: Likewise.
18071         * reg-stack.c: Likewise.
18072         * reorg.c: Likewise.
18073         * rtlanal.c: Likewise.
18074         * rtl.h: Likewise.
18075         * sched-ebb.c: Likewise.
18076         * simplify-rtx.c: Likewise.
18077         * toplev.c: Likewise.
18078         * varasm.c: Likewise.
18079
18080 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18081
18082         * doc/install.texi: Fix typos.
18083         * doc/invoke.texi: Likewise.
18084         * doc/md.texi: Likewise.
18085
18086 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18087
18088         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18089
18090 2004-01-06  Jan Hubicka  <jh@suse.cz>
18091
18092         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18093         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18094         of MMX_REGPARM.
18095         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18096         add MMX_REGPARM.
18097         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18098         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18099         (MMX_REGPARM_MAX): Similarly for -mmmx.
18100
18101 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18102
18103         * config/sh/linux.h: Fix comment formatting.
18104         * config/sh/netbsd-elf.h: Likewise.
18105         * config/sh/sh.c: Likewise.
18106         * config/sh/sh.h: Likewise.
18107         * config/sh/vxworks.h: Likewise.
18108
18109 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18110
18111         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18112         * toplev.c (output_file_directive): Don't use
18113         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18114
18115 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18116
18117         * toplev.c: Fix broken checkin of 2003-12-30.
18118
18119 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18120
18121         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18122         (USING_MMAP): We don't support non-mmap.
18123         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18124         large objects.
18125         (struct page_entry): Remove bytes_free.
18126         (struct page_table_chain): Remove.
18127         (struct globals): Remove page_table member.
18128         (loookup_page_table_entry): Function deleted.
18129         (set_page_table_entry): Ditto.
18130         (ggc_allocated_p): No longer need page table lookups.
18131         (ggc_marked_p): Ditto.
18132         (alloc_small_page): Don't care about bytes_free anymore.
18133         (alloc_large_page): Round up size.
18134         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18135         their size the new way.
18136         Remove page table lookups and setting.
18137         (ggc_get_size): Calculate large object size the new way.
18138         (sweep_pages): Redo to account for fact that we no longer have
18139         bytes_free.
18140         (ggc_collect): No longer need to reincrement bytes_free.
18141         (ggc_pch_alloc_object): Handle new large objects properly.
18142         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18143
18144 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18145
18146         * doc/invoke.texi: Remove a page break.
18147
18148 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18149
18150         * config/avr/avr.c (avr_output_function_prologue): Remove an
18151         extra pair of curly braces.
18152
18153 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18154
18155         * config/mn10300/mn10300.c: Fix comment formatting.
18156         * config/mn10300/mn10300.h: Likewise.
18157
18158 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18159
18160         * tree.h: Update documentation on nothrow_flag.
18161         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18162         types.
18163
18164 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18165
18166         * doc/invoke.texi: Remove traces of dead ports.
18167
18168 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18169
18170         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18171         option.
18172
18173 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18174
18175         PR target/12945
18176         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18177         counter labels.
18178         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18179         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18180         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18181         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18182         (mips_symbol_insns): Don't trust the local/global classification.
18183         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18184         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18185         -mno-explicit-relocs.
18186         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18187         between local and global symbols.
18188
18189 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18190
18191         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18192         (mips_preferred_reload_class): Declare.
18193         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18194         (EXTRA_CONSTRAINT): Update accordingly.
18195         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18196         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18197         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18198         mips_dangerous_for_la25_p.
18199         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18200         if mips_dangerous_for_la25_p.
18201
18202 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18203
18204         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18205         warning.
18206
18207 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18208
18209         * configure.ac: Use AC_PROG_CPP_WERROR.
18210         * configure: Regenerate.
18211
18212 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18213
18214         * .cvsignore: Add autom4te.cache.
18215
18216 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18217
18218         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18219         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18220         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18221         then architecture options, then ABI options.  General rewording.
18222
18223 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18224
18225         PR c/3414
18226         * doc/extend.texi: Clarify definition of malloc attribute.
18227
18228 2004-01-04  Jan Hubicka  <jh@suse.cz>
18229
18230         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18231         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18232         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18233         (cgraph_inline_p): Add extra argument reason.
18234         * cgraphunit.c: Minor formating fixes.
18235         cgraph_first_inlined_callee): New functions.
18236         (record_call_1): Record builtins too.
18237         (cgraph_analyze_function): Update inline_failed messages.
18238         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18239         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18240         (cgraph_check_inline_limits): Likewise; Add argument reason.
18241         (cgraph_set_inline_failed): New static function.
18242         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18243         reasons.
18244         (cgraph_inline_p): Add new argument reason.
18245         * tree-inline.c (expand_call_inline):  Update warning.
18246
18247 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18248
18249         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18250         with modern equivalents.
18251         * configure: Regenerate.
18252
18253         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18254         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18255         * configure: Regenerate.
18256
18257         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18258
18259         * configure.in: Rename to configure.ac.
18260         * configure.ac: Renamed from configure.in; make minimum necessary
18261         changes for autoconf 2.5x.
18262         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18263         * configure: Regenerate with autoconf 2.57.
18264
18265 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18266
18267         * config/mips/linux.h: Fix comment formatting.
18268         * config/mips/mips.c: Likewise.
18269         * config/mips/mips.h: Likewise.
18270         * config/mips/mips.md: Likewise.
18271         * config/mips/netbsd.h: Likewise.
18272         * config/mips/windiss.h: Likewise.
18273
18274 2004-01-02  Richard Henderson  <rth@redhat.com>
18275
18276         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18277         for sse and 387; add suppression for mmx.
18278
18279 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18280
18281         * loop.c (loop_optimize): Free all loops_info's mems.
18282
18283         * c-typeck.c (finish_init): Free spelling_base before
18284         setting it again.
18285
18286         * cfgloop.c (flow_loops_find): Always free the sbitmap
18287         headers.
18288
18289         * predict.c (estimate_probability): Free bbs after being
18290         done with it.
18291
18292 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18293
18294         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18295         const_8bit_operand and call_address_operand.
18296
18297 2004-01-02  Jan Hubicka  <jh@suse.cz>
18298
18299         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18300         when there is nothing to inline but warnings are requested.
18301         (cgraph_decide_inlining):  Fix memory leak.
18302
18303 2004-01-02  Jan Hubicka  <jh@suse.cz>
18304
18305         * expr.c (store_constructor):  Fix pasto in previous patch.
18306
18307 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18308
18309         * config/i386/cygming.h: Fix comment formatting.
18310         * config/i386/djgpp.h: Likewise.
18311         * config/i386/gthr-win32.c: Likewise.
18312         * config/i386/i386-interix.h: Likewise.
18313         * config/i386/i386.c: Likewise.
18314         * config/i386/i386.h: Likewise.
18315         * config/i386/openbsd.h: Likewise.
18316         * config/i386/winnt.c: Likewise.
18317         * config/i386/xm-mingw32.h: Likewise.
18318
18319 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18320
18321         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18322         copyright and last modification dates.
18323
18324 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18325
18326         * doc/install.texi (Specific): Mention x86_64.
18327
18328 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18329
18330         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18331         Call force_operand on plus_constant result.
18332
18333 2004-01-01  Jan Hubicka  <jh@suse.cz>
18334
18335         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18336         * expr.c (store_constructor): Use vec_init pattern.
18337         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18338         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18339         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18340         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18341         New patterns.
18342         (sse2_unpc?pd): Fix pattern.
18343         (sse2_movlpd): Kill.
18344         (sse2_movsd): Deal with movlpd too.
18345         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18346         (ix86_expand_vector_init): New.
18347         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18348         * md.texi (vec_set, vec_extract): Document
18349
18350 2003-12-31  Jan Hubicka  <jh@suse.cz>
18351
18352         PR opt/13473
18353         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18354         ASM input operands
18355
18356         PR opt/12617
18357         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18358         (dump_file): Likewise.
18359         (rest_of_compilation): Likewise.
18360
18361         PR debug/13367
18362         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18363         flag_really_no_inline we inline always_inline functions.
18364         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18365         for non-always_inline functions when there is flag_really_no_inline.
18366         (cgraph_decide_inlining): Limit work done when not inlining.
18367         (cgraph_decide_inlining_incrementally): Likewise.
18368         (cgraph_optimize_function): Check whether something got inlined.
18369         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18370         extern inline functions when not inlining.
18371
18372         * opts.c (decode_options):  Disable crossjumping at -O1
18373         * invoke.texi (-O1): Document change.
18374
18375 See ChangeLog.10 for earlier changes.