toplev.h (rest_of_compilation): Adjust prototype.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
2
3         * toplev.h (rest_of_compilation): Adjust prototype.
4
5 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
6
7         * coverage.c: Remove argument to rest_of_compilation.
8         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
9         * passes.c (rest_of_compilation): Remove argument.
10         (pass_rest_of_compilation): New.
11         (rest_of_handle_final, rest_of_handle_delay_slots,
12         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
13         rest_of_handle_machine_reorg, rest_of_handle_regrename
14         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
15         rest_of_handle_regmove, rest_of_handle_tracer
16         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
17         rest_of_handle_web, rest_of_handle_branch_prob
18         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
19         rest_of_handle_addressof, rest_of_handle_jump_bypass
20         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
21         Check that the two arguments are actually superfluous.
22         * tree-optimize.c (register_dump_files): Add properties argument.
23         Track validity of passes.  Only initialize dump files for
24         tree-based passes.  Store the full set of provided passes in
25         the pass.
26         (init_tree_optimization_passes): Register pass_expand and
27         pass_rest_of_compilation.
28         (execute_one_pass): Do not track the presence of required properties
29         here.  Set in_gimple_form.  Do not update current_properties.
30         (current_properties): Remove.
31         (set_save_expr_context): Remove.
32         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
33         expand to RTL here, and do not call rest_of_compilation.  Push
34         GGC context even before gimplification.
35         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
36         (pass_expand, pass_rest_of_compilation): Declare.
37
38 2004-06-15  Jeff Law  <law@redhat.com>
39
40         * fold-const.c (swap_tree_comparison): No longer static.
41         (tree_swap_operands_p): Similarly.  Return true if both operands
42         are SSA_NAMEs and the first operand has a higher version number than
43         the second operand.
44         * tree.h (swap_tree_comparison): Prototype.
45         (tree_swap_operands_p): Prototype.
46         * tree-ssa-operands.c (get_expr_operands): For commutative
47         operators and relational comparisons, canonicalize the
48         order of the operands.
49
50 2004-06-15  Richard Henderson  <rth@redhat.com>
51
52         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
53         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
54         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
55         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
56         (finish_fname_decls, fname_decl): Use statement_lists.
57         (c_expand_expr_stmt): Don't set last_expr_type.
58         (c_type_hash): Fix indentation.
59         (c_safe_from_p): Don't follow TREE_CHAIN.
60         (c_tree_chain_matters_p): Remove.
61         * c-common.def (SCOPE_STMT): Remove.
62         (CLEANUP_STMT): Redefine to contain its own body.
63         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
64         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
65         Add x_cur_stmt_list.
66         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
67         (cur_stmt_list): New.
68         (STATEMENT_LIST_STMT_EXPR): New.
69         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
70         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
71         (CLEANUP_BODY): New.
72         (CLEANUP_DECL): Move to operand 2.
73         (c_common_stmt_codes): Remove SCOPE_STMT.
74         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
75         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
76         (c_push_function_context, c_pop_function_context): Don't save it.
77         (finish_decl): Set TREE_USED on the decl for a cleanup.
78         Use push_cleanup.
79         (store_parm_decls): Use statement lists.
80         (finish_function): Remove compstmt rule workaround.  Use statement
81         lists.  Call finish_fname_decls after finalizing the body.
82         (c_begin_compound_stmt): Move to c-typeck.c.
83         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
84         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
85         (c_genericize): Invoke them.
86         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
87         (c_build_bind_expr): Export.
88         (gimplify_block, gimplify_cleanup): Remove.
89         (gimplify_condition): Use gimplify_stmt.
90         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
91         (gimplify_if_stmt): Remove recursion hack.
92         (c_gimplify_expr): Remove STMT_EXPR handling.
93         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
94         (is_last_stmt_of_scope): Remove.
95         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
96         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
97         c_end_compound_stmt.
98         * c-objc-common.c (build_cdtor): Likewise.
99         * c-parse.in (primary): Use c_finish_stmt_expr.
100         (push_scope, pop_scope): Remove.
101         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
102         (c99_block_end, compstmt): Use c_end_compound_stmt.
103         (c99_block_lineno_labeled_stmt): Likewise.
104         (compstmt_primary_start): Use c_begin_stmt_expr.
105         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
106         (do_stmt_start): Fill in body directly.
107         (lineno_stmt): Avoid setting lineno on constants.
108         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
109         Remove SCOPE_STMT.
110         * c-semantics.c (begin_stmt_tree): Remove.
111         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
112         (add_stmt): Use statement lists.
113         (add_scope_stmt, finish_stmt_tree): Remove.
114         (push_cleanup): New.
115         * c-tree.h: Move some decls from c-common.h.
116         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
117         (do_case, c_finish_case): Likewise.
118         (c_finish_then): Take body for then as argument.
119         (c_finish_else): Similarly.
120         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
121         c_finish_for_stmt_incr, c_finish_for_stmt): New.
122         (c_begin_stmt_expr, c_finish_stmt_expr): New.
123         (c_begin_compound_stmt): Do scope management.
124         (c_end_compound_stmt): New.
125         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
126         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
127         Look through exception handling constructs.
128         (gimplify_bind_expr): Accept temporary argument.
129         (gimplify_target_expr): Special case BIND_EXPR bodies.
130         (gimplify_expr): Handle fallback == fb_none like a statement.
131         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
132         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
133         * langhooks.h (tree_chain_matters_p): Remove.
134         * stub-objc.c (objc_clear_super_receiver): New.
135         * tree-gimple.h (voidify_wrapper_expr): Update decl.
136         (append_to_statement_list, append_to_statement_list_force): Move
137         to tree-iterator.h.
138         * tree-inline.c (expand_call_inline): Update call.
139         (clone_body): Use statement lists.
140         (walk_tree): Don't check tree_chain_matters_p.
141         (copy_tree_r): Likewise.
142         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
143         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
144         * tree-iterator.h (append_to_statement_list,
145         append_to_statement_list_force): Moved from tree-gimple.h.
146         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
147         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
148         (objc_enter_block): Likewise.
149         (objc_exit_block): Use c_end_compound_stmt.
150         (objc_build_try_enter_fragment): Add #error and comment for
151         rewriting for OBJCPLUS.
152         (objc_build_extract_fragment, objc_build_try_epilogue,
153         objc_build_catch_stmt, objc_build_finally_prologue,
154         objc_build_finally_epilogue): Update for C statement builders.
155         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
156         Remove.
157
158 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
159
160         * df.c (df_reg_clobber_gen): Removed.
161         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
162         Make more effective for hard regs.
163         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
164
165 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
166
167         * c-pragma.h (c_lex_string_translate): Change type to int.
168         * c-parse.in: Change all assignments of c_lex_string_translate
169         to true and false to 1 and 0.
170         * c-lex.c (c_lex_string_translate): Likewise.
171         (lex_string): Convert string without translation in the -1
172         case.
173
174 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
175
176         * convert.h: Add include guards
177
178 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
179
180         * tree-flow-inline.h: Document all functions.
181         
182 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
183
184         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
185         * tree-dfa.c (create_stmt_ann): Ditto.
186         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
187         * tree-inline.c (estimate_num_insns_1): Ditto.
188         * tree.c (tree_size): Ditto.
189         (make_node_stat): Ditto.
190         (tree_node_structure): Ditto.
191         (ephi_node_elt_check_failed): Remove.
192         (is_essa_node): Ditto.
193         * tree.def (EPHI_NODE): Ditto.
194         (EEXIT_NODE): Ditto.
195         (EUSE_NODE): Ditto.
196         (EKILL_NODE): Ditto.
197         * tree.h (EREF_NODE_CHECK): Remove.
198         (EPHI_NODE_ELT_CHECK): Ditto.
199         (struct tree_eref_common): Ditto.
200         (struct tree_euse_node): Ditto.
201         (struct ephi_arg_d): Ditto.
202         (struct tree_ephi_node): Ditto.
203         (ephi_node_elt_check_failed): Remove prototype.
204         (is_essa_node): Ditto.
205         (enum tree_node_structure_enum): Remove TS_E*_NODE.
206         (union tree_node): Remove E*_NODE uses.
207
208 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
209
210         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
211         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
212         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
213         Likewise.
214         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
215         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
216         expand_builtin_strcmp, expand_builtin_strncmp,
217         expand_builtin_frame_address): Likewise.
218         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
219         insert_one_insn): Likewise.
220         * calls.c (prepare_call_address, precompute_register_parameters,
221         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
222         * cfganal.c (flow_active_insn_p): Likewise.
223         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
224         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
225         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
226         make_extraction, recog_for_combine, gen_lowpart_for_combine,
227         simplify_comparison, record_dead_and_set_regs_1,
228         record_dead_and_set_regs, record_promoted_value,
229         check_promoted_subreg, get_last_value_validate, get_last_value,
230         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
231         unmentioned_reg_p_1): Likewise.
232         * conflict.c (mark_reg): Likewise.
233         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
234         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
235         merge_equiv_classes, flush_hash_table, invalidate,
236         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
237         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
238         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
239         record_jump_cond, cse_insn, addr_affects_sp_p,
240         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
241         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
242         cse_cc_succs, cse_condition_code_reg): Likewise.
243         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
244         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
245         cselib_record_set, cselib_record_sets): Likewise.
246         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
247         dbxout_block): Likewise.
248         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
249         * dojump.c (do_jump): Likewise.
250         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
251         is_based_loc, rtl_for_decl_location): Likewise.
252         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
253         set_decl_incoming_rtl, mark_user_reg): Likewise.
254         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
255         copy_to_suggested_reg, allocate_dynamic_stack_space,
256         probe_stack_range, hard_function_value): Likewise.
257         * expmed.c (store_bit_field, store_fixed_bit_field,
258         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
259         extract_split_bit_field, expand_divmod, emit_store_flag_force):
260         Likewise.
261         * expr.c (convert_move, convert_modes,
262         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
263         use_group_regs, emit_move_insn, emit_move_insn_1,
264         compress_float_constant, push_block, emit_single_push_insn,
265         emit_push_insn, get_subtarget, expand_assignment, store_expr,
266         store_constructor, store_field, force_operand, safe_from_p,
267         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
268         Likewise.
269         * final.c (profile_function, final_scan_insn, alter_subreg,
270         get_mem_expr_from_op, output_asm_operand_names, output_operand,
271         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
272         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
273         find_regno_partial, propagate_one_insn, init_propagate_block_info,
274         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
275         attempt_auto_inc, find_auto_inc, mark_used_regs,
276         count_or_remove_death_notes_bb): Likewise.
277         * function.c (find_temp_slot_from_address, update_temp_slot_address,
278         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
279         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
280         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
281         purge_single_hard_subreg_set, instantiate_decl,
282         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
283         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
284         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
285         expand_function_start, diddle_return_value, clobber_return_register,
286         expand_function_end, keep_stack_depressed, handle_epilogue_set,
287         update_epilogue_consts): Likewise.
288         * genemit.c (gen_exp, gen_insn): Likewise.
289         * genrecog.c (make_insn_sequence): Likewise.
290         * global.c (global_conflicts, expand_preferences, mark_reg_store,
291         mark_reg_conflicts, set_preference, reg_becomes_live,
292         build_insn_chain, mark_reg_change): Likewise.
293         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
294         Likewise.
295         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
296         Likewise.
297         * integrate.c (copy_rtx_and_substitute, try_constants,
298         subst_constants, mark_stores, allocate_initial_values): Likewise.
299         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
300         delete_computation, rtx_renumbered_equal_p, true_regnum,
301         reg_or_subregno): Likewise.
302         * lcm.c (reg_dies, reg_becomes_live): Likewise.
303         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
304         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
305         wipe_dead_reg, no_conflict_p): Likewise.
306         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
307         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
308         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
309         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
310         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
311         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
312         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
313         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
314         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
315         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
316         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
317         try_swap_copy_prop): Likewise.
318         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
319         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
320         Likewise.
321         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
322         reload_cse_simplify_operands, reload_combine,
323         reload_combine_note_store, reload_combine_note_use,
324         reload_cse_move2add, move2add_note_store): Likewise.
325         * print-rtl.c (print_rtx): Likewise.
326         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
327         contains_pseudo, handle_asm_insn): Likewise.
328         * ra-debug.c (ra_print_rtx_object, dump_constraints,
329         dump_static_insn_cost): Likewise.
330         * ra-rewrite.c (slots_overlap_p, emit_colors,
331         remove_suspicious_death_notes): Likewise.
332         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
333         register_operand, scratch_operand, nonmemory_operand,
334         constrain_operands): Likewise.
335         * reg-stack (check_asm_stack_operands, remove_regno_note,
336         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
337         subst_asm_stack_regs): Likewise.
338         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
339         record_address_regs, reg_scan_mark_refs): Likewise.
340         * regmove.c (discover_flags_reg, replacement_quality,
341         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
342         fixup_match_1): Likewise.
343         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
344         kill_set_value, copyprop_hardreg_forward_1): Likewise.
345         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
346         reload_inner_reg_of_subreg, can_reload_into, push_reload,
347         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
348         operands_match_p, decompose, find_reloads, find_reloads_toplev,
349         find_reloads_address, subst_indexed_address, find_reloads_address_1,
350         find_reloads_subreg_address, find_replacement,
351         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
352         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
353         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
354         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
355         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
356         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
357         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
358         do_output_reload, emit_reload_insns, gen_reload,
359         delete_address_reloads_1, inc_for_reload): Likewise.
360         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
361         update_reg_unused_notes, fill_slots_from_thread): Likewise.
362         * resource.c (update_live_status, mark_referenced_resources,
363         mark_set_resources, mark_target_live_regs): Likewise.
364         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
365         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
366         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
367         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
368         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
369         parms_set, find_first_parameter_load, keep_with_call_p,
370         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
371         num_sign_bit_copies1): Likewise.
372         * rtlhooks.c (gen_lowpart_general): Likewise.
373         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
374         sched_analyze): Likewise.
375         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
376         Likewise.
377         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
378         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
379         simplify_binary_operation, simplify_const_relational_operation,
380         simplify_subreg): Likewise.
381         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
382         expand_end_stmt_expr, expand_return, expand_decl,
383         expand_anon_union_decl): Likewise.
384         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
385         find_splittable_regs, find_splittable_givs, find_common_reg_term,
386         loop_iterations): Likewise.
387         * var-tracking.c (variable_union, variable_part_different_p,
388         variable_different_p, count_uses, add_uses, add_stores,
389         compute_bb_dataflow, set_variable_part, delete_variable_part,
390         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
391         Likewise.
392         * varasm.c (assemble_variable): Likewise.
393
394 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
395
396         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
397         definition.
398         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
399         #undef and #if 0'd definition.
400
401 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
402
403         * combine.c (distribute_notes): Comment typo fix.
404
405 2004-06-15  Roger Sayle  <roger@eyesopen.com>
406
407         * expmed.c (synth_mult): Mask bits of the multiplier to the
408         machine mode of the multiplication.  Don't consider shifts
409         by more than (or equal to) the width of the operation's mode.
410
411 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
412
413         * doc/install.texi: Yet another update for autoconf
414         and automake versions.
415
416 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
417
418         * function.h (struct function): Remove cannot_inline field.
419         (current_function_cannot_inline): Remove.
420         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
421         Simplify conditionals to ignore warn_return_type.
422         * tree-optimize.c (tree_rest_of_compilation): Do not reset
423         DECL_DEFER_OUTPUT.
424         * objc/objc-act.c (build_module_descriptor, finish_method_def):
425         Do not set current_function_cannot_inline.
426
427 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
428
429         * cfglayout.c (fixup_reorder_chain): Handle case where the
430         destination of E_TAKEN is EXIT_BLOCK_PTR.
431
432 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
433
434         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
435
436 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
437
438         * fold-const.c (operand_equal_p): Update comment.
439
440 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
441
442         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
443         (INCOMING_RETURN_ADDR_RTX): Define.
444         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
445         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
446         __builtin_return_address(0).
447         (m32r_return_addr): Added for __builtin_return_address(0).
448         (m32r_reload_lr): Ditto.
449
450         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 
451         
452 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
453
454         * doc/install.texi (Prerequisites): Update libbanshee,
455         fastjar, libcpp, libjava/libltdl entries to
456         automake 1.8.5.
457
458 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
459             Olivier Hainque  <hainque@act-europe.fr>
460
461         * function.c (fixup_var_refs): Also adjust the start of sequence
462         after fixing up the insns.
463
464 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
465
466         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
467
468 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
469
470         * doc/install.texi (Prerequisites): Update libstdc++ entry to
471         automake 1.8.5.
472
473 2004-06-14  Eric Christopher  <echristo@redhat.com>
474
475         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
476         to -mtpf-trace (-mno-tpf-trace).
477         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
478         documentation.
479
480 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
481
482         * real.c: Fix bit count in head comment.
483
484 2004-06-14  Jeff Law  <law@redhat.com>
485
486         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
487         PHIs where the destination or an argument is marked with
488         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
489
490 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
491
492         PR middle-end/15945
493         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
494         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
495
496 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
497
498         * opts.sh (var_args): Fix regexp.
499
500 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
501
502         PR target/15178
503         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
504
505 2004-06-14  Paul Brook  <paul@codesourcery.com>
506
507         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
508
509 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
510
511         * Makefile.in (FLAGS_H): New.
512         (flags.h): Replace by FLAGS_H.
513         * c.opt: Document Var, VarExists, Init and Report attributes.
514         * common.opt: Fill the values of the attributes.
515         * diagnostic.c (flag_fatal_errors): Do not define.
516         * except.c (flag_non_call_exceptions): Do not define.
517         * flags.h: Include options.h.  Remove declarations conflicting with
518         the automatically defined ones.
519         * opts.c: Remove automatically defined variables.
520         (handle_option): Perform default initialization.
521         (common_handle_option): Do not handle options covered by the
522         default initialization.
523         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
524         fields.
525         (CL_REPORT): New.
526         * opts.sh: Generate variable declarations, handle CL_REPORT.
527         * toplev.c: Remove automatically defined variables.
528         (f_options): Removed.
529         (print_switch_values): Use cl_options instead of f_options.
530         * toplev.h (version_flag): Declaration removed.
531
532 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
533
534         * config/sparc/sparc.h: Correct comment about availability of
535         little endian option.
536
537         * config.gcc: Remove sparc64-*-aout*.
538         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
539         * config/sparc/sp64-aout.h: Remove.
540         * config/sparc/aout.h: Remove.
541
542 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
543
544         * config/s390/s390.c: Include "tree-gimple.h".
545         (s390_gimplify_va_arg): New function.
546         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
547         (s390_va_arg): Remove.
548         * config/s390/s390-protos.h (s390_va_arg): Remove.
549         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
550
551 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
552
553         * basic-block.h (could_fall_through): Declare.
554         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
555         Fail if the source already has a fallthrough edge to the exit
556         block pointer.
557         (could_fall_through): New function.
558         * cfgbuild.c (make_edges): Check if we already have a fallthrough
559         edge to the exit block pointer.
560         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
561         not called before reload has completed.
562         Handle special case of first block having a fall-through exit edge.
563         (cfg_layout_finalize): Don't call it before reload or if we have
564         rtl epilogues.
565         (fixup_reorder_chain): A fall through to the exit block does not
566         require the block to come last.  Add sanity checks.
567         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
568         edges to the exit block.
569         * function.c (cfglayout.h): #include.
570         (thread_prologue_and_epilogue_insns): If we have neither return nor
571         epilogue, but a fall through to the exit block from mid-function,
572         force a non-fall-through exit.
573         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
574
575 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
576
577         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
578         for power5 and rs64a.  Correct condition for default.  Correct power3,
579         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
580
581 2004-06-13  Steven Bosscher <stevenb@suse.de>
582
583         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
584         Revert previous change, don't use CALL_P.
585
586 2004-06-13  Jason Merrill  <jason@redhat.com>
587
588         * tree.h: Move std_gimplify_va_arg_expr protoype here.
589         * tree-gimple.h: From here.
590
591 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
592
593         Fix PR tree-optimization/15979
594         Fix PR tree-optimization/15981
595         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
596         try to insert values undefined along some path.
597
598 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
599
600         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
601         are available everywhere too.
602
603 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
604
605         * fold-const.c (fold_checksum_tree <case 't'>): Only
606         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
607         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
608         EXPR is an INTEGERAL_TYPE or a scalar float type.
609
610 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
611
612         * tree-sra.c (tree_sra): Update documentation.
613
614 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
615
616         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
617         function_types_compatible_p, type_lists_compatible_p): Remove
618         flags parameter.
619         * c-tree.h (comptypes): Likewise.
620         (COMPARE_STRICT): Remove.
621         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
622         callers changed.
623
624 2004-06-13  Eric Christopher  <echristo@redhat.com>
625
626         * c-decl.c (diagnose_mismatched_decls): Improve error message.
627         Remove unused code.
628         * c-typeck.c (comptypes): Add location in standard we're checking.
629
630 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
631
632         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
633         version 3.3.4.
634
635 2004-06-12  Roger Sayle  <roger@eyesopen.com>
636
637         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
638         index by machine mode.
639         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
640         tables inside the loop over machine modes.
641         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
642         expand_divmod): Index shift*_cost by the appropriate machine mode.
643
644 2004-06-12  Eric Christopher  <echristo@redhat.com>
645
646         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
647         * config/s390/s390.md: Ditto.
648         * config/s390/s390.c: Ditto.
649         (s390_frame_info): Conditionalize frame and setup info on
650         TARGET_TPF_PROFILING.
651         (s390_arg_frame_offset): Ditto.
652
653 2004-06-12  Roger Sayle  <roger@eyesopen.com>
654
655         * fold-const.c (omit_two_operands): New function.
656         * tree.h (omit_two_operands): Prototype here.
657         * builtins.c (fold_builtin_unordered_cmp): New function to lower
658         C99 unordered comparison builtins to the appropriate tree nodes.
659         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
660         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
661         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
662         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
663         (simplify_builtin_memcmp, simplify_builtin_strncmp,
664         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
665         omit_two_operands function to build the required COMPOUND_EXPRs.
666
667 2004-06-12  Steven Bosscher <stevenb@suse.de>,
668             Andreas Jaeger  <aj@suse.de>
669
670         * gcse.c (record_set_info): Use predicates like REG_P.
671         (mems_conflict_for_gcse_p): Likewise.
672         (load_killed_in_block_p): Likewise.
673         (hash_expr_1): Likewise.
674         (insert_set_in_table): Likewise.
675         (gcse_constant_p): Likewise.
676         (hash_scan_set): Likewise.
677         (hash_scan_insn): Likewise.
678         (canon_list_insert): Likewise.
679         (record_last_mem_set_info): Likewise.
680         (record_last_set_info): Likewise.
681         (compute_hash_table_work): Likewise.
682         (mark_set): Likewise.
683         (mark_clobber): Likewise.
684         (mark_oprs_set): Likewise.
685         (compute_transp): Likewise.
686         (find_avail_set): Likewise.
687         (cprop_insn): Likewise.
688         (do_local_cprop): Likewise.
689         (cprop): Likewise.
690         (find_implicit_sets): Likewise.
691         (find_bypass_set): Likewise.
692         (bypass_conditional_jumps): Likewise.
693         (insert_insn_end_bb): Likewise.
694         (pre_insert_copy_insn): Likewise.
695         (compute_transpout): Likewise.
696         (next_ls_expr): Likewise.
697         (invalidate_any_buried_refs): Likewise.
698         (compute_ld_motion_mems): Likewise.
699         (reg_set_info): Likewise.
700         (reg_clear_last_set): Likewise.
701         (find_moveable_store): Likewise.
702         (compute_store_table): Likewise.
703         (find_loads): Likewise.
704         (store_killed_in_insn): Likewise.
705         (insert_insn_start_bb): Likewise.
706         (reg_set_between_after_reload_p): Likewise.
707         (reg_used_between_after_reload_p): Likewise.
708         (is_jump_table_basic_block): Likewise.
709         (gcse_after_reload): Likewise.
710         (hash_scan_set_after_reload): Likewise.
711         (compute_hash_table_after_reload): Likewise.
712
713 2004-06-12  Steven Bosscher  <stevenb@suse.de>
714
715         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
716         (INSN_P): Don't look at the rtx code class, just explicitly
717         check for one of the tree RTX_INSN codes.
718
719 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
720
721         * c-typeck.c (default_function_array_conversion): Use
722         build_pointer_type not TYPE_POINTER_TO.
723
724 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
725
726         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
727         * configure, config.in: Regenerate.
728         * system.h: Unconditionally define bool as unsigned char,
729         BOOL_BITFIELD as unsigned int.
730         * domwalk.h: Use BOOL_BITFIELD.
731
732 2004-06-12  Andreas Jaeger  <aj@suse.de>
733
734         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
735         * libgcc-darwin.ver: Likewise.
736
737 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
738
739         * reload.c (find_reloads): Force reload for pseudo registers on big
740         endian machines.
741
742 2004-06-11  Steven Bosscher <stevenb@suse.de>
743
744         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
745         Don't try to mark anything control dependent on the entry or
746         exit blocks.
747
748 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
749
750         Fix Bug 15899
751         Fix Bug 15460
752         * tree.h (SSA_NAME_VALUE): New macro.
753         (struct tree_ssa_name): Add value_handle member.
754         * tree-ssa-pre.c: Replaced.
755         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
756         (struct cst_ann_d): New.
757         (struct expr_ann_d): New.
758         (union tree_ann_d): Add cst_ann, expr_ann.
759         * tree-dfa.c (create_cst_ann): New function.
760         (create_expr_ann): Ditto.
761         * tree-flow-inline.h (cst_ann): New function.
762         (expr_ann): Ditto.
763         (get_cst_ann): Ditto.
764         (get_expr_ann): Ditto..
765
766 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
767
768         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
769         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
770         _U_Qfcmp library function.
771         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
772         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
773
774         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
775         unspec used for loading address from DLT.
776         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
777         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
778         Don't use short code sequence when loading the address of a nonlocal
779         label.
780         (nonlocal_goto): New expander.
781         (indirect_goto): New jump pattern for nonlocal gotos.
782         (short_jump): Remove extra whitespace.
783         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
784         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
785         pattern.
786
787 2004-06-11  Roger Sayle  <roger@eyesopen.com>
788
789         * expmed.c (synth_mult): Add an additional MODE argument for the
790         machine mode of the multiplication.  Update recursive calls.  Use
791         mode instead of word_mode for determining operation costs.
792         (choose_mult_variant): Update calls to synth_mult with "mode".
793
794 2004-06-11  Richard Henderson  <rth@redhat.com>
795
796         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
797         and makes_aliased_stores.
798
799 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
800
801         * doc/install.text (--enable-shared): Fix typo.
802
803 2004-06-11  Richard Henderson  <rth@redhat.com>
804
805         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
806         argument.  Use internal post for call to gimplify_expr.  Tidy
807         rounded type size computation.
808         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
809         get_initialized_tmp_var.
810
811 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
812
813         * doc/install.texi (--enable-shared): Update libobjc's shared library
814         status.  Remove reference to libf2c.
815
816 2004-06-11  Jason Merrill  <jason@redhat.com>
817
818         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
819         * config/i386/i386.c (ix86_va_arg): Remove.
820         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
821         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
822         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
823         * config/alpha/alpha.c (alpha_va_arg): Remove.
824         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
825         * config/sparc/sparc.c (sparc_va_arg): Remove.
826
827         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
828         assignment might throw.
829         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
830         expressions.
831
832 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
833
834         PR 15886:
835         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
836
837 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
838
839         * doc/install.texi (Prerequisites): Update documentation of
840         required versions of autoconf and automake.  Remove mention of
841         libf2c.
842
843 2004-06-11  Jason Merrill  <jason@redhat.com>
844
845         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
846         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
847
848 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
849
850         * typeclass.h: Add GPL plus exception license.  Add include
851         guard.
852
853 2004-06-10  Jason Merrill  <jason@redhat.com>
854
855         * gimplify.c (gimplify_modify_expr): Don't force a temporary
856         of an aggregate_value_p type.
857
858 2004-06-10  Jeff Law  <law@redhat.com>
859
860         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
861         code when we are in gimple form.
862
863 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
864
865         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
866         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
867         (highest_ssa_version): Remove.
868         * tree-outof-ssa.c (new_temp_expr_table): Replace
869         highest_ssa_version with num_ssa_names.
870         (dump_replaceable_exprs): Likewise.
871         (rewrite_vars_out_of_ssa): Likewise.
872         * tree-ssa-ccp.c (initialize): Likewise
873         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
874         * tree-ssa-dce.c (tree_dce_init): Likewise.
875         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
876         * tree-ssa-live.c (create_ssa_var_map): Likewise.
877         (dump_var_map): Likewise.
878         * tree-ssa.c (verify_ssa): Likewise.
879         (kill_redundant_phi_nodes): Likewise.
880         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
881         * tree-ssanames.c: Include tree-flow.h
882         (ssa_names): New varray.
883         (init_ssa_names): Initialize ssa_names.
884         Reserve the first slot of the ssa_names table.
885         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
886         Assign version numbers using num_ssa_names.
887
888 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
889
890         * doc/sourcebuild.texi (Front End): Add details of more
891         installation documentation required.
892
893 2004-06-10  Brian Booth  <bbooth@redhat.com>
894
895         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
896         of V_MAY_DEF and V_MUST_DEF.
897         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
898         num_vdefs to num_v_may_defs.
899         (compute_immediate_uses_for_stmt): Rename occurences of vdef
900         to v_may_def.
901         (redirect_immediate_uses): Ditto.
902         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
903         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
904         Also add code to sum up the number of v_must_defs.
905         (vdefs_disappeared_p): Replace with...
906         (v_may_defs_disappeared_p): This.
907         (v_must_defs_disappeared_p): New function.
908         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
909         Also add code to mark new variables found in V_MUST_DEFs for
910         renameing.
911         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
912         vdef_ops to v_may_def_ops.
913         (get_vdef_ops): Replace with...
914         (get_v_may_def_ops): This.
915         * tree-flow-inline.h (get_vdef_ops): Replace with...
916         (get_v_may_def_ops): This.
917         (get_v_must_def_ops): New function.
918         (get_vdef_result_ptr): Replace with...
919         (get_v_may_def_result_ptr): This.
920         (get_vdef_op_ptr): Ditto with...
921         (get_v_may_def_op_ptr); This.
922         (get_v_must_def_op_ptr): New function.
923         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
924         to v_may_def. Also add code to mark statements with
925         V_MUST_DEFs as definition sites.
926         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
927         add code to register new V_MUST_DEFs made by the statement.
928         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
929         (check_replaceable): Rename occurences of vdef to v_may_def. Also
930         add check for V_MUST_DEFs.
931         (find_replaceable_in_bb): Ditto.
932         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
933         to v_may_def. Also add code to dump V_MUST_DEFs.
934         * tree-sra.c (mark_all_vdefs): Replace with...
935         (mark_all_v_may_defs): This.
936         (mark_all_v_must_defs): New function.
937         (create_scalar_copies): Replace call to mark_all_vdefs with
938         calls to mark_all_v_may_defs and mark_all_v_must_defs.
939         (scalarize_structures): Rename occurences of vdef to v_may_def.
940         Also add a check for V_MUST_DEFs.
941         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
942         * tree-ssa-alias.c (global_var): Update comment.
943         (compute_may_aliases): Ditto.
944         (compute_points_to_and_addr_escape): Rename occurences of vdef
945         to v_may_def. Also add code to mark variables in V_MUST_DEF
946         operands as being written to.
947         (group_aliases): Update comment.
948         (maybe_create_global_var): Ditto.
949         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
950         Also add a check for V_MUST_DEFs on GIMPLE registers.
951         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
952         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
953         to v_may_def. Also add code to mark all V_MUST_DEF operands
954         VARYING.
955         (initialize): Ditto.
956         (set_rhs): Rename occurences of vdef to v_may_def. Also add
957         code to update SSA_NAMEs in V_MUST_DEFs.
958         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
959         to v_may_def.
960         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
961         occurences of vdef to v_may_def. Also add code to mark statements
962         with V_MUST_DEFs as necessary.
963         (propagate_necessity): Rename occurences of vdef to v_may_def.
964         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
965         occurences of vdef to v_may_def. Also add code to mark operands
966         in V_MUST_DEFs for renaming.
967         (eliminate_redundant_computations): Rename occurences of vdef
968         to v_may_def.
969         (record_equivalences_from_stmt): Rename occurences of vdef
970         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
971         (optimize_stmt): Remove unnesessary variable vdefs. Update
972         comment.
973         (register_definitions_for_stmt): Rename occurences of vdef
974         to v_may_def. Also add code to register definitions made with
975         V_MUST_DEFs.
976         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
977         (fix_stmt_v_may_defs): This.
978         (fix_phi_uses): Rename occurences of vdef to v_may_def.
979         (dse_optimize_stmt): Ditto.
980         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
981         to v_may_def. Also add code to mark V_MUST_DEF operands as being
982         used in virtual operators.
983         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
984         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
985         renaming.
986         * tree-ssa-operands.c (opf_kill_def): New flag for killing
987         definitions.
988         (build_vdefs): Renamed to...
989         (build_v_may_defs): This.
990         (build_v_must_defs): New variable.
991         (voperands_d): Add v_must_def_ops and replace vdef_ops with
992         v_may_def_ops.
993         (append_vdef): Replace with...
994         (append_v_may_def): This.
995         (append_v_must_def): New function.
996         (NUM_FREE): Increment for V_MUST_DEF
997         (optype_freelist): Increment its size for V_MUST_DEF
998         (allocate_vdef_optype): Replace with...
999         (allocate_v_may_def_optype): This.
1000         (allocate_v_must_def_optype): New function.
1001         (free_vdefs): Replace with...
1002         (free_v_may_defs): This.
1003         (free_v_must_defs): New function.
1004         (remove_vdefs): Replace with...
1005         (remove_v_may_defs): This.
1006         (remove_v_must_defs): New function.
1007         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1008         add code to initialize build_v_must_defs.
1009         (finalize_ssa_vdefs): Replace with...
1010         (finalize_ssa_v_may_defs): This.
1011         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1012         (finalize_ssa_v_must_defs): New function.
1013         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1014         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1015         (verify_start_operands): Rename occurences of vdef to v_may_def.
1016         Also add check for build_v_must_defs.
1017         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1018         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1019         killing definitions.
1020         (get_expr_operands): Update comment and use opf_kill_def for
1021         killing definitions.
1022         (add_stmt_operand): Replace code that appends VDEFs with code
1023         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1024         otherwise.
1025         (add_call_clobber_ops): Update comments.
1026         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1027         (v_may_def_optype_d): This.
1028         (v_must_def_optype_d): New structure.
1029         (VDEF_OPS): Replace with...
1030         (V_MAY_DEF_OPS): This.
1031         (STMT_VDEF_OPS): Same with...
1032         (STMT_V_MAY_DEF_OPS): This.
1033         (NUM_VDEFS): And...
1034         (NUM_V_MAY_DEFS): This.
1035         (VDEF_RESULT_PTR): As well as...
1036         (V_MAY_DEF_RESULT_PTR): This.
1037         (VDEF_RESULT): Same goes for...
1038         (V_MAY_DEF_RESULT): This.
1039         (VDEF_OP_PTR): And...
1040         (V_MAY_DEF_OP_PTR): This.
1041         (VDEF_OP): And...
1042         (V_MAY_DEF_OP): This.
1043         (V_MUST_DEF_OPS): New macro.
1044         (STMT_V_MUST_DEF_OPS): Ditto.
1045         (NUM_V_MUST_DEFS): Ditto.
1046         (V_MUST_DEF_OP_PTR): Ditto.
1047         (V_MUST_DEF_OP): Ditto.
1048         (remove_vdefs): Replace signature with...
1049         (remove_v_may_defs): This.
1050         (remove_v_must_defs): New function signature.
1051         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1052         with calls to remove_v_may_defs and remove_v_must_defs.
1053         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1054         Also add code that marks left occurences of operands in V_MUST_DEFs.
1055         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1056         to v_may_def. Also add check for V_MUST_DEFs.
1057         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1058
1059 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1060
1061         PR target/15653
1062         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1063         insn.
1064
1065 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1066
1067         PR web/15263
1068         * doc/install.texi: Remove superfluous linebreak.
1069
1070 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1071
1072         * builtins.c (expand_builtin): Fall back to library function call for
1073         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1074         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1075         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1076         IMAGPART_EXPR respectively.
1077
1078 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1079
1080         * sh.c (dump_table): New argument start.  Changed caller.
1081         (fixup_mova): New function.
1082         (find_barrier): Use it.
1083         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1084         If the label a mova refers to is above the mova itself, change
1085         the mova into a load.
1086         * sh.md (*casesi_worker): Rename to:
1087         (casesi_worker_1).
1088         (casesi_worker_2): New insn.
1089
1090 2004-06-10  Jason Merrill  <jason@redhat.com>
1091
1092         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1093         hook signature.
1094         * tree-gimple.h: Adjust.
1095         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1096         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1097         Use fold_convert.
1098         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1099         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1100         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1101         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1102         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1103         Gimplify valist rather than calling stabilize_va_list.
1104
1105 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1106
1107         * Makefile.in (df.o): Remove fibheap dependency.
1108         * df.h: Do not include sbitmap.h.
1109         (struct ref): New field "data".
1110         (DF_REF_DATA): New accessor macro.
1111         (struct df): Field "dom" removed.
1112         (df_analyze_subcfg): New function.
1113         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1114         (transfer_function): ... new type.
1115         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1116         (iterative_dataflow): ... new function.
1117         (enum set_representation, struct dataflow): New.
1118         * df.c: Do not include fibheap.h.
1119
1120         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1121         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1122         prune_to_subcfg, df_bb_modify): New functions.
1123         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1124         df_refs_update, df_reg_table_realloc, df_ref_create,
1125         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1126         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1127         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1128
1129         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1130         (df_rd_transfer_function, df_ru_transfer_function,
1131         df_lr_transfer_function): Type of bitmaps changed to void *.
1132         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1133         (hybrid_search): ... new function.
1134         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1135         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1136         a worklist.  Do not process basic blocks unnecessarily.
1137
1138 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1139
1140         * fold-const.c (fold_abs_const): Make extern.
1141         * tree.h (fold_abs_const): Prototype here.
1142         * builtins.c (fold_builtin_fabs): New function to transform
1143         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1144         (fold_builtin_abs): New function to transform abs, labs, llabs
1145         and imaxabs builtins into ABS_EXPR tree nodes.
1146         (expand_builtin): Fall back to a function call for abs, labs,
1147         llabs and imaxabs builtins that survive constant folding.
1148         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1149         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1150
1151 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1152
1153         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1154         leaf function without unwind info at RP 0.
1155
1156 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1157
1158         PR c++/14791
1159         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1160         (fileptr_type_node): Define.
1161         * tree.c (build_common_tree_nodes_2): Initialize
1162         fileptr_type_node to ptr_type_node.
1163         * c-common.c (c_common_nodes_and_builtins): For C++, make
1164         fileptr_type_node a distinct type copy.
1165         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1166         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1167         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1168         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1169         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1170         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1171         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1172         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1173         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1174         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1175         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1176         the above *FILEPTR* types instead of *PTR*.
1177
1178 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1179
1180         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1181         match.
1182
1183 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1184
1185         * fold-const.c (fold_not_const): New function.
1186         (fold) <ABS_EXPR>: Don't bother testing wins.
1187         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1188         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1189
1190 2004-06-09  Richard Henderson  <rth@redhat.com>
1191
1192         PR middle-end/15228
1193         * function.c (assign_parms): Always set_mem_align with the computed
1194         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1195
1196 2004-06-09  Richard Henderson  <rth@redhat.com>
1197
1198         PR opt/15108
1199         * tree-tailcall.c (find_tail_calls): Don't check early for
1200         tail_recursion failure.
1201
1202 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1203
1204         Move SSA_NAME annotations into tree_ssa_name.
1205
1206         * tree-dfa.c (create_ssa_name_ann): Remove.
1207         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1208         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1209         (struct ssa_name_ann_d): Remove.
1210         (union tree_ann_d): Update.
1211         (ssa_name_ann_t): Remove.
1212         * tree-ssa-alias.c: (get_ptr_info): New local function.
1213         Replace references to ssa_name_ann_t with struct ptr_info_def.
1214         * tree-ssa-operands.c (get_expr_operands): Likewise.
1215         * tree.h (SSA_NAME_PTR_INFO): Define.
1216         (struct ptr_info_def): Declare.
1217         (struct tree_ssa_name): Add field 'ptr_info'.
1218
1219 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1220
1221         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1222         misplaced ')'.
1223
1224 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1225
1226         * config/i386/k6.md: Rewrite using the DFA model.
1227         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1228         cost of load-operation insns for the K6.
1229         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1230         (ia32_multipass_dfa_lookahead): Likewise.
1231
1232 2004-06-09  Richard Henderson  <rth@redhat.com>
1233
1234         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1235         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1236
1237 2004-06-09  Richard Henderson  <rth@redhat.com>
1238
1239         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1240
1241 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1242
1243         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1244         (CPP_ID_DATA_H): New.
1245         (gtype-desc.o): Update dependencies.
1246         (GTFILES): Use CPP_ID_DATA_H.
1247
1248 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1249
1250         Revert:
1251         PR c++/15815
1252         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1253         * doc/extend.texi: Deprecate #pragma interface and #pragma
1254         implementation.
1255
1256 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1257
1258         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1259
1260 2004-06-09  Richard Henderson  <rth@redhat.com>
1261
1262         * basic-block.h (struct edge_def): Add goto_locus.
1263         * tree-cfg.c (make_goto_expr_edges): Set it.
1264         (disband_implicit_edges): Use it.
1265         * tree-pretty-print.c (dump_implicit_edges): Print it.
1266
1267 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1268
1269         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1270
1271 2004-06-08  Jason Merrill  <jason@redhat.com>
1272
1273         Gimplify VA_ARG_EXPR into simpler forms.
1274         * target.h: Add gimplify_va_arg_expr hook.
1275         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1276         * fold-const.c (build_fold_addr_expr)
1277         (build_fold_addr_expr_with_type): Move from gimplify.c.
1278         * tree.h: Declare them.
1279         * gimplify.c (gimplify_and_add): New fn.
1280         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1281         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1282         (gimplify_expr): Use build_fold_*.
1283         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1284         don't know how to gimplify it.
1285         * builtins.c (std_gimplify_va_arg_expr): New fn.
1286         (dummy_object): New static fn.
1287         (gimplify_va_arg_expr): New fn.
1288         (stabilize_va_list): Use build_fold_*.
1289         * tree-gimple.h: Declare new fns.
1290         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1291         (ix86_gimplify_va_arg): New fn.
1292         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1293         (ia64_gimplify_va_arg): New fn.
1294         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1295         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1296         * alias.c (get_varargs_alias_set): Just return 0 for now.
1297
1298         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1299
1300 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1301
1302         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1303         of convert.
1304         * tree-inline.c (setup_one_parameter): Likewise.
1305         * tree-sra.c (csc_build_component_ref): Likewise.
1306         * tree-ssa-ccp.c (ccp_fold): Likewise.
1307         * tree-ssa-copy.c (cprop_operand): Likewise.
1308         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1309         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1310
1311 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1312
1313         PR rtl-optimization/15521:
1314         * sched-int.h (in_post_call_group_p): Change type to enum.
1315         * sched-deps.c (sched_analyze_insn):
1316         (sched_analyze): When in_post_call_group_p is post_call_initial,
1317         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1318         and also reset in_post_call_group_p to post_call.
1319         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1320         initialize in_post_call_group_p as post_call_initial.
1321         (init_deps): initialize in_post_call_group_p to not_post_call.
1322
1323 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1324
1325         PR ada/6637
1326         * doc/install.texi: List ada, libada as options to --enable-shared
1327
1328 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1329
1330         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1331         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1332         config.in entries.
1333         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1334         if hard links are not available.
1335         * configure: Regenerate.
1336         * config.in: Regenerate.
1337
1338 2004-06-08  Per Bothner  <per@bothner.com>
1339
1340         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1341
1342 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1343
1344         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1345         Correct formatting.
1346
1347 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1348
1349         PR target/15790
1350         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1351
1352 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1353
1354         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1355         POINTER_TYPE and INTEGER_TYPE.
1356
1357 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1358
1359         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1360         defined.
1361
1362 2004-06-08  Jeff Law  <law@redhat.com>
1363
1364         * doc/contrib.texi: Add entries for Stefan Olsson and
1365         Ola Ronnerup.
1366
1367 2004-06-08  DJ Delorie  <dj@redhat.com>
1368
1369         * toplev.c (floor_log2_wide): Replace loop with faster bit
1370         operations.
1371         (exact_log2_wide): Define in terms of the above.
1372         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1373         available.
1374
1375 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1376
1377         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1378         Make sure that we are in INDIRECT mode when getting the
1379         stub name.
1380
1381 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1382
1383         * h8300.md (extendqisi2_h8300): Add constraints.
1384         (ldm_h8300s_4_normal): Fix typo.
1385
1386 2004-06-08  Richard Henderson  <rth@redhat.com>
1387
1388         * gimple-low.c (struct lower_data): Replace the_return_label and
1389         one_return_stmt with return_statements.
1390         (lower_function_body): Process the entire list of return_statements.
1391         (lower_return_expr): Check source value before unifying return_exprs.
1392         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1393         for !aggregate_value_p.
1394         * tree-gimple.c: Update RETURN_EXPR grammer.
1395
1396 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1397
1398         PR target/15598
1399         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1400
1401 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1402
1403         PR rtl-optimization/15717
1404         * config/i386/i386.c (legitimate_constant_p): Do not allow
1405         x - symbol_ref.
1406
1407 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1408
1409         * gimplify.c (copy_if_shared_r): Revert:
1410         2004-05-21  Richard Henderson  <rth@redhat.com>
1411         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1412
1413 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1414
1415         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1416         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1417         (init_expmed): Initialize these cost arrays as appropriate.
1418         (store_bit_field, extract_bit_field): Correct whitespace.
1419         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1420         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1421         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1422         word_mode or compute_mode as appropriate.
1423
1424 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1425
1426         PR target/15783
1427         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1428         parameter.  Enumerate the registers inside the PARALLEL.
1429         (function_arg): Adjust call to function_arg_union_value.
1430         (function_value): Likewise.
1431
1432         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1433
1434 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1435
1436         * real.c (real_copysign): New function to implement libm's copysign.
1437         * real.h (real_copysign): Prototype here.
1438         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1439         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1440         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1441         fold_builtin_isdigit): Add function prototypes.
1442         (fold_builtin_copysign): New function to fold copysign, copysignf
1443         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1444         constant arguments at compile-time using real_copysign.  Fold
1445         copysign(X,Y) as fabs(X) if Y is always non-negative.
1446         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1447         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1448
1449 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1450
1451         * tree.c (iterative_hash_expr): Use real_hash.
1452
1453 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1454
1455         PR c/14765
1456         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1457         NULL_TREE.
1458
1459 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1460
1461         PR c++/15815
1462         * doc/extend.texi: Deprecate #pragma interface and #pragma
1463         implementation.
1464
1465 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1466
1467         PR middle-end/15666
1468         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1469         builtin decl as well.
1470
1471 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1472
1473         PR c/14649
1474         * c-typeck.c (require_constant_value, require_constant_elements):
1475         Move declarations to the top of the file.
1476         (build_function_call): If we require a constant value, fold with
1477         fold_initializer.  If the result is a constant, and the function
1478         wasn't called using __builtin_foo, issue a pedantic warning.
1479         (build_unary_op): If we require a constant value, fold tree with
1480         fold_initializer.
1481         (build_binary_op): Use require_constant_value to determine whether
1482         to call fold or fold_initializer.
1483
1484 2004-06-07  Richard Henderson  <rth@redhat.com>
1485
1486         * gimple-low.c (struct lower_data): Add the_return_label and
1487         one_return_stmt.
1488         (lower_function_body): Initialize and use them.
1489         (lower_return_expr): New.
1490         (lower_stmt): Call it.
1491         * gimplify.c (gimplify_return_expr): Force the argument to be either
1492         null or a result_decl.
1493         * tree-gimple.c: Update gimple grammer to match.
1494         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1495         coalescing of result_decls.
1496
1497 2004-06-07  Richard Henderson  <rth@redhat.com>
1498
1499         PR rtl-opt/15193
1500         * expmed.c (extract_bit_field): Fix vector_extract return.
1501
1502         * config/i386/i386.md (negv4sf2): New pattern.
1503
1504 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1505
1506         PR c++/15337
1507         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1508         message.
1509
1510 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1511
1512         * config.in: Regenerate.
1513
1514 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1515
1516         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1517         SWITCH_LABELS are always sorted.
1518
1519 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1520
1521         * hooks.c (hook_int_void_1): New generic hook.
1522         * hooks.h (hook_int_void_1): Add prototype.
1523         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1524         Define to hook_int_void_1.
1525         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1526         with dummies for the new one.
1527
1528 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1529
1530         * tree.h (lvalue_or_else): Delete function prototype.
1531         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1532
1533 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1534
1535         PR target/14542
1536         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1537         a live change of a register after peephole replacement.
1538
1539 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1540
1541         PR c/13519
1542         * c-typeck.c (composite_type, common_pointer_type): New functions.
1543         (common_type): Split parts into composite_type and
1544         common_pointer_type.  Ensure that arithmetic operations return
1545         unqualified types without attributes.  Don't make composite type
1546         of signed enum and compatible integer be unsigned.
1547         (build_conditional_expr, build_binary_op): Use
1548         common_pointer_type.
1549         * c-decl.c (merge_decls): Use composite_type.
1550         * c-tree.h (composite_type): Declare.
1551
1552 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1553
1554         PR target/14457
1555         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1556         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1557         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1558         (inhibit_libc): Must define.
1559         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1560         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1561         ("xorhi3"): Likewise.
1562
1563 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1564
1565         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1566         always_inline pass.
1567
1568 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1569
1570         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1571         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1572
1573 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1574
1575         * regclass.c (init_reg_sets): Check for missing registers in target
1576         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1577
1578 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1579
1580         * Makefile.in (MKDEPS_H): New shorthand.
1581         (c-opts.o): Update dependencies.
1582         * c-opts.c: Include mkdeps.h.
1583         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1584         not cpp_add_dependency_target.
1585
1586 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1587
1588         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1589         * config/v850/v850.md: Convert to DFA scheduler description.
1590
1591 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1592
1593         PR fortran/15478
1594         * doc/install.texi: Document GMP as prerequisite. Document
1595         --with-gmp and --with-gmp-dir configure options.
1596         * fortran/gfortran.texi: Remove section "Compiling and testing",
1597         remove TOC reference to it.
1598
1599 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1600
1601         * combine.c(simplify_shift_const): Check shift amount is a
1602         CONST_INT.
1603
1604 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1605
1606         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1607         opening asm_out_file.
1608         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1609         reading asm_out_file. Replace fflush after reading asm_out_file
1610         with fseek.
1611         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1612         default and add to HOST_HOOKS_INITIALIZER.
1613         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1614         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1615         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1616         to set mmi.offset padding.
1617          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1618         $(srcdir)/config/i386/winnt.c.
1619         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1620         (i[34567]86-*-uwin*): Likewise.
1621         *i[34567]86-*-interix3*): Likewise.
1622         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1623         * config/i386/host-mingw32.c: New file.
1624         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1625         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1626         (extern_head): Likewise.
1627         (struct export_list) Likewise.
1628         (export_head): Likewise.
1629         (i386_pe_record_external_function): Use ggc_alloc.
1630         (i386_pe_record_exported_symbol): Likewise.
1631         Include "gt-winnt.h" at end.
1632         * doc/hostconfig.texi: Document
1633         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1634
1635 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1636
1637         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1638         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1639         trailing whitespace before EOLs and before TABs.
1640         (MAX_CODE_ALIGN): Remove unused macro.
1641         (CALL_USED_REGISTERS): Reformat and add comments.
1642
1643 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1644
1645         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1646         to enumerate -lmudflap* and dependencies when linking.
1647
1648 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1649
1650         PR target/15822
1651         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1652
1653 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1654
1655         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1656         * genconditions.c (write_header): Back out removal of reload.h.
1657
1658 2004-06-04  Jan Hubicka  <jh@suse.cz>
1659
1660         Re-apply hopefully fixed patch:
1661         * i386.md (UNSPECV_EH_RETURN): Kill.
1662         (eh_return): Use jump_insn.
1663         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1664
1665 2004-06-04  Jeff Law  <law@redhat.com>
1666
1667         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1668
1669 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1670
1671         * except.c (for_each_eh_region): New function.
1672         * except.h (for_each_eh_region): Add a prototype for it.
1673         * tree-cfg.c (update_eh_labels): New function, callback for
1674         for_each_eh_region.
1675         (label_for_bb): Make global static, unfortunately.
1676         (cleanup_dead_labels): Also update label references for
1677         exception regions.
1678
1679 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1680
1681         * config/mips/mips.c (struct irix_section_align_entry): Fix
1682         GTY marker.
1683
1684 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1685
1686         * toplev.c (check_global_declarations): Don't ask for
1687         DECL_ASSEMBLER_NAME unless the function really is declared
1688         static and not defined.
1689
1690 2004-06-03  Matt Austern  <austern@apple.com>
1691
1692         PR c++/15428
1693         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1694         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1695         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1696         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1697         documentation to reflect the new macro name and to clarify its
1698         meaning.
1699
1700 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1701
1702         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1703
1704 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1705
1706         * config/darwin.c (machopic_indirect_data_reference): Copy
1707         the SYMBOL_REF_DECL from the original RTX for the new
1708         non-lazy pointer RTX.
1709
1710 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1711
1712         * tree.h: Remove include of version.h
1713         * c-cppbuiltin.c: Include version.h
1714         * diagnostic.c: Include version.h
1715         * dwarf2out.c: Include version.h
1716         * toplev.c: Include version.h
1717         * vmsdbgout.c: Include version.h
1718         * Makefile.in: Remove dependency on version.h from TREE_H, and
1719         add dependencies to required .o targets
1720
1721 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1722
1723         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1724         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1725         (TARGET_H): Add insn-modes.h.
1726         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1727         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1728         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1729         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1730         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1731         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1732         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1733         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1734         CFGLAYOUT_H.
1735         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1736         Replace ra.h with RA_H.
1737         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1738         insn-recog.o): Replace resource.h with RESOURCE_H.
1739         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1740         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1741         with SCHED_INT_H.
1742         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1743         ra-rewrite.o): Replace df.h with DF_H.
1744         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1745         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1746         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1747         (insn-conditions.o): Remove unused reload.h.
1748         * cfglayout.h: Add include guard.  Include basic-block.h.
1749         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1750         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1751         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1752         basic-block.h.
1753         * genconditions.c:  Remove reload.h.
1754         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1755         hard-reg-set.h, insn-modes.h.
1756         * resource.h: Add include guard.  Include hard-reg-set.h.
1757         * sched-int.h:  Add include guard.  Include insn-attr.h,
1758         basic-block.h, rtl.h.
1759         * target.h: Add include guard.  Include insn-modes.h.
1760         * tree-ssa-live.h: Include partition.h.
1761
1762 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1763                 Kenneth Zadeck <zadeck@naturalbridge.com>
1764
1765         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1766         (add_var_to_ssa_edges_worklist): Add value argument.
1767         Update callers.
1768         Use new worklist.
1769         (process_ssa_edge_worklist): New function.
1770         (tree_ssa_ccp): Move worklist processing core to
1771         process_ssa_edge_worklist, and just call that for the two worklists.
1772
1773 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1774
1775         * basic-block.c (tail_recursion_label_list): Don't declare.
1776         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1777         accordingly.
1778         * cfgbuild.c (find_label_refs): Remove.
1779         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1780         * cfgcleanup.c (tail_recursion_label_p): Remove.
1781         (merge_blocks_move): Do not check for tail recursion.
1782         (try_optimize_cfg): Likewise.
1783         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1784         * cfgrtl.c (tail_recursion_label_list): Remove.
1785         * except.c (remove_unreachable_regions): Don't handle
1786         CALL_PLACEHOLDER insns.
1787         (convert_from_eh_region_ranges_1, can_throw_internal,
1788         can_throw_external): Likewise.
1789         * function.c (free_after_compilation): Don't clear
1790         x_tail_recursion_label.
1791         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1792         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1793         (reorder_blocks_1): Likewise.
1794         * function.h (struct function): Remove x_tail_recursion_label
1795         member.  Don't define tail_recursion_label.
1796         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1797         * print-rtl.c (print_rtx): Likewise.
1798         * rtl.def (CALL_PLACEHOLDER): Remove.
1799         * rtl.h (sibcall_use_t): Remove enum.
1800         (optimize_sibling_and_tail_recursive_calls,
1801         replace_call_placeholder): Remove function prototypes.
1802         * stmt.c (tail_recursion_args): Remove.
1803         (optimize_tail_recursion): Remove.
1804         (expand_return): Don't check for possible tail recursion.
1805         * tree.h (optimize_tail_recursion): Remove prototype.
1806
1807 2004-06-02  Jan Hubicka  <jh@suse.cz>
1808
1809         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1810         return_stmt.
1811
1812 2004-06-02  Jason Merrill  <jason@redhat.com>
1813
1814         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1815         Do include c-parse.in.
1816
1817 2004-06-02  Eric Christopher  <echristo@redhat.com>
1818
1819         * c-typeck.c (common_type): Don't lose type qualifiers
1820         when creating new variants.
1821
1822 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1823
1824         PR tree-optimization/14042
1825         PR tree-optimization/14729
1826         PR tree-optimization/14736
1827         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1828         Check the type which the pointer points to
1829         instead of the pointer types.
1830
1831 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1832
1833         PR tree-optimization/15738.
1834         * builtins.c (fold_builtin_strchr): Transform
1835         strrchr (s, '\0') to strchr (s, '\0').
1836
1837 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1838
1839         * i386.c (ix86_adjust_cost): Don't increase the cost for
1840         load+operation for PROCESSOR_PENTIUMPRO, it is already
1841         modelled in the DFA description
1842
1843 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1844
1845         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1846         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1847         (ALIAS_H, EMIT_RTL_H): New.
1848         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1849         (cfgcleanup.o): Add EMIT_RTL_H.
1850         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1851         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1852         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1853         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1854         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1855         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1856         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1857         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1858         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1859         set_mem_size): Move to emit-rtl.h.
1860         * emit-rtl.h: New.
1861         * alias.h: New.
1862
1863 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1864
1865         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1866         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1867         Adjust recursive calls to self.
1868         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1869
1870 2004-06-01  Richard Henderson  <rth@redhat.com>
1871             Andrew Pinski  <pinskia@physics.uc.edu>
1872
1873         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1874         (primary): Handle offsetof.  Add error productions for faux functions.
1875         Move component_ref objc checking to build_component_ref.
1876         (reswords): Add offsetof.
1877         (rid_to_yy): Add offsetof.
1878         * c-tree.h (build_offsetof): Declare.
1879         * c-common.h (objc_is_public): Declare.
1880         * c-typeck.c (build_component_ref): Check objc_is_public.
1881         (build_offsetof): New.
1882         * stub-objc.c (objc_is_public): New.
1883         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1884         from is_public.
1885         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1886         * doc/extend.texi (Offsetof): Move from C++ section to C section
1887         and rewrite for __builtin_offsetof.
1888
1889 2004-06-01  Peter Barada  <peter@the-baradas.com>
1890             Peter Jakubek  <peter@laseranimation.com>
1891
1892         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1893         a scratch to perform an add to memory.
1894
1895 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1896
1897         PR target/14018
1898         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1899         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1900         m68k_align_funcs): Remove.
1901         (override_options): Remove code to handle -malign-* options.
1902         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1903         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1904         (m68k_align_loops_string, m68k_align_jumps_string,
1905         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1906         m68k_align_funcs): Remove definitions.
1907
1908 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1909
1910         PR target/15626
1911         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1912         by the Sun linker in conjunction with the Sun assembler.
1913         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1914
1915 2004-06-01  Jeff Law  <law@redhat.com>
1916
1917         * stmt.c (expand_decl): Be more selective about calling
1918         mark_reg_pointer.
1919
1920 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1921
1922         PR objc/7993
1923         * objc-act.c (is_private): Do not emit the 'instance variable %s
1924         is declared private' error.
1925         (is_public): Emit the error after calling is_private.
1926         (lookup_objc_ivar): If the instance variable is private, return 0
1927         - the instance variable is invisible here.
1928
1929 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1930
1931         * doc/invoke.texi (-static-libgcc): Explicitly mention
1932         non-GNU linkers.
1933
1934 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1935
1936         PR target/12968
1937         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1938
1939 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1940
1941         PR c/15749
1942         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1943         misuses of structures with flexible array members if
1944         in_system_header.
1945
1946 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1947
1948         PR target/15693
1949         * config/sparc/sparc.c (compare_operand): New predicate.
1950         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1951         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1952         operand is a ZERO_EXTRACT and the second operand is not zero,
1953         force the former to a register.
1954         (cmpdi expander): Likewise.
1955
1956 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1957
1958         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1959         looks at.
1960         * alias.c (alias_invariant_size): Make alias_invariant_size
1961         static, fix GTY marker.
1962
1963 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1964
1965         PR tree-optimization/15743.
1966         * builtins.c (fold_builtin_1): Fold index() and rindex().
1967
1968 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1969
1970         PR middle-end/15069
1971         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1972         into "X < 0" (where C is the signbit) if X's type is a full mode.
1973
1974 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1975
1976         * pa.md: Disable the peephole2 patterns that generate indexed
1977         floating-point stores when indexing is disabled.
1978
1979 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1980
1981         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1982         (pp_c_right_bracket): Likewise.
1983         (pp_c_star): Likewise.
1984         (pp_c_ampersand): Define.
1985         * c-pretty-print.h (pp_c_left_bracket): Declare.
1986         (pp_c_right_bracket): Likewise.
1987         (pp_c_star): Likewise.
1988         (pp_c_ampersand): Likewise.
1989
1990 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1991
1992         * config/sol2.h (__enable_execute_stack): ANSIfy function
1993         definition.
1994
1995 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1996
1997         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1998         HAVE_DOS_BASED_FILESYSTEM.
1999
2000 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2001
2002         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2003         Only look at case labels if the immediate dominator is also
2004         the only predecessor.  Don't look for more case labels if the
2005         first seen is a case range.
2006
2007 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2008
2009         * builtins.c: Add a prototype for fold_builtin_strchr().
2010
2011 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2012
2013         Revert this patch:
2014         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2015
2016         * combine.c (gen_binary): Remove.
2017         (known_cond, simplify_shift_const
2018         find_split_point, combine_simplify_rtx,
2019         simplify_if_then_else, simplify_set,
2020         simplify_logical, expand_field_assignment,
2021         extract_left_shift, force_to_mode,
2022         if_then_else_cond, apply_distributive_law,
2023         simplify_and_const_int, simplify_shift_const,
2024         gen_lowpart_for_combine, simplify_comparison,
2025         reversed_comparison): Replace with
2026         simplify_gen_binary, simplify_gen_relational or
2027         distribute_and_simplify_rtx.
2028         (distribute_and_simplify_rtx): New function.
2029
2030 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2031
2032         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2033         when generating PIC code.
2034
2035 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2036
2037         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2038         (c_expand_body): here.
2039         (c_expand_decl): Move to ...
2040         * c-common.c (c_expand_decl): Here and remove check for nested
2041         functions.
2042         * c-common.h (c_expand_decl): Add prototype.
2043         * c-tree.h (c_expand_decl): Remove.
2044
2045 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2046
2047         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2048         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2049         fold_mathfn_compare, fold_inf_compare, fold,
2050         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2051         Use constant_boolean_node where appropriate.  Don't bother using
2052         fold_convert on the second argument to omit_one_operand.
2053
2054 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2055
2056         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2057         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2058         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2059         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2060         Add missing (but documented) tree nodes to the index.
2061
2062 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2063
2064         PR tree-optimization/14819
2065         * builtins.c (fold_builtin_strchr): New.
2066         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2067         with fold_builtin_strchr().
2068
2069 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2070
2071         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2072         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2073         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2074         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2075         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2076         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2077         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2078         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2079         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2080         formatting.
2081
2082 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2083
2084         * gimplify.c (sort_case_labels): New.  Split out from...
2085         (gimplify_switch_expr): ...here.  Use it.
2086         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2087         the SWITCH_EXPR created here before leaving the function.
2088         * tree.c (sort_case_labels): Add prototype.
2089
2090 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2091
2092         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2093         of BOOLEAN_TYPE.
2094
2095 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2096
2097         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2098         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2099         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2100         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2101         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2102         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2103         comment typos.  Follow spelling conventions.
2104
2105 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2106
2107         * gengtype-yacc.y: Add NESTED_PTR token.
2108         (option): Record `nested_ptr' option.
2109         * gengtype-lex.l: Handle `nested_ptr' keyword.
2110         * gengtype.c (walk_type): Process `nested_ptr' option.
2111         * gengtype.h (struct nested_ptr_data): New.
2112         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2113         * stringpool.c (struct string_pool_data): Make 'entries' point to
2114         ht_identifier instead of tree.
2115         (gt_pch_save_stringpool): Don't adjust pointers.
2116         (gt_pch_restore_stringpool): Call ht_load.
2117
2118 2004-05-29  Jason Merrill  <jason@redhat.com>
2119
2120         * gimplify.c (gimplify_expr): Don't build a statement list
2121         if no gimplification was necessary.
2122
2123 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2124
2125         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2126         and %> as well as %'.
2127         * c-format.c: Use %< and %>.
2128         (gcc_diag_char_table, gcc_cdiag_char_table,
2129         gcc_cxxdiag_char_table): Update.
2130
2131 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2132
2133         * c-typeck.c (common_type): Correct comment.
2134
2135 2004-05-29  Peter Barada  <peter@the-baradas.com>
2136
2137         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2138         * config/m68k/m68k.c (const_method): Likewise.
2139         * config/m68k/m68k.c (const_int_cost): Likewise.
2140         * config/m68k/m68k.c (const_int_cost): Likewise.
2141         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2142
2143 2004-05-29  Peter Barada  <peter@the-baradas.com>
2144
2145         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2146         addressing.
2147         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2148         movsi,movhi,movqi insn patterns.
2149
2150 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2151
2152         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2153
2154         PR target/15720
2155         * config/darwin.c (machopic_indirect_call_target): Copy
2156         the SYMBOL_REF_DECL from the original RTX for the new
2157         stub RTX.
2158
2159 2004-05-28  DJ Delorie  <dj@redhat.com>
2160
2161         * stor-layout.c (place_field): Revert erroneous commit.
2162
2163 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2164
2165         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2166         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2167         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2168         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2169         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2170         vec_ste): Remove type checks for integral parameters and literals
2171         from '..._args_eq' macros.
2172
2173 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2174
2175         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2176
2177 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2178
2179         * testsuite/g++.dg/charset/function.cc: New.
2180
2181         * testsuite/gcc.dg/charset/function.c: New.
2182
2183         * c-decl.c (c_make_fname_decl): Free return value from
2184         fname_as_string.
2185
2186         * cp/decl.c (cp_make_fname_decl): Free return value from
2187         fname_as_string.
2188
2189         * c-common.c (fname_as_string): Translate if necessary.
2190
2191 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2192
2193         * stringpool.c: Add comments to PCH saving/restoring routines.
2194
2195 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2196
2197         * c-common.c (c_estimate_num_insns_1): Kill.
2198         (c_estimate_num_insns): Kill.
2199         * c-common.h (c_estimate_num_insns): Kill.
2200
2201         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2202         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2203         Remove comment about not checking for
2204         _POSIX_PRIORITY_SCHEDULING.
2205         * gthr-posix.c: Likewise.
2206
2207 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2208             Roger Sayle  <roger@eyesopen.com>
2209
2210         PR rtl-optimization/15649
2211         Add LTGT_EXPR and improve pretty-printing of unordered
2212         comparisons.
2213         * c-common.c (c_common_truthvalue_conversion):
2214         Handle LTGT_EXPR.
2215         * c-typeck.c (build_binary_op): Likewise.
2216         * dojump.c (do_jump): Likewise.
2217         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2218         * predict.c (tree_predict_by_opcode): Likewise.
2219         * real.c (real_compare): Likewise.
2220         * tree-cfg.c (verify_expr): Likewise.
2221         * tree-inline.c (estimate_num_insns_1): Likewise.
2222         * tree-pretty-print.c (dump_generic_node): Likewise.
2223         Handle ORDERED_EXPR, UNORDERED_EXPR.
2224         (op_symbol): Print unordered comparisons differently
2225         than ordered ones.
2226         * tree.def (LTGT_EXPR): New '<' tree code.
2227         * doc/c-tree.texi (Expressions): Document floating-point
2228         comparison nodes.
2229
2230         Fold comparisons between floating point values.
2231         * fold-const.c (enum comparison_code): New, from
2232         #define'd constants.  Define compcodes for unordered
2233         comparisons and for invalid transformations.
2234         (invert_tree_comparison): Add "honor_nans" parameter.
2235         (fold_truthop): Revamp to work on floating-point types too.
2236         (comparison_to_compcode): Support unordered comparisons.
2237         Use new enum comparison_code.
2238         (compcode_to_comparison): Likewise.
2239         (combine_compcodes): New function.
2240         (invert_truthvalue): Let invert_tree_comparison decide
2241         whether it is valid to fold the comparison.  Fold ORDERED
2242         and UNORDERED even if flag_unsafe_math_optimizations is off,
2243         and the remaining even if flag_unsafe_math_optimizations
2244         is off but we are under -fno-trapping-math.
2245         (fold_relational_const): Integer modes do not honor NaNs.
2246
2247 2004-05-28  Paul Brook  <paul@codesourcery.com>
2248
2249         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2250
2251 2004-05-28  Paul Brook  <paul@codesourcery.com>
2252
2253         * config/arm/arm.c (thumb_force_lr_save): New function.
2254         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2255         thumb_output_function_prologue): Use it.
2256         (thumb_expand_prologue): Set lr_save_eliminated.
2257
2258 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2259
2260         * config/mips/mips.md (extendsidi2): Tie the source and destination
2261         of the register alternative.  Split it into nothing.
2262
2263 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2264
2265         * rtl.h (skip_consecutive_labels): Declare.
2266         * emit-rtl.c (skip_consecutive_labels): New function.
2267         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2268         * jump.c (follow_jumps): Say what null return values mean.
2269
2270 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2271
2272         PR target/13250
2273         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2274
2275 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2276
2277         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2278         libgcc-std.ver.
2279         * config/sh/libgcc-std.ver: New file.
2280
2281 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2282
2283         * except.c: Revert change of 2004-05-26.
2284         * config/i386/i386.md: Revert change of 2004-05-27.
2285
2286 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2287
2288         * configure.ac: Remove --enable-tree-browser option.
2289         Define TREEBROWSER when ac_tree_checking is defined.
2290         * configure: Rebuilt.
2291
2292 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2293
2294         * expr.c (store_constructor): Restore sanity check on
2295         the size of the type before clearing.
2296
2297 2004-05-27  Jan Hubicka  <jh@suse.cz>
2298
2299         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2300
2301 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2302
2303         * combine.c (gen_binary): Remove.
2304         (known_cond, simplify_shift_const
2305         find_split_point, combine_simplify_rtx,
2306         simplify_if_then_else, simplify_set,
2307         simplify_logical, expand_field_assignment,
2308         extract_left_shift, force_to_mode,
2309         if_then_else_cond, apply_distributive_law,
2310         simplify_and_const_int, simplify_shift_const,
2311         gen_lowpart_for_combine, simplify_comparison,
2312         reversed_comparison): Replace with
2313         simplify_gen_binary, simplify_gen_relational or
2314         distribute_and_simplify_rtx.
2315         (distribute_and_simplify_rtx): New function.
2316         * simplify-rtx.c (simplify_binary_operation):
2317         Use nonzero_bits to simplify ANDs where we are
2318         turning off bits already known to be off in OP0.
2319
2320 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2321
2322         PR target/14478
2323         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2324
2325 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2326
2327         PR middle-end/14084
2328         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2329         to size of decl.
2330
2331 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2332
2333         PR/14924
2334         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2335
2336 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2337
2338         * tree.h: Fix comment typo.
2339
2340 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2341
2342         * gimplify.c (compare_case_labels): New function.
2343         (gimplify_switch_expr): Sort case labels, and make sure the
2344         last label in the label vector is the default case.
2345         * tree-cfg.c (group_case_labels): New function.
2346         (build_tree_cfg): Cleanup redundant labels and group case labels
2347         before creating edges.
2348         (cleanup_dead_labels): Handle GOTO_EXPRs.
2349         (find_case_label_for_value): Use a binary search to find the
2350         case label for the given value.
2351         * tree-gimple.c: Mention that labels are sorted, and that the
2352         last label must be the default.
2353
2354 2004-05-27  Jan Hubicka  <jh@suse.cz>
2355
2356         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2357
2358 2004-05-27  Jan Hubicka  <jh@suse.cz>
2359
2360         * i386.md (UNSPECV_EH_RETURN): Kill.
2361         (eh_return): Use jump_insn.
2362         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2363
2364 2004-05-26  Jan Hubicka  <jh@suse.cz>
2365
2366         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2367         not loop optimizing.
2368
2369 2004-05-26  Jan Hubicka  <jh@suse.cz>
2370
2371         * except.c (can_throw_internal):  Notice RESX instructions.
2372
2373 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2374
2375         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2376         of the two sizes to assemble_integer.
2377
2378 2004-05-25  Paul Brook  <paul@codesourcery.com>
2379
2380         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2381         pointless #ifdef.
2382
2383 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2384
2385         * Makefile.in (top_builddir): Define to .
2386
2387 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2388
2389         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2390         top-level detects, except when in-tree ld is being cross-built.
2391         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2392         then AS only if target is host.
2393         * configure: Rebuilt.
2394
2395 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2396
2397         * global.c (global_alloc): Call make_accurate_live_analysis.
2398         (record_one_conflict): Remove dead code.
2399         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2400         (bb_info): New structure.
2401         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2402         (allocate_bb_info, free_bb_info, mark_reg_change,
2403         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2404         modify_bb_reg_pav, calculate_reg_pav,
2405         make_accurate_live_analysis): New functions.
2406
2407 2004-05-25  Devang Patel  <dpatel@apple.com>
2408
2409         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2410         xrealloc.
2411         (end_alias_analysis): Use ggc_free instead fo free.
2412
2413 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2414
2415         PR target/15546
2416         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2417         as needed to be outputted.
2418
2419 2004-05-25  Jan Hubicka  <jh@suse.cz>
2420
2421         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2422
2423 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2424         Mostafa Hagog  <mustafa@il.ibm.com>
2425
2426         * Makefile.in (modulo-sched.o, ddg.o): New.
2427         * ddg.h, ddg.c, modulo-sched.c: New files.
2428         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2429         internals to "dupicate_insn".
2430         (duplicate_insn): New function.
2431         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2432         declarations.
2433         * common.opt (fmodulo-sched): New flag.
2434         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2435         Remove static and forward declaration.
2436         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2437         functions.
2438         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2439         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2440         declarations.
2441         * flags.h (flag_modulo_sched): New flag.
2442         * opts.c (common_handle_option): Handle modulo-sched flag.
2443         * params.def (max-sms-loop-number, sms-max-ii-factor,
2444         sms-dfa-history, sms-loop-average-count-threshold): New
2445         parameters.
2446         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2447         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2448         parameters.
2449         * passes.c ("sms", "sms-vcg"): New dumps.
2450         (rest_of_handle_sched): Call sms_schedule.
2451         * rtl.h (sms_schedule): New declaration.
2452         * timevar.def (TV_SMS): New.
2453         * toplev.c (flag_modulo_sched): Initialize.
2454         (f_options): Handle -fmodulo-sched option.
2455         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2456         * docs/passes.texi: Document new SMS pass.
2457
2458 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2459
2460         * Makefile.in (OBJS): Add rtlhooks.o.
2461         (rtlanal.o): Depend on function.h.
2462         (cse.o): Depend on rtlhooks-def.h.
2463         (combine.o): Depend on rtlhooks-def.h.
2464         (rtlhooks.o): New rule.
2465         * combine.c: Include rtlhooks-def.h.
2466         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2467         num_sign_bit_copies, cached_num_sign_bit_copies,
2468         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2469         (reg_nonzero_bits_for_combine,
2470         reg_num_sign_bit_copies_for_combine): New functions holding
2471         the remnants of the above.
2472         (combine_rtl_hooks): New.
2473         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2474         * cse.c: Include rtlhooks-def.h.
2475         (cse_rtl_hooks): New.
2476         (cse_main): Set rtl_hooks instead of gen_lowpart.
2477         * emit-rtl.c (gen_lowpart): Remove.
2478         (gen_lowpart_general): Move to rtlhooks.c.
2479         * rtl.h (nonzero_bits, num_sign_bit_copies,
2480         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2481         (gen_lowpart_general): Remove.
2482         (gen_lowpart): Temporarily redefine as a macro.
2483         * rtlanal.c: Include function.h.
2484         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2485         num_sign_bit_copies, cached_num_sign_bit_copies,
2486         num_sign_bit_copies1): New, from combine.c.
2487         * rtlhooks.c: New file.
2488         * rtlhooks-def.h: New file.
2489
2490 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2491
2492         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2493         to support 32-bit -mint8 mode.
2494
2495         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2496         option in the AVR architecture.
2497
2498 2004-05-24  Mike Stump  <mrs@apple.com>
2499
2500         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2501
2502 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2503
2504         * intl.h (open_quote, close_quote): New.
2505         * intl.c (open_quote, close_quote): New.
2506         (gcc_init_libintl): Set them.
2507         * pretty-print.c: Include "intl.h".
2508         (pp_base_format_text): Support 'q' format flag and %` and %'
2509         formats.  Use ' instead of ` in comments.
2510         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2511         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2512         foramt_types_orig): Describe these new formats.
2513         (decode_format_attr, check_function_format,
2514         check_format_info_main): Use these new formats.
2515         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2516         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2517         check these formats to 3.5.
2518
2519 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2520
2521         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2522         (BACKEND): Reflect this.
2523         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2524         (LIBS): Likewise.
2525
2526 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2527
2528         PR tree-optimization/14197
2529         * builtins.c: Include "tree-gimple.h"
2530         (readonly_data_expr): Use get_base_address.  Make sure to call
2531         decl_readonly_section only on trees it can handle.
2532         * tree-gimple.c (get_base_address): Accept STRING_CST and
2533         CONSTRUCTOR expressions.
2534         * Makefile.in: Update dependencies.
2535
2536 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2537
2538         Move libcpp to the toplevel.
2539         * Makefile.in: Remove references to libcpp files,
2540         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2541         and change hashtable.h to that.
2542         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2543         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2544         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2545         * configure: Regenerate.
2546         * config.in: Regenerate.
2547         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2548         * cppcharset.c: Removed.
2549         * cpperror.c: Removed.
2550         * cppexp.c: Removed.
2551         * cppfiles.c: Removed.
2552         * cpphash.c: Removed.
2553         * cpphash.h: Removed.
2554         * cppinit.c: Removed.
2555         * cpplex.c: Removed.
2556         * cpplib.c: Removed.
2557         * cpplib.h: Removed.
2558         * cppmacro.c: Removed.
2559         * cpppch.c: Removed.
2560         * cpptrad.c: Removed.
2561         * cppucnid.h: Removed.
2562         * cppucnid.pl: Removed.
2563         * cppucnid.tab: Removed.
2564         * hashtable.c: Removed.
2565         * hashtable.h: Removed.
2566         * line-map.c: Removed.
2567         * line-map.h: Removed.
2568         * mkdeps.c: Removed.
2569         * mkdeps.h: Removed.
2570         * stringpool.h: Include symtab.h instead of hashtable.h.
2571         * tree.h: Include symtab.h instead of hashtable.h.
2572         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2573
2574 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2575
2576         * gcc.c (struct prefix_list): Add forward declaration.
2577         (do_spec_path): New function, extracted from...
2578         (do_spec_1) <'D'>: ... here.  Drop support for
2579         SPACE_AFTER_L_OPTION.
2580         (do_spec_1) <'I'>: Use do_spec_path.
2581         (process_command): Do not store the 'include' suffix
2582         in include_prefixes.
2583         * system.h: Poison SPACE_AFTER_L_OPTION.
2584
2585 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2586
2587         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2588         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2589
2590 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2591
2592         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2593         Update based on printed manual.  Enable setting of offsets for
2594         FSFPRINT and move it to gcc-common.texi.
2595         * doc/gcc.texi: Update FSF printing details.
2596         * doc/gccint.texi: Remove FSF printing details.
2597
2598 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2599
2600         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2601
2602 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2603
2604         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2605         expand_builtin_strrchr, expand_builtin_strpbrk,
2606         expand_builtin_mempcpy, expand_builtin_memcmp,
2607         expand_builtin_strcmp, expand_builtin_strncmp,
2608         expand_builtin_strcat, std_expand_builtin_va_start,
2609         std_expand_builtin_va_arg, expand_builtin_va_copy,
2610         expand_builtin_signbit, fold_builtin_cabs,
2611         fold_builtin_logarithm, fold_builtin_mempcpy,
2612         fold_builtin_signbit, fold_builtin_isascii,
2613         fold_builtin_toascii, fold_builtin_isdigit,
2614         fold_builtin_1, build_function_call_expr,
2615         simplify_builtin_strchr, simplify_builtin_strrchr,
2616         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2617         simplify_builtin_memcmp, simplify_builtin_strcmp,
2618         simplify_builtin_strncmp, simplify_builtin_strncat,
2619         simplify_builtin_strspn, simplify_builtin_strcspn,
2620         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2621         to build with calls to build2, build3 or omit_one_operand.
2622
2623 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2624
2625         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2626         section when generating EABI code.
2627
2628 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2629
2630         PR 15546
2631         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2632         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2633
2634 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2635
2636         * c-common.c (c_common_truthvalue_conversion): Handle
2637         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2638         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2639         i.e. set the type to truthvalue_type_node and return.
2640
2641 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2642
2643        * tree.h (struct tree_decl): Add possibly_inlined bit.
2644         (DECL_POSSIBLY_INLINED): New accessor macro.
2645         * cgraph.h: Remove declaration of cgraph_inline_hash.
2646         * cgraph.c: Remove definition of cgraph_inline_hash.
2647         (hash_node): Revert to hashing DECL_UID.
2648         (eq_node): Take two pointers to cgraph_node structures.
2649         Compare DECL_UIDs.
2650         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2651         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2652         hash on DECL_UID.
2653         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2654         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2655         (cgraph_node): Allocate a temporary node on the stack, fill in
2656         its DECL field, and pass that to htab_find_slot.
2657         (cgraph_varpool_node): Likewise.
2658         (cgraph_function_possibly_inlined_p): If global info is ready,
2659         return the DECL_POSSIBLY_INLINED bit.
2660         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2661         instead of mucking with cgraph_inline_hash.
2662
2663 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2664
2665         * doc/contrib.texi: Add g77 contributors.
2666
2667 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2668
2669         * calls.c (initialize_argument_information): Forbid sibcalls if a
2670         callee-copied argument is stored in the current function's frame.
2671
2672 2004-05-22  Eric Christopher  <echristo@redhat.com>
2673
2674         * fix-header.c (read_scan_file): Update for add_path change.
2675
2676 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2677
2678         * c.opt (Wmissing-include-dirs): New.
2679         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2680         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2681         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2682         * c-incpath.h (add_path): Add fourth (bool) argument.
2683         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2684         (add_standard_paths): Likewise.
2685         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2686         is used and the directory was user-supplied via -I.
2687         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2688         using add_cpp_dir_path ().
2689         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2690         (struct cpp_dir): Add user_supplied_p.
2691         * doc/invoke.texi (Warning Options): Document new option.
2692
2693 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2694
2695         * fold-const.c (fold_read_from_constant_string): Convert result to
2696         requested type.
2697
2698 2004-05-21  Richard Henderson  <rth@redhat.com>
2699
2700         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2701         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2702         Don't mark VA_ARG_EXPRs volatile here.
2703         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2704
2705 2004-05-21  Richard Henderson  <rth@redhat.com>
2706
2707         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2708         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2709
2710 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2711
2712         * fold-const.c (fold, fold_relational_hi_lo,
2713         nondestructive_fold_binary_to_constant,
2714         fold_read_from_constant_string): Use fold_convert instead of convert.
2715         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2716         simplify_builtin_strchr, simplify_builtin_strrchr,
2717         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2718
2719 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2720
2721         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2722         is NULL.
2723
2724 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2725
2726         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2727         override sparc.h definition.
2728
2729 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2730
2731         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2732         get_unwidened, get_narrower): Replace build with build2.
2733         * fold-const.c (negate_expr, associate_trees, size_binop,
2734         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2735         pedantic_omit_one_operand, distribute_bit_expr,
2736         make_bit_field_ref, optimize_bit_field_compare,
2737         decode_field_reference, range_binop, make_range,
2738         build_range_check, fold_range_test, fold_truthop,
2739         optimize_minmax_comparison, extract_muldiv_1,
2740         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2741         fold_inf_compare, fold_single_bit_test, fold,
2742         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2743         Likewise replace build with either build2 or build3.
2744
2745 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2746
2747         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2748         * calls.c (prepare_call_address): Don't test
2749         NO_RECURSIVE_FUNCTION_CSE.
2750         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2751         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2752         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2753         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2754         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2755         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2756         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2757         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2758         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2759         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2760         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2761         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2762         Likewise.
2763         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2764         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2765         * doc/tm.texi (Costs): Remove documentation for
2766         NO_RECURSIVE_FUNCTION_CSE.
2767
2768 2004-05-20  Paul Brook  <paul@codesourcery.com>
2769
2770         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2771         * unwind-dw2.c (extract_cie_info): Ditto.
2772         (_Unwind_FrameState): Change retaddr_column to word type.
2773
2774 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2775
2776         PR middle-end/3074
2777         * fold-const.c (strip_compound_expr): Delete function.
2778         (count_cond): Delete function.
2779         (fold_binary_op_with_conditional_arg): Only perform transformations
2780         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2781         when a is constant.  This greatly simplifies this routine.
2782
2783         * tree.c (saved_expr_p): Delete function.
2784         * tree.h (saved_expr_p): Delete function prototype.
2785
2786 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2787
2788         * common.opt (ftree-loop-optimize): Remove.
2789
2790 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2791
2792         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2793         (NM_FOR_TARGET): Use := and $(shell).
2794         (mainversion): Remove unused variable.
2795
2796 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2797
2798         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2799         sequence containing the insn to be deleted, always reemit it.
2800
2801 2004-05-20  Richard Henderson  <rth@redhat.com>
2802
2803         PR 15454
2804         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2805         * function.c (expand_function_start): Expand static_chain_decl by hand.
2806         * gimplify.c (create_tmp_var_name): Export.
2807         * tree-gimple.h (create_tmp_var_name): Declare.
2808
2809 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2810
2811         * rs6000.c (print_operand) <case 'z'>: Call
2812         mark_decl_referenced before assemble_name.
2813
2814 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2815
2816         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2817         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2818         (cgraph_varpool_node): Hash on the pointer to the decl, not
2819         the DECL_UID.  Fixes 64-bit bootstrap failure.
2820
2821 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2822
2823         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2824         we don't earlyclobber operands used in the second insn.
2825
2826 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2827
2828         * tree-mudflap.c: Formatting fixes.
2829
2830 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2831
2832         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2833         * gengtype.c (open_base_files): Include reload.h in ifiles.
2834         * reload.h (reg_equiv_memory_loc_varray): Declare.
2835         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2836         (init_reload): Initialize it.
2837         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2838         reg_equiv_memory_loc_varray to size 0.
2839         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2840         growing reg_equiv_memory_loc_varray to the desired size.
2841         * passes.c (rest_of_handle_old_regalloc): Likewise.
2842         * reload.c: Amend comment on calling init_reload.
2843
2844 2004-05-20  Nick Clifton  <nickc@redhat.com>
2845
2846         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2847         with 'TRAMP' in the body of the macro definition.
2848
2849 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2850
2851         PR target/15383
2852         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2853         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2854         cmptf_libfunc isn't set.
2855         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2856         conventions.
2857         (ia64_sysv4_init_libfuncs): New.
2858
2859         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2860         ia64_sysv4_init_libfuncs.
2861
2862 2004-05-20  Falk Hueffner  <falk@debian.org>
2863
2864         PR other/15526
2865         * libgcc2.c (__mulvsi3): Fix overflow test.
2866
2867 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2868
2869         PR c/14171
2870         * reg-stack.c (nan): Rename to ...
2871         (not_a_num): Here.
2872         (reg_to_stack): Rename nan to not_a_num.
2873         (subst_stack_regs_pat): Likewise.
2874         (convert_regs_entry): Likewise.
2875         (convert_regs_1): Likewise.
2876
2877         * tree-cfg.c (find_case_label_for_value): Replace call to
2878         simple_cst_equal with tree_int_cst_equal.
2879
2880 2004-05-19  Jeff Law <law@redhat.com>
2881
2882         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2883         If the operand is for a use, then strip away the SSA_NAME, do not
2884         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2885         (mark_def_sites): Appropriately pass additional argument to
2886         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2887         then set the VDEF_RESULT to the VDEF_OP.
2888         (set_def_block): Strip away any SSA_NAME to get to the real
2889         underlying variable.
2890
2891         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2892         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2893         BB directly.
2894
2895 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2896
2897         PR c++/15463
2898         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2899         result of inverse.
2900
2901         PR rtl-optimization/15274
2902         * loop-iv.c (determine_max_iter, shorten_into_mode,
2903         iv_number_of_iterations): Handle constants correctly.
2904         * rtl.h (get_mode_bounds): Declaration changed.
2905         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2906         the target mode.
2907
2908         PR rtl-optimization/14692
2909         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2910         (unswitch_single_loop): Work correctly when may_unswitch_on
2911         returns a folded constant.
2912
2913         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2914         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2915         comparisons with mode bounds.
2916
2917         * function.c (struct temp_slot): Add new field prev.
2918         (free_after_compilation, init_temp_slots): Free new fields.
2919         (cut_slot_from_list, insert_slot_to_list,
2920         temp_slots_at_level, max_slot_level, move_slot_to_level,
2921         make_slot_available): New functions.
2922         (assign_stack_temp_for_type, combine_temp_slots,
2923         find_temp_slot_from_address, preserve_temp_slots,
2924         preserve_rtl_expr_result, free_temp_slots,
2925         free_temps_for_rtl_expr, pop_temp_slots): Work with
2926         the new structure of lists.
2927         (mark_all_temps_used): Removed.
2928         * function.h (struct function): Field x_temp_slots
2929         replaced by x_used_temp_slots and x_avail_temp_slots.
2930         (temp_slots): Replaced by ...
2931         (used_temp_slots, avail_temp_slots): New.
2932         * tree.h (mark_all_temps_used): Declaration removed.
2933
2934         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2935         simplify_using_assignment): Take the expression out of
2936         the expr_list wrapper.
2937
2938         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2939         infinite loops.
2940
2941 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2942
2943         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2944         costs should be based on code size when optimizing for size.
2945
2946 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2947
2948         * fold-const.c: Remove non-printable character 160.
2949
2950 2004-05-19  Nick Clifton  <nickc@redhat.com>
2951
2952         * doc/invoke.texi (ARM Options): Fix typo.
2953         Remove descrption of -mshort-load-bytes and
2954         -mno-short-load-bytes.
2955
2956         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2957         missing parenthesis.
2958         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2959         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2960
2961 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2962
2963         * expr.c (store_constructor): Build loop start and end by hand
2964         instead of via loop functions from stmt.c.
2965         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2966         Remove the code to expand them.
2967
2968         * stmt.c (loop_stack): Remove this and everything related.
2969         (struct nesting, enum nesting_desc): Update.
2970         (expand_fixup): Likewise.
2971         (expand_loop_start, expand_start_loop_continue_elsewhere,
2972         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2973         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2974         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2975         expand_exit_something): Remove.
2976         * tree.h: Remove prototypes.
2977
2978 2004-05-18  Mike Stump  <mrs@apple.com>
2979             Devang Patel  <dpatel@apple.com>
2980
2981         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2982         if this label is for eh.
2983         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2984         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2985         * dwarf2out.c (output_call_frame_info): Likewise.
2986         * output.h (default_emit_unwind_label): Likewise.
2987         * target.h (unwind_label): Likewise.
2988         * varasm.c (default_emit_unwind_label): Likewise.
2989
2990         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2991         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2992         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2993         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2994         DEBUG_RANGES_SECTION): Define.
2995
2996 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2997
2998         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2999         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3000         (cgraph_varpool_node):
3001         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3002         (cgraph_function_possibly_inlined_p): Use the decl itself for
3003         the key, not DECL_ASSEMBLER_NAME.
3004         (change_decl_assembler_name): No need to muck with the hash tables.
3005         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3006         Delete.
3007         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3008         for the key, not DECL_ASSEMBLER_NAME.
3009         * cgraph.h: Remove prototypes of deleted functions.
3010         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3011         (mark_decl_referenced): New function.
3012         * tree.h: Prototype mark_decl_referenced.
3013         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3014         mark_decl_referenced before assemble_name.
3015         * c-decl.c (finish_decl): Use mark_decl_referenced.
3016
3017 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3018             Jeff Law <law@redhat.com>
3019
3020         * tree-ssa-phiopt.c (abs_replacement): New function.
3021         (empty_block_p): New function extracted from...
3022         (candidate_bb_for_phi_optimization): Break out empty block test.
3023         (conditional_replacement): Use empty_block_p.
3024         (value_replacement): Similarly.
3025
3026         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3027         * tree-ssa-phiopt.c: Include flags.h.
3028         (conditional_replacement): Remove argument names from prototype.
3029         Minor formatting and comment fixes.
3030         (tree_ssa_phiopt): If conditional_replacement returns false, then
3031         call value_replacement.
3032         (value_replacement): New function.
3033
3034 2004-05-18  Jeff Law  <law@redhat.com>
3035
3036         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3037         from conditional_replacement.
3038         (candidate_bb_for_phi_optimization): Similarly.
3039         (conditional_replacement): Use replace_phi_with_stmt and
3040         candidate_bb_for_phi_optimization.
3041
3042         * tree-ssa-phiopt.c: Fix various formatting issues.
3043
3044 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3045
3046         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3047         s390_expand_cmpmem): Do not use expand_start_loop and
3048         expand_end_loop, instead build the loop manually.
3049
3050 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3051
3052         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3053         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3054
3055 2004-05-17  Jeff Law  <law@redhat.com>
3056
3057         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3058         * flags.h (flag_delete_null_pointer_checks): Here.
3059         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3060         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3061         (add_phi_arg, remove_phi_arg_num): Similarly.
3062         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3063         property into PHI nodes.
3064         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3065         (record_equivalences_from_phis): If all PHI arguments are known to be
3066         nonzero, then the result must be nonzero as well.
3067         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3068         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3069         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3070         as appropriate.
3071         * tree.h (PHI_ARG_NONZERO): Define.
3072         (phi_arg_d): Add nonzero flag.
3073
3074 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3075
3076         * f: Entire directory removed
3077
3078         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3079         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3080         (g77_integer_type_node, g77_uinteger_type_node)
3081         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3082         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3083         the above set of variables.
3084
3085         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3086         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3087         to g77 manual.
3088
3089 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3090
3091         PR tree-optimization/15438
3092         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3093         attributed functions as pure or const.
3094
3095 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3096
3097         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3098         from source code with errors.
3099
3100 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3101
3102         Enable tree browser for all front ends.
3103         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3104         (BACKEND): ...to here.
3105
3106 2004-05-17  Jan Hubicka  <jh@suse.cz>
3107
3108         * i386.c (construct_container): Do not produce BLKmode registers.
3109         (classify_argument): Properly compute alignment of complex types.
3110
3111 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3112
3113         PR target/15084
3114         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3115         and renamed to movdi_insv_1_rex64.
3116         (insv): Support SImode for 32bit and DImode for 64bit.
3117
3118 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3119
3120         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3121         (TARGET_SWITCHES): Remove debugg.
3122         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3123         TARGET_64BIT.
3124         (subdi3): Replace the define_expand with a define_insn, the latter
3125         renamed from subdi3_internal_3.
3126         (negdi2): Likewise negdi2_internal_2.
3127         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3128         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3129         and associated define_splits.
3130         (adddi3_internal): Renamed from adddi3_internal_3.
3131         (ashldi3_internal): Likewise ashldi3_internal4.
3132         (ashrdi3_internal): Likewise ashrdi3_internal4.
3133         (lshrdi3_internal): Likewise lshrdi3_internal4.
3134
3135 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3136
3137         * optabs.c (expand_unop): Try implementing negation using subtraction
3138         from zero.
3139
3140 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3141
3142         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3143         SAR register.
3144
3145 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3146
3147         PR target/10982
3148         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3149         (ne_zeroextractsi_shifted): New pattern.
3150         (ite_ne_zeroextractsi): New pattern.
3151         (ite_ne_zeroextractsi_shifted): New pattern.
3152
3153 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3154
3155         * c-gimplify.c (c_genericize):
3156         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3157         * c-parse.in <expr_no_commas>: Likewise.
3158         <if_prefix>: Likewise.
3159         <select_or_iter_stmt>: Likewise.
3160         * expr.c (expand_var, expand_expr_real_1): Likewise.
3161         * expr.h (expand_expr): Make it a static inline function.
3162         Move prototype for expand_expr_real up before this.
3163         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3164         Likewise.
3165         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3166         gimplify_asm_expr, gimplify_expr): Likewise.
3167         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3168         dump_function_to_file): Likewise.
3169         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3170         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3171         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3172         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3173         Likewise.
3174         * tree-optimize.c (execute_one_pass): Likewise.
3175         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3176         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3177
3178         * objc/objc-act.c (objc_build_try_enter_fragment,
3179         objc_build_try_epilogue, objc_build_catch_stmt,
3180         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3181         with lang_hooks.foo ().
3182
3183 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3184
3185         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3186         that simplify_builtin doesn't destructively modify its argument.
3187
3188 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3189
3190         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3191         implementations for ARM and Thumb.
3192         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3193
3194 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3195
3196         * prefix.c (update_path): Replace PREFIX with KEY only
3197         when it matches a full directory name in PATH.
3198
3199 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3200
3201         * arm.h (TARGET_APCS_32): Delete.
3202         (TARGET_MMU_TRAPS): Delete.
3203         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3204         define __APCS_26__.
3205         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3206         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3207         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3208         (prog_mode_type): Delete.
3209         (PROMOTE_MODE): Always promote unsigned for HImode.
3210         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3211         (MASK_RETURN_ADDR): Simplify.
3212         * arm.c (arm_prgmode): Delete.
3213         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3214         (print_multi_reg, output_return_instruction): Simplify.
3215         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3216         (arm_return_addr): Simplify.
3217         * arm.md (prog_mode): Delete.
3218         (conds): Simplify.
3219         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3220         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3221         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3222         (loadhi_shiftpredec): Delete.
3223         (peephole for post-increment on HImode load): Delete.
3224         * arm/crtn.asm: (FUNC_END): Simplify.
3225         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3226         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3227         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3228         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3229         MULTILIB_DEFAULTS as required.
3230         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3231         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3232         variables as required.
3233         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3234
3235 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3236
3237         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3238         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3239         count to 8 to handle n_reg > 2.
3240
3241 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3242
3243         * doc/extend.texi: Update WG14 URL.
3244
3245 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3246
3247         * basic-block.h (life_analysis, delete_noop_moves):
3248         Update prototypes.
3249         * bt-load.c (branch_target_load_optimize): Don't take the
3250         insns stream as an argument.  Update the life_analysis calls.
3251         * combine.c (combine_instructions): Update delete_noop_moves
3252         calls.
3253         * flow.c (notice_stack_pointer_modification): Don't take the
3254         insns stream as an argument.  Work on the flow graph.
3255         (life_analysis): Likewise.
3256         (delete_noop_moves): Likewise.
3257         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3258         (rest_of_handle_life): Update life_analysis call.
3259         (rest_of_compilation): Likewise, and also update
3260         branch_target_load_optimize call.
3261         * ra.c (reg_alloc): Update life_analysis call.
3262         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3263         the insns stream as an argument.
3264         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3265         call.
3266         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3267         prototypes.
3268         * value-profile.c (branch_prob): Update life_analysis call.
3269         * web.c (web_main): Work on the CFG, not on the insns stream.
3270
3271         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3272         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3273         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3274
3275 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3276
3277         PR c/15444
3278         * c-format.c (avoid_dollar_number): New function.
3279         (check_format_info_main): Call avoid_dollar_number when operand
3280         numbers might occur but has_operand_number == 0.
3281
3282 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3283
3284         * arm.md (all peephole2 patterns): Use predicates that validate
3285         register classes as appropriate.
3286
3287 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3288
3289         PR opt/14472
3290         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3291         ignore type conversions that do not inhibit tail calling.
3292         (find_tail_calls): Likewise.
3293
3294 2004-05-14  Jeff Law  <law@redhat.com>
3295
3296         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3297         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3298         bypassed virtuals into vars_to_rename just before into-ssa pass.
3299
3300         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3301         so that it picks up more opportunities to eliminate ABS expressions
3302         or turn them into negations.
3303
3304 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3305
3306         * passes.c (rest_of_handle_null_pointer): Remove.
3307         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3308         (rest_of_compilation): Likewise.
3309         * rtl.h (delete_null_pointer_checks): Remove prototype.
3310         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3311         Remove declarations.
3312         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3313         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3314         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3315         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3316         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3317         one_classic_gcse_pass, invalidate_nonnull_info,
3318         delete_null_pointer_checks_1, delete_null_pointer_checks,
3319         expr_reached_here_p_work): Remove.
3320         (gcse_main): Do not perform classic GCSE when optimizing for size.
3321         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3322         are never used.
3323
3324 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3325
3326         PR optimization/14466
3327         * tree-complex.c (make_temp): Remove.
3328         (gimplify_val): Replace make_temp with make_rename_temp
3329         and add NULL as the second argument.
3330         (expand_complex_div_wide): Likewise.
3331         * tree-dfa.c (make_rename_temp): New function.
3332         * tree-flow.h (make_rename_temp): Declare.
3333         * tree-sra.c (make_temp): Remove.
3334         (lookup_scalar): Replace make_temp with make_rename_temp.
3335         (create_scalar_copies): Likewise.
3336         * tree-ssa-phiopt.c (conditional_replacement): When we
3337         get non gimple create a temporary variable to hold the
3338         casted expression.
3339
3340 2004-05-14  Paul Brook  <paul@codesourcery.com>
3341
3342         * stor-layout.c (update_alignment_for_field): Use
3343         targetm.align_anon_bitfield.
3344         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3345         (TARGET_INITIALIZER): Use it.
3346         * target.h (struct gcc_target): Add align_anon_bitfield.
3347         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3348         (TARGET_ALIGN_ANON_BITFIELD): Define.
3349         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3350
3351 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3352
3353         * tree.def (documentation): Remove mention of class 'b'.
3354         (BLOCK): Now in class 'x'.
3355         * c-common.c (verify_tree): Remove case 'b'.
3356         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3357         * calls.c (calls_function_1): Control cannot get past the switch
3358         when exp is a BLOCK.
3359         * print-tree.c (print_node): Move code for class 'b' to the class
3360         'c'/'x' switch, as case BLOCK.
3361         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3362         (unsafe_for_reeval, substitute_placeholder_in_expr)
3363         (stabilize_reference_1): Remove case 'b'.
3364         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3365         of something being 'b' to tests for TREE_CODE of something being
3366         BLOCK.
3367         * tree-ssa-operands.c (get_expr_operands): Likewise.
3368
3369 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3370
3371         * tree-gimple.c: Rename from tree-simple.c.
3372         * tree-gimple.h: Rename from tree-simple.h.
3373         * c-gimplify.c: Rename from c-simplify.c
3374         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3375         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3376         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3377         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3378         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3379         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3380         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3381         Update.
3382
3383 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3384
3385         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3386
3387 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3388
3389         * tree-ssa.c (delete_tree_ssa): XFREE
3390         bitmaps allocated with BITMAP_XMALLOC.
3391
3392         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3393         idfs_cache at the end of the function.
3394
3395         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3396         at the end of the function.
3397
3398         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3399         el at the end of the function.
3400
3401         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3402         bitmaps allocated with BITMAP_XMALLOC.
3403
3404         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3405         the end.
3406
3407         * final.c (shorten_branches): Free uid_shuid before
3408         reallocating it.
3409
3410         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3411
3412 2004-05-13  Jeff Law  <law@redhat.com>
3413
3414         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3415         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3416         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3417
3418         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3419         rather than iterating through the blocks testing each bit in
3420         livein to initialize the worklist.
3421         (mark_def_sites): Remove useless checks of KILLS for virtual
3422         operands.
3423
3424         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3425         new parameters for the statement and variable worklist as well
3426         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3427         worklist recording interesting variables in the variable worklist
3428         and bitmap.  Handle casts between integral and boolean types.
3429         (substitute_single_use_vars): Accept new parameters for the statement
3430         and variable worklist.  When a substitution is made add a new
3431         entry to the statement worklist.  Handle casts between integral
3432         and boolean types.
3433         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3434         worklists to children.  Iterate until the statement worklist
3435         is empty.
3436
3437 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3438
3439         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3440         the end of the block.
3441
3442         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3443         with BITMAP_XMALLOC.
3444
3445         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3446         with BITMAP_XMALLOC.
3447
3448         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3449         Free nonzero_vars at the end of the function.
3450
3451         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3452         need to generate code instead of a NOP_EXPR.
3453
3454 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3455
3456         * gcc.c (default_compilers): Fill out initializers for new Fortran
3457         entries.
3458
3459 2004-05-13  Paul Brook  <paul@codesourcery.com>
3460
3461         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3462
3463 2004-05-13  Paul Brook  <paul@codesourcery.com>
3464
3465         * config/arm/arm.c (arm_default_short_enums): New function.
3466         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3467
3468 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3469
3470         Merge from tree-ssa-20020619-branch.
3471
3472         * Makefile.in (reload1.o-warn): Add.
3473         (tree-alias-ander.o-warn): Add.
3474         (GMPLIBS): Define.
3475         (GMPINC): Define.
3476         (BANSHEELIB): Define.
3477         (BANSHEEINC): Define.
3478         (TREE_DUMP_H): Define.
3479         (TREE_SIMPLE_H): Define.
3480         (TREE_FLOW_H): Define.
3481         (LIBDEPS): Add BANSHEELIB.
3482         (INCLUDES): Add BANSHEEINC and GMPINC.
3483         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3484         c-mudflap.o and c-pretty-print.o.
3485         (C_OBJS): Remove c-pretty-print.o.
3486         (OBJS-common): Remove sibcall.o.
3487         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3488         tree-ssa.o, tree-optimize.o, tree-simple.o,
3489         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3490         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3491         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3492         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3493         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3494         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3495         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3496         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3497         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3498         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3499         tree-profile.o.
3500         (OBJC-archive): Add tree-nomudflap.o.
3501         (cc1): Add dependency on @TREEBROWSER@.
3502         (c-decl.o): Add dependency on TREE_DUMP_H.
3503         (c-dump.o): Likewise.
3504         (c-common.o): Add dependency on tree-iterator.h
3505         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3506         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3507         (tree.o): Add dependency on tree-iterator.h,
3508         BASIC_BLOCK_H and TREE_FLOW_H.
3509         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3510         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3511         (tree-alias-type.o, tree-alias-ander.o,
3512         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3513         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3514         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3515         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3516         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3517         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3518         tree-nested.o, tree-iterator.o, tree-dfa.o,
3519         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3520         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3521         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3522         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3523         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3524         tree-sra.o, tree-complex.o, tree-profile.o,
3525         rtl-profile.o): New rules.
3526         (function.o): Add dependency on basic-block.h
3527         (expr.o): Add dependency on tree-iterator.h.
3528         (sibcall.o): Remove.
3529         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3530         (cfg.o): Add dependency on TIMEVAR_H.
3531         (cfghooks.o): Add dependency on TREE_FLOW_H.
3532         (reg-stack.o): Add dependency on basic-block.h.
3533         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3534         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3535         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3536         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3537         tree-alias-type.h, tree-alias-common.h,
3538         tree-alias-type.c, tree-alias-common.c,
3539         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3540         rtl-profile.c and tree-nested.c.
3541         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3542         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3543         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3544         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3545         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3546         * basic-block.h: Include predict.h
3547         (struct edge_def): Add GTY marker.
3548         Change field 'insns' to be a union of tree and rtx.
3549         (EDGE_TRUE_VALUE): Define.
3550         (EDGE_FALSE_VALUE): Define.
3551         (EDGE_EXECUTABLE): Define.
3552         (struct bb_ann_d): Forward declare.
3553         (struct basic_block_def): Add GTY marker.
3554         Remove fields head_tree and end_tree.
3555         Add fields stmt_list, rbi and tree_annotations.
3556         (struct reorder_block_def): Define.
3557         (basic_block_info): Add GTY marker.
3558         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3559         variables instead of macros.
3560         (flow_call_edges_add): Remove declaration.
3561         (make_eh_edge): Remove declaration.
3562         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3563         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3564         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3565         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3566         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3567         (try_redirect_by_replacing_jump): Modfiy return type to
3568         edge instead of bool.
3569         * bb-reorder.c (copy_bb): Call duplicate_block
3570         instead of cfg_layout_duplicate_bb.
3571         (copy_bb_p): Call can_duplicate_block_p instead of
3572         cfg_layout_can_duplicate_bb_p.
3573         * bitmap.c (bitmap_first_set_bit): Abort if word
3574         wasn't found.
3575         (bitmap_last_set_bit): Likewise.
3576         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3577         (DEF_FUNCTION_TYPE_3): Add.
3578         * builtins.c (c_strlen): Make extern.
3579         (builtin_save_expr): New.
3580         (expand_builtin_nonlocal_goto): New.
3581         (expand_builtin_constant_p): Remove.
3582         (expand_builtin_mathfn): Call builtin_save_expr instead
3583         of save_expr.
3584         (expand_builtin_mathfn_2): Likewise.
3585         (expand_builtin_strcmp): Likewise.
3586         (expand_builtin_strncmp): Likewise.
3587         (expand_builtin_strcat): Likewise.
3588         (fold_builtin_cabs): Likewise.
3589         (expand_builtin_alloca): Don't trigger if -fmudflap is
3590         given.
3591         (build_string_literal): Set TREE_INVARIANT on new node.
3592         (expand_builtin_profile_fun): New.
3593         (round_trampoline_addr): New.
3594         (expand_builtin_init_trampoline): New.
3595         (expand_builtin_adjust_trampoline): New.
3596         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3597         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3598         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3599         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3600         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3601         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3602         Handle.
3603         (fold_builtin_expect): New.
3604         (fold_builtin_isascii): Don't return non-constant results
3605         in GIMPLE form.
3606         (fold_builtin_isdigit): Likewise.
3607         (fold_builtin_1): New.
3608         (fold_builtin): Call it.
3609         (build_function_call_expr): Update call to build a new
3610         CALL_EXPR.
3611         (purge_builtin_constant_p): Remove.
3612         (simplify_builtin, simplify_builtin_memcmp,
3613         simplify_builtin_strcmp, simplify_builtin_strncmp,
3614         simplify_builtin_strpbrk, simplify_builtin_strstr,
3615         simplify_builtin_strchr, simplify_builtin_strrchr,
3616         simplify_builtin_strcat, simplify_builtin_strncat,
3617         simplify_builtin_strspn, simplify_builtin_strcspn,
3618         simplify_builtin_next_arg, simplify_builtin_va_start,
3619         simplify_builtin_sprintf): New.
3620         * builtins.def (BUILT_IN_STACK_ALLOC,
3621         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3622         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3623         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3624         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3625         * c-common.c: Include tree-iterator.h and hashtab.h.
3626         (lang_statement_code_p): Declare.
3627         (lang_gimplify_stmt): Declare.
3628         (fix_string_type): Set TREE_INVARIANT for value.
3629         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3630         (c_type_hash): New.
3631         (c_common_get_alias_set): Handle multiple type nodes
3632         referring to "the same" type, currently for C90 only.
3633         (c_add_case_label): Use create_artificial_label.
3634         (finish_label_address_expr): Don't set TREE_CONSTANT on
3635         result.
3636         (c_expand_expr): Don't handle STMT_EXPR.
3637         (handle_alias_attribute): Marke aliased variables to be
3638         TREE_STATIC.
3639         (handle_nonnull_attribute): Initialize arg_num.
3640         (check_function_nonnull): Likewise.
3641         (c_walk_subtrees): New.
3642         (c_estimate_num_insns_1): Don't handle
3643         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3644         (c_decl_uninit_1): Remove.
3645         (c_decl_uninit): Remove.
3646         (c_warn_unused_result): New.
3647         * c-common.def (ASM_STMT): Change number of operands
3648         to 4.
3649         (FILE_STMT): Remove.
3650         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3651         Remove.
3652         (lang_gimplify_stmt): Add.
3653         (expand_stmt): Remove.
3654         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3655         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3656         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3657         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3658         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3659         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3660         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3661         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3662         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3663         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3664         genrtl_compound_stmt, genrtl_asm_stmt,
3665         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3666         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3667         c_tree_chain_matters_p, c_warn_unused_result,
3668         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3669         Declare.
3670         * c-convert.c (convert): Make convert work when
3671         converting to compatible types across translation unit.
3672         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3673         tree-simple.h, diagnostic.h and tree-dump.h
3674         (merge_decls): Initialize oldtype to NULL.
3675         (finish_decl): Use DECL_HARD_REGISTER instead of
3676         DECL_C_HARD_REGISTER.
3677         (check_bitfield_type_and_width): Check for null
3678         lang_type_specific when check the precision of an enum.
3679         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3680         in a pointer-to-array declarator.
3681         (finish_struct): Clear allocated struct lang_type.
3682         (finish_enum): Set enum_min and enum_max.  Set
3683         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3684         not to the enumerators.
3685         (set_decl_nonlocal): New.
3686         (store_parm_decls): Use it via walk_tree.
3687         (c_finalize): New.
3688         (finish_function): When !targetm.have_ctors_dtors,
3689         record static constructors and destructors here...
3690         (c_expand_body_1): ... not here.
3691         (c_expand_decl): Rename from c_expand_decl_stmt.
3692         Handle all C-specific expansion semantics.
3693         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3694         STMT_LINENO.
3695         * c-format.c (handle_format_arg_attribute): Initialize
3696         format_num.
3697         * c-lang.c: Include tree-inline.h
3698         (LANG_HOOKS_EXPAND_DECL,
3699         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3700         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3701         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3702         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3703         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3704         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3705         (c_types_compatible_p): New.
3706         * c-mudflap.c: New file.
3707         * c-objc-common.c: Include tree-mudflap.h
3708         (start_cdtor, finish_cdtor): Collapse
3709         together into
3710         (build_cdtor): ...here.  Update to construct a complete tree
3711         for the function.  No need to call push_scope, pop_scope, or
3712         clear_last_expr, or set current_function_cannot_inline.
3713         (c_missing_noreturn_ok_p): Change prototype to return
3714         bool.
3715         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3716         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3717         opts.c.
3718         (c_common_post_options): Don't ever use rtl inlining.
3719         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3720         * c-pragma.c (handle_pragma_redefine_extname): Define
3721         always.
3722         (init_pragma): Activate #pragma redefine_extname for mudflap.
3723         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3724         (pp_c_initializer): Accept any type CONSTRUCTOR.
3725         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3726         COMPLEX_TYPE.
3727         (decl_name_str): New local function.
3728         (pp_c_direct_declarator): Call it.
3729         (pp_c_primary_expression): Call it.
3730         (pp_c_id_expression): Call it.
3731         (pp_c_statement): Call it.
3732         (print_c_tree): Create new pp object.
3733         * c-pretty-print.h (pp_c_tree_decl_identifier,
3734         print_c_tree): Declare.
3735         * c-semantics.c: Include langhooks.h
3736         (lang_expand_stmt, lang_expand_decl_stmt,
3737         find_reachable_label_1, find_reachable_label,
3738         expand_unreachable_if_stmt, expand_unreachable_stmt,
3739         genrtl_do_stmt_1): Remove.
3740         (begin_stmt_tree): Don't check for changed filename.
3741         Call annotate_with_locus.
3742         (finish_stmt_tree): Don't set line for end of function.
3743         (build_stmt): Don't check type nodes for
3744         side effects.
3745         (build_stmt): Set TREE_SIDE_EFFECTS.
3746         Set EXPR_LOCUS instead of STMT_LINENO.
3747         (lang_expand_stmt, lang_expand_decl_stmt,
3748         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3749         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3750         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3751         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3752         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3753         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3754         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3755         find_reachable_label_1, expand_unreachable_if_stmt,
3756         expand_unreachable_stmt): Remove.
3757         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3758         * c-simplify.c: New file.
3759         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3760         (struct lang_type): Add fields enum_min and enum_max.
3761         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3762         (c_expand_decl, c_missing_noreturn_ok_p,
3763         c_types_compatible_p): Declare.
3764         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3765         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3766         (default_function_array_conversion): Rely on build to
3767         set TREE_CONSTANT.
3768         (parser_build_binary_op, pointer_diff): Likewise.
3769         (build_unary_op, build_binary_op): Likewise.
3770         (build_array_ref):
3771         (build_external_ref): Set TREE_INVARIANT.
3772         (build_c_cast, pop_init_level): Likewise.
3773         (process_init_element): Use ASM_VOLATILE_P.
3774         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3775         (c_finish_case): Call c_do_switch_warnings.
3776         * c.opt (fdump-): Remove.
3777         * calls.c (try_to_integrate): Remove.
3778         (prepare_call_address): Replace fndecl arg with a
3779         precomputed static chain value.
3780         (emit_call_1): New argument for full call expr.
3781         (flags_from_decl_or_type): Call special_function_p.
3782         (initialize_argument_information): Add argument
3783         may_tailcall.
3784         (purge_reg_equiv_notes): New.
3785         (expand_call): Do not try to expand calls inline.
3786         (fixup_tail_calls): New.
3787         * cfg.c: Include timevar.h and ggc.h.
3788         (bb_pool, edge_pool): Remove.
3789         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3790         (entry_exit_blocks): Remove.
3791         (rbi_pool): Declare.
3792         (init_flow): Do not create pools.
3793         Allocate entry/exit block.
3794         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3795         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3796         (unlink_block): Clear b->prev_bb and b->next_bb.
3797         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3798         (dump_flow_info): Work on trees too.
3799         (dump_cfg_bb_info): New.
3800         (brief_dump_cfg): New.
3801         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3802         (find_edge): New.
3803         * cfgbuild.c (rtl_make_eh_edge): Rename from
3804         make_eh_edge.  Update all users.
3805         (find_basic_blocks): Don't call VARRAY_FREE on
3806         basic_block_info.
3807         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3808         and newpos2.
3809         (delete_unreachable_blocks): Return changed status.
3810         (merge_seq_blocks): New.
3811         * cfghooks.c: Include tree-flow.h
3812         (tree_register_cfg_hooks, ir_type): New.
3813         (redirect_edge_and_branch): Change return type to edge.
3814         (predict_edge, predicted_by_p, can_duplicate_block_p,
3815         duplicate_block, block_ends_with_call_p,
3816         block_ends_with_condjump_p, flow_call_edges_add): New.
3817         * cfghooks.h (redirect_edge_and_branch): Change return
3818         type to edge.
3819         (predict_edge, predicted_by_p, can_duplicate_block_p,
3820         duplicate_block, block_ends_with_call_p,
3821         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3822         (redirect_edge_and_branch): Change return type to edge.
3823         (struct cfg_hooks): Add fields block_ends_with_call_p,
3824         block_ends_with_condjump_p, flow_call_edges_add,
3825         predict_edge, predicted_by_p, can_duplicate_block_p and
3826         duplicate_block.
3827         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3828         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3829         (fixup_reorder_chain): Use initialize_bb_rbi.
3830         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3831         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3832         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3833         (insn_locators_initialize): Use new info about blocks.
3834         * cfglayout.h (typedef struct reorder_block_def): Moved to
3835         basic_block.h.
3836         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3837         removed.
3838         * cfgloop.c: Include tree.h and tree-flow.h.
3839         * cfgloop.h (create_loop_notes): Declare.
3840         * cfgloopmanip.c (create_loop_notes): New.
3841         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3842         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3843         and duplicate_block fields.
3844         (create_basic_block_structure): Don't look at
3845         RTX_INTEGRATED_P.
3846         (rtl_block_ends_with_call_p): New.
3847         (rtl_block_ends_with_condjump_p): New.
3848         (need_fake_edge_p): Moved from cfganal.c.
3849         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3850         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3851         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3852         (cfg_layout_rtl_cfg_hooks): Ditto.
3853         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3854         functions to be reachable.
3855         * cgraphunit.c (decide_is_function_needed):
3856         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3857         inline functions don't need to be output.
3858         (cgraph_assemble_pending_functions): Don't do anything
3859         special for nested functions.
3860         (cgraph_mark_functions_to_output): Likewise.
3861         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3862         (cgraph_analyze_function): Use estimate_num_insns.
3863         (cgraph_mark_functions_to_output): Likewise.
3864         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3865         (cgraph_expand_function): Allow functions to not be
3866         emitted.
3867         (cgraph_remove_unreachable_nodes):
3868         (cgraph_recursive_inlining_p): Simplify.
3869         (lookup_recursive_calls,
3870         cgraph_decide_recursive_inlining): New.
3871         (cgraph_decide_inlining_*): Update calls of
3872         cgraph_mark_inline.
3873         * combine.c (get_pos_from_mask): Always set *plen.
3874         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3875         ftree-based-profiling, ftree-ccp, ftree-ch,
3876         ftree-combine-temps, ftree-copyrename, ftree-dce,
3877         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3878         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3879         ftree-lrs): Add.
3880         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3881         Undefine.
3882         * configure.ac: Add --enable-tree-browser option.
3883         Add --with-libbanshee option.
3884         Add GMPLIBS and GMPINC.
3885         * configure: Regenerate.
3886         * coverage.c (tree_ctr_tables): New.
3887         (coverage_counter_alloc): Use it.
3888         (build_ctr_info_value): Ditto.
3889         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3890         (tree_coverage_counter_ref): New.
3891         * coverage.h (coverage_counter_ref): Remove declaration.
3892         (rtl_coverage_counter_ref): Declare.
3893         (tree_coverage_counter_ref): Declare.
3894         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3895         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3896         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3897         (struct cse_basic_block_data): Rename enum values to not
3898         conflict with profile.h; update all uses.
3899         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3900         in comments.
3901         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3902         * diagnostic.h (debug_output_buffer, dump_generic_node,
3903         print_generic_stmt, print_generic_stmt_indented,
3904         print_generic_expr, print_generic_decl,
3905         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3906         Declare.
3907         * dominance.c: Cache immediate dominators.
3908         * domwalk.c: New file.
3909         * domwalk.h: New file.
3910         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3911         (gen_subprogram_die): Generate a DIE for a named
3912         return value.
3913         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3914         (add_location_or_const_value_attribute): Likewise.
3915         (add_bound_info): Likewise.
3916         (gen_decl_die): Likewise.
3917         * emit-rtl.c (maybe_set_first_label_num): New.
3918         (copy_most_rtx): Don't copy the integrated flag.
3919         Copy the new return_val flag.
3920         * et-forest.c (MAX_NODES): Define.
3921         (record_path_before_1): Abort if len is greater than
3922         MAX_NODES.
3923         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3924         gen_eh_region_catch, gen_eh_region_allowed,
3925         gen_eh_region_must_not_throw, get_eh_region_number,
3926         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3927         set_eh_region_tree_label, expand_resx_expr): New.
3928         (expand_eh_region_start, expand_start_catch): Use them.
3929         (expand_end_catch): Tidy.
3930         (note_eh_region_may_contain_throw): Take region argument.
3931         (note_current_region_may_contain_throw): New.
3932         (get_exception_filter): Export.
3933         (collect_eh_region_array): Export.
3934         (remove_unreachable_regions): Check ERT_TRY based on reachability
3935         of catches, not reachability of continue_label.  Never remove
3936         ERT_MUST_NOT_THROW regions.
3937         (collect_rtl_labels_from_trees): New.
3938         (convert_from_eh_region_ranges): Use it.
3939         (connect_post_landing_pads): Handle dying cleanups.
3940         (struct reachable_info): Add callback data.
3941         (add_reachable_handler): Invoke the callback.
3942         (foreach_reachable_handler): New.
3943         (reachable_handlers): Use it.
3944         (arh_to_landing_pad, arh_to_label): New.
3945         (can_throw_internal_1): Split out from can_throw_internal.
3946         (can_throw_external_1): Similarly.
3947         * except.h: Update.
3948         * explow.c (emit_stack_save): Remove savearea mode check.
3949         (update_nonlocal_goto_save_area): New.
3950         (allocate_dynamic_stack_space): Use it.
3951         (probe_stack_range): Never emit loop notes.
3952         * expmed.c (extract_fixed_bit_field): Always propagate the
3953         target for the shift if it is a REG.
3954         * expr.c: Include tree-iterator.h
3955         (is_zeros_p): Remove.
3956         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3957         (count_type_elements): New.
3958         (mostly_zeros_p): Use them.
3959         (expr_wfl_stack): Remove.
3960         (convert_move): Do nothing if to and from are the same.
3961         (emit_block_move_via_loop): Don't emit LOOP notes.
3962         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3963         (emit_move_insn_1): Don't generate inline warnings.
3964         (expand_vars, expand_var): Split from ...
3965         (expand_expr_1): ... here.
3966         (expand_expr_real, expand_expr_real_1):  Use new macros
3967         EXPR_LOCATION and EXPR_HAS_LOCATION.
3968         * expr.h (simplify_builtin_fputs,
3969         simplify_builtin_strcpy, simplify_builtin_strncpy,
3970         expand_var, fixup_tail_calls,
3971         update_nonlocal_goto_save_area): Declare.
3972         (lookup_static_chain, expand_inline_function,
3973         mark_seen_cases): Remove.
3974         (prepare_call_address): Change type of 2nd argument to
3975         rtx.
3976         * final.c (profile_function): Update static chain test.
3977         (final): Don't look at RTX_INTEGRATED_P.
3978         * flags.h (flag_mudflap, flag_mudflap_threads,
3979         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3980         flag_tree_dce, flag_tree_combine_temps,
3981         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3982         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3983         flag_tree_points_to): Declare.
3984         (enum pta_type): Declare.
3985         * flow.c (lang_missing_noreturn_ok_p): Remove.
3986         (check_function_return_warnings): Remove.
3987         (update_life_info): Update comments.
3988         (free_basic_block_vars): Don't call VARRAY_FREE for
3989         basic_block_info.
3990         (regno_uninitialized): Remove.
3991         * fold-const.c (int_const_binop): Make extern.
3992         (non_lvalue): Rely on build to set TREE_CONSTANT.
3993         (operand_equal_p): Replace only_const argument with
3994         flags.  Allow pure functions if OEP_PURE_SAME.
3995         (fold): Use OEP_ONLY_CONST.
3996         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3997         boolean type.
3998         (fold_relational_hi_lo,
3999         nondestructive_fold_binary_to_constant,
4000         nondestructive_fold_unary_to_constant,
4001         fold_read_from_constant_string): New.
4002         * function.c (struct function): Remove calls_constant_p.
4003         (current_function_calls_constant_p): Remove.
4004         (inline_function_decl): Remove.
4005         (put_var_into_stack): Don't use it.
4006         (fix_lexical_addr): Likewise.
4007         (inline_function_decl): Remove extern declaration.
4008         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4009         (trampolines_created): Move to varasm.c.
4010         (free_after_compilation): Update for removed fields.
4011         (allocate_struct_function): Likewise.
4012         (delete_handlers, lookup_static_chain): Remove.
4013         (fix_lexical_addr): Don't consider non-local variable refs.
4014         (trampoline_address): Remove.
4015         (round_trampoline_addr): Move to builtins.c.
4016         (adjust_trampoline_addr): Remove.
4017         (expand_function_start): Update for changes to static chain
4018         and nonlocal goto handling.
4019         (initial_trampoline): Move to varasm.c.
4020         (expand_function_end): Don't build trampolines or kill
4021         unreferenced nonlocal goto labels.
4022         (free_after_compilation): Don't set it.
4023         (expand_function_end): Likewise.
4024         (setjmp_vars_warning): Rename from
4025         uninitialized_vars_warning, remove uninitialized vars warning.
4026         (uninitialized_vars_warning): Remove old comment
4027         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4028         and do not call the langhook.
4029         (expand_function_start, expand_function_end): Don't do
4030         function instrumentation here.
4031         (clear_block_marks): Rename from reorder_blocks_0, export.
4032         (blocks_nreverse): Export.
4033         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4034         of rtl.
4035         (reset_block_changes, record_block_change, finalize_block_changes,
4036         check_block_change, free_block_changes): New functions.
4037         (assign_parms): Setting of current_function_stdarg
4038         moved ...
4039         (allocate_struct_function): ... here.
4040         * function.h (struct function): Remove x_nonlocal_labels,
4041         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4042         x_context_display, x_trampoline_list, needs_context.
4043         Add static_chain_decl, nonlocal_goto_save_area.
4044         (struct function): Remove x_clobber_return_insn.
4045         Add tail_call_emit field, last_label_uid,
4046         unexpanded_var_list, dont_emit_block_notes,
4047         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4048         (clear_block_marks): Declare.
4049         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4050         (mfwrap_spec, mflib_spec): Declare.
4051         (cpp_unique_options, cc1_options): Ditto.
4052         (default_compilers): Add .F and .f90.
4053         (static_specs): Add mfwrap and mflib.
4054         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4055         CONSTANT_RTX_P.
4056         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4057         Update to match insns field in struct edge_def.
4058         * gdbinit.in (pgs, pge): Define.
4059         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4060         instead of the integrated flag.
4061         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4062         * gengtype-yacc.y (bitfieldlen): Add empty action.
4063         (struct_fields): Accept unnamed bitfields.
4064         (bitfieldlen): Split from ...
4065         (bitfieldopt): ... here.
4066         * gengtype.c (ifiles): Add tree-alias-type.h and
4067         tree-flow.h.
4068         * genrecog.c (validate_pattern): Do not handle
4069         CONSTANT_P_RTX.
4070         * gimple-low.c: New file.
4071         * gimplify.c: New file.
4072         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4073         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4074         * ifcvt.c (dead_or_predicable): Initialize local variable
4075         'earliest'.
4076         * input.h (expr_wfl_stack): Remove.
4077         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4078         (setup_initial_hard_reg_value_integration): Likewise.
4079         (initialize_for_inline): Likewise.
4080         (note_modified_parmregs): Likewise.
4081         (integrate_parm_decls): Likewise.
4082         (process_reg_param): Likewise.
4083         (save_parm_insns): Likewise.
4084         (copy_insn_list): Likewise.
4085         (copy_insn_notes): Likewise.
4086         (compare_blocks): Likewise.
4087         (find_block): Likewise.
4088         (inlining): Likewise.
4089         (function_cannot_inline_p): Likewise.
4090         (parmdecl_map): Likewise.
4091         (in_nonparam_insns): Likewise.
4092         (save_for_inline): Likewise.
4093         (FIXED_BASE_PLUS): Likewise.
4094         (expand_inline_function): Likewise.
4095         (copy_rtx_and_substitute): Don't look at map->integrating,
4096         map->inline_target, and inlining, since we are never copying
4097         for integrating.
4098         Don't abort on RTX_INTEGRATED_P.
4099         (old_fun): Remove.
4100         (output_inline_function): Remove.
4101         * integrate.h (struct inline_map): Remove fields integrating,
4102         block_map, leaf_reg_map, inline_target, and local_return_label.
4103         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4104         copy_loop_headers, never_reached_warning): Removed.
4105         (any_uncondjump_p): Reject nonlocal goto.
4106         * langhooks-def.h (lhd_types_compatible_p,
4107         lhd_expand_decl, lhd_gimplify_expr): Declare.
4108         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4109         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4110         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4111         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4112         LANG_HOOKS_GIMPLIFY_EXPR,
4113         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4114         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4115         LANG_HOOKS_GIMPLIFY_EXPR,
4116         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4117         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4118         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4119         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4120         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4121         LANG_HOOKS_DECL_UNINIT,
4122         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4123         * langhooks.c: Include tree-simple.h.
4124         (lhd_expand_decl): New.
4125         (lhd_types_compatible_p): New.
4126         (lhd_decl_uninit): Remove.
4127         (lhd_gimplify_expr): New.
4128         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4129         Remove.
4130         (struct lang_hooks_for_functions): Add field
4131         missing_noreturn_ok_p.
4132         (struct lang_hooks): Add field expand_decl,
4133         types_compatible_p, gimplify_expr and
4134         gimple_before_inlining.
4135         Remove fields decl_uninit and rtl_expand
4136         * opts.c (decode_options): Set flag_tree_ccp,
4137         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4138         flag_tree_pre, flag_tree_ter,
4139         flag_tree_live_range_split, flag_tree_sra,
4140         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4141         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4142         OPT_fmudflapth, OPT_fmudflapir,
4143         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4144         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4145         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4146         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4147         OPT_ftree_points_to_ and OPT_ftree_pre.
4148         * output.h (regno_uninitialized, find_basic_blocks,
4149         cleanup_cfg, delete_unreachable_blocks,
4150         check_function_return_warnings): Remove.
4151         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4152         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4153         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4154         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4155         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4156         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4157         Define.
4158         * passes.c (rest_of_decl_compilation):
4159         (rest_of_handle_sibling_calls): Remove.
4160         (rest_of_handle_inlining): Remove.
4161         (rest_of_handle_gcse): Do not run
4162         purge_builtin_constant_p.
4163         (rest_of_compilation): Update.
4164         Do not call copy_loop_headers.
4165         Do rtl-based profiling only when
4166         !flag_tree_based_profiling.  Register rtl-based profiling
4167         hooks.
4168         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4169         (predicted_by_p): Rename to ...
4170         (rtl_predicted_by_p): .. this one; make global
4171         (tree_predicted_by_p): New.
4172         (dump_prediction): Add FILE argument.
4173         (predict_edge): Rename to ...
4174         (rtl_predict_edge): .. this one.
4175         (tree_predict_edge): New.
4176         (combine_predictions_for_insn): Update calls of predict_edge.
4177         (predict_loops): Break out from ...
4178         (estimate_probability): ... here; update comments; move updating
4179         of unknown probabilities from ...
4180         (estimate_bb_frequencies): ... here.
4181         (combine_predictions_for_bb): New.
4182         (tree_predict_by_opcode): New.
4183         (tree_estimate_probability): New.
4184         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4185         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4186         * predict.h: Add include guard.
4187         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4188         * pretty-print.c (pp_write_text_to_stream): Make extern.
4189         * pretty-print.h (pp_write_text_to_stream): Declare.
4190         * print-rtl.c (print_rtx): Don't print the integrated flag.
4191         Print the return_val flag.
4192         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4193         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4194         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4195         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4196         * profile.c: Include cfghooks.h, tree-flow.h.
4197         (profile_hooks): New.
4198         (profile_dump_file): New.
4199         (instrument_edges): Use hooks instead of RTL-specific code.
4200         (instrument_values): Ditto.
4201         (get_exec_counts): Ditto.
4202         (compute_branch_probabilities): Ditto.
4203         (compute_value_histograms): Ditto.
4204         (branch_prob): Ditto.
4205         (find_spanning_tree): Ditto.
4206         (end_branch_prob): Ditto.
4207         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4208         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4209         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4210         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4211         (tree_register_profile_hooks): New.
4212         (rtl_register_profile_hooks): New.
4213         * ra-rewrite.c (rewrite_program): Clear variable info.
4214         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4215         * regs.h: Add include guards.
4216         * reload.c (decompose): Clear val using memset.
4217         * rtl.def (CONSTANT_P_RTX): Remove.
4218         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4219         (copy_loop_headers): Remove.
4220         (struct rtx_def): Replace the integrated flag with the
4221         return_val flag.
4222         (maybe_set_first_label_num): Declare.
4223         (init_branch_prob): Move declaration to value-prof.h.
4224         (end_branch_prob): Ditto.
4225         (branch_prob): Ditto.
4226         (never_reached_warning): Don't declare it.
4227         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4228         (hoist_insn_to_edge): Update to match field insns in
4229         struct edge_def.
4230         * sbitmap.c (sbitmap_realloc): New.
4231         * sbitmap.h (sbitmap_realloc): Declare.
4232         * sibcall.c: Remove file.
4233         * simplify-rtx.c (simplify_rtx): Do not handle
4234         CONSTANT_P_RTX.
4235         * stmt.c (parse_output_constraint): Don't warn for read-write
4236         memory operand.
4237         (tail_recursion_args): Use types_compatible_p langhook.
4238         (force_label_rtx): Don't look at inline_function_decl.
4239         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4240         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4241         (declare_nonlocal_label): Remove.
4242         (expand_goto): Don't handle nonlocal gotos.
4243         (expand_nl_handler_label): Remove.
4244         (expand_nl_goto_receivers): Remove.
4245         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4246         update_nonlocal_goto_save_area.
4247         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4248         (warn_if_unused_value): Likewise.
4249         (expand_start_loop, expand_loop_continue_here,
4250         expand_end_loop): Don't create loop notes.
4251         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4252         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4253         (expand_end_case_type): Don't do warn_switch handling.
4254         (pushcase, pushcase_range) Update add_case_node calls.
4255         (add_case_node): Add dont_expand_label argument.
4256         (same_case_target_p): Don't search rtl.
4257         (expand_start_bindings_and_block, expand_end_bindings):
4258         Don't emit block notes when dont_emit_block_notes.
4259         (using_eh_for_cleanups_p): Export.
4260         (expand_return): Allow any typed rhs.
4261         (expand_stack_alloc): New.
4262         (expand_stack_save, expand_stack_restore): New.
4263         (containing_blocks_have_cleanups_or_stack_level): New
4264         function.
4265         (asm_op_is_mem_input): New fn.
4266         (expand_asm_expr): New fn.
4267         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4268         nodes.
4269         * stor-layout.c (layout_type): Just return if type is
4270         error_mark_node.
4271         (update_alignment_for_field): Export.
4272         (variable_size): We don't care about global_bindings_p if
4273         the frontend doesn't want a list of the expressions.
4274         * system.h: Poison INTEGRATE_THRESHOLD.
4275         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4276         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4277         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4278         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4279         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4280         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4281         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4282         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4283         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4284         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4285         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4286         TV_CONTROL_DEPENDENCES): Define.
4287         * toplev.c: Include tree-alias-common.h
4288         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4289         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4290         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4291         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4292         flag_tree_combine_temps, flag_tree_ter,
4293         flag_tree_live_range_split, flag_tree_dom,
4294         flag_tree_copyrename, flag_tree_dse): Declare.
4295         (f_options): Add tree-based-profiling, tree-gvn,
4296         tree-pre, tree-ccp, tree-dce,
4297         tree-dominator-opts, tree-copyrename, tree-dse,
4298         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4299         (wrapup_global_declarations): Don't output nested inlined functions.
4300         (general_init): Call init_tree_optimization_passes.
4301         (process_options): Sorry for -ftree-based-profiling plus
4302         -ftest-coverage or -fprofile-values.
4303         * toplev.h (init_tree_optimization_passes,
4304         flag_tree_based_profiling): Declare.
4305         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4306         * tree-alias-ander.c: New file.
4307         * tree-alias-ander.h: New file.
4308         * tree-alias-common.c: New file.
4309         * tree-alias-common.h: New file.
4310         * tree-alias-type.c: New file.
4311         * tree-alias-type.h: New file.
4312         * tree-browser.c: New file.
4313         * tree-browser.def: New file.
4314         * tree-cfg.c: New file.
4315         * tree-complex.c: New file.
4316         * tree-dfa.c: New file.
4317         * tree-dump.c (dump_enable_all): New.
4318         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4319         (dump_node): Remove const from field suffix and swtch.
4320         (dump_files): Add null entry, .generic, .nested, .vcg,
4321         .xml and a match-all entry.
4322         (extra_dump_files, extra_dump_files_in_use,
4323         extra_dump_files_alloced): Declare
4324         (dump_option_value_info): Add raw, details, stats,
4325         blocks, vops, lineno, uid and all.
4326         (dump_register): New.
4327         (get_dump_file_info): New.
4328         (dump_begin): Call it.
4329         Do nothing for TDI_none.
4330         (dump_begin): Include phase number in dump filename.
4331         (dump_enable_all): New.
4332         (dump_switch_p_1): Split out from dump_switch_p.
4333         (dump_switch_p): Handle extra_dump_files.
4334         Start our scan at TDI_none + 1.
4335         If -fdump-tree-all was given, call dump_enable_all.
4336         * tree-dump.h: Include splay-tree.h.
4337         (dump_function, dump_function_to_file, dump_register):
4338         Declare.
4339         * tree-eh.c: New file.
4340         * tree-flow-inline.h: New file.
4341         * tree-flow.h: New file.
4342         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4343         * tree-inline.h (walk_tree,
4344         walk_tree_without_duplicates): Move to tree.h.
4345         (estimate_num_insns): Declare.
4346         * tree-into-ssa.c: New file.
4347         * tree-iterator.c: New file.
4348         * tree-iterator.h: New file.
4349         * tree-mudflap.c: New file.
4350         * tree-mudflap.h: New file.
4351         * tree-nested.c: New file.
4352         * tree-nomudflap.c: New file.
4353         * tree-nrv.c: New file.
4354         * tree-optimize.c (dump_flags, vars_to_rename,
4355         in_gimple_form, all_passes, pass_gimple,
4356         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4357         (execute_gimple, execute_rebuild_bind,
4358         gate_all_optimizations, execute_del_cfg,
4359         register_one_dump_file, register_dump_files, dup_pass_1,
4360         init_tree_optimization_passes, execute_todo,
4361         execute_one_pass, execute_pass_list): New.
4362         (clear_decl_rtl): Remove.
4363         (tree_rest_of_compilation): Update to use tree
4364         optimizers.
4365         * tree-outof-ssa.c: New file.
4366         * tree-pass.h: New file.
4367         * tree-phinodes.c: New file.
4368         * tree-pretty-print.c: New file.
4369         * tree-profile.c: New file.
4370         * tree-simple.c: New file.
4371         * tree-simple.h: New file.
4372         * tree-sra.c: New file.
4373         * tree-ssa-alias.c: New file.
4374         * tree-ssa-ccp.c: New file.
4375         * tree-ssa-copy.c: New file.
4376         * tree-ssa-copyrename.c: New file.
4377         * tree-ssa-dce.c: New file.
4378         * tree-ssa-dom.c: New file.
4379         * tree-ssa-dse.c: New file.
4380         * tree-ssa-forwprop.c: New file.
4381         * tree-ssa-live.c: New file.
4382         * tree-ssa-live.h: New file.
4383         * tree-ssa-loop.c: New file.
4384         * tree-ssa-operands.c: New file.
4385         * tree-ssa-operands.h: New file.
4386         * tree-ssa-phiopt.c: New file.
4387         * tree-ssa-pre.c: New file.
4388         * tree-ssa.c: New file.
4389         * tree-ssanames.c: New file.
4390         * tree-tailcall.c: New file.
4391         * tree.c: Include tree-iterator.h, basic-block.h and
4392         tree-flow.h.
4393         (tree_node_kind): Add phi_nodes and ssa names.
4394         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4395         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4396         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4397         <'c'> Set TREE_INVARIANT.
4398         (copy_node_stat): Abort if trying to copy a
4399         STATEMENT_LIST.
4400         Clear TREE_VISITED.
4401         Clear annotation field.
4402         (build_constructor): Copy TREE_INVARIANT from vals.
4403         Don't clear TREE_CONSTANT.
4404         (expr_first, expr_last, expr_length): Remove.
4405         (staticp): Pass unknown component references to the language.
4406         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4407         (skip_simple_arithmetic): Likewise.
4408         (stabilize_reference_1): Likewise.
4409         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4410         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4411         STATEMENT_LIST.
4412         (lhd_unsave_expr_now): Remove.
4413         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4414         (recompute_tree_invarant_for_addr_expr): New.
4415         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4416         Call recompute_tree_invarant_for_addr_expr.
4417         Set TREE_INVARIANT accordingly.
4418         (build2_stat): Don't handle CALL_EXPR.
4419         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4420         (build_expr_wfl): Remove.
4421         (annotate_with_file_line, annotate_with_locus): New.
4422         (simple_cst_equal): Call simple_cst_list_equal to compare
4423         CONSTRUCTOR_ELTS pointers.
4424         (iterative_hash_expr): Don't hash types associated
4425         with conversions.  Instead hash on the signedness of the
4426         toplevel object and the operand of the conversion.
4427         (dump_tree_statistics): Call ssanames_print_statistics
4428         and phinodes_print_statistics.
4429         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4430         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4431         needs_to_live_in_memory): New.
4432         (initializer_zerop): Handle VECTOR_CST.  Don't check
4433         AGGREGATE_TYPE_P for CONSTRUCTOR.
4434         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4435         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4436         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4437         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4438         (CALL_EXPR): Add another operand.
4439         (EXPR_WITH_FILE_LOCATION): Remove.
4440         (SWITCH_EXPR): Add another operand.
4441         * tree.h: Update various comments.
4442         (union tree_ann_d): Forward declare.
4443         (struct tree_common): Add fields nowarning_flag,
4444         invariant_flag and visited.
4445         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4446         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4447         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4448         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4449         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4450         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4451         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4452         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4453         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4454         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4455         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4456         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4457         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4458         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4459         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4460         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4461         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4462         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4463         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4464         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4465         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4466         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4467         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4468         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4469         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4470         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4471         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4472         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4473         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4474         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4475         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4476         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4477         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4478         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4479         TDF_UID,): Define.
4480         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4481         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4482         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4483         EXPR_WFL_SET_LINECOL): Remove.
4484         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4485         make_phi_node, init_phinodes, fini_phinodes,
4486         release_phi_node, phinodes_print_statistics,
4487         init_ssanames, fini_ssanames, make_ssa_name,
4488         release_ssa_name, ssanames_print_statistics,
4489         annotate_with_file_line, build_empty_stmt,
4490         annotate_with_locus, expr_only, categorize_ctor_elements,
4491         count_type_elements, add_var_to_bind_expr, is_essa_node,
4492         expand_stack_alloc, expand_stack_save,
4493         expand_stack_restore, add_case_node, operand_equal_p,
4494         nondestructive_fold_unary_to_constant,
4495         nondestructive_fold_binary_to_constant,
4496         fold_read_from_constant_string, int_const_binop,
4497         strip_float_extensions, simplify_builtin, c_strlen,
4498         recompute_tree_invarant_for_addr_expr,
4499         needs_to_live_in_memory, make_vector,
4500         setjmp_vars_warning, update_alignment_for_field,
4501         expand_asm_expr, asm_op_is_mem_input,
4502         containing_blocks_have_cleanups_or_stack_level,
4503         create_artificial_label, gimplify_function_tree,
4504         get_name, unshare_expr, walk_tree,
4505         walk_tree_without_duplicates, in_gimple_form): Declare.
4506         (struct tree_exp): Add fields locus and block.
4507         (struct tree_ssa_name, struct edge_def, struct
4508         tree_phi_node, struct tree_eref_common, struct
4509         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4510         union alias_var_def, struct tree_statement_list_node,
4511         struct tree_statement_list, enum operand_equal_flag): Declare.
4512         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4513         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4514         TS_STATEMENT_LIST.
4515         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4516         euse and stmt_list.
4517         (function_cannot_inline_p, uninitialized_vars_warning,
4518         save_for_inline, output_inline_function, all_cases_count,
4519         check_for_full_enumeration_handling,
4520         declare_nonlocal_label): Remove.
4521         (enum tree_dump_index): Add TDI_none, TDI_tu,
4522         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4523         * unroll.c (unroll_loop): Don't clear map->inline_target.
4524         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4525         function.
4526         * value-prof.c (value_prof_hooks): New.
4527         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4528         Move rtl-specific bits in from branch_prob.
4529         (value_profile_transformations): Rename to
4530         rtl_value_profile_transformations.
4531         (struct value_prof_hooks): New.
4532         (rtl_value_prof_hooks): New.
4533         (rtl_register_value_prof_hooks): New.
4534         (tree_find_values_to_profile): New stub.
4535         (tree_value_profile_transformations): New stub.
4536         (tree_value_prof_hooks): New stub.
4537         (tree_register_value_prof_hooks): New stub.
4538         (find_values_to_profile): New.
4539         (value_profile_transformations): New.
4540         * value-prof.h: Add multiple inclusion guard.
4541         (struct histogram_value): Change rtx fields to void *.
4542         (rtl_register_value_prof_hooks): New declaration.
4543         (tree_register_value_prof_hooks): New declaration.
4544         (find_values_to_profile): New declaration.
4545         (free_profiled_values): New declaration.
4546         (value_profile_transformations): New declaration.
4547         (struct profile_hooks): New declaration.
4548         (init_branch_prob): Declaration moved from rtl.h.
4549         (branch_prob): Declaration moved from rtl.h.
4550         (end_branch_prob): Declaration mooved from rtl.h.
4551         (tree_register_profile_hooks): New declaration.
4552         (rtl_register_profile_hooks): New declaration.
4553         (tree_profile_hooks): New declaration.
4554         (rtl_profile_hooks): New declaration.
4555         * varasm.c: Include tree-mudflap.h.
4556         (TRAMPOLINE_ALIGNMENT): Remove.
4557         (make_decl_rtl): Call mudflap_enqueue_decl.
4558         (assemble_static_space):
4559         (assemble_trampoline_template): Set and return
4560         TRAMPOLINE_ALIGNMENT.
4561         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4562         Add entry for 'tree *'.
4563         Add entry for struct edge_def *.
4564         (varray_copy): New.
4565         * varray.h (enum varray_data_enum): Add
4566         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4567         VARRAY_DATA_TREE_PTR.
4568         (union varray_data_tag): Corresponding changes.
4569         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4570         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4571         VARRAY_EDGE, VARRAY_TREE_PTR,
4572         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4573         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4574         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4575
4576         * config/*/*: Various updates for changed macros, tree
4577         codes, etc.  Check ChangeLog.tree-ssa.
4578
4579         * doc/cfg.texi: New file.
4580         * doc/tree-ssa.texi: New file.
4581         * doc/c-tree.texi: Document new codes.
4582         * doc/gccint.texi: Include new files.
4583         * doc/install.texi: Document new features.
4584         * doc/invoke.texi: Document new switches.
4585         * doc/passes.texi: Document new passes.
4586         * doc/rtl.texi: Update changed RTL codes.
4587         * doc/sourcebuild.texi: Update build instructions.
4588         * doc/standards.texi: Document Fortran changes.
4589         * doc/tm.texi: Update.
4590
4591 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4592
4593         Replace several arrays with a struct of arrays.
4594         * combine.c (struct reg_stat): New.
4595         (init_reg_last_arrays): Renamed to...
4596         (init_reg_last): ...this.  Callers adjusted.
4597         (reg_stat): New.
4598         (combine_instructions): Allocate it and use it.
4599         (reg_last_death, reg_last_set, reg_last_set_value,
4600         reg_last_set_label, reg_last_set_table_tick,
4601         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4602         reg_last_set_mode, reg_last_set_nonzero_bits,
4603         reg_last_set_sign_bit_copies): Replace throughout
4604         with items of reg_stat.
4605
4606 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4607
4608         PR optimization/15100
4609         * combine.c (distribute_notes): Don't create a dangling
4610         REG_LIBCALL/REG_RETVAL note.
4611
4612 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4613
4614         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4615
4616         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4617         negv2si2.
4618
4619 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4620
4621         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4622
4623 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4624
4625         * doc/gty.texi (GTY Options): Clarify example.
4626
4627 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4628
4629         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4630         Add const qualifier to altivec vector type if one is needed.
4631
4632 2004-05-11  Paul Brook  <paul@codesourcery.com>
4633
4634         * flags.h (flag_short_enums): Update comment.
4635         * opts.c (decode_options): Set flag_short_enums to 2.
4636         * toplev.c (flag_short_enums): Update comment.
4637         (process_options): Call default_short_enums target hook.
4638
4639 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4640
4641         PR target/14063
4642         * config/rs6000/altivec.md (altivec_dssall):
4643         Change to unspec_volatile.
4644         (altivec_dss): Likewise.
4645
4646 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4647
4648         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4649         vnor.
4650         ("one_cmplv8hi2"): Same.
4651         ("one_cmplv4si2"): Same.
4652
4653 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4654
4655         PR target/15130
4656         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4657         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4658         into account.  Compute the correct number of general registers
4659         for the return value.  Generate a special push/pop sequence when
4660         failing to get a temporary register for non SHmedia epilogue.
4661         (sh_expand_epilogue): Add an argument to show whether it's for
4662         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4663         -1 if needed.
4664         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4665         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4666         with 1.
4667         (epilogue): Call sh_expand_epilogue with 0.
4668
4669 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4670
4671         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4672         goto a cleanup label.  After the cleanup, free the allocated memory.
4673
4674 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4675
4676         * config/rs6000/altivec.h (vec_sld): Add overloads for
4677         argument/return types of 'vector bool int', 'vector bool short'
4678         and 'vector bool char'.
4679
4680 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4681
4682         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4683         nested function.
4684
4685 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4686
4687         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4688         treating missing ones as "".
4689         * config/mips/mips.md: Remove constraints from match_operands and
4690         match_scratches if they appear in define_expands (except reload*),
4691         define_peephole2s, define_splits or attribute specifications.
4692         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4693         constraint strings.
4694
4695 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4696
4697         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4698         AltiVec vectors.
4699         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4700         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4701         byte boundary.  Remove useless code.  Add function comment.
4702         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4703         call to where it belongs.
4704         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4705         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4706         (rs6000_va_arg): Adjust for AltiVec change.
4707
4708 2004-05-10  Paul Brook  <paul@codesourcery.com>
4709
4710         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4711         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4712         (TARGET_DOUBLEWORD_ALIGN): Use it.
4713         (WCHAR_TYPE): Define.
4714         (WCHAR_SIZE_TYPE): Define.
4715         (SIZE_TYPE): Define.
4716
4717 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4718
4719         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4720         when size is 8 bytes.
4721         (function_arg_advance): Account for stack space used by AltiVec
4722         args when -mabi=altivec.  Simplify alignment calculations.  For
4723         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4724         (function_arg): Similarly.
4725         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4726         not AltiVec ABI.
4727         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4728         Correct alignment, and align before testing reg count.  Remove
4729         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4730         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4731         TARGET_FPRS here..
4732         (rs6000_function_value): .. not here before call.
4733
4734 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4735
4736         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4737
4738 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4739
4740         PR 15007
4741         * c-decl.c (current_file_decl): Rename to all_translation_units,
4742         adjust comment.
4743         (pop_scope): If popping file_scope, construct a
4744         TRANSLATION_UNIT_DECL and make it the context of all the
4745         symbols in the scope.
4746         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4747         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4748         anything to current_file_decl.
4749         (pushdecl_top_level): Likewise.
4750         (store_parm_decls_newstyle): Adjust check for nested function.
4751         (c_write_global_declarations): Update for renamed variable.
4752
4753 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4754
4755         * config/rs6000/rs6000-protos.h
4756         (rs6000_conditional_register_usage): Protoize.
4757
4758         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4759
4760         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4761         function.
4762
4763 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4764
4765         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4766         where op is a comparison operator and C1 and C2 are integer constants
4767         into a range check.
4768         (fold): Call fold_div_compare.
4769
4770 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4771
4772         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4773         problems with earlier versions of the GNU compiler.
4774
4775 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4776
4777         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4778         Declare.
4779
4780         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4781         (rs6000_hard_regno_mode_ok): New.
4782         (rs6000_init_hard_regno_mode_ok): New.
4783         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4784
4785         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4786         result.
4787
4788 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4789
4790         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4791         define as macros #ifdef __APPLE_ALTIVEC__.
4792
4793 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4794
4795         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4796         Generate appropriate parallels for vector arguments
4797         passed to vararg functions. (function_arg): make the call
4798         to rs6000_mixed_function_arg for vector args as needed.
4799
4800 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4801
4802         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4803         EABI_FLOAT_VARARGS_P.
4804
4805 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4806
4807         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4808         * config/mips/mips.c (override_options): Disable branch likely
4809         instructions if TUNE_MIPS5500.
4810
4811 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4812
4813         * config/mips/mips.c (override_options): Allow the hi and lo registers
4814         to store any integral mode, not just MODE_INTs.
4815
4816 2004-05-07  Paul Brook  <paul@codesourcery.com>
4817
4818         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4819         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4820         (TARGET_DOUBLEWORD_ALIGN): Use it.
4821         (WCHAR_TYPE): Define.
4822         (WCHAR_SIZE_TYPE): Define.
4823         (SIZE_TYPE): Define.
4824
4825 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4826
4827         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4828         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4829
4830 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4831
4832         * loop-doloop.c (doloop_valid_p): Make sure that body
4833         gets freed.
4834
4835 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4836
4837         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4838         declaration.
4839         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4840         (sparc_skip_caller_unimp): New global variable.
4841         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4842         Use it instead of SKIP_CALLERS_UNIMP_P.
4843         * config/sparc/sparc.md (call expander): Add sanity check.
4844         (call_address_struct_value_sp32): Re-sync with expander.
4845         (call_symbolic_struct_value_sp32): Likewise.
4846         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4847         of custom predicate.
4848
4849 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4850
4851         PR c++/14962
4852         * c-pragma.c (handle_pragma_redefine_extname): Only change
4853         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4854
4855 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4856
4857         * optabs.h (enum optab_index): Add new OTI_log1p.
4858         (log1p_optab): Define corresponding macro.
4859         * optabs.c (init_optabs): Initialize log1p_optab.
4860         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4861         patterns.
4862         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4863         using log1p_optab.
4864         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4865         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4866
4867         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4868
4869         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4870         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4871         Prototype here.
4872         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4873         x87's fyl2xp1 instruction.
4874         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4875         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4876         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4877         log1p  and log1pl built-ins as inline x87 intrinsics.
4878
4879 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4880
4881         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4882         * config/arm/freebsd.h: Likewise.
4883         * config/ia64/freebsd.h: Likewise.
4884         * config/sparc/freebsd.h: Likewise.
4885
4886 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4887
4888         PR optimization/15296
4889         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4890         getting last consecutive label at a branch.
4891         (relax_delay_slots): Similar, near top of loop.
4892
4893 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4894
4895         PR target/15202
4896         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4897         register to general register.
4898
4899 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4900
4901         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4902         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4903         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4904         (STACK_BOUNDARY): Delete.
4905
4906 2004-05-06  Stuart Hastings  <stuart@apple.com>
4907
4908         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4909         mistakenly clobbered by 1.423.
4910
4911 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4912
4913         * doc/invoke.texi: Document -mvr4130-align.
4914         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4915         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4916         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4917         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4918         * config/mips/mips.md: Include sched-int.h.
4919         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4920         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4921         (override_options): Enable -mvr4130-align at -O3 and above.
4922         (mips_sim_insn): New variable.
4923         (mips_sim): New structure.
4924         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4925         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4926         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4927         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4928         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4929         (mips_reorg): Call vr4130_align_insns.
4930         (vr4130_last_insn): New variable.
4931         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4932         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4933         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4934         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4935         (mips_use_dfa_pipeline_interface): Return true for the same.
4936         * config/mips/4130.md: New file.
4937         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4938         "mult;mflo" into "mtlo;macc".
4939         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4940         target of maccs.
4941         (*msac_using_macc): New pattern.
4942
4943 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4944
4945         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4946         (ir_vr55_hilo): Split into...
4947         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4948         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4949         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4950         Add various multiplication bypasses.
4951         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4952         multiplication.
4953
4954 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4955
4956         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4957         attribute to "XF".
4958
4959 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4960
4961         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4962         (fmod_optab, drem_optab): Define corresponding macros.
4963         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4964         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4965         using fmod?f3 and drem?f3 patterns.
4966         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4967         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4968         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4969         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4970         flag_unsafe_math_optimizations is set.
4971
4972         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4973         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4974
4975         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4976         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4977         Prototype here.
4978         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4979         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4980         fprem and fprem1 instructions.
4981         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4982         Rename insn definition to x86_fnstsw_1.
4983         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4984         x87 instructions.
4985         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4986         and fmodl built-ins as inline x87 intrinsics.
4987         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4988         and dreml built-ins as inline x87 intrinsics.
4989
4990 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4991
4992         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4993
4994 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4995
4996         PR driver/9822
4997         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4998
4999 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5000
5001         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5002         representation.
5003
5004 2004-05-06  Paul Brook  <paul@codesourcery.com>
5005
5006         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5007         (arm_coproc_mem_operand): ... To this.
5008         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5009         (arm_legitimate_index_p): Ditto.
5010         (vfp_mem_operand): Rename ...
5011         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5012         (vfp_secondary_reload_class): Use it.
5013         (output_move_double): Use doubleword load/store instructions.
5014         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5015         * config/arm/arm.h (TARGET_LDRD): Define.
5016         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5017         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5018         New splitter for invalid doubleword loads.
5019         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5020         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5021         * doc/md.texi: Document Uy constraint.
5022
5023 2004-05-05  Jan Hubicka  <jh@suse.cz>
5024
5025         PR opt/14980
5026         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5027         inline clones.
5028
5029 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5030
5031         PR target/15290
5032         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5033         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5034
5035 2004-05-05  Mike Stump  <mrs@apple.com>
5036
5037         * config/darwin-c.c (add_framework): Copy the directory name as it
5038         can be freed later.  Also, ensure we always allocate enough room
5039         for the cached framework information.
5040         (find_subframework_header): Keep track of the directory where the
5041         subframework header was found.
5042         (framework_construct_pathname): Speed up by not trying to re-add a
5043         framework.
5044         * cppfiles.c (search_path_exhausted): Arrange for the missing
5045         header callback to be able to set the directory where the header
5046         was found.
5047         (cpp_get_dir): Add.
5048         * cpplib.h (missing_header_cb): Add a parameter.
5049         (cpp_get_dir): Add.
5050
5051 2004-05-03  Mike Stump  <mrs@apple.com>
5052
5053         * doc/invoke.texi (Directory Options): Document -iquote.
5054         * doc/cpp.texi: Likewise.
5055         * doc/cppopts.texi: Likewise.
5056         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5057         (c_common_handle_option): Likewise.
5058         * c.opt (iquote): Add.
5059         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5060         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5061
5062         * c-opts.c (case OPT_I): Deprecate -I- support.
5063         * doc/invoke.texi: Likewise.
5064         * doc/cpp.texi: Likewise.
5065         * doc/cppopts.texi: Likewise.
5066
5067 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5068
5069         * basic-block.h (free_basic_block_vars): Update prototype.
5070         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5071         argument.
5072         (life_analysis): Update call.
5073         * ifcvt.c (if_convert): Likewise.
5074         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5075         * passes.c (rest_of_handle_final): Likewise.
5076         (rest_of_compilation): Likewise.
5077         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5078
5079         * emit-rtl.c (next_real_insn): Use INSN_P.
5080         (prev_real_insn): Likewise.
5081
5082 2004-05-05  Eric Christopher  <echristo@redhat.com>
5083
5084         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5085         representation.
5086
5087 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5088
5089         * config/rs6000/rs6000.c (build_opaque_vector_type):
5090         New function.
5091         (rs6000_init_builtins): Use it.
5092
5093 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5094
5095         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5096         (func_table): Change type from char ** to vms_func_ref.
5097         (write_rtnbeg):  Update to reflect func_table change.  Use
5098         fde->funcdef_number instead of rtnnum in output.
5099         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5100
5101 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5102             Richard Henderson  <rth@redhat.com>
5103
5104         PR target/14899
5105
5106         * c-common.c (vector_types_convertible_p): New function.
5107         * c-typeck.c (comptypes): Recurse on vector types.
5108         (convert_for_assignment): Use vector_types_convertible_p.
5109         (digest_init): Use vector_types_convertible_p to check
5110         validness of constant vector initializers; otherwise treat
5111         them as scalars.
5112         * tree.c (make_or_reuse_type): New.
5113         (build_common_tree_nodes): Use it.
5114         * cp/call.c (standard_conversion): Likewise.
5115         * cp/typeck.c (comptypes): Recurse on vector types.
5116         (convert_for_assignment): Use vector_types_convertible_p.
5117
5118 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5119
5120         * config/mips/mips.c (override_options): Default to no
5121         generation of branch-likely operations when tuning for
5122         CPUs where they tend to have a negative performance impact
5123         (e.g., SB-1).
5124
5125 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5126
5127         * expr.c (store_constructor_field): Don't call store_constructor
5128         if bitsize is not a multiple of a byte.
5129
5130 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5131
5132         * reload1.c (inherit_piecemeal_p): New function.
5133         (emit_reload_insns): When reloading a group of hard registers, use
5134         inherit_piecemeal_p to decide whether the values of individual hard
5135         registers can be inherited.
5136
5137 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5138
5139         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5140         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5141         * config/t-linux (LIB2ADDEHDEP): Likewise.
5142
5143 2004-05-04  Paul Brook  <paul@codesourcery.com>
5144
5145         * config/arm/crti.asm: Push an even number of registers.
5146         * config/arm/crtn.asm: And restore them.  Load via sp.
5147
5148 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5149
5150         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5151         Collect overhead information.
5152         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5153         parameter and pass it through.
5154         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5155         MEM_STAT_DECL parameter and pass it through.
5156         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5157         MEM_STAT_DECL parameter and pass it through.
5158
5159 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5160
5161         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5162
5163         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5164
5165         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5166         rs6000_hard_regno_nregs.
5167
5168 2004-05-03  Eric Christopher  <echristo@redhat.com>
5169
5170         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5171         prologue insn instead of setting up call.
5172         (s390_emit_epilogue): Ditto.
5173         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5174         (define_constants): Add numbers for above patterns.
5175
5176 2004-05-03  Eric Christopher  <echristo@redhat.com>
5177
5178         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5179         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5180         * config/s390/s390-protos.h: Prototype.
5181
5182 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5183
5184         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5185         assignment.
5186
5187 2004-05-03  Eric Christopher  <echristo@redhat.com>
5188
5189         * config/mips/mips.md: Fix branch length attribute definition.
5190
5191 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5192
5193         * config.gcc: Remove --enable-altivec support.
5194
5195         * config/rs6000/altivec-defs.h: Remove.
5196
5197 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5198
5199         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5200         * fixinc/fixincl.x: Regenerate.
5201
5202 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5203
5204         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5205         definition.
5206         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5207         float_truncate insn.
5208         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5209         (logb?f2): Reimplement expanders with float_truncate insn.
5210
5211 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5212
5213         PR 14718
5214         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5215         force_type_die for CONST_DECL.
5216
5217 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5218             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5219
5220         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5221         tm-dwarf2.h to tm_file.
5222         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5223         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5224         (ASM_DEBUG_SPEC): Delete.
5225
5226 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5227
5228         * optabs.h (enum optab_index): Add new OTI_expm1.
5229         (expm1_optab): Define corresponding macro.
5230         * optabs.c (init_optabs): Initialize expm1_optab.
5231         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5232         patterns.
5233         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5234         using expm1_optab.
5235         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5236         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5237
5238         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5239         to implement expm1, expm1f and expm1l built-ins as inline x87
5240         intrinsics.
5241
5242 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5243
5244         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5245         * config/frv/frv.md (*return_true, *return_false): New patterns.
5246
5247 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5248
5249         * rtl.h (PHI_NODE_P): Remove.
5250
5251 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5252
5253         PR middle-end/14988
5254         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5255         when passed -2 as 'align'.
5256         (put_var_into_stack): Use 'bool' as the type for the three local
5257         predicates.  Adjust calls to put_reg_into_stack.
5258         When passed a CONCAT, instruct put_reg_into_stack to use
5259         a consecutive stack slot for the second part.
5260         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5261         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5262         parameters.  Retrieve the register mode from 'reg'.
5263         When consecutive_p is true, instruct assign_stack_local_1 to use
5264         BITS_PER_UNIT alignment.
5265         (put_addressof_into_stack): Use 'bool' as the type for the two
5266         local predicates. Adjust call to put_reg_into_stack.
5267
5268 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5269
5270         * fold-const.c (fold_convert_const, fold): Add missing
5271         FIX_ROUND_EXPR case.
5272
5273 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5274
5275         * configure.ac (FLEX, BISON): Only use tools from the build tree
5276         if build equals host.
5277         * configure: Rebuilt.
5278
5279         * config/frv/frv-protos.h (frv_expand_epilogue,
5280         frv_expand_fdpic_call): Add bool argument.
5281         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5282         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5283         (frv_expand_epilogue): Use new argument to decide whether to emit
5284         return instruction or copy the return address to LR.
5285         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5286         sibcalls.
5287         (sibcall_operand): New.
5288         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5289         PLUS nor LABEL_REF.  Add sibcall_operand.
5290         * config/frv/frv.md (call, call_value): Pass false to
5291         frv_expand_fdpic_call.
5292         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5293         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5294         sibcall_value_internal, sibcall_value_fdpicdi): New.
5295         (return_unsigned_true, return_unsigned_false): New.
5296         (epilogue): Adjust call to frv_expand_epilogue.
5297         (sibcall_epilogue): New.
5298
5299         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5300         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5301         before redefining them.
5302
5303 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5304
5305         * builtins.c (fold_fixed_mathfn): New function.
5306         (fold_builtin_lround, fold_builtin): Use it.
5307
5308 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5309
5310         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5311         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5312
5313 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5314
5315         * config/cris/cris.h: Revert my "fix comment typos" patch.
5316
5317 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5318
5319         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5320
5321 2004-05-01  Falk Hueffner  <falk@debian.org>
5322
5323         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5324         builtin_insll): Disallow 0 as first input operand.
5325
5326 2004-05-01  Falk Hueffner  <falk@debian.org>
5327
5328         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5329
5330 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5331
5332         PR middle-end/15054
5333         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5334         on a TARGET_EXPR temp.
5335         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5336         TARGET_EXPR temp slots.
5337
5338 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5339
5340         * simplify-rtx.c (simplify_ternary_operation): When
5341         converting an IF_THEN_ELSE to a relational op, return
5342         correct mode.
5343
5344 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5345
5346         * builtins.c (fold_builtin_round): Fix comment typo.
5347         (fold_builtin_lround): New function.
5348         (fold_builtin): Use it.
5349
5350 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5351
5352         PR target/11608
5353         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5354         more like the one in config/dbxelf.h.
5355
5356 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5357
5358         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5359         and adjust definition accordingly.
5360         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5361         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5362         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5363         VECTOR_TYPE.
5364
5365 2004-04-30  Jason Merrill  <jason@redhat.com>
5366
5367         PR c++/14587
5368         * config/i386/winnt.c (associated_type): Look for attributes on
5369         the TYPE_MAIN_VARIANT of *this.
5370         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5371         apply the attributes to the variants.
5372
5373 2004-04-30  Paul Brook  <paul@codesourcery.com>
5374
5375         * config.gcc: Simplify arm --with-{cpu,tune} test.
5376         * config/arm/arm-cores.def: Document whitespace restrictions.
5377
5378 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5379
5380         PR other/1963
5381         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5382
5383 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5384             DJ Delorie  <dj@redhat.com>
5385
5386         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5387         (DWARF2_DEBUGGING_INFO): Define to enable.
5388         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5389         DWARF2.
5390         * configure.ac (Target-specific assembler checks)
5391         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5392         relocs.
5393         * configure: Regenerate.
5394         * config.in: Likewise.
5395
5396         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5397         (ASM_OUPUT_DWARF_OFFSET): Define.
5398
5399 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5400
5401         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5402         (s390_emit_call): New function prototype added.
5403         (s390_tls_get_offset): Function removed.
5404         * config/s390/s390.c (s390_function_ok_for_sibcall,
5405         s390_call_saved_register_used_p): New functions.
5406         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5407         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5408         (s390_emit_tls_call_insn): New function.
5409         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5410         emit_call_insn.
5411         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5412         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5413         added.
5414         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5415         register number used to hold the target address for sibcalls.
5416         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5417         New expanders.
5418         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5419         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5420         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5421         Expanders removed.
5422         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5423         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5424         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5425         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5426         new parameter.
5427
5428 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5429
5430         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5431         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5432         reg-stack.c, varasm.c, config/alpha/ev4.md,
5433         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5434         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5435         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5436         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5437         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5438         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5439         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5440         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5441         comment typos.
5442
5443 2004-04-30  Paul Brook  <paul@codesourcery.com>
5444
5445         * config.gcc: Default ep9312 to hard-float.
5446         * config/arm/arm-cores.def: Add ARCH field.
5447         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5448         (arm_arch_cirrus): New variable.
5449         (all_cores): Set and use arch.
5450         (all_architectures): Ditto.
5451         (arm_arch_name): New variable.
5452         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5453         Set and use arm_arch_cirrus.
5454         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5455         (enum processor_type): Update ARM_CORE define.
5456         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5457         (CPP_SPEC): Remove %(cpp_cpu_arch).
5458         (CPP_ARCH_DEFAULT_SPEC): Remove.
5459         (CPP_CPU_ARCH_SPEC): Remove.
5460         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5461         (FPUTYPE_DEFAULT): Don't define here.
5462
5463 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5464
5465         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5466         updates too.
5467
5468 2004-04-30  Paul Brook  <paul@codesourcery.com>
5469
5470         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5471
5472 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5473
5474         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5475         vec_sububs.
5476         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5477         duplicates.
5478
5479 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5480
5481         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5482         atan2?f3 expanders.
5483
5484 2004-04-29  Nick Clifton  <nickc@redhat.com>
5485
5486         Bug 14093
5487         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5488         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5489         Delete static from definition.
5490         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5491
5492 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5493
5494         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5495         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5496         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5497         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5498
5499 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5500
5501         * commom.opt (Wfatal-errors): Add it.
5502         * diagnostic.c (flag_fatal_errors): Define it.
5503         (diagnostic_action_after_output): Check for flag_fatal_errors.
5504         * flags.h (flag_fatal_errors): Declare it.
5505         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5506         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5507
5508 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5509
5510         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5511         blocks which have kill flag set.
5512
5513 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5514
5515         * configure.ac (--with-as): Abort if user-supplied assembler
5516         cannot be executed.
5517         (--with-ld): Likewise for the linker.
5518         * configure: Regenerate.
5519
5520 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5521
5522         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5523         isn't NULL before using it.
5524
5525 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5526
5527         PR target/15189
5528         * config/mips/mips.md (load_df_low): Use default length.
5529         (load_df_high, store_df_high): Likewise.
5530
5531 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5532
5533         * config/mips/mips.md, config/mips/sb1.md,
5534         config/rs6000/rs6000.c: Fix comment typos.
5535
5536 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5537
5538         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5539         Fix comment typos.
5540
5541 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5542
5543         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5544         (delete_if_ordinary): Use above macro.
5545         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5546         Update copyright.
5547         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5548
5549 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5550
5551         * c-decl.c (get_parm_info): Use the correct tag keywords when
5552         warning about type declarations in prototypes.
5553
5554 2004-04-29  Paul Brook  <paul@codesourcery.com>
5555
5556         * config.gcc: Pull list of cores from arm-cores.def.
5557
5558 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5559
5560         * combine.c (combine_simplify_rtx): Adjust call to use
5561         simplify_relational_operation.  Do not use SELECT_CC_MODE
5562         when a comparison already has a MODE_CC mode.
5563
5564 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5565
5566         (simplify_set): simplify_relational_operation may now
5567         return another relational expression.
5568         * cse.c (fold_rtx): simplify_relational_operation now
5569         takes of computing the comparison mode.
5570         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5571         remove dead code.
5572         (do_compare_rtx_and_jump): Likewise.
5573         * integrate.c (subst_constants): simplify_relational_operation
5574         may now return another relational expression.
5575         * simplify-rtx.c (simplify_gen_relational): Move most code to
5576         the new simplify_relational_operation and
5577         simplify_relational_operation_1 functions.
5578         (simplify_relational_operation): Rewritten.
5579         (simplify_relational_operation_1): New function.
5580         (simplify_ternary_operation): simplify_relational_operation
5581         may now return another relational expression.
5582         (simplify_rtx): Remove unnecessary temp variable.
5583
5584 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5585
5586         * reg-stack.c (swap_to_top): New function.
5587         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5588         swap_to_top().
5589         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5590         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5591         UNSPEC_FSCALE_EXP.
5592
5593         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5594         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5595         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5596         x87's fscale insn.
5597         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5598         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5599         patterns.
5600
5601 2004-04-28  Serge Belyshev  <1319@bot.ru>
5602
5603         PR 14944
5604         * coverage.c (read_counts_file): Fix usage of warning () call.
5605         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5606
5607 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5608
5609         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5610         options with "-" in the option index.
5611         (SPARC Options): Likewise.
5612         (M32R/D Options): Likewise.
5613
5614 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5615
5616         * convert.c (convert_to_integer): Convert (long)round -> lround,
5617         etc.
5618
5619 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5620
5621         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5622         Return false if we do not have fp register.
5623         (addrs_ok_for_quad_peep): Rename to ...
5624         (mems_ok_for_quad_peep): this.
5625         Add check for volatile memory.
5626         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5627         Rename to ...
5628         (mems_ok_for_quad_peep): this.
5629         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5630         to peephole2's.
5631         (lfq_power2): New instruction.
5632         (stfq_power2): Likewise.
5633
5634 2004-04-28  Jan Hubicka  <jh@suse.cz>
5635
5636         PR c/15004
5637         * function.c (do_warn_unused_parameter): Break out form ...
5638         (expand_function_end): ... here; warn only when not using cgraphunit.
5639         * function.h (do_warn_unused_parameter): Declare.
5640         * cgraphunit.c: Include function.h.
5641         (cgraph_finalize_function): Do unused parameter warning.
5642         * Makefile.in (cgraphunit.o): Depend on function.h
5643
5644 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5645
5646         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5647         calling install-info on $(DESTDIR)$(infodir)/dir already being
5648         present.
5649
5650 2004-04-28  Paul Brook  <paul@codesourcery.com>
5651
5652         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5653
5654 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5655
5656         * gcse.c (find_moveable_store): Do not accept store insns with
5657         REG_EH_REGION note.
5658
5659 2004-04-28  Paul Brook  <paul@codesourcery.com>
5660
5661         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5662         * function.c (assign_temp): Ditto.
5663         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5664
5665 2004-04-28  Paul Brook  <paul@codesourcery.com>
5666
5667         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5668
5669 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5670
5671         * var-tracking.c (variable_different_p): Add a parameter
5672         compare_current_location, compare current location of variable parts
5673         if it is true.
5674         (dataflow_set_different_1): Pass compare_current_location == false.
5675         (dataflow_set_different_2): Pass compare_current_location == false.
5676         (emit_notes_for_differences_1): Pass compare_current_location == true.
5677
5678 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5679
5680         * config/s390/s390.md ("casesi"): Mark jump table access as
5681         non-trapping and unchanging.
5682
5683 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5684
5685         PR debug/14829
5686         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5687         callers.
5688         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5689         number for indexing hard_regno_nregs array.
5690
5691 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5692
5693         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5694         * config/darwin-crt2.c: Only have contents on __ppc__.
5695
5696 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5697
5698         * config/xtensa/xtensa.c (call_insn_operand): Check
5699         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5700         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5701         * config/xtensa/xtensa.md (call, call_value): Likewise.
5702
5703 2004-04-27  Wu Yongwei  <adah@sh163.net>
5704
5705         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5706         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5707         (__gthread_mutex_init_function): Replace CreateMutex with
5708         initialization of custom mutex using CreateSemaphore.
5709         (__gthread_mutex_lock): Use InterlockedIncrement.
5710         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5711         (__gthread_mutex_unlock): Use InterlockedDecrement and
5712         ReleaseSemaphore to unlock
5713         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5714         __gthread_mutex_lock, __gthread_mutex_trylock,
5715         __gthread_mutex_unlock): Adjust to match inline versions in
5716         gthr-win32.h.
5717
5718 2004-04-27  Paul Brook  <paul@codesourcery.com>
5719
5720         * config/arm/arm.c (arm_promote_prototypes): New function.
5721         (TARGET_PROMOTE_PROTOTYPES): Use it.
5722
5723 2004-04-27  Paul Brook  <paul@codesourcery.com>
5724
5725         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5726
5727 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5728
5729         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5730         correctly output .pdesc directive before .end.
5731
5732 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5733
5734         Bug 14927
5735         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5736         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5737
5738 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5739
5740         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5741         * config/pa/pa-hpux10.h: Likewise.
5742         * config/pa/pa-hpux11.h: Likewise.
5743
5744 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5745
5746         * doc/invoke.texi (Overall Options): Document default for -o
5747         for PCH files.
5748
5749 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5750
5751         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5752         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5753         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5754
5755 2004-04-26  Paul Brook  <paul@codesourcery.com>
5756
5757         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5758
5759 2004-04-26  Paul Brook  <paul@codesourcery.com>
5760
5761         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5762
5763 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5764
5765         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5766         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5767         X % -1 as 0.
5768
5769 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5770
5771         PR bootstrap/15141
5772         * except.c (connect_post_landing_pads): Delete insns after the
5773         barrier when generating a unwind_resume_libfunc call.
5774
5775 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5776
5777         PR/c++ 15119
5778         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5779         for TARGET_EXPR.
5780
5781 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5782
5783         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5784         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5785         inhibit_libc is defined.
5786
5787 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5788
5789         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5790         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5791         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5792         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5793         (mips_adjust_cost): Move later in file, next to other sched hooks.
5794         (mips_macc_chains_last_hilo): New variable.
5795         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5796         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5797         * config/mips/mips.md (may_clobber_hilo): New attribute.
5798
5799 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5800             Bruce Korb  <bkorb@gnu.org>
5801
5802         * fixinc/inclhack.def (aix_syswait_2): New fix.
5803         * fixinc/fixincl.x: Regenerate.
5804         * fixinc/tests/base/sys/wait.h: Update for new test.
5805
5806 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5807
5808         PR target/14960
5809         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5810         to non_fixed_size, and leave out fixed_size from the sum.
5811         (generate_set_vrsave): Correct clobbers.
5812         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5813         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5814         (rs6000_libcall_value): Likewise.
5815         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5816         (FUNCTION_ARG_REGNO_P): Likewise.
5817
5818 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5819
5820         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5821         is a CONST_INT.
5822         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5823         with NARROW_OP1 instead of OP1.
5824
5825 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5826
5827         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5828         and __s390x__ hosts.
5829
5830 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5831
5832         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5833         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5834         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5835         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5836         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5837         * builtins.c (expand_builtin_fork_or_exec): New.
5838         (expand_builtin): Call it.
5839         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5840         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5841         * c-common.c (PID_TYPE): New macro.
5842         (c_common_nodes_and_builtins): Initialize pid_type_node.
5843         * calls.c (special_function_p): Do not handle fork and exec.
5844         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5845         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5846         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5847         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5848         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5849         * tree.h (enum tree_index): Add TI_PID_TYPE.
5850         (pid_type_node): New macro.
5851         (ECF_FORK_OR_EXEC): Removed.
5852
5853 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5854
5855         PR optimization/13985
5856         * cfgloopmanip.c (fix_loop_placements): New prototype.
5857         Call fix_bb_placements on the preheader of loops that have
5858         been reparented.
5859         (remove_path): Adjust call to fix_loop_placements.
5860
5861 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5862
5863         * config/darwin7.h: New file.
5864         * config.gcc (*-*-darwin*): Add darwin7.h if the
5865         version is greater than 6.
5866         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5867         (MATH_LIBRARY): Wrap in ifdefs.
5868
5869 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5870
5871         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5872         loading iWMMXt registers with a frame pointer.  Use post-increment
5873         without a frame pointer.
5874         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5875
5876 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5877
5878         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5879         mode" rather than "-funit-at-a-time" since -O2 enables it
5880         without requiring -f* options.  Refer to -fprofile-generate and
5881         -fprofile-use correctly.  Move -funit-at-a-time among options
5882         enabled by -O.  Add information about unit-at-a-time caveats.
5883
5884 2004-04-22  Per Bothner  <per@bothner.com>
5885
5886         * line-map.h (struct line_maps):  New field highest_line.
5887         (linemap_position_for_column):  Make non-inline function.
5888         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5889         * line-map.c (linemap_init):  Clear highest_line field.
5890         (linemap_add):  Set highest_line field.
5891         (linemap_line_start):  Minor optimization - use highest_line field.
5892         Reduce maximum column hint to 10000.  Update highest_line field.
5893         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5894         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5895         line_table->highest_line.
5896         (saved_line):  Remove unused field.
5897         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5898         Use  line_table's highest_line field instead of cpp_reader's line.
5899         * cpplib.c (start_directive):  Likewise use highest_line field.
5900         (do_line, do_linemarker):  Likewise just use newest map.
5901         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5902         * cpperror.c (cpp_error):  Likewise use highest_line field.
5903         * cppfiles.c (open_file_failed:  Likewise.
5904         (cpp_make_system_header):  Likewise use newest map and highest_line.
5905         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5906         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5907         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5908         _cpp_lex_direct):  Likewise use highest_line.
5909         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5910         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5911         and use newest map.
5912         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5913         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5914         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5915
5916 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5917
5918         PR bootstrap/14992
5919         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5920         * config/linux.h (USE_LD_AS_NEEDED): Define.
5921         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5922         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5923         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5924         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5925         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5926         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5927         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5928
5929 2004-04-22  Per Bothner  <per@bothner.com>
5930
5931         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5932         Fixes PR preprocessor/15067.
5933
5934 2004-04-23  Andreas Schwab  <schwab@suse.de>
5935
5936         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5937         avoid aliasing warning.
5938
5939 2004-04-22  Jan Hubicka  <jh@suse.cz>
5940             Mostafa Hagog <mustafa@il.ibm.com>
5941
5942       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5943       * cfgloopanal.c (expected_loop_iterations): Change the return value
5944
5945 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5946
5947         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5948         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5949         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5950         traces.
5951
5952 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5953
5954         Revert
5955         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5956
5957                 * var-tracking.c (variable_part_different_p): Variable parts
5958                 differ when the most recent locations differ.
5959
5960 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5961
5962         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5963         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5964         (embedded_pic_offset): Delete.
5965         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5966         MASK_* constants.
5967         (TARGET_EMBEDDED_PIC): Delete.
5968         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5969         (ASM_SPEC): Remove -membedded-pic.
5970         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5971         (ASM_OUTPUT_CASE_LABEL): Likewise.
5972         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5973         * config/mips/windiss.h (ASM_SPEC): Likewise.
5974         * config/mips/mips.c (struct machine_function): Remove
5975         embedded_pic_fnaddr_rtx.
5976         (TARGET_ENCODE_SECTION_INFO): Remove override.
5977         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5978         (override_options): Remove -membedded-pic handling.
5979         (print_operand): Remove handling of '%S'.
5980         (mips_select_section: Remove -membedded-pic handling.
5981         (mips_encode_section_info): Delete.
5982         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5983         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5984         -membedded-pic handling.
5985         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5986
5987 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5988
5989         * var-tracking.c (frame_base_decl): Remove useless GTY.
5990
5991 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5992
5993         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5994         user wants altivec and e500 instructions.
5995
5996 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5997
5998         PR target/14813
5999         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6000         in .init_array section to ...
6001         * config/ia64/crtbegin.asm: Here.
6002
6003         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6004         and hidden if HAVE_INITFINI_ARRAY is defined.
6005
6006 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6007
6008         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6009         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6010         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6011         (fp_register_operand, lo_operand): New.
6012         (mips_rtx_costs): Add TUNE_SB1 support.
6013         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6014         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6015         (mips_multipass_dfa_lookahead): New.
6016         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6017         TUNE_SB1): New.
6018         (TARGET_SWITCHES): Add -mfp-exceptions support.
6019         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6020         (BRANCH_COST): Fix whitespace.
6021         * config/mips/mips.md: Include sb1.md.
6022         * config/mips/sb1.md: New file.
6023         * doc/invoke.texi: Document -mfp-exceptions.
6024
6025         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6026         comment.
6027         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6028         (fixincl.o-warn): Delete.
6029
6030 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6031
6032         * config/rs6000/rs6000 (print_operand) ['z']:
6033         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6034
6035 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6036
6037         * config.gcc: Support --with-arch=iwmmxt for ARM.
6038
6039 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6040
6041         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6042         in two more places; remove unneeded force_reg
6043
6044 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6045
6046         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6047         for TARGET_MACHO.
6048         (print_operand): For TARGET_MACHO check to see if we need a stub
6049         and output one if we need it.
6050
6051         PR debug/15033
6052         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6053         rtl.
6054
6055 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6056
6057         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6058         (vall_value_gp): Likewise.
6059
6060 2004-04-20  DJ Delorie  <dj@redhat.com>
6061
6062         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6063         variables stored in word registers, then in memory.
6064
6065 2004-04-20  Eric Christopher  <echristo@redhat.com>
6066
6067         * cp/parser.c (cp_parser_declaration): Move translate
6068         up before tokens are lexed.
6069
6070 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6071
6072         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6073         (asin_optab, acos_optab): Define corresponding macros.
6074         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6075         * genopinit.c (optabs): Implement asin_optab and acos_optab
6076         using asin?f2 and acos?f2 patterns.
6077         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6078         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6079         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6080         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6081
6082         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6083         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6084         acos, acosf and acosl built-ins as inline x87 intrinsics.
6085
6086 2004-04-20  Paul Brook  <paul@codesourcery.com>
6087
6088         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6089
6090 2004-04-20  Paul Brook  <paul@codesourcery.com>
6091
6092         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6093
6094 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6095
6096         Revert part of 2004-04-17 change that moved -frename-registers
6097         to -O1.  -frename-registers is buggy.
6098
6099         * toplev.c (flag_rename_registers): Initialize to 0.
6100         * doc/invoke.texi (Optimize options): Move -frename-registers
6101         to "Not triggered by any -O level" section.  Adjust commentary
6102         accordingly.
6103
6104 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6105
6106         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6107
6108 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6109
6110         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6111         for mflo and mfhi instructions.
6112         (mips_output_move): Remove mflo and mfhi handling.
6113         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6114         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6115         Likewise various define_peephole2s.
6116         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6117         alternatives.
6118         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6119         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6120         (mfhilo_di, mfhilo_si): New patterns.
6121
6122 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6123
6124         * function.c (assign_parms): Force
6125         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6126
6127 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6128
6129         * var-tracking.c (variable_part_different_p): Variable parts differ
6130         when the most recent locations differ.
6131
6132 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6133
6134         * rtl.h (reg_set_last): Delete declaration.
6135         * rtlanal.c (reg_set_last): Delete.
6136
6137 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6138
6139         * fold-const.c (fold_convert): Make function extern/public.
6140         * tree.h (fold_convert): Prototype here.
6141         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6142         expand_builtin_strrchr, expand_builtin_strpbrk,
6143         expand_builtin_mempcpy, expand_builtin_bcopy,
6144         expand_builtin_bzero, expand_builtin_memcmp,
6145         expand_builtin_strcmp, expand_builtin_strncmp,
6146         stabilize_va_list, expand_builtin_sprintf,
6147         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6148         fold_builtin_exponent, fold_builtin_mempcpy,
6149         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6150         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6151         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6152
6153 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6154
6155         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6156         (move_from_CR_gt_bit): New.
6157         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6158         E500.
6159         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6160         E500.
6161
6162         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6163         (tstsfeq_gpr): Same.
6164         (cmpsfgt_gpr): Same.
6165         (tstsfgt_gpr): Same.
6166         (cmpsflt_gpr): Same.
6167         (tstsflt_gpr): Same.
6168         (e500_cceq_ior_compare): New.
6169         (e500_flip_gt_bit): New.
6170
6171         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6172         (print_operand): Add 'c' and 'D'.
6173         (rs6000_generate_compare): Rewrite to generate correct rtl.
6174         (rs6000_emit_sCOND): Handle E500.
6175         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6176         (output_e500_flip_gt_bit): New.
6177
6178         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6179         Protoize.
6180
6181 2004-04-19  Eric Christopher  <echristo@redhat.com>
6182
6183         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6184
6185 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6186
6187         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6188         fix information.
6189
6190 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6191
6192         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6193         download URL.
6194
6195 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6196
6197         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6198         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6199
6200 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6201
6202         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6203         (fold_builtin): Update caller to match.
6204
6205         PR bootstrap/15009
6206         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6207
6208         PR bootstrap/14999
6209         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6210
6211 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6212
6213         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6214
6215         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6216         (expand_mult_highpart_optab): Likewise.
6217         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6218
6219 2004-04-19  Paul Brook  <paul@codesourcery.com>
6220
6221         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6222         floatunssisf2, floatunssidf2): New patterns.
6223
6224 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6225
6226         PR other/14918
6227         * doc/invoke.texi (-fprofile-generate): Document requirement to
6228         use -fprofile-generate when linking.
6229
6230         * doc/extend.texi (Strong Using): Warn users against using this
6231         feature.
6232
6233 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6234
6235         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6236         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6237         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6238         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6239         constant.  Propogate change throughout file.
6240         (struct machine_function): Remove insns_len.
6241         (mips_string_length, mips16_strings, string_constants): Delete.
6242         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6243         when generating mips16 code.  Remove special mips16 treatment of
6244         string constants.
6245         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6246         to have the form LABEL+CONSTANT.
6247         (mips_symbolic_address_p): Fix comment.
6248         (m16_usym8_4, m16_usym5_4): Delete.
6249         (mips_output_function_epilogue): Remove mips16 string handling.
6250         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6251         (mips_select_section, mips_encode_section_info): Remove mips16
6252         string handling.
6253         (struct mips16_constant_pool): New.
6254         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6255         sorted into order of ascending mode size.  Keep track of the highest
6256         possible start address, taking padding and the masking of the base PC
6257         value into account.
6258         (dump_constants_1): New function, split out from dump_constants.
6259         Handle vector constants.  Use gen_consttable_{int,float} rather than
6260         separate functions for each mode.
6261         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6262         rather than separate functions for each alignment.
6263         (mips_find_symbol): Delete.
6264         (mips16_insn_length): New function, split out from
6265         mips16_lay_out_constants.
6266         (mips16_rewrite_pool_refs): New function.
6267         (mips16_lay_out_constants): Rework. Remove string handling.
6268         Always create an inline constant pool.
6269         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6270         (UNSPEC_ALIGN): New constants.
6271         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6272         (UNSPEC_ALIGN_[248]): Delete.
6273         (consttable_int, consttable_float, align): New patterns.
6274         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6275
6276 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6277
6278         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6279         __unn_args_eq.
6280
6281 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6282
6283         PR target/14715
6284         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6285         with STARTING_FRAME_OFFSET.
6286
6287 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6288
6289         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6290         * config/mips/mips.c (macc_msac_operand): New function.
6291         * config/mips/mips.md (*msac): Move after *macc.
6292         (*msac2): New.  Generalize macc-related peepholes so that they apply
6293         to msac too.
6294
6295 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6296
6297         * opts.c (decode_options): Do not enable flag_rename_registers
6298         and flag_web at -O3.
6299         * toplev.c (flag_rename_registers): Initialize
6300         flag_rename_registers and flag_web to
6301         AUTODETECT_FLAG_VAR_TRACKING.
6302         (default_debug_hooks): New global.
6303         (process_options): Initialize default_debug_hooks.  Warn if
6304         -fvar-tracking specified but not supported by the current
6305         debug format.  Do not run var tracking at -O0 or if not
6306         supported by the current debug format, even if
6307         -fvar-tracking was given.  If -fno-rename-registers
6308         is not specified, always run register renaming if var
6309         tracking is supported by the default debugging information
6310         format for the target, and we are at -O1 or higher; similarly
6311         for -fweb, but only at -O2 or higher.
6312         * doc/invoke.texi (Optimize Options): Document this.
6313
6314 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6315
6316         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6317         * configure: Regenerate.
6318
6319 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6320
6321         * gcc.c (used_arg): Check whether an option has been removed.
6322
6323 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6324
6325         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6326         debugging on Solaris 7 and up.
6327
6328 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6329
6330         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6331         IRIX 5 port.
6332         Remove -save-temps workaround, handled automatically.
6333         Require GNU binutils 2.15 for debugging.
6334         Remove SGI make warnings since GNU make is now required.
6335         (Specific, mips-sgi-irix6): Some markup fixes.
6336         Describe MIPSpro C problems and workarounds.
6337         Mention working O32 ABI support.
6338         Recommend GNU as 2.15 for O32 with debugging.
6339         Remove description of fixed structure pass/return bug.
6340
6341 2004-04-16  DJ Delorie  <dj@redhat.com>
6342
6343         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6344         TYPE_FIELDS.
6345         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6346
6347 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6348
6349         * pa.md: Remove unnecessary declarations for asm_out_file.
6350
6351         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6352         SAR register.  Fix comment.
6353         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6354         (%cr11).
6355
6356         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6357
6358 2004-04-16  Nick Clifton  <nickc@redhat.com>
6359
6360         * config/arm/arm.c (arm_override_options): Revert previous patch.
6361         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6362         be safely built.
6363
6364 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6365
6366         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6367         bug.
6368         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6369         TARGET_DEFAULT): Changed. Ditto.
6370         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6371         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6372         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6373         (TARGET_ENDIAN_DEFAULT): Added.
6374
6375 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6376
6377         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6378         ATTR_CONST_NOTHROW_LIST.
6379
6380 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6381
6382         PR/middle-end 14915
6383         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6384         BITS_BIG_ENDIAN.
6385
6386 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6387
6388         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6389
6390 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6391
6392         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6393
6394 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6395
6396         * libada-mk.in: New file.
6397         * configure.ac: Create libada-mk from libada-mk.in.
6398         * configure: Regenerate.
6399
6400 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6401
6402         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6403         (logb_optab, ilogb_optab): Define corresponding macros.
6404         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6405         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6406         using logb?f2 and ilogb?i2 patterns.
6407         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6408         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6409         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6410         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6411
6412         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6413         and UNSPEC_XTRACT_EXP.
6414
6415         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6416         patterns to implement fxtract x87 instruction.
6417         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6418         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6419         intrinsics.
6420         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6421         x87's fxtract insn.
6422
6423 2004-04-14  Eric Christopher  <echristo@redhat.com>
6424
6425         * config/mips/t-elf: Enable multilibs by default.
6426
6427 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6428
6429         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6430         previous fix to check HAVE_return at runtime too.
6431
6432 2004-04-14  Nick Clifton  <nickc@redhat.com>
6433
6434         * config/arm/arm.c (arm_override_options): If the user has not
6435         specified an ABI, then default to AAPCS for the iWMMXt processor.
6436         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6437         * config/arm/t-xscale-coff: Likewise.
6438
6439 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6440
6441         * builtins.c (fold_builtin_isdigit): New.
6442         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6443         * defaults.h: Add TARGET_DIGIT0 and sort.
6444         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6445
6446 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6447
6448         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6449         `mathfn_built_in' to determine the new builtin.
6450         * fold-const.c (fold): Likewise.
6451
6452 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6453
6454         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6455         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6456         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6457         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6458         (ASM_SPEC): Update accordingly.
6459         * config/mips/mips.c: Update after above renaming.
6460         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6461         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6462
6463 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6464
6465         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6466         increment errorcount and return false instead of true.
6467
6468 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6469
6470         * optabs.c (expand_twoval_unop): Reorder function arguments.
6471         * builtins.c (expand_builtin_mathfn_3): Update calls to
6472         expand_twoval_unop.
6473
6474         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6475         and UNSPEC_TAN_TAN. Add missing comment.
6476
6477         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6478         patterns to implement fptan x87 instruction.
6479         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6480         and tanl built-ins as inline x87 intrinsics. Define corresponding
6481         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6482         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6483         x87's fptan insn.
6484
6485 2004-03-13  Richard Henderson  <rth@redhat.com>
6486
6487         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6488         for LABEL_REFs.
6489
6490         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6491         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6492         * doc/invoke.texi: Update to match.
6493
6494         * varasm.c (unlikely_text_section): Use assemble_align instead of
6495         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6496         correct alignment argument.
6497
6498 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6499
6500         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6501         after setting reg_last_reload_reg for optional output reloads.
6502
6503 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6504
6505         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6506         Definition of these two macros are corrected by adding
6507         matchine right paren.
6508
6509 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6510
6511         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6512
6513 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6514
6515         * config/i386/i386.c (output_387_reg_move): New function.
6516         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6517         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6518         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6519         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6520         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6521
6522 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6523
6524         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6525         TYPE_DECL.
6526         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6527         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6528         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6529         Use skip_simple_arithmetic to find SAVE_EXPR.
6530         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6531         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6532         Properly chain multiple pointers.
6533         (copy_tree_r): Copy a TYPE_DECL.
6534         * tree.c (variably_modified_type_p): Add some missing tests and
6535         make some other minor changes.
6536         * tree.h (force_type_save_exprs): New declaration.
6537
6538 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6539
6540         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6541         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6542         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6543         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6544         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6545         x%-1 into 0 (or x&0 if x has side-effects).
6546
6547 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6548
6549         * config/rs6000/rs6000.md: Document why a pattern is not
6550         available.
6551
6552         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6553         of floats on the E500.
6554         (branch_positive_comparison_operator): Do not allow NE even on the
6555         E500.
6556
6557 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6558
6559         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6560         in_text_unlikely_section to in_unlikely_text_section.
6561
6562 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6563
6564         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6565         calling convention to allow a NULL_TREE to be returned.  Factor
6566         sanity checks from callers, return NULL_TREE when appropriate.
6567         (fold): Handle COMPOUND_EXPR operands of binary expressions
6568         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6569         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6570         calls to fold_binary_op_with_conditional_arg.
6571
6572 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6573
6574         * config/mips/iris5.h (current_section_flags):  Add
6575         in_unlikely_executed_text and default case.
6576
6577 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6578
6579         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6580         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6581         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6582         HAVE_return and place it around the place where it is needed.
6583
6584 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6585
6586         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6587         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6588         and NORMAL_TEXT_SECTION_NAME.
6589         (unlikely_text_section): Check targetm.have_named_sections
6590         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6591         instead of SECTION_FORMAT_STRING.
6592         * config/mips/iris5.h (current_section_name): Add
6593         in_unlikely_executed_text case and move the abort into the switch.
6594         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6595         (NORMAL_TEXT_SECTION_NAME): Remove.
6596         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6597         (SECTION_FORMAT_STRING): Remove.
6598         * defaults.h (SECTION_FORMAT_STRING): Remove.
6599         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6600         (SECTION_FORMAT_STRING): Remove.
6601
6602 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6603
6604         * c-typeck.c (common_type): Prefer long long to long when same
6605         precision.
6606
6607 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6608
6609         PR 14887
6610         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6611         mode argument.
6612         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6613         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6614
6615 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6616
6617         * simplify-rtx.c (mode_signbit_p): New function to check whether
6618         an RTX is an immediate constant that represents the most significant
6619         bit of a given machine mode.
6620         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6621         C is the sign bit.
6622         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6623         when C2 is the sign bit.
6624         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6625         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6626         sign bit.
6627
6628 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6629
6630         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6631         TYPE_MODE.
6632
6633 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6634
6635         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6636         of TREE_READONLY for types.
6637
6638 2004-04-09  Caroline Tice  <ctice@apple.com>
6639
6640         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6641         (struct basic_block_def):  Add new field, partition.
6642         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6643         definitions.
6644         (partition_hot_cold_basic_blocks): Add extern function
6645         declaration.
6646         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6647         include statements.
6648         (N_ROUNDS): Increase the maximum number of rounds by 1.
6649         (branch_threshold): Add array value for new round.
6650         (exec_threshold): Add array value for new round.
6651         (push_to_next_round_p): New function.
6652         (add_unlikely_executed_notes): New function.
6653         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6654         (mark_bb_for_unlikely_executed_section): New function.
6655         (add_labels_and_missing_jumps): New function.
6656         (add_reg_crossing_jump_notes): New function.
6657         (fix_up_fall_thru_edges): New function.
6658         (find_jump_block): New function.
6659         (fix_crossing_conditional_branches): New function.
6660         (fix_crossing_unconditional_branches): New function.
6661         (fix_edges_for_rarely_executed_code): New function.
6662         (partition_hot_cold_basic_blocks): New function.
6663         (find_traces):  Add an extra round for partitioning hot/cold
6664         basic blocks.
6665         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6666         and only cold blocks, into the last (extra) round of collecting traces.
6667         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6668         over crossing edges.
6669         (bb_to_key):  Add code to correctly identify cold blocks when
6670         doing partitioning.
6671         (connect_traces): Modify to connect all the non-cold traces first, then
6672         go back and connect up all the cold traces.
6673         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6674         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6675         entry and exit blocks.
6676         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6677         if we are doing hot/cold partitioning.
6678         * cfgcleanup.c (cfglayout.h): Add new include statement.
6679         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6680         that cross section boundaries.
6681         (try_forward_edges): Likewise.
6682         (merge_blocks_move_predecessor_nojumps): Likewise.
6683         (merge_blocks_move_successor_nojumps): Likewise.
6684         (merge_blocks_move): Likewise.
6685         (try_crossjump_to_edge): Modify to not attempt after we have done
6686         the block partitioning.
6687         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6688         cross section boundaries.
6689         (try_optimize_cfg): Likewise.
6690         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6691         jumps that cross section boundaries.
6692         * cfglayout.c (flags.h): Add new include statement.
6693         (update_unlikely_executed_notes):  New function.
6694         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6695         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6696         updated appropriately.
6697         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6698         introduced by this optimization.
6699         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6700         extern function declaration.
6701         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6702         list of notes that can be deleted.
6703         (create_basic_block_structure):  Add initialization for partition field.
6704         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6705         section boundaries.
6706         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6707         cross section boundaries.
6708         (commit_one_edge_insertion): Add code so newly created basic block
6709         ends up in correct (hot or cold) section.  Modify to disallow
6710         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6711         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6712         crosses section boundaries.
6713         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6714         cross section boundaries.
6715         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6716         ends up in correct section, with correct notes attached.
6717         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6718         optimization.
6719         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6720         the end of functions are written into the correct (hot or cold)
6721         section.
6722         (dbx_source_file): Add code so writing debug file information
6723         doesn't incorrectly change sections.
6724         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6725         in partitioning hot/cold basic blocks into separate sections.
6726         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6727         section partitioning.
6728         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6729         conditional branches can span all of memory.
6730         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6731         unconditional branches can span all of memory.
6732         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6733         (final_scan_insn):  Add code to check for NOTE instruction indicating
6734         whether basic block belongs in hot or cold section, and to make sure
6735         the current basic block is being written to the appropriate section.
6736         Also added code to ensure that jump table basic blocks end up in the
6737         correct section.
6738         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6739         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6740         one of the branches has a jump that crosses between sections.
6741         (find_if_case_2): Likewise.
6742         (ifcvt): Modify to not attempt to mark loop exit edges after
6743         hot/cold partitioning has occurred.
6744         * opts.c (decode_options): Code to handle new flag,
6745         flag_reorder_blocks_and_partition; also to turn it off if
6746         flag_exceptions is on.
6747         (common_handle_option): Code to handle new flag,
6748         flag_reorder_blocks_and_partition.
6749         * output.h (unlikely_text_section): New extern function declaration.
6750         (in_unlikely_text_section): New extern function declaration.
6751         * passes.c (rest_of_handle_stack_regs):  Add
6752         flag_reorder_blocks_and_partition as an 'or' condition for calling
6753         reorder_basic_blocks.
6754         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6755         as an 'or' condition for calling reorder_basic_blocks.
6756         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6757         * print-rtl.c (print_rtx): Add code for handling new note,
6758         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6759         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6760         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6761         cross between section boundaries.
6762         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6763         indicating the basic block containing it belongs in the cold section.
6764         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6765         between hot and cold sections.
6766         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6767         initialize this flag, and to tie it to the command-line option
6768         freorder-blocks-and-partition.
6769         * varasm.c (cfglayout.h):  Add new include statement.
6770         (unlikely_section_label_printed):  New global variable, used for
6771         determining when to output section name labels for cold sections.
6772         (in_section):  Add in_unlikely_executed_text to enum data structure.
6773         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6774         NORMAL_TEXT_SECTION_NAME macros.
6775         (unlikely_text_section):  New function.
6776         (in_unlikely_text_section):  New function.
6777         (function_section):  Add code to make sure beginning of function is
6778         written into correct section (hot or cold).
6779         (assemble_start_function):  Add code to make sure stuff is written to
6780         the correct section.
6781         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6782         to an if statement that was checking 'in_text_section'.
6783         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6784         condition to an if statement that was checking 'in_text_section'.
6785         (default_section_type_flags_1):  Add check: if in cold section
6786         flags = SECTION_CODE.
6787         * config/darwin.c (darwin_asm_named_section):  Modify to use
6788         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6789         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6790         specifically for the i386.
6791         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6792         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6793         text string to something more informative.
6794         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6795         (SECTION_FORMAT_STRING):  Add new definition.
6796         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6797         '!in_unlikely_text_section' as an 'and' condition to an if statement
6798         that was already checking '!in_text_section'.
6799         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6800         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6801         sure these are properly defined for linux on ppc.
6802         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6803         for this new flag.
6804         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6805         reg_note.
6806         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6807         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6808         these new macros.
6809
6810 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6811
6812         * function.c (gen_mem_addressof): When changing the RTX from a REG
6813         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6814
6815 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6816
6817         PR target/14888
6818         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6819         truncxfdf2_noop): Provide dummy "fmov" implementations.
6820
6821 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6822
6823         * gcc.c (default_compilers): Add missing initializers.
6824
6825         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6826         Return 1 if file was successfully mapped.
6827
6828 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6829
6830         PR pch/13419
6831         PR pch/14137
6832         Radar #: 3315288
6833         * doc/invoke.texi (Precompiled Headers): Suggest -o
6834         to put an output file in a particular place.  Be more detailed
6835         about which options affect PCH validity and which options
6836         might not work.
6837         * c-pch.c (pch_matching): New.
6838         (MATCH_SIZE): New.
6839         (struct c_pch_validity): New field 'match'.
6840         (pch_init): Handle pch_matching.
6841         (c_common_valid_pch): Check pch_matching.
6842
6843         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6844
6845 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6846
6847         * doc/invoke.texi (Precompiled Headers): Warn about known
6848         problems.
6849
6850 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6851
6852         PR c++/14808
6853         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6854         to 1 if ASM_OUTPUT_DEF is defined.
6855         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6856         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6857         Set to non-zero iff not a one_only decl.
6858
6859 2004-04-08  Paul Brook  <paul@codesourcery.com>
6860
6861         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6862
6863 2004-04-08  Paul Brook  <paul@codesourcery.com>
6864
6865         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6866         PROMOTE_FOR_CALL_ONLY.
6867         * config/arm/arm-protos.h (arm_function_value): Declare.
6868         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6869         (TARGET_PROMOTE_PROTOTYPES): Return false.
6870         (arm_function_value): New function.
6871         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6872         (FUNCTION_VALUE): Call arm_function_value.
6873         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6874         (PROMOTE_FUNCTION_MODE): ... to this.
6875         (PROMOTE_FOR_CALL_ONLY): Remove.
6876         * config/mmix/mmix.h: Likewise.
6877         * config/s390/s390.h: Likewise.
6878         * config/sparc/sparc.h: Likewise.
6879         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6880         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6881         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6882         (PROMOTE_FOR_CALL_ONLY): Remove.
6883
6884 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6885
6886         PR ada/14538
6887         * ada/5rosinte.adb: Remove fake mprotect() body.
6888         * ada/5rosinte.ads: Add SA_SIGINFO.
6889         * ada/5rtpopsp.adb: Rewrite to use new interface.
6890         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6891         is tested before more complex ones which mix UNIX and embedded
6892         systems in the conditional.
6893
6894 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6895
6896         PR ada/14665
6897         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6898         filenames which end in .exe or have versioning suffixes like VMS.
6899
6900 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6901
6902         PR target/10129
6903         * config/darwin.c (darwin_encode_section_info): When the decl has
6904         a DECL_INITIAL, it is only defined also when it is not a common.
6905
6906 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6907
6908         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6909         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6910
6911 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6912
6913         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6914         global register variables.
6915
6916 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6917
6918         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6919         rpc_xdr_lvalue_cast_b): New fixes.
6920         * fixinc/fixincl.x: Regenerate.
6921         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6922
6923 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6924
6925         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6926         to power4 and power5 entries.
6927
6928 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6929
6930         * c-common.h (pending_lang_change): Mark for PCH.
6931
6932 2004-04-07  Caroline Tice  <ctice@apple.com>
6933
6934         * gcc.c (main): Move 'break' in main loops (on an error)
6935         to wait until error processing has occurred.
6936
6937 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6938
6939         * config.gcc: Stop changing enable_threads midstream.
6940         Replace uses of enable_threads_flag with enable_threads.
6941         * configure.ac: Replace uses of enable_threads_flag with
6942         enable_threads.  Improve autoconf quotation in one place.
6943         * configure: Regenerate.
6944
6945 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6946
6947         * builtins.c: Implement support for sincos function.
6948         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6949         BUILT_IN_COS{,F,L}.
6950         (expand_builtin_mathfn_3): New function.
6951         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6952         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6953         flag_unsafe_math_optimization is set.
6954
6955         * optabs.h (enum optab_index): Add new OTI_sincos.
6956         (sincos_optab): Define corresponding macro.
6957
6958         * optabs.c (init_optabs): Initialize sincos_optab.
6959         (expand_twoval_unop): New function.
6960
6961         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6962         patterns.
6963
6964         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6965         and UNSPEC_SINCOS_SIN.
6966
6967         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6968         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6969         built-ins as inline x87 intrinsics. Define splits for
6970         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6971         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6972         sincos patterns.
6973         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6974         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6975
6976         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6977         x87's fsincos insn.
6978
6979 2004-04-06  Devang Patel  <dpatel@apple.com>
6980
6981         PR 14467
6982         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6983
6984 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6985
6986         * doc/install.texi: Update HP-UX 11 installation procedure.
6987
6988 2004-04-06  Paul Brook  <paul@codesourcery.com>
6989
6990         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6991
6992 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6993
6994         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6995         when the TLS address is generated by a function call.
6996         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6997         (tls_local_dynamic): Likewise.
6998
6999 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7000
7001         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7002         and TYPE_VOLATILE.
7003
7004 2004-04-05  Caroline Tice  <ctice@apple.com>
7005
7006         * gcc.c (combine_flag): New global variable, for new driver option.
7007         (struct compiler): Add two new fields, to be used when
7008         combining multiple input files in a single pass (IMA).
7009         (default_compilers):  Add values for the new fields to all
7010         compiler entries. Modify the "@c" compiler entry for doing IMA
7011         properly with "-save-temps" and the "combine" flag.
7012         (option_map):  Add new driver option, "--combine", to tell driver
7013         to pass multiple input files to compiler at one time.
7014         (have_o_argbuf_index): New global variable.
7015         (store_arg): Modify to assign value to have_o_argbuf_index.
7016         (struct infile):  Add three new fields, to help with IMA.
7017         (display_help): Add help for new "combine" option.
7018         (process_command): Remove local variable have_o; add code to check
7019         for new "combine" option; remove assignment to combine_inputs.
7020         (do_spec_1):  Modify to deal with IMA better.
7021         (main): Make variable 'lang_n_infiles' local to entire function
7022         rather than to a single block.  Use flag combine_flag to
7023         determine whether to do IMA or not; Modify loop initializing
7024         infiles to deal properly with linker files.
7025         Add code for doing preprocessing in presence of
7026         IMA with "-save-temps" flag.  Modify "main" loop to handle
7027         multiple input files, in multiple languages, with or without
7028         preprocessing,  gracefully.
7029         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7030         re-set it to same directory it's previously been set to (avoid
7031         irritating, meaningless warning messages when doing IMA with
7032         save-temps).
7033         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7034         remove documentation about IMA that is no longer accurate; Add
7035         documentation explaining what "-combine" does.
7036         * ada/lang-specs.h: Add initialization values for new fields in
7037         "struct compiler".
7038         * cp/lang-specs.h: Likewise.
7039         * f/lang-specs.h: Likewise.
7040         * java/lang-specs.h: Likewise.
7041         * objc/lang-specs.h: Likewise.
7042         * treelang/lang-specs.h: Likewise.
7043
7044 2004-04-05  David Edelsohn
7045
7046         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7047         symbol handling.
7048
7049 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7050             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7051
7052         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7053         * pa.md: Use replace_equiv_address to retain the attributes of the
7054         memory operands used in the split and peephole2 patterns for optimizing
7055         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7056
7057 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7058
7059         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7060         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7061         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7062         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7063         PARM_DECL.
7064         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7065         for a type.
7066         * print-tree.c (print_node): Properly handle side-effects, readonly,
7067         and constant flags.
7068         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7069         and TREE_CONSTANT if not a type.
7070         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7071         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7072         (NON_TYPE_CHECK): New macro.
7073         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7074
7075 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7076
7077         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7078         to DWARF2_DEBUG unconditionally.
7079         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7080
7081 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7082             Nathanael Nerode  <neroden@gcc.gnu.org>
7083
7084         PR target/14548
7085         * config.host: Set the shell variable host_can_use_collect2.
7086         Set it to yes by default, and to no for alpha*-dec-*vms*,
7087         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7088         * configure.ac: Set and substitute the shell variable collect2.
7089         Give an error if use_collect2 is yes and host_can_use_collect2 is
7090         no.
7091         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7092         uses.  Initialize to @collect2@.
7093         (STAGESTUFF): Remove $(USE_COLLECT2).
7094         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7095         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7096         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7097         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7098         * configure: Regenerate.
7099
7100 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7101
7102         * simplify-rtx.c (simplify_binary_operation): Constant fold
7103         DIV, MOD, UDIV and UMOD using div_and_round_double.
7104
7105 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7106
7107         PR c++/14804
7108         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7109         RECORD_TYPEs.
7110
7111 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7112
7113         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7114         documentation.
7115
7116 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7117
7118         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7119         updating the REG_EQUAL note on an insn's libcall_insn.
7120
7121 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7122
7123         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7124
7125 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7126
7127         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7128         with reorder_operands_p.
7129
7130 2004-04-03  Jan Hubicka  <jh@suse.cz>
7131
7132         * md.texi (vec_set, vec_extract, vec_init): Document.
7133
7134 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7135
7136        * opts.c (decode_options): Do function inlining with very small
7137        max-inline-insns-* parameters when optimizing for size.
7138
7139 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7140
7141         * config/i386/i386.h (TARGET_NOCONA): New macro.
7142         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7143         (processor_type): Add PROCESSOR_NOCONA.
7144
7145         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7146
7147         * config/i386/i386.c (nocona_cost): New variable.
7148         (m_NOCONA): New macro.
7149         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7150         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7151         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7152         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7153         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7154         x86_decompose_lea, x86_arch_always_fancy_math_387,
7155         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7156         x86_ext_80387_constants, x86_four_jump_limit):
7157         (override_options): Add nocona_cost to processor_target_table.
7158         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7159         (incdec_operand): Prevent inc/dec generation for Nocona too.
7160         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7161
7162 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7163
7164         * rtlanal.c (find_reg_note): Manually
7165         unswitch the loop.
7166
7167 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7168
7169         * genemit.c (gen_split): Change prototype of generated code.
7170         * genrecog.c (write_action): Adjust prototype for and calls to
7171         gen_split_*.
7172         * gensupport.c (struct queue_elem): Add split field.
7173         (queue_pattern): Return a value.  Clear the split field.
7174         (process_rtx): Maintain an association between an insn and the
7175         split generated from it for a define_insn_and_split.
7176         (process_one_cond_exec): Generate a new split for a
7177         define_insn_and_split.
7178         * config/arm/arm-protos.h (arm_split_constant): Add insn
7179         parameter.
7180         (emit_constant_insn): New function.
7181         (arm_gen_constant): Use it.
7182         * config/arm/arm.md: Adjust calls to arm_split_constant.
7183
7184 2004-04-02  Jan Hubicka  <jh@suse.cz>
7185
7186         * cgraph.c: Add overall comment.
7187         (cgraph_inline_hash): New global variable.
7188         (cgraph_create_node): Break out from ...
7189         (cgraph_node): ... here.
7190         (cgraph_edge): New function.
7191         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7192         (cgraph_remove_edge): Accept edge, intead of source and destination.
7193         (cgraph_redirect_edge_callee): New.
7194         (cgraph_remove_node): Update all new datastructures.
7195         (cgraph_record_call, cgraph_remove_call): Kill.
7196         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7197         (dump_cgraph): ... here.
7198         (cgraph_function_possibly_inlined_p): Use new hashtable.
7199         (cgraph_clone_edge, cgraph_clone_node): New.
7200         * cgraph.h: Include hashtab.h
7201         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7202         fields, add inlined_to pointer.
7203         (cgraph_node): Add pointer to next_clone.
7204         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7205         (cgraph_remove_call, cgraph_record_call): Kill.
7206         (cgraph_inline_hash): Declare.
7207         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7208         cgraph_redirect_edge_callee): Declare.
7209         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7210         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7211         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7212         * cgraphunit.c: Add overall comment.
7213         (cgraph_optimize_function): Kill.
7214         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7215         (cgraph_finalize_function): Update call of cgraph_remove_node
7216         (record_call_1): Record call sites.
7217         (cgraph_create_edges): Accept node instead of decl argument.
7218         (error_found): New static variable.
7219         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7220         (cgraph_analyze_function): Update for new datastructures.
7221         (cgraph_finalize_compilation_unit): Plug memory leak.
7222         (cgraph_optimize_function): Kill.
7223         (cgraph_expand_function): Do not use cgraph_optimize_function.
7224         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7225         cgraph_inlined_callees): Kill.
7226         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7227         clones.
7228         (estimate_growth): Simplify.
7229         (cgraph_clone_inlined_nodes): New function.
7230         (cgraph_mark_inline_edge): Re-implement.
7231         (cgraph_mark_inline): Likewise.
7232         (cgraph_check_inline_limits): Simplify.
7233         (cgraph_recursive_inlining_p): New.
7234         (update_callee_keys): Break out from ...
7235         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7236         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7237         Likewise.
7238         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7239         list.
7240         (cgraph_preserve_function_body_p): New predicate.
7241         (cgraph_optimize): Verify cgraph.
7242         * function.h (struct function): Add fields saved_tree/saved_args.
7243         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7244         * toplev.c (rest_of_compilation): Do not free cfun.
7245         * tree-inline.c: Include function.h
7246         (struct inline_data): Add saving_p field; replace decl/current_decl by
7247         node/current_node.
7248         (insert_decl_map): New function.
7249         (copy_body_r): Handle saving; update cgraph datastructure.
7250         (copy_body): Handle recursive inlining.
7251         (initialize_inlined_parameters): Likewise.
7252         (expand_call_inline): Propagate node attributes; update cgraph.
7253         (optimize_inline_calls): Verify that datastructure still match.
7254         (save_body): New function.
7255         * tree-inline.h (save_body): New.
7256         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7257         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7258         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7259
7260 2004-04-01  Serge Belyshev  <1319@bot.ru>
7261
7262         PR target/14702
7263         * config/i386/i386.md: fix source operand constraints in
7264         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7265
7266 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7267
7268         * fold-const.c (folda): Preserve types of comparisons.
7269
7270 2004-04-01  Richard Henderson  <rth@redhat.com>
7271
7272         * toplev.c (backend_init): Move init_optimization_passes call ...
7273         (lang_dependent_init): ... here.
7274
7275 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7276             Jakub Jelinek  <jakub@redhat.com>
7277
7278         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7279         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7280         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7281         * configure: Rebuilt.
7282         * config.in: Rebuilt.
7283         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7284         (stage2-start, stage3-start, stage4-start): Likewise.
7285         (stageprofile-start, stagefeedback-start): Likewise.
7286
7287 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7288
7289         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7290         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7291         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7292         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7293         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7294         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7295         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7296         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7297         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7298         * config/sparc/t-linux: Removed.
7299
7300 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7301
7302         PR c++/14755
7303         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7304         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7305
7306 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7307
7308         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7309         * stor-layout.c (layout_decl): Likewise.
7310         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7311         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7312         * print-tree.c (print_node): Handle various used of unsigned_flag.
7313         * tree.def (BIT_FIELD_REF): Update comment.
7314         * tree.h (TREE_UNSIGNED): Deleted.
7315         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7316
7317 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7318
7319         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7320         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7321         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7322         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7323         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7324         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7325         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7326         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7327         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7328         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7329         REAL_TYPE, not INTEGER_TYPE.
7330         (layout_type, case VECTOR_TYPE): Simplify code.
7331         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7332         * tree.h: Update comments.
7333         (STRIP_NOPS): Use TYPE_UNSIGNED.
7334         (TYPE_UNSIGNED): New macro.
7335         (TYPE_TRAP_SIGNED): Remove now redundant check.
7336         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7337
7338 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7339
7340         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7341
7342 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7343
7344         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7345         Add darwin-fpsave.asm, darwin-vecsave.asm,
7346         and darwin-world.asm.
7347         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7348         as the asm files contain altivec instructions.
7349         * config/rs6000/darwin-fpsave.asm: New file.
7350         * config/rs6000/darwin-vecsave.asm: New file.
7351         * config/rs6000/darwin-world.asm: New file.
7352
7353 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7354
7355         * gengtype-yacc.y (option, stringseq): Add missing
7356         terminating semicolon.
7357
7358 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7359
7360         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7361         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7362         tls_dtprel_ha_32, tls_dtprel_ha_64,
7363         tls_dtprel_lo_32, tls_dtprel_lo_64,
7364         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7365         tls_tprel_ha_32, tls_tprel_ha_64,
7366         tls_tprel_lo_32, tls_tprel_lo_64,
7367         tls_got_tprel_32, tls_got_tprel_64,
7368         tls_tls_32, tls_tls_64): Replace register_operand with
7369         gpc_reg_operand.
7370
7371 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7372
7373         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7374         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7375         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7376         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7377         *ctrdi_internal6): Replace register_operand with
7378         nonimmediate_operand.
7379
7380 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7381
7382         * fold-const.c (fold): Reassociate multiply expression
7383         with an adjacent non-multiply expression to use
7384         architecture's multiply-add instruction.
7385
7386 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7387
7388         * gengtype.c (create_option): New function.
7389         * gengtype.h: Prototype it.
7390         * gengtype-yacc.y (stringseq): New rule.
7391         (option): Use create_option.  Add new bare ID production.  Use
7392         stringseq, not STRING directly.
7393
7394         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7395         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7396         * varray.h, config/alpha/alpha.c:
7397         Use new shorter form of GTY markers.
7398
7399         * doc/gty.texi: Rewrite.
7400
7401 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7402
7403         * config/darwin.c (machopic_function_base_name):
7404         Remove current_name and getting the name of the
7405         current function.
7406
7407 2004-03-30  Nick Clifton  <nickc@redhat.com>
7408
7409         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7410         range, and increase the forward branch range, to allow for
7411         the fact that the PC will be off by 4.
7412
7413 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7414
7415         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7416
7417 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7418
7419         * config/rs6000/rs6000.c (output_vec_const_move):
7420         Find all cases of EASY_VECTOR_15_ADD_SELF.
7421         (easy_vector_constant_add_self): Accept
7422         all vector constant loadable by vsplt* and vadd*.
7423         (easy_vector_same): Use easy_vector_splat_const.
7424         (easy_vector_const): Use easy_vector_splat_const.
7425         (easy_vector_splat_const): New function.
7426         (gen_easy_vector_constant_add_self): New function.
7427
7428         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7429         New prototype.
7430
7431         * config/rs6000/altivec.md (movv4si splitter): Change to
7432         emit move insn with halfed vector constant.
7433         (*movv8hi splitter): Likewise.
7434         (*movv16qi splitter): Likewise.
7435
7436 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7437
7438         PR 11591
7439         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7440         Allow any offset to argument pointer in no-strict case.
7441
7442 2004-03-30  Jan Hubicka  <jh@suse.cz>
7443
7444         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7445         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7446         dump file in non-unit-at-a-time mode.
7447
7448 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7449
7450         * config/cris/cris.h: Correct #ifdef to test for
7451         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7452         HAVE_AS_MUL_BUG_ABORT_OPTION.
7453
7454 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7455
7456         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7457         the address inside the old RTL.
7458
7459 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7460
7461         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7462         (struct c_binding, struct c_scope): Add chain_next
7463         attributes to GTY markers.
7464         (struct lang_identifier, struct lang_tree_node): Define
7465         here...
7466         * c-tree.h: ... not here.  No longer need to declare struct
7467         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7468         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7469         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7470
7471         PR 14734, 11944
7472         * c-decl.c (get_parm_info): If error_mark_node is encountered
7473         in the bindings chain, unbind and discard it; don't abort.
7474
7475 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7476             Dorit Naishlos <dorit@il.ibm.com>
7477
7478         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7479         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7480
7481 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7482
7483         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7484
7485         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7486         (m68hc11_attribute_table): New attribute "page0" to mark a global
7487         variable as being allocated from within page0 section.
7488         (m68hc11_encode_label): New function.
7489         (m68hc11_strip_name_encoding): New function.
7490         (m68hc11_page0_symbol_p): New function.
7491         (m68hc11_indirect_p): Accept global variables marked in page0.
7492         (m68hc11_encode_section_info): Lookup "page0" attribute.
7493
7494         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7495         represents access to page0 variables.
7496
7497         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7498         ("*logicalsi3_silshl16_zext"): Likewise.
7499         ("*ashldi3_const32"): Likewise.
7500         (peephole2 ashift): Likewise.
7501
7502 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7503
7504         * c-tree.h (C_DECL_REGISTER): New.
7505         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7506         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7507         (build_array_ref, c_mark_addressable): Set and use it.
7508         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7509         Allow structures with volatile fields to be declared register.
7510         Don't check TREE_ADDRESSABLE before warning about taking address
7511         of register.
7512         * c-decl.c (finish_decl): Don't allow structures with volatile
7513         fields to be placed in named register.
7514         * doc/trouble.texi: Remove reference to structures with volatile
7515         fields in registers.
7516
7517 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7518
7519         * function.c (thread_prologue_and_epilogue): Move
7520         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7521         before the epilogue.
7522
7523 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7524
7525         * expr.c (store_constructor): Use gen_int_mode to correctly
7526         sign-extend CONST_INT value.
7527
7528 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7529
7530         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7531         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7532         * doc/extend.texi: Likewise.
7533
7534 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7535
7536         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7537           with TYPE_ORIG_SIZE_TYPE.
7538
7539 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7540
7541         PR 14219
7542         * c-typeck.c (build_binary_op): Do not allow comparisons of
7543         vectors.
7544
7545 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7546
7547         * config.gcc: Remove sparc-tti-*.
7548         * config/sparc/pbd.h: Delete.
7549
7550         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7551         * config/sparc/aout.h: Likewise.
7552
7553         * config/sparc/sparc.h: Remove if 0'd code.
7554         * config/sparc/sparc.md (call): Remove if 0'd code.
7555         (call_value): Likewise.
7556         (nonlocal_goto): Likewise.
7557         (unimp_insn): Delete.
7558
7559 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7560
7561         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7562         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7563
7564 2004-03-25  Richard Henderson  <rth@redhat.com>
7565
7566         PR 11527
7567         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7568         rather than later.
7569
7570 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7571
7572         * builtins.c (fold_builtin): Fix error in last change.
7573
7574 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7575
7576         * config/mips/mips.h: Formatting fix.
7577
7578 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7579
7580         * builtins.def: Add ctype builtins.
7581         * doc/extend.texi: Likewise.
7582
7583 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7584
7585         * builtins.c (fold_builtin): Add new builtin optimizations for
7586         sqrt and/or cbrt.
7587         * fold-const.c (fold): Likewise.
7588
7589 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7590
7591         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7592         (rs6000_sched_groups): New variable.
7593         (processor_target_table): Add power5.
7594         (rs6000_override_options): Set rs6000_sched_insert_nops,
7595         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7596         from rs6000_sched_groups.
7597         (output_cbranch): Use rs6000_always_hint.
7598         (rs6000_variable_issue): Use rs6000_sched_groups.
7599         (rs6000_adjust_cost): Add CPU_POWER5.
7600         (is_microcoded_insn): Use rs6000_sched_groups.
7601         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7602         Return 2 for POWER5 cracked instructions.
7603         (is_cracked_insn): Use rs6000_sched_groups.
7604         (is_branch_slot_insn): Use rs6000_sched_groups.
7605         (rs6000_issue_rate): Add CPU_POWER5.
7606         (rs6000_sched_finish): Use rs6000_sched_groups.
7607         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7608         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7609         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7610         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7611         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7612         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7613         * config/rs6000/power5.md: New file.
7614         * doc/invoke.texi: Add power5 option.
7615
7616 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7617
7618         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7619         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7620         * doc/invoke.texi: Fix a typo.
7621
7622 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7623
7624         PR optimization/9707.
7625         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7626         of recursing if both children are single-valued cases with no
7627         children.
7628
7629 2004-03-25  Paul Brook  <paul@codesourcery.com>
7630
7631         * config/arm/arm.c (vfp_print_multi): Remove.
7632         (arm_output_fldmx): New function.
7633         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7634         (arm_expand_prologue): Update to match.
7635         (arm_get_vfp_saved_size): New Function.
7636         (arm_get_frame_offsets): Use it.
7637         (arm_output_epilogue): Use new functions.
7638
7639 2004-03-24  Richard Henderson  <rth@redhat.com>
7640
7641         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7642         (reg_known_value, reg_known_value_size): Likewise; make static.
7643         (reg_known_equiv_p): Make static.
7644         (clear_reg_alias_info): Update for new indexing.
7645         (get_reg_known_value, set_reg_known_value): New.
7646         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7647         (canon_rtx): Use them.
7648         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7649         Don't play queer offsetting games with reg_known_value and
7650         reg_known_equiv_p.
7651         (end_alias_analysis): Free reg_known_value with gc.
7652         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7653         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7654         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7655         functions instead.
7656
7657 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7658
7659         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7660         config/i386/mmintrin.h: Update copyright.
7661
7662 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7663
7664         * configure.ac: Add --enable-werror-always (for top level bootstrap
7665         support).
7666         * configure: Regenerate.
7667
7668 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7669
7670         * objc/objc-act.c (objc_comptypes): Treat comparisons
7671         between 'Class' and '<class> *' as explicitly invalid.
7672
7673 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7674
7675         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7676         (-fprofile-values): Add enabled with profile-{generate,use}.
7677         (-fvpt): Same.
7678         (-ftracer): Add enabled with profile-use.
7679         (-funit-at-a-time): Add enabled at -O2,-O3.
7680         (-funroll-loops): Add enabled with profile-use.
7681         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7682         (max-gcse-passes): Mention default.
7683         (max-cse-path-length): Mention default.
7684
7685 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7686
7687         * Makefile.in (STRICT2_WARN): Reorder.
7688         * configure.ac: Check for -Wold-style-definition, and use it
7689         in strict1_warn if it's available.
7690         * configure: Regnerate.
7691
7692 2004-03-24  Paul Brook  <paul@nowt.org>
7693
7694         * config.gcc <arm>: Add --with-abi=
7695         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7696         thumb_far_jump_used): Remove prototypes.
7697         (arm_needs_doubleword_align): Add prototype.
7698         (thumb_compute_initial_elimination_offset): Ditto.
7699         * config/arm/arm.c (arm_get_frame_offsets): New function.
7700         (use_return_insn, output_return_instruction, arm_output_epilogue,
7701         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7702         arm_expand_prologue, thumb_expand_epilogue): Use it.
7703         (arm_abi, target_abi_name, all_arm_abis): New variables.
7704         (arm_override_options): Set them.  Set structure padding for AAPCS.
7705         (arm_return_in_memory): Update ABI check.
7706         (arm_init_cumulative_args): Initialize can_split.
7707         (arm_needs_doubleword_align): New function.
7708         (arm_function_arg): Don't split args after pushing to stack. Handle
7709         doubleword/even reg alignment.
7710         (arm_va_arg): Handle all doubleword aligned args.
7711         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7712         on ABI, not CPU.
7713         (arm_compute_save_reg0_reg12_mask): Fix comment.
7714         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7715         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7716         value for alignment.
7717         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7718         to match.
7719         (thumb_compute_initial_elimination_offset): New function.
7720         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7721         unneccessary rounding.
7722         * config/arm/arm.h (target_abi_name): Declare.
7723         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7724         arm_abi_type, ARM_DEFAULT_ABI): Define.
7725         (ARM_FLAG_ATPCS): Remove.
7726         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7727         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7728         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7729         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7730         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7731         Contitionalize on ABI, not CPU.
7732         (struct arm_stack_offsets): Define.
7733         (struct machine_function): Add stack_offsets.  Remove frame_size.
7734         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7735         pushed.
7736         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7737         doubleword alignment.
7738         (THUMB_INITIAL_ELIMINATION_OFFSET,
7739         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7740         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7741         * config/arm/arm.md (align_8): Enable for all targets.
7742         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7743         (ARM_DEFAULT_ABI): Define.
7744         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7745         -mstructure-size-boundary.
7746
7747 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7748
7749         * configure.ac: Check for -Wno-variadic-macros; don't use
7750         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7751         and if it's available, use it.  Also, clean up check for
7752         -Wno-long-long.
7753         * configure: Regenerate.
7754
7755 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7756
7757         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7758         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7759         (MULTILIB_DEFAULTS): Use it.
7760         (MIPS_CPU_STRING_DEFAULT): Remove.
7761         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7762         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7763         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7764         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7765         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7766         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7767         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7768         accordingly.
7769
7770 2004-03-24  DJ Delorie  <dj@redhat.com>
7771             Richard Sandiford  <rsandifo@redhat.com>
7772
7773         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7774         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7775         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7776         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7777         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7778         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7779         if TARGET_FIX_VR4122.
7780         * config/mips/mips.md (define_attr length): Account for nops inserted
7781         after macc and dmult when using -mfix-vr4122-bugs.
7782         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7783         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7784         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7785         * config/mips/vr4122-div.S: New file.
7786         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7787
7788 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7789
7790         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7791         (TARGET_MIPS4130): New macro.
7792         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7793         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7794         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7795         with PROCESSOR_R4130.
7796         * config/mips/mips.md (define_attr cpu): Add r4130.
7797         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7798
7799 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7800             Richard Sandiford  <rsandifo@redhat.com>
7801
7802         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7803
7804 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7805
7806         PR preprocessor/14438
7807         * cpplib.c (do_pragma): Remove line_change call after pragma
7808         handler.
7809
7810 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7811
7812         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7813         declarations.
7814
7815 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7816
7817         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7818         if flag_unsafe_math_optimizations.
7819         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7820         and TARGET_80387 expand using truncdfsf2_noop pattern.
7821         (truncxfsf2): Likewise using truncxfsf2_noop.
7822         (truncxfdf2): Likewise using truncxfdf2_noop.
7823         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7824
7825 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7826
7827         * hooks.c (hook_constcharptr_tree_null): New hook.
7828         * hooks.h (hook_constcharptr_tree_null): New prototype.
7829         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7830         * target.h (mangle_fundamental_type): New target hook.
7831         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7832         target hook at rs6000_mangle_fundamental_type.
7833         (rs6000_mangle_fundamental_type): New function.
7834         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7835
7836 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7837
7838         PR 12267, 12391, 12560, 13129, 14114, 14133
7839         * c-tree.h: Forward declare struct c_binding.  Declare
7840         c_override_bindings_to_false.  Update prototypes.
7841         (struct lang_identifier): Update comments.  Change fields to be
7842         struct c_binding *.
7843         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7844         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7845         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7846         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7847         * c-common.h: Update prototypes.
7848         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7849         names_last, parms, parms_last, tags, and shadowed fields.  Add
7850         bindings and depth fields.
7851         (scope_freelist): Move to more appropriate location.
7852         (c_print_identifier): Update for changes to struct lang_identifier.
7853         (objc_mark_locals_volatile): Update for new bindings structures.
7854         (global_bindings_p): Honor c_override_global_bindings_to_false.
7855         (pushlevel): Rename to push_scope; take no arguments; use the
7856         scope_freelist; initialize scope->depth and check for overflow.
7857         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7858         structures.
7859         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7860         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7861         Improve some commentary.  Adjust handling of forward parm decls.
7862         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7863         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7864         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7865         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7866         decls.  Rewrite for new bindings structures.  Improve commentary.
7867         Eliminate the copy_node call.
7868         (implicit_decl_warning): Use the "diag" idiom (as seen in
7869         locate_old_decl) to reduce code duplication; call locate_old_decl
7870         if appropriate.  Relocate to remove need for forward declaration.
7871         (implicitly_declare): Adjust for new bindings structures.  Kludge
7872         around Objective-C not-really-builtin functions.
7873         (undeclared_variable): Improve diagnostics.  If current_function_decl
7874         is nonnull but current_function_scope is null, use current_scope.
7875         Use bind.
7876         (lookup_tag): Adjust for new bindings structures.  Kludge around
7877         Objective-C's tag declarations that wind up in the external scope.
7878         (lookup_name): Adjust for new bindings structures.  Kludge around
7879         c-common.c's pseudo-typedefs that wind up in the external scope.
7880         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7881         second argument indicating the scope to examine; rewrite for
7882         new bindings structures.
7883         (c_init_decl_processing): Adjust for renamed functions.  Do not
7884         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7885         First scope pushed is the external scope, not the global scope.
7886         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7887         for new data structures.  Keep track of builtins that should be
7888         made visible automatically.
7889         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7890         expand_decl.
7891         (grokparms): Return 0 if arg_types is error_mark_node.
7892         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7893         reversed sense.  Rewrite for new bindings structures.  Do not
7894         leave any decls in the scope, to prevent pop_scope from doing
7895         contradictory things with them.
7896         (finish_struct, finish_enum): Remove redundant diagnostics.
7897         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7898         Mark location where -pedantic changes the meaning of the program.
7899         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7900         parameter decls into the function's scope structure using bind.
7901         Warn here about function definitions in the wrong style.
7902         Adjust diagnostics.
7903         (store_parm_decls): Correct the determination of whether a
7904         function was defined with a prototype.
7905         (c_write_global_declarations): Operate on all file decls and on
7906         the external scope.  Split body of the loop to...
7907         (c_write_global_declarations_1): ... this new function, to avoid
7908         code duplication.
7909         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7910         (make_scope, pop_scope, in_parm_level_p, set_block)
7911         (any_external_decl, record_external_decl, bind_label, getdecls)
7912         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7913         (c_reset_state): Delete.
7914         (visible_builtins, c_override_global_bindings_to_false)
7915         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7916         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7917         (external_scope, binding_freelist, bind, free_binding_and_advance)
7918         (push_file_scope, pop_file_scope): New.
7919         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7920         (define_label, c_make_fname_decl, finish_decl)
7921         (mark_forward_parm_decls, build_compound_literal)
7922         (grokdeclarator, start_function, check_for_loop_decls)
7923         (identifier_global_value, record_builtin_type): Minor adjustments
7924         for new bindings structures.  Improve diagnostics and commentary.
7925         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7926         pushlevel/poplevel respectively.
7927         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7928         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7929         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7930         correct loop over multiple translation units; call fatal_error if
7931         requested to compile more than one file at once.  (This disables
7932         IMA temporarily - an up-front error being preferable to a crash.)
7933         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7934         (all actions): Adjust calls to pushlevel/poplevel.
7935         (parsing_iso_function_signature): Delete.
7936         (extdef_1): Fold into extdef.
7937         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7938         warn here about function definitions in the wrong style.
7939         (after_tyle_declarator, parm_declarator_starttypename)
7940         (parm_declarator_nostarttypename, notype_declarator): Remove
7941         commented-out productions.
7942         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7943         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7944         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7945         to suppress -Wold-style-definition after this error.
7946         (c_parse_file): Don't clear the binding stack or call
7947         finish_fname_decls here.  Correct comment.
7948         * c-typeck.c (same_translation_unit_p): Export.
7949         (common_type): Use c_override_global_bindings_to_false, not
7950         pushlevel/poplevel/declare_parm_level.
7951         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7952         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7953         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7954         * objc/objc-lang.c: Likewise.
7955         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7956         get_parm_info.
7957         (OBJC_VOID_AT_END): Delete; replace all uses
7958         with void_list_node.
7959         (generate_forward_declaration_to_string_table): Delete.
7960         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7961
7962         * coverage.c (create_coverage): Don't pushdecl anything.
7963         * langhooks.c (lhd_clear_binding_stack): Call
7964         lang_hooks.decls.poplevel, not poplevel.
7965         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7966         circular list rather than going into an infinite loop.
7967
7968 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7969
7970         * optabs.c (expand_binop): When synthesizing double word rotates
7971         from single word shifts, use a new register target if the provided
7972         target is not a REG already.
7973
7974 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7975
7976         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7977         * c-common.c (handle_mode_attribute): Add extra arg to
7978         build_pointer_type_for_mode and build_reference_type_for_mode.
7979         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7980         for INTEGER_CST.
7981         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7982         Chain pointers via TYPE_NEXT_PTR_TO.
7983         (build_reference_type_for_mode): Similarly.
7984         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7985         and build_reference_type_for_mode.
7986         (tree_check4_failed): New function.
7987         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7988         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7989         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7990         Add check.
7991
7992 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7993
7994         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7995         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7996         when both A and B are nonnegative.
7997         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7998         nonzero.
7999
8000 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8001
8002         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8003         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8004
8005 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8006
8007         PR optimization/14669
8008         * fold-const.c (fold): Only unwiden integer comparisons for equality
8009         and inequality operators, or when the signedness doesn't change.
8010
8011 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8012
8013         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8014         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8015         * config/sparc/t-linux: New file.
8016
8017 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8018
8019         * gcse.c (can_assign_to_reg_p): New function, split out from...
8020         (want_to_gcse_p): ...here.
8021         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8022         the rhs of a store.
8023
8024 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8025
8026         * c-typeck.c (same_translation_unit_p): Fix pasto.
8027
8028 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8029
8030         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8031         (PARAM_MAX_SCHED_REGION_INSNS): New.
8032         * sched-rgn.c: Include params.h
8033         (MAX_RGN_BLOCKS): Delete.
8034         (MAX_RGN_INSNS): Delete.
8035         (too_large): Return bool.  Convert to PARAM_VALUE.
8036         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8037         * doc/invoke.texi (param): Document max-sched-region-blocks and
8038         max-sched-region-insns.
8039
8040 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8041
8042         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8043         for base types.
8044
8045 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8046
8047         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8048         change.
8049
8050 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8051
8052         PR c/14069
8053         * c-decl.c (finish_struct): Change type of incorrect flexible array
8054         field into error_mark_node.
8055
8056 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8057
8058         PR target/14580
8059         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8060         who are not local for Darwin PIC.
8061
8062 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8063
8064         * regrename.c (regrename_optimize): Set regs_ever_live for all
8065         registers introduced as replacement.
8066
8067 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8068
8069         PR middle-end/14470
8070         * expr.c (mark_queue): New function.
8071         (emit_insns_enqueued_after_mark): New function replacing
8072         emit_queue.  Clear the body of emitted queued insns.
8073         (emit_queue): Call emit_insns_enqueued_after_mark.
8074         (store_expr): Mark the increment queue on entry.  Emit
8075         only the incrementations queued when expanding the source.
8076
8077 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8078
8079         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8080         of top level bootstrap, and consistency).  Reindent.
8081         * configure: Regenerate.
8082
8083 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8084
8085         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8086         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8087         unnecessary casts.
8088
8089 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8090
8091         PR target/14291
8092         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8093         __MINGW32__.
8094
8095 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8096
8097         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8098         to nonimmediate_operand.
8099         ("*doloop_di"): Likewise.
8100
8101 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8102
8103         * real.h (struct real_value): Use the same type for all
8104         bitfields.  Rename exp to uexp.
8105         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8106         Adjust all uses of exp...
8107         * builtins.c: ... here, ...
8108         * emit-rtl.c: ... here, and ...
8109         * real.c: ... and here.
8110
8111 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8112
8113         * pretty-print.c (pp_base_maybe_space): New function.
8114         * pretty-print.h (pp_base_maybe_space): Declare.
8115         (pp_maybe_space): New macro.
8116
8117 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8118
8119         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8120
8121 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8122
8123         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8124         of using register multiplication cost.
8125         (expand_mult): Adapt choose_mult_variant call.
8126         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8127         of MODE; pass appropriate cost bound.  Adjust result when
8128         performing signed multiplication by a negative constant.
8129         Don't use intermediate modes larger than word_mode.
8130
8131 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8132
8133         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8134         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8135         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8136         * explow.c (expr_size): Likewise.
8137         * expr.h (placeholder_list, find_placeholder): Deleted.
8138         * expr.c (store_constructor): Likewise.
8139         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8140         (placeholder_list, find_placeholder): Deleted.
8141         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8142         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8143         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8144         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8145         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8146         Likewise.
8147         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8148         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8149         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8150         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8151         Clean up by using first_rtl_op.
8152         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8153         (substitute_placeholder_in_expr): New function.
8154         * tree.def (WITH_RECORD_EXPR): Deleted.
8155         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8156         (substitute_placeholder_in_expr): New.
8157
8158 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8159
8160         * dojump.c (prefer_and_bit_test): Fix which part of
8161         the and_test is replaced.
8162
8163 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8164
8165         * frontends.texi: Add missing line.
8166
8167 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8168             Chris Devers  <cdevers@pobox.com>
8169             Joseph S. Myers  <jsm@polyomino.org.uk>
8170
8171         * doc/frontends.texi: Rewrite.
8172         * doc/gcc.texi: Update last modification date.
8173
8174 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8175
8176         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8177         message before redirecting the edge.
8178
8179 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8180
8181         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8182         flag.
8183         * explow.c (force_not_mem): Set REG_POINTER flag according to
8184         MEM_POINTER one.
8185         * rtl.h (MEM_POINTER): New macro.
8186         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8187         for MEM_POINTER.
8188
8189 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8190
8191         PR target/13889
8192         * cse.c (fold_rtx): Avoid substituting constants into unary
8193         conversion operations.
8194
8195 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8196
8197         * fold-const.c (fold): Replace "expr" with "t".
8198
8199 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8200
8201         PR c/12373
8202         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8203         DECL_ORIGINAL_TYPE if there isn't one.
8204
8205 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8206
8207         * fold-const.c (fold): Replace "final_type" with "type".
8208         Remove variable "final_type".
8209
8210 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8211
8212         * fold-const.c (fold): Constify "type".
8213         Replace "TREE_TYPE (t)" with "type".
8214
8215 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8216
8217         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8218         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8219         via (*targetm.foo) () with targetm.foo ().
8220
8221 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8222
8223         PR other/14630
8224         * doc/install.texi: Add info directory category and entry.
8225
8226 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8227
8228         * fold-const.c (fold): Replace "t" with "tem" where it is used
8229         as a temporary variable.  Remove "orig_t" and all of its uses.
8230
8231 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8232
8233         * fold-const.c (fold): Remove variable "invert".
8234         Move the handling of relational expressions that can be folded
8235         to a constant ...
8236         (fold_relational_const): ... here.
8237         (tree_expr_nonzero_p): New.
8238
8239 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8240
8241         PR c/14635
8242         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8243         DEF_GCC_BUILTIN.
8244
8245 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8246
8247         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8248         (GTFILES): Add $(srcdir)/dojump.h.
8249         (gt-dojump.h): New dependency.
8250         * dojump.c (and_reg, and_test, shift_test): New static variables.
8251         (prefer_and_bit_test): New function.
8252         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8253
8254 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8255
8256         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8257         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8258         reorg.c, tree.h: Fix comment typos.
8259
8260 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8261
8262         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8263         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8264         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8265         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8266         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8267         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8268         targetm.foo ().
8269
8270 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8271
8272         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8273         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8274         always_inline attribute.
8275         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8276         Treat expansion as completed even if literal argument is
8277         invalid (so that other expansions are not tried in vain).
8278
8279 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8280
8281         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8282         const0_rtx.
8283
8284 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8285
8286         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8287         ...
8288         (fold_abs_const): ... here.
8289
8290 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8291
8292         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8293
8294 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8295
8296         PR target/11520
8297         * config/avr/avr.md ("call_insn"): Handle explicit integer
8298         specially.
8299         (call_value_insn): Likewise.
8300
8301 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8302
8303         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8304
8305 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8306
8307         * fold-const.c (negate_expr): Move the handling of constants
8308         ...
8309         (fold_negate_const): ... here.
8310
8311 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8312
8313         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8314         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8315         * tree.c (debug_no_type_hash): Deleted.
8316         (type_hash_canon): Abort if passed a variant.
8317         Check lang_hooks.types.hash_types.
8318         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8319         (build_array_type): Remove unnecessary allocation of pointer type.
8320         (build_complex_type): Properly qualify resulting type.
8321
8322 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8323
8324         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8325
8326 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8327
8328         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8329         (expand_mult): ...here.
8330         (extract_high_half): New, split out from expand_mult_highpart.
8331         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8332         (expand_highpart): Evaluate the cost of a shift/add sequence,
8333         then see if any of the specialized optabs are cheaper.
8334
8335 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8336
8337         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8338
8339 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8340
8341         * convert.c (convert_to_real): Add more math builtins.
8342
8343 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8344
8345         * convert.c (convert_to_real): Reformat using switch stmt.
8346
8347 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8348
8349         * c-common.c (pointer_int_sum): Do not complain about using
8350         pointers to pointers-to-members.
8351
8352 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8353
8354         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8355         have moved to the target hooks structure".
8356
8357 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8358
8359         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8360         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8361         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8362         Likewise.
8363         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8364         Likewise.
8365         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8366         rm7_fp_quick): Likewise.
8367         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8368         rm9k_fquick): Likewise.
8369         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8370         Likewise.
8371         (ir_sr70_icmp): Delete.
8372
8373 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8374
8375         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8376         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8377         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8378         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8379         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8380         Protect with proper check.
8381         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8382         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8383         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8384         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8385         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8386         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8387         not TYPE_FIELDS.
8388         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8389
8390 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8391
8392         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8393         dest is set between beginning and current insn.
8394
8395 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8396
8397         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8398         visible "static" identifiers "extern" in a local scope.
8399         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8400         post-increments/decrements.
8401
8402 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8403
8404         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8405         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8406         (xtensa_va_start): Remove assignment to current_function_arg_words.
8407
8408 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8409
8410         * alias.c (record_set): Detect the case where a register is assigned
8411         a new value that has the same base term as the old one.
8412
8413 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8414
8415         * doloop.c: Removed.
8416         * loop-doloop.c: New file.
8417         * Makefile.in (doloop.o): Remove.
8418         (loop-doloop.o): New.
8419         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8420         * cfgloopanal.c (get_loop_level): New function.
8421         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8422         is leaved immediatelly.
8423         * loop.c (strength_reduce): Do not call doloop optimization.
8424         * loop.h (LOOP_BCT): Removed.
8425         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8426         (rest_of_handle_loop2): Call doloop_optimize_loops.
8427         (rest_of_compilation): Test for optimizations moved to
8428         rest_of_handle_loop2.
8429
8430 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8431
8432         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8433         for mixed mode.
8434         (rs6000_emit_prologue): Ditto.
8435         (rs6000_emit_epilogue): Ditto.
8436         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8437         macro for mixed mode.
8438
8439 2004-03-18  Jan Hubicka  <jh@suse.cz>
8440
8441         * predict.c (propagate_freq): Compute correctly frequency of
8442         EXIT_BLOCK.
8443
8444 2004-03-17  Eric Christopher  <echristo@redhat.com>
8445
8446         * builtins.c (apply_args_size): Use reg_raw_mode.
8447         (apply_result_size): Ditto.
8448
8449 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8450
8451         PR target/14620
8452         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8453
8454 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8455
8456         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8457         32-bit builds when defaulting to 32-bit.
8458
8459 2004-03-17  Jan Hubicka  <jh@suse.cz>
8460
8461         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8462         array.
8463
8464 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8465
8466         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8467         (hazard_nop): Change type to nop.
8468         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8469         Fix all uses.  Change arith to multi if more than one insn emitted.
8470         * config/mips/5400.md (ir_vr54_arith): Likewise.
8471         * config/mips/5500.md (ir_vr55_arith): Likewise.
8472         * config/mips/7000.md (rm7_int_other): Likewise.
8473         * config/mips/9000.md (rm9k_int): Likewise.
8474         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8475
8476 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8477
8478         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8479         to hold the subtype tree instead of recomputing it several times.
8480
8481 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8482
8483         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8484         CC_INVERT.
8485         * config/mn10300/mn10300.md (cc): Remove "invert".
8486
8487 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8488
8489         * builtins.c (integer_valued_real_p): Add builtin rint.
8490         (fold_builtin): Likewise.
8491         * convert.c (convert_to_real): Likewise.
8492
8493         * convert.c (convert_to_real): Fix typos in `long double'
8494         builtins.
8495
8496 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8497
8498         PR c++/14481
8499         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8500         generated COMPOUND_EXPRs.
8501
8502 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8503
8504         * config/h8300/t-rtems (h8300-*-rtems*): New.
8505
8506 2004-03-16  Eric Christopher  <echristo@redhat.com>
8507
8508         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8509
8510 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8511
8512         * config/i386/i386-protos.h: Add a prototype for
8513         ix86_reverse_condition.
8514         * config/i386/i386.c (ix86_reverse_condition): New.
8515         * config/i386/i386.h (REVERSE_CONDITION): Use
8516         ix86_reverse_condition.
8517         * config/i386/i386.md: Use ix86_reverse_condition instead of
8518         REVERSE_CONDITION.
8519
8520 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8521
8522         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8523
8524 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8525
8526         PR bootstrap/12974
8527         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8528
8529 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8530
8531         * c-common.c (c_common_type_for_mode): Build vector types on
8532         demand.
8533         (handle_mode_attribute): Deprecate using the mode attribute
8534         to create vector types.  Fix indentation.
8535         (vector_type_node_list): Remove.
8536         (handle_vector_size_attribute): Create vector types on demand.
8537         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8538         * c-typeck.c (comptypes): Make vector types compatible if they
8539         have the same underlying mode.
8540         (convert_for_assignment): Use comptypes to convert between
8541         vector types.
8542         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8543         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8544         vector types.
8545         * tree.h: Remove vector types.
8546         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8547         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8548         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8549         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8550         * doc/extend.texi (Vector Types): Document how to use the
8551         vector_size attribute to create vectors, rather than mode.
8552
8553         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8554         * config/i386/emmintrin.h: Likewise.
8555         * config/i386/mmintrin.h: Likewise.
8556         * config/i386/xmmintrin.h: Likewise.
8557         * config/sh/ushmedia.h: Likewise.
8558
8559 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8560
8561         * config/freebsd-spec.h, config/arc/arc-protos.h,
8562         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8563         config/arm/linux-gas.h, config/arm/semi.h,
8564         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8565         config/ia64/freebsd.h, config/mips/7000.md,
8566         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8567         config/sparc/pbd.h: Update copyright.
8568
8569 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8570
8571         PR target/14577
8572         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8573
8574 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8575
8576         * combine.c (combine_simplify_rtx): Remove the "last"
8577         parameter and its documentation.  Adjust recursive calls.
8578         (simplify_logical): Always perform the only simplification
8579         controlled by "last", if the simplified expression is
8580         actually different.
8581         (try_combine): Do not pass the "last" parameter to
8582         combine_simplify_rtx.
8583
8584 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8585
8586         PR target/14599
8587         * config/mips/mips.md (UNSPEC_GP): New constant.
8588         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8589         an UNSPEC instead of (reg $gp).
8590         (mips16_gp_pseudo_reg): Change accordingly.
8591         (print_operand): Print $gp directly when handling CONST_GP_P.
8592
8593 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8594
8595         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8596         * longlong.h: Make code 68060 clean when compiling for m68060.
8597
8598 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8599
8600         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8601         * doc/md.texi: Clarify description of "i" constraint.
8602
8603 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8604
8605         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8606         Split store into store, fpstore, fpidxstore.  Fix all uses.
8607         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8608         Likewise.
8609         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8610         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8611         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8612         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8613         ir_sr70_fstore): Likewise.
8614
8615 2004-03-15  Richard Henderson  <rth@redhat.com>
8616
8617         PR middle-end/14535
8618         * except.c (collect_one_action_chain): Record action for cleanup
8619         outer of exception spec.
8620
8621 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8622
8623         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8624         Fix the check for abort and only do the mmap if we can.
8625
8626 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8627
8628         * config/sparc/sparc.h: Rework comments about the code model
8629         in 64-bit environment and the mode 'Pmode'.
8630         * doc/invoke.texi (SPARC options): Rework description of the
8631         different code models supported in 64-bit environment.
8632
8633 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8634
8635         * defaults.h (REVERSIBLE_CC_MODE): Define.
8636         * jump.c (reversed_comparison_code_parts): Don't check if
8637         REVERSIBLE_CC_MODE is defined.
8638
8639 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8640
8641         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8642         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8643         hosthooks.h, params.h, ra-colorize.c, web.c,
8644         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8645         config/avr/avr-protos.h, config/avr/avr.md,
8646         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8647         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8648         config/i386/freebsd.h, config/i386/freebsd64.h,
8649         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8650         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8651         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8652         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8653         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8654         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8655         config/sparc/aout.h, config/sparc/freebsd.h,
8656         config/sparc/litecoff.h, config/vax/vax-protos.h,
8657         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8658         copyright.
8659
8660 2004-03-15  Paul Brook  <paul@codesourcery.com>
8661
8662         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8663
8664 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8665
8666         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8667         (pp_c_cv_qualifier): Document.
8668         (pp_c_space_for_pointer_operator): Likewise.
8669         (pp_c_integer_constant): Likewise.
8670         (pp_c_identifier): Likewise.
8671         (pp_c_init_declarator): Don't print function body.
8672
8673 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8674
8675         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8676         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8677         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8678         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8679         wording and grammar.
8680
8681 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8682
8683         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8684         with lang_hooks.foo ().
8685         * builtins.c (expand_builtin_va_arg): Likewise.
8686         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8687         c_common_type_for_mode, c_common_nodes_and_builtins,
8688         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8689         * c-convert.c (convert): Likewise.
8690         * c-format.c (check_format_types): Likewise.
8691         * c-objc-common.c (c_tree_printer): Likewise.
8692         * c-typeck.c (build_unary_op, build_conditional_expr,
8693         build_binary_op): Likewise.
8694         * calls.c (try_to_integrate, expand_call,
8695         emit_library_call_value_1): Likewise.
8696         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8697         Likewise.
8698         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8699         cgraph_expand_function): Likewise.
8700         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8701         * coverage.c (build_fn_info_type, build_ctr_info_type,
8702         build_gcov_info, create_coverage): Likewise.
8703         * dbxout.c (dbxout_init): Likewise.
8704         * diagnostic.c (diagnostic_report_current_function): Likewise.
8705         * dojump.c (do_jump): Likewise.
8706         * dwarf2out.c (dwarf2_name): Likewise.
8707         * except.c (init_eh): Likewise.
8708         * explow.c (expr_size, int_expr_size): Likewise.
8709         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8710         Likewise.
8711         * expr.c (store_expr, store_constructor, safe_from_p,
8712         expand_expr_real, do_store_flag, try_casesi): Likewise.
8713         * function.c (push_function_context_to, pop_function_context_from,
8714         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8715         put_var_into_stack, allocate_struct_function, current_function_name):
8716         Likewise.
8717         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8718         Likewise.
8719         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8720         lhd_print_error_function): Likewise.
8721         * opts.c (handle_option, decode_options): Likewise.
8722         * passes.c (open_dump_file): Likewise.
8723         * print-tree.c (print_node): Likewise.
8724         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8725         expand_decl_cleanup, emit_case_nodes): Likewise.
8726         * stor-layout.c (variable_size): Likewise.
8727         * toplev.c (announce_function, wrapup_global_declarations,
8728         check_global_declarations, compile_file, default_tree_printer,
8729         process_options, lang_dependent_init, finalize): Likewise.
8730         * tree-dump.c (dequeue_and_dump): Likewise.
8731         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8732         initialize_inlined_parameters, declare_return_variable,
8733         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8734         walk_tree, copy_tree_r): Likewise.
8735         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8736         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8737         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8738         variably_modified_type_p, dump_tree_statistics): Likewise.
8739         * varasm.c (assemble_variable, compare_constant, copy_constant,
8740         force_const_mem, compute_reloc_for_constant, output_constant,
8741         output_addressed_constants, initializer_constant_valid_p): Likewise.
8742
8743 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8744
8745         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8746
8747 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8748
8749         * doc/install.texi: Reflect autoconf and automake version for
8750         libffi. Update autoconf version to 2.59.
8751
8752 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8753
8754         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8755         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8756         make_range, build_range_check, fold_range_test, unextend,
8757         constant_boolean_node, fold_binary_op_with_conditional_arg,
8758         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8759         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8760         with lang_hooks.foo ().
8761
8762 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8763
8764         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8765
8766 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8767
8768         * doc/install.texi: Note status of -fnew-ra.
8769
8770 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8771
8772         PR middle-end/14470
8773         * expr.c (store_expr): Call emit_queue before generating the move
8774         from the temporary to the original target.  Protect the temporary
8775         from emit_queue.
8776
8777 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8778
8779         PR target/14533
8780         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8781         other than UNSPEC_GOTOFF.
8782
8783 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8784
8785         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8786         to arm_legitimate_index_p.  Update all callers with SET as default
8787         value.
8788         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8789         range if OUTER is a sign-extend operation on QImode.  Correctly
8790         reject shift operations on sign-extended QImode addresses.
8791         (bad_signed_byte_operand): Delete.
8792         (arm_extendqisi_mem_op): New function.
8793         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8794         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8795         constraints.
8796         (CONSTRAINT_LEN): New.
8797         (EXTRA_CONSTRAINT): Delete.  Replace with...
8798         (EXTRA_CONSTRAINT_STR): ... this.
8799         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8800         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8801         is now always default.
8802         (define_splits for bad sign-extend loads): Delete.
8803         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8804         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8805         Rework 'U' constraint to 'Uv'.
8806         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8807         arm_extendqisi_mem_op.
8808         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8809         Add Uq constraint.
8810
8811 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8812
8813         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8814         with targetm version.
8815
8816         PR target/14567
8817         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8818         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8819         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8820         Update all users of RS6000_ARG_SIZE.
8821         (function_arg_advance): Count fregno using mode size.
8822         (function_arg): Handle long double split over regs and memory.
8823         (function_arg_partial_nregs): Likewise.
8824         (rs6000_va_arg): Repackage complex args.
8825
8826 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8827
8828         PR target/14047
8829         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8830         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8831         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8832
8833 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8834
8835         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8836         prototype.
8837         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8838         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8839
8840 2003-03-12  Andrew Pinski  <apinski@apple.com>
8841
8842         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8843         Use ret instead of result. Use addr instead of base.
8844
8845 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8846
8847         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8848         fixes required by libstdc++ and update installation instructions
8849         for libstdc++.a.
8850
8851 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8852
8853         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8854         leading '@' on fastcall symbols before stripping suffix.
8855
8856 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8857
8858         * combine.c (unmentioned_reg_p): New function to check whether an
8859         expression is a "specialization" of another, i.e. that there are
8860         no registers or memory references mentioned in the first that don't
8861         appear in the second.
8862         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8863         (combine_instructions): Also try combining instructions using the
8864         REG_EQUAL note from a preceding log-linked instruction.
8865
8866 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8867
8868         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8869
8870 2004-03-12  Matt Austern  <austern@apple.com>
8871
8872         * target.h (struct gcc_target): New target hook, unwind_label.
8873         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8874         * output.h (default_emit_unwind_label): New function.
8875         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8876         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8877         (TARGET_SUPPORTS_HIDDEN): New target macro.
8878         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8879         that corresponds to this FDE.
8880         (FRAME_BEGIN_LABEL): Allow target to override default label.
8881         (output_call_frame_info): If FDEs are linknonce, then use extra
8882         indirection for FDE encoding, output a label for each FDE, and
8883         output an empty label for each function without an FDE.
8884         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8885         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8886         decls with DECL_ONE_ONLY set, if that macro is defined.
8887         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8888         for a SUPPORTS_ONE_ONLY target.
8889         * config/darwin-protos.h (darwin_unique_section): Declare.
8890         (darwin_asm_named_section): Likewise.
8891         (darwin_section_type_flags): Likewise.
8892         (darwin_non_lazy_pcrel): Likewise.
8893         (darwin_emit_unwind_label): Likewise.
8894         (darwin_make_decl_one_only): Likewise.
8895         * config/darwin.c (machopic_finish): Get rid of tweak that
8896         eliminate stubs for symbols that are defined.
8897         (darwin_encode_section_info): Don't treat weak functions as defined.
8898         (darwin_make_decl_one_only): Define.
8899         (darwin_asm_named_section): Likewise.
8900         (darwin_section_type_flags): Likewise.
8901         (darwin_unique_section): Likewise.
8902         (darwin_emit_unwind_label): Likewise.
8903         (darwin_non_lazy_pcrel): Likewise.
8904         (darwin_asm_output_dwarf_delta): Difference between two labels is
8905         local only if both labels are local.
8906         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8907         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8908         (TARGET_SUPPORTS_HIDDEN): Likewise.
8909         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8910         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8911         (FRAME_BEGIN_LABEL): Likewise.
8912         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8913         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8914         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8915         (TARGET_ASM_UNIQUE_SECTION): Define.
8916         (EH_FRAME_SECTION_NAME): Define.
8917         (EH_FRAME_SECTION_ATTR): Likewise.
8918         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8919         (TARGET_ASM_NAMED_SECTION): Likewise.
8920         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8921         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8922         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8923         TARGET_ASM_EMIT_UNWIND_LABEL.
8924
8925 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8926
8927         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8928         existing exp10* case.
8929         (expand_builtin): Likewise.
8930
8931 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8932
8933         * doc/tm.texi (registers) <Values in Registers>: Add
8934         entry for REGMODE_NATURAL_SIZE.
8935
8936 2004-03-12  Richard Henderson  <rth@redhat.com>
8937
8938         PR target/14547
8939         * target.h (struct gcc_target): Move calls substructure before
8940         booleans.  Add split_complex_arg.
8941         * function.c (assign_parms, split_complex_args): Use it.
8942         * calls.c (expand_call): Likewise.
8943         (split_complex_values): Likewise.  Check for splittable types
8944         before allocating memory.
8945         (split_complex_types): Likewise.
8946         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8947         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8948         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8949         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8950         (TARGET_SPLIT_COMPLEX_ARG): New.
8951         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8952         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8953         (rs6000_override_options): Zap it for non-AIX.
8954         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8955         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8956         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8957         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8958         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8959         SPLIT_COMPLEX_ARGS entry.
8960
8961 2004-03-11  Richard Henderson  <rth@redhat.com>
8962
8963         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8964         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8965         (alpha_emit_xfloating_arith): Update to match.
8966         (alpha_emit_xfloating_compare): Likewise.
8967         (alpha_emit_xfloating_cvt): Likewise.
8968         (alpha_emit_xfloating_libcall): Take already built symbol,
8969         mark call const.
8970         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8971         op1 in a register.
8972
8973 2004-03-11  Richard Henderson  <rth@redhat.com>
8974
8975         PR target/14539
8976         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8977
8978         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8979
8980 2004-03-11  Richard Henderson  <rth@redhat.com>
8981
8982         PR middle-end/14477
8983         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8984
8985 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8986
8987         PR target/14262
8988         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8989         defined, pass small BLKmode values in registers in the low-order part.
8990
8991 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8992
8993         * combine.c (if_then_else_cond): Check for NULL return value of
8994         simplify_gen_subreg.
8995
8996 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8997
8998         PR target/14496
8999         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9000         TARGET_SINGLE_FLOAT.
9001
9002 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9003
9004         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9005         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9006         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9007         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9008
9009 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9010
9011         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9012         -((int)X>>C) where C is an integer constant one bit less than the
9013         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9014         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9015
9016         * simplify-rtx.c (simplify_unary_operation): Also implement the
9017         above transformations at the RTL level.
9018
9019 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9020
9021         * real.c (encode_ibm_extended): Do round low word.
9022
9023 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9024
9025         * config/arm/arm.md (is_xscale): Comment this attribute and move
9026         it a bit further up in the file, closer to related attributes.
9027
9028 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9029
9030         * config/host-solaris.c (sol_gt_pch_use_address): Add
9031         missing terminating marker to comment.
9032
9033 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9034
9035         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9036         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9037         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9038         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9039         move_operand as source predicate in all cases.
9040         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9041         Test reg_or_0_operand.  Use move_operand as source predicate.
9042         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9043         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9044         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9045         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9046         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9047         Use move_operand as source predicate.  Remove 'K' constraint.
9048         (*movqi_internal): Likewise movqi_internal.
9049         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9050         reg_or_0_operand.  Use move_operand as source predicate.
9051         (*movsf_softfloat): Likewise movsf_internal2.
9052         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9053         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9054         (*movdf_softfloat): Likewise movdf_internal2.
9055         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9056         for DImode if !TARGET_64BIT.
9057         (mips_legitimize_move): Simplify accordingly.
9058
9059 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9060
9061         PR/14362
9062         * var-tracking.c (struct variable_def): Added field refcount.
9063         (variable_htab_free): Decrease the refcount and delete variable
9064         only if there are no more references.
9065         (unshare_variable): New function.
9066         (vars_copy_1): Increase refcount instead of copying the variable.
9067         (variable_union): Share the variables where possible, unshare
9068         the variables if needed.
9069         (variable_different_p): Return false if var1 and var2 are
9070         the same structure.
9071         (variable_was_changed): Init the refcount of new variable.
9072         (set_frame_base_location): Unshare variable if needed.
9073         (set_variable_part): Init the refcount of new variable.
9074         Unshare the variables if needed.
9075         (delete_variable_part): Unshare the variables if needed.
9076         (emit_notes_for_differences_1): Init the refcount of new variable.
9077         (vt_add_function_parameters): Do not add function parameters to
9078         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9079         (vt_initialize): Do not add frame_base_decl to IN set of
9080         ENTRY_BLOCK_PTR because it is unused anyway.
9081
9082 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9083
9084         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9085         (vars_copy): Likewise.
9086         (variable_union): Likewise.
9087         (set_variable_part): Likewise.
9088         (delete_variable_part): Likewise.
9089
9090 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9091
9092         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9093         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9094         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9095         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9096         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9097         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9098         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9099         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9100         config/stormy16/stormy16.c: Fix comment typos and formatting.
9101
9102 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9103
9104         * configure: Regenerate, since I forgot to while committing Paolo's
9105         changes.
9106
9107 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9108
9109         PR ada/14131
9110         Move language detection to the top level.
9111         * configure.ac: Remove code to detect languages,
9112         it now lives exclusively in the top level.
9113         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9114         top level, renamed to ACX_PROG_GNAT.
9115
9116 2004-03-10  Richard Henderson  <rth@redhat.com>
9117
9118         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9119         extra arguments.
9120         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9121         and host_xmake_file fragments.
9122         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9123         (gt_pch_restore): Similarly for gt_pch_use_address.
9124         (default_gt_pch_get_address): New.
9125         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9126         (default_gt_pch_use_address): Split out of gt_pch_restore.
9127         (mmap_gt_pch_use_address): Likewise.
9128         * hooks.c (hook_voidp_size_t_null): Remove.
9129         (hook_bool_voidp_size_t_false): Remove.
9130         * hooks.h: Likewise.
9131         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9132         default_ or mmap_ definitions.
9133         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9134         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9135         and gt_pch_use_address.
9136         * config/host-linux.c, config/host-solaris.c: New files.
9137         * config/x-linux, config/x-solaris: New files.
9138         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9139         Update for changed definition.
9140         (darwin_rs6000_gt_pch_use_address): Likewise.
9141         * doc/hostconfig.texi: Update docs.
9142
9143 2004-03-10  Richard Henderson  <rth@redhat.com>
9144
9145         PR c/14517
9146         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9147         except for pedantic c90 mode.
9148
9149 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9150
9151         * configure.ac: Bump AC_PREREQ to 2.59.
9152         * configure: Regenerate.
9153
9154 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9155
9156         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9157         (exp10_optab, exp2_optab): Define corresponding macros.
9158         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9159         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9160         using exp10?f2 and exp2?f2 patterns.
9161         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9162         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9163         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9164         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9165
9166         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9167         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9168         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9169
9170 2004-03-10  Anthony Green  <green@redhat.com>
9171
9172         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9173
9174 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9175
9176         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9177         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9178         __LONGDOUBLE128.
9179         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9180         TARGET_OS_AIX_CPP_BUILTINS.
9181         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9182         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9183         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9184         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9185         previous change.
9186
9187 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9188
9189         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9190
9191 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9192
9193         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9194         __LONGDOUBLE128 on AIX.
9195
9196 2004-03-10  Andrew Haley  <aph@redhat.com>
9197
9198         PR optimization/14381
9199         * function.c (expand_function_end): Emit a blockage insn before
9200         the epilogue when -fnon-call-exceptions is used.
9201
9202         * except.c (expand_start_all_catch): Make comment more accurate.
9203
9204 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9205
9206         PR target/14480
9207         * config/rs6000/t-rtems: Add missing file on branch.
9208
9209 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9210
9211         * dbxout.c (dbxout_symbol_location): Do not output references
9212         to optimized-out constant pool symbols.
9213
9214 2004-03-10  Andreas Schwab  <schwab@suse.de>
9215
9216         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9217         twon34_r.
9218
9219 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9220
9221         * alias.c (alias_sets_might_conflict_p): New.
9222         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9223         * common.opt (Wstrict-aliasing=): New.
9224         * flags.h (warn_strict_aliasing): Change type to int.
9225         * opts.c (warn_strict_aliasing): Change type to int.
9226         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9227         * tree.h (alias_sets_might_conflict_p): Declare it.
9228         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9229
9230 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9231
9232         PR bootstrap/12371
9233         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9234         (CALL_USED_REGISTERS): Likewise.
9235         (REG_CLASS_CONTENTS): Likewise.
9236         (REG_ALLOC_ORDER): New.
9237         (REGNO_REG_CLASS): Use regno_reg_class.
9238         * config/m68k/m68k.c: Add regno_reg_class array.
9239
9240 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9241
9242         * config/ia64/ia64.md (divsi3): Fix algorithm.
9243           (udivsi3): Ditto.
9244           (setf_exp_xf): Remove '*' from name.
9245         * testsuite/gcc.dg/20040309-1.c: New test.
9246
9247 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9248
9249         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9250         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9251         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9252         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9253         (sparc_aout_select_rtx_section): Don't check
9254         SUNOS4_SHARED_LIBRARIES.
9255         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9256
9257 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9258
9259         PR other/14474
9260         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9261         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9262         INTERNALS".
9263
9264 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9265
9266         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9267         (LIBGCC_SPEC): Update to match.
9268
9269 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9270
9271         * c-decl.c (last_function_parms, last_function_parm_tags)
9272         (last_function_parm_others, current_function_parms)
9273         (current_function_parm_tags, current_function_parm_others):
9274         Delete.
9275         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9276         New macros.
9277         (grokdeclarator): For function definitions, save the arg-info
9278         block from the declarator in DECL_ARGUMENTS.
9279         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9280         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9281         contains only PARM_DECLs.  Improve diagnostics.
9282         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9283         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9284         (store_parm_decls_newstyle): Take the function to operate on,
9285         and an arg-info block, as arguments; don't get anything from
9286         current_function_* globals.
9287         (store_parm_decls_oldstyle): Likewise.
9288         (store_parm_decls): Pass fndecl and its arg-info block down to
9289         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9290         argument lists through store_parm_decls_newstyle to reduce
9291         overhead.
9292         (pushdecl): Comment on the problems with the call to copy_node.
9293         Clear DECL_ARGUMENTS of the old node after copying it, if it
9294         is an arg-info block instead of a chain of decls.
9295         (start_function): Do not manipulate current_function_parm* or
9296         last_function_parm*.
9297
9298 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9299             Andrew Pinski  <pinskia@physics.uc.edu>
9300
9301         * ifcvt.c (noce_try_sign_mask): New function to transform
9302         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9303         (noce_process_if_block): Call noce_try_sign_mask.
9304
9305 2004-03-09  Andrew Pinski  <apinski@apple.com>
9306
9307         * c-typeck.c (tagged_types_tu_compatible_p):
9308         Fix typo.
9309
9310 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9311
9312         * simplify-rtx.c (simplify_const_relational_operation): New function
9313         renamed from simplify_relational_operation.
9314         (simplify_relational_operation): Change prototype to accept an
9315         additional mode argument.  Call simplify_const_relational_operation.
9316         (simplify_gen_relational): Update simplify_relational_operation call.
9317         (simplify_ternary_operation): Update simplify_relational_operation
9318         subroutine call to use simplify_const_relational_operation instead.
9319
9320         * rtl.h (simplify_const_relational_operation): Prototype here.
9321         (simplify_relational_operation): Add addtional mode argument.
9322
9323         * combine.c (combine_simplify_rtx): Update calls to
9324         simplify_relational_operation.
9325         (simplify_set): Likewise.
9326         (gen_binary): Likewise.
9327         * cse.c (fold_rtx): Likewise.
9328         * dojump.c (compare_from_rtx): Likewise.
9329         (do_compare_rtx_and_jump): Likewise.
9330         * integrate.c (subst_constants): Likewise.
9331         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9332
9333 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9334
9335         * config/m32r/m32r.md: Remove all define_peephole's.
9336
9337 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9338
9339         * config/rs6000/rs6000.md: Remove trailing whitespace.
9340
9341 2004-03-08  Eric Christopher  <echristo@redhat.com>
9342
9343         * Makefile.in (site.exp): Add libiconv variable definition.
9344
9345 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9346
9347         * configure: Regenerate for config/accross.m4 correction.
9348
9349 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9350
9351         PR target/14480
9352         * config/rs6000/t-rtems: Add missing file on branch.
9353
9354 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9355
9356         PR middle-end/14289
9357         * c-typeck.c (c_mark_addressable): A register variable should
9358         be considered global if its not automatic, i.e. TREE_PUBLIC,
9359         TREE_STATIC or DECL_EXTERNAL.
9360         * function.c (put_var_into_stack): Call abort when placing a
9361         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9362
9363 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9364
9365         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9366         ("*extendqisi2_short_displ"): Likewise.
9367
9368 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9369
9370         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9371         (comp_operator): Likewise.
9372         * config/pdp11/pdp11-protos.h: Remove corresponding
9373         prototypes.
9374
9375 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9376
9377         * expr.c (highest_pow2_factor_for_type): Rename into
9378         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9379         TYPE_ALIGN when the target is a COMPONENT_REF.
9380         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9381
9382 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9383
9384         * config/rs6000/rs6000.c: Formatting fix.
9385         (legitimate_offset_address_p): Correct offset range check.
9386
9387         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9388         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9389         and MASK_STRING.
9390
9391 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9392
9393         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9394         for little endian.
9395         ("ashrdi3_no_power"): Disable for little endian.
9396         (ashrdi3): Same.
9397
9398 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9399
9400         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9401         builtins.
9402
9403 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9404
9405         PR target/14471
9406         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9407         case, checking for -no-mul-bug-abort option.
9408         * configure, config.in: Regenerate.
9409         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9410         and -mno-mul-bug-workaround.
9411         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9412         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9413         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9414         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9415         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9416         sure mulu.d is not last on cache-line.
9417         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9418         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9419         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9420         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9421         -mno-mul-bug-workaround.
9422         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9423         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9424         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9425         relation to MULT in head comment.
9426         (cris_op_str): Abort for MULT.
9427         (cris_print_operand) <case '!'>: New case.
9428
9429 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9430
9431         PR debug/11983
9432         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9433         dw_val_class_vec.  Replace use throughout file.
9434         (dw_float_const): Delete.
9435         (dw_vec_const): New.
9436         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9437         throughout file.
9438         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9439         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9440         (size_of_die): Adjust dw_val_class_vec sizing.
9441         (output_die): Output dw_val_class_vec.
9442         (insert_int, extract_int, insert_float): New functions.
9443         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9444         Handle CONST_VECTOR.
9445         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9446
9447 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9448
9449         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9450         AltiVec abi cannot co-exist.
9451
9452         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9453
9454 2004-03-07  Jan Hubicka  <jh@suse.cz>
9455
9456         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9457
9458 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9459
9460         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9461         ("*lshrsi3"): Also accept an immediate for 68HC12.
9462         ("*ashrsi3_const"): Likewise.
9463         ("*ashrsi3"): Likewise.
9464         ("*ashlsi3_const"): Likewise.
9465         ("*ashlsi3"): Likewise.
9466         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9467         comparing with a pop; don't use a split for that.
9468         ("cmphi split"): Disable compare split for 68HC12.
9469
9470         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9471         the status operands if they have side effects.
9472
9473 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9474
9475         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9476         definition.
9477         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9478         config/h8300/h8300.h, config/ia64/ia64.h,
9479         config/mcore/mcore.h, config/mmix/mmix.h,
9480         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9481         config/stormy16/stormy16.h, config/v850/v850.h,
9482         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9483         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9484         definition.
9485
9486 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9487
9488         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9489         <XOR_EXPR>: Fold x ^ x as zero.
9490         <AND_EXPR>: Fold x & x as x.
9491
9492 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9493
9494         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9495         "foo++ == const" into "++foo == const+incr".
9496
9497 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9498
9499         * config/mips/mips.c (mips_in_small_data_p): Return false if
9500         TARGET_ABICALLS.
9501
9502 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9503
9504         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9505         the stack register.
9506         (expand_prologue): Don't make an interrupt or a trap handler a far
9507         symbol.
9508         (m68hc11_initial_elimination_offset): Likewise.
9509
9510 2004-03-06  Richard Henderson  <rth@redhat.com>
9511
9512         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9513
9514 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9515
9516         * config/ns32k/ns32k-protos.h: Add a prototype for
9517         ns32k_notice_update_cc.
9518         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9519         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9520         ns32k_notice_update_cc.
9521
9522 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9523
9524         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9525         "*load_multiple_si"): Allow only if reload_completed.
9526         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9527         Likewise.
9528
9529 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9530
9531         * config/vax/vax-protos.h: Add a prototype for
9532         vax_notice_update_cc.
9533         * config/vax/vax.c (vax_notice_update_cc): New.
9534         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9535         vax_notice_update_cc.
9536
9537 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9538
9539         * collect2.c (main): Only export initfunc and finifunc if
9540         LD_INIT_SWITCH not defined.
9541         (scan_prog_file): Only export constructors and destructors if
9542         LD_INIT_SWITCH not defined.  Only export symbols not found in
9543         shared objects.
9544
9545 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9546
9547         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9548         last.
9549         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9550         from calls to gen_icacheflush.
9551
9552 2004-03-06  Richard Henderson  <rth@redhat.com>
9553
9554         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9555         (TARGET_LONG_DOUBLE_128): New.
9556         (TARGET_SWITCHES): Add long-double-{128,64}.
9557         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9558         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9559         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9560         (WIDEST_HARDWARE_FP_SIZE): New.
9561         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9562         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9563         if TARGET_VAX_FLOAT.
9564         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9565         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9566
9567 2004-03-06  Richard Henderson  <rth@redhat.com>
9568
9569         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9570         botched rtx class conversion.
9571
9572 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9573
9574         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9575         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9576
9577         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9578         macros.
9579         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9580
9581 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9582
9583         PR target/14343
9584         * config/i386/i386.md (movv2di_internal): Conditionalize on
9585         TARGET_SSE, not TARGET_SSE2.
9586
9587 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9588
9589         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9590         duplicated line.
9591
9592 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9593
9594         * builtins.c: Consistently use logN not log* in comments.
9595
9596 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9597
9598         * rtl.h (mem_expr_equal_p): Function prototype added.
9599         * cfgcleanup.c (merge_memattrs): New function.
9600         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9601         * emit-rtl.c (mem_expr_equal_p): New function.
9602
9603 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9604
9605         * objc/objc-act.c (synth_module_prologue): Const-qualify
9606         objc_selector type if using the GNU runtime; fix generated
9607         signatures for objc_msg_lookup and objc_msg_lookup_super
9608         to match what GNU ObjC headers provide; reformat and clean up.
9609         (synth_self_and_ucmd_args): Use previously constructed (and
9610         hence possibly const-qualified) objc_selector type.
9611
9612 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9613
9614         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9615
9616 2004-03-05  Jason Merrill  <jason@redhat.com>
9617
9618         * tree.h (TYPE_HASH): Use TYPE_UID.
9619         (TREE_HASH): New macro with old definition of TYPE_HASH.
9620         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9621         (build_array_type, build_function_type): Likewise.
9622         (build_method_type_directly): Likewise.
9623         (build_offset_type, build_complex_type): Likewise.
9624         (type_hash_list, attribute_hash_list): Likewise. Now static.
9625         * except.c: s/TYPE_HASH/TREE_HASH/.
9626
9627 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9628
9629         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9630         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9631         __va_ndx by 2 words when referencing an argument on the stack.
9632         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9633         words when an arg on the stack is first seen.
9634
9635 2004-03-05  Paul Brook  <paul@codesourcery.com>
9636
9637         * arm.h (ARM_FLAG_VFP): Remove.
9638         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9639         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9640
9641 2004-03-05  Paul Brook  <paul@codesourcery.com>
9642
9643         * function.c (assign_parms): Include pretend alignment offset.
9644
9645 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9646
9647         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9648         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9649
9650 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9651
9652         * configure.ac: When passing --enable-languages to subdir
9653         configure when host != build, make sure we don't pass an empty
9654         value.
9655         * configure: Regenerate.
9656
9657 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9658
9659         PR 13577
9660         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9661         options.
9662
9663 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9664
9665         * simplify-rtx.c (simplify_relational_operation): If
9666         flag_wrapv is set, do not move terms between the two
9667         side of a relational operator.
9668
9669 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9670
9671         * rtlanal.c: Include target.h and output.h
9672         (rtx_cost, address_cost, default_address_cost): Move from...
9673         * cse.c (rtx_cost, address_cost, default_address_cost):
9674         ... this file.
9675         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9676         * Makefile.in: Adjust dependencies.
9677
9678 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9679
9680         * cse.c (cse_end_of_basic_block): Make static.
9681         * local-alloc.c (function_invariant_p): Move to
9682         reload1.c.
9683         * loop.c (libcall_other_reg, record_excess_regs):
9684         Make static.
9685         * reload1.c (function_invariant_p): Moved here
9686         from local-alloc.c, made static.
9687         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9688         libcall_other_reg, record_excess_regs): Remove
9689         declarations.
9690
9691 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9692
9693         * config/m32r/m32r.c (signed_comparison_operator): Add a
9694         missing parenthesis.
9695
9696 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9697
9698         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9699         going to call mmap again.  Read the file into the right place.
9700         Give a fatal error if we have to relocate.
9701
9702 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9703
9704         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9705         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9706
9707 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9708
9709         PR other/14354
9710         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9711         round the same.  When rounding, clear bits that would cause a
9712         second rounding in pack_d.
9713         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9714
9715 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9716
9717         PR c++/14425, c++/14426
9718         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9719         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9720         Change C++ definitions to accept a 'const int' argument;
9721         the prototypes already do.
9722         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9723         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9724         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9725         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9726         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9727         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9728         end in ..._int; change them to accept an int instead of a char
9729         as the last parameter.
9730
9731 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9732
9733         * genmultilib:  Change '=' to '-' when translating option names
9734         to directory names.
9735
9736 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9737
9738         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9739         stack slot for temp used for result of BLKmode but in integral mode.
9740
9741 2004-03-04  Jan Hubicka  <jh@suse.cz>
9742
9743         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9744
9745         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9746         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9747
9748 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9749
9750         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9751         * testsuite/gcc.dg/20040303-1.c: New test.
9752
9753 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9754
9755         * ppro.md: Rewrite as a DFA pipeline description.
9756         * i386.md: Remove all uses of the ppro_uops attribute.
9757         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9758         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9759         ix86_sched_reorder, ix86_variable_issue,
9760         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9761         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9762         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9763         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9764         * athlon.md (athlon_ssecmp_load): Fix comment
9765
9766 2004-03-04  Stuart Hastings  <stuart@apple.com>
9767
9768         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9769
9770 2004-03-04  Stuart Hastings  <stuart@apple.com>
9771
9772         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9773         686, tell Darwin assembler to allow prefetch insns, non-empty def
9774         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9775
9776 2004-03-04  DJ Delorie  <dj@redhat.com>
9777
9778         PR optimization/14282
9779         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9780         between a call and the assignment of its return value.
9781
9782 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9783
9784         * config/h8300/h8300.c: Put a comment for every function.
9785
9786 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9787
9788         * config/h8300/h8300.md: Add comments about peephole2's.
9789
9790 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9791
9792         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9793
9794 2004-03-04  Jan Hubicka  <jh@suse.cz>
9795
9796         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9797         * cselib.c (cselib_record_memory): New static variable.
9798         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9799         Give up on memories when asked for.
9800         (cselib_init): Accept new argument.
9801         * cselib.h (cselib_init): Update prototype.
9802         * gcse.c (local_cprop_pass): Update call of cselib_init.
9803         * loop.c (load_mems): Update call of cselib_init.
9804         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9805         * sched-deps.c (sched_analyze): Update call of cselib_init.
9806
9807 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9808             GP <gp@qnx.com>
9809
9810         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9811         when compiling PIC.
9812
9813 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9814
9815         PR/14362
9816         * var-tracking.c (track_expr_p): Do not track variables which
9817         should be ignored for debugging purposes.
9818
9819 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9820
9821         * real.c (encode_ibm_extended): Don't bother rounding low double.
9822         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9823         when fmt->pnan < fmt->p.
9824
9825 2004-03-04  Eric Christopher  <echristo@redhat.com>
9826
9827         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9828         only range of valid arg registers and fixed_regs.
9829
9830 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9831
9832         PR target/14406
9833         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9834         (abstf2, abstf2_internal): New define_expand.
9835
9836 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9837
9838         PR optimization/14235
9839         * expr.c (convert_move): Copy the source to a new pseudo
9840         when converting from a sub-word source to a larger-than-word
9841         register which conflicts with the source.
9842
9843 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9844
9845         PR 13728
9846         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9847         parameters with the same name, unless one is a forward decl.
9848         Do not issue a redundant-redeclaration warning for forward
9849         decls of parameters.
9850
9851 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9852
9853         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9854         configuration.
9855
9856 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9857
9858         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9859
9860 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9861
9862         * target-def.h (TARGET_OPTF): Delete.
9863         * c-opts.c (TARGET_OPTF): Define.
9864
9865 2004-03-04  Jan Hubicka  <jh@suse.cz>
9866
9867         * cselib.c (cselib_finish): Fix another miss-application of my previous
9868         patch.
9869
9870 2004-03-03  Mike Stump  <mrs@apple.com>
9871
9872         Add framework support for darwin.
9873
9874         * c-incpath.c: Include target.h and machmode.h.
9875         (add_path): Use a consistent style for cpp_dir.  Initialize
9876         p->construct to 0.
9877         (add_cpp_dir_path): New.
9878         (register_include_chains): Add use of extra_includes callback.
9879         (hook_void_int): Add.
9880         (target_c_incpath): Add.
9881         * c-incpath.h (add_cpp_dir_path): New.
9882         (target_c_incpath_s): Add.
9883         (target_c_incpath): Add.
9884         (C_INCPATH_INIT): Add.
9885         * c-opts.c (c_common_missing_argument,
9886         c_common_handle_option): Add -F argument processing.
9887         * c.opt: Add -F argument processing.
9888         * gcc.c (trad_capable_cpp): Add -F argument processing.
9889         * cppfiles.c (find_file_in_dir): Update to use construct
9890         callback.
9891         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9892         cpp_get_prev): New.
9893         (_cpp_find_file): Use search_path_exhausted.
9894         (make_cpp_dir): Initialize construct to 0.
9895         * cpplib.h (missing_header_cb
9896         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9897         (cpp_callbacks): Add missing_header
9898         (cpp_dir): Add construct.
9899         * target-def.h: (TARGET_OPTF): New.
9900         * hooks.c (hook_void_int, hook_void_charptr): Add.
9901         * hooks.h (hook_void_int, hook_void_charptr): Add.
9902         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9903         $(MACHMODE_H) dependencies.
9904         * doc/invoke.texi (Darwin Options): Document -F.
9905         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9906         (TARGET_OPTF): Add.
9907         * fix-header.c (target_c_incpath): Add.
9908
9909         * config/darwin-c.c: Add c-incpath.h include.
9910         (using_frameworks, find_subframework_file,
9911         find_subframework_header, add_system_framework_path,
9912         frameworks_in_use, num_frameworks, max_frameworks,
9913         add_framework, find_framework, struct framework_header,
9914         framework_header_dirs, framework_construct_pathname,
9915         find_subframework_file, add_system_framework_path,
9916         add_framework_path, framework_defaults,
9917         darwin_register_frameworks, find_subframework_header): Add.
9918         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9919         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9920         (CPP_SPEC): Add __APPLE_CC__ support.
9921         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9922
9923 2004-03-04  Jan Hubicka  <jh@suse.cz>
9924
9925         * cselib.c (cselib_finish): Fix miss-application of my previous
9926         patch.
9927
9928 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9929
9930         * hooks.c (hook_tree_tree_identity): New.
9931         * hooks.h: Add a prototype for hook_tree_tree_identity.
9932         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9933         instead of MD_ASM_CLOBBERS.
9934         * system.h (MD_ASM_CLOBBERS): Poison.
9935         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9936         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9937         * target.h (gcc_target): Add md_asm_clobbers.
9938         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9939         (ix86_md_asm_clobbers): New.
9940         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9941         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9942         TARGET_MD_ASM_CLOBBERS.
9943
9944 2004-03-03  Stuart Hastings  <stuart@apple.com>
9945
9946         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9947
9948 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9949
9950         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9951
9952         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9953         (ASM_DOUBLE): Likewise.
9954         (ASM_LONGDOUBLE): Likewise.
9955         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9956
9957 2003-03-03  Richard Henderson  <rth@redhat.com>
9958
9959         PR opt/13862
9960         * cselib.c (cselib_record_sets): Don't record multiple sets in
9961         asm insns.
9962
9963 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9964
9965         * common.opt: Add description of the new -fgcse-after-reload flag.
9966
9967         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9968
9969         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9970         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9971         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9972         get_bb_avail_insn, hash_scan_set_after_reload,
9973         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9974         gcse_after_reload, get_bb_avail_insn): New functions to implement
9975         gcse-after-reload.
9976         (gcse_after_reload_main): New function, the main entry point to
9977         gcse-after-reload.
9978
9979         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9980
9981         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9982
9983         * toplev.c (flag_gcse_after_reload): Initialization.
9984
9985         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9986
9987         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9988         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9989         the gcse after reload optimization.
9990
9991         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9992         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9993         parameters.
9994
9995         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9996
9997 2004-03-03  Nicolas Pitre <nico@cam.org>
9998
9999         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10000         small negative values.
10001
10002 2004-03-03  Jan Hubicka  <jh@suse.cz>
10003
10004         * cselib.c (hash_table):  Remove GTY marker.
10005         (reg_values): Turn into array.
10006         (used_regs): Likewise.
10007         (n_used_regs): New static variable.
10008         (reg_values_old): Kill.
10009         (clear_table): Update uses of arrays.
10010         (cselib_lookup): Likewise.
10011         (cselib_record_set): Likewise.
10012         (cselib_init): Likewise.
10013         (cselib_finish): Likewise.
10014         (cselib_udpate_varray_sizes): Kill.
10015         * cselib.h (cselib_update_varray_sizes): Kill.
10016
10017 2004-03-03  Paul Brook  <paul@codesourcery.com>
10018
10019         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10020
10021 2004-03-03  Jan Hubicka  <jh@suse.cz>
10022
10023         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10024         Rename from ...; make statistics transparent.
10025         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10026         (loc_descriptor): New structure.
10027         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10028         add_statistics):
10029         New static function.
10030         (ggc_record_overhead, dump_statistics): New global function.
10031         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10032         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10033         from ...; accept locations
10034         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10035         ggc_realloc, ggc_alloc_typed):  ... this one.
10036         from ...; accept locations
10037         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10038         ggc_alloc_stat): Rename from ... ; pass locations
10039         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10040         ... this one.
10041         (ggc_alloc_stat): Record overehead.
10042         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10043         ggc_realloc, ggc_alloc_typed):  Turn to macros
10044         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10045         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10046         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10047         * langhooks.h (lhd_make_node): Declare.
10048         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10049         * langhooks.c (lhd_make_node): New.
10050         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10051         locations.
10052         (rtx_alloc, swallow_copy_rtx): ... this one.
10053         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10054         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10055         * toplpev.c (finalize): Dump stats.
10056         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10057         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10058         Rename from ... ; pass locators.
10059         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10060         build?,  build_decl): Declare.
10061         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10062         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10063         Declare.
10064         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10065         build?,  build_decl): New macros.
10066         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10067         * statistics.h: New file.
10068
10069 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10070             Richard Sandiford  <rsandifo@redhat.com>
10071
10072         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10073         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10074         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10075         * config/mips/mips.c (mips_output_division): Fill the branch delay
10076         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10077         TARGET_FIX_R4400.
10078         (mips_output_division): Adjust accordingly.
10079         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10080         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10081
10082 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10083
10084         * alias.c (rtx_equal_for_memref_p): Use predicates
10085         to test rtx classes and new rtx class codes, possibly
10086         splitting conditionals that tested against '<' and 'o'.
10087         * caller-save.c (save_call_clobbered_regs): Likewise.
10088         * combine.c (contains_muldiv, find_split_point, subst,
10089         combine_simplify_rtx, simplify_if_then_else,
10090         simplify_set, simplify_logical, expand_compound_operation,
10091         make_compound_operation, if_then_else_cond, known_cond,
10092         apply_distributive_law, cached_nonzero_bits,
10093         cached_num_sign_bit_copies, simplify_shift_const,
10094         gen_binary, simplify_comparison, update_table_tick,
10095         record_value_for_reg, get_lsat_value_validate): Likewise.
10096         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10097         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10098         Likewise.
10099         * emit-rtl.c (copy_insn_1): Likewise.
10100         * expr.c (force_operand): Likewise.
10101         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10102         * flow.c (notice_stack_pointer_modification_1,
10103         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10104         and_reg_cond, elim_reg_cond): Likewise.
10105         * function.c (update_epilogue_consts): Likewise.
10106         * genattrtab.c (attr_rtx_1): Likewise.
10107         * genopinit.c (gen_insn): Likewise.
10108         * integrate.c (subst_constants): Likewise.
10109         * jump.c (reversed_comparison_code_parts,
10110         reversed_comparison_code, delete_related_insns,
10111         rtx_renumbered_equal_p): Likewise.
10112         * local-alloc.c (block_alloc): Likewise.
10113         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10114         canonicalize_condition): Likewise.
10115         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10116         Likewise.
10117         * optabs.c (add_equal_node, expand_binop): Likewise.
10118         * predict.c (estimate_probability): Likewise.
10119         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10120         * recog.c (validate_replace_rtx_1, comparison_operator,
10121         offsettable_address_p, constrain_operands): Likewise.
10122         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10123         Likewise.
10124         * regclass.c (scan_one_insn): Likewise.
10125         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10126         * regrename.c (kill_autoinc_value): Likewise.
10127         * reload.c (find_reusable_reload, find_reloads,
10128         reg_overlap_mentioned_for_reload_p): Likewise.
10129         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10130         * rtl.c (copy_rtx): Likewise.
10131         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10132         * rtlanal.c (commutative_operand_precedence): Likewise.
10133         * sched-deps.c (conditions_mutex_p): Likewise.
10134         * sched-rgn.c (is_cfg_nonregular): Likewise.
10135         * simplify-rtx.c (simplify_gen_binary,
10136         simplify_gen_relational, simplify_replace_rtx,
10137         simplify_unary_operation, simplify_binary_operation,
10138         simplify_ternary_operation, simplify_rtx): Likewise.
10139         * unroll.c (reg_dead_after_loop): Likewise.
10140         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10141         print_operand): Likewise.
10142         * config/arc/arc.c (proper_comparison_operator): Likewise.
10143         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10144         Likewise.
10145         * config/avr/avr.c (_reg_unused_after): Likewise.
10146         * config/frv/frv.c (frv_ifcvt_modify_tests,
10147         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10148         * config/i386/i386.c (ix86_comparison_operator,
10149         ix86_carry_flag_operator, fcmov_comparison_operator,
10150         arith_or_logical_operator, print_operand,
10151         ix86_expand_binary_operator, ix86_binary_operator_ok):
10152         Likewise.
10153         * config/i386/i386.md: Likewise.
10154         * config/ia64/ia64.c (not_postinc_memory_operand,
10155         ia64_print_operand, update_set_flags, errata_emit_nops):
10156         Likewise.
10157         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10158         CONSTRAINT_OK_FOR_S): Likewise.
10159         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10160         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10161         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10162         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10163         Likewise.
10164         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10165         eqne_comparison_operator, signed_comparison_operator):
10166         Likewise.
10167         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10168         Likewise.
10169         * config/mmix/mmix (mmix_foldable_comparison_operator,
10170         mmix_comparison_operator): Likewise.
10171         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10172         * config/rs6000/rs6000.c (stmw_operation,
10173         branch_comparison_operator, trap_comparison_operator,
10174         ccr_bit): Likewise.
10175         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10176         * config/s390/s390.c (s390_alc_comparison,
10177         s390_slb_comparison):L Likewise.
10178         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10179         Likewise.
10180         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10181         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10182         emit_hard_tfmode_operation, reg_unused_after)
10183         * doc/md.texi, doc/rtl.texi: Likewise.
10184
10185         * ra-debug.c: Add 2004 to list of copyright years.
10186         * unroll.c: Likewise.
10187
10188         * combine.c (simplify_logical): Remove dummy test,
10189         (apply_distributive_law): Fix typo in comment.
10190         GET_CODE (x) == AND so x is a commutative binary op.
10191         * jump.c (delete_related_insns): simplify loop
10192         condition, move testing of RTX codes inside the loop.
10193         (rtx_renumbered_equal_p): do not use RTX_CODE.
10194         * rtl.c (rtx_class): Declare as enum rtx_class.
10195         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10196         Move to RTX_COMM_COMPARE class.
10197         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10198         Move to RTX_CONST_OBJ class.
10199         * rtl.h (enum rtx_class): New declaration,
10200         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10201         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10202         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10203         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10204         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10205         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10206         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10207         OBJECT_P): New macros.
10208         * config/sparc/sparc.c (noov_compare_op): Remove register
10209         from parameter.
10210
10211 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10212
10213         * target.h: Remove texi jargons in comments.
10214
10215 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10216
10217         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10218         threshold to 0x4f.
10219
10220         Revert:
10221         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10222         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10223         as well.
10224         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10225         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10226
10227 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10228
10229         * doc/md.texi (cbranchmode4): New.
10230
10231 2004-03-02  Eric Christopher  <echristo@redhat.com>
10232
10233         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10234         fix_trunc.
10235         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10236         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10237         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10238         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10239
10240 2004-03-02  Richard Henderson  <rth@redhat.com>
10241
10242         PR middle-end/11767
10243         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10244         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10245         before the compare, if flag_non_call_exceptions.
10246
10247 2004-03-02  Richard Henderson  <rth@redhat.com>
10248
10249         PR middle-end/14327
10250         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10251         emitting the label, not after.
10252
10253 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10254
10255         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10256         (m68hc11_mov_addr_mode): Likewise.
10257         (m68hc11_override_options): Initialize them based on target.
10258         (register_indirect_p): Allow a MEM for indirect addressing modes and
10259         use flags to control what is allowed.
10260         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10261         supported addressing modes.
10262         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10263         (go_if_legitimate_address_internal): Likewise.
10264         (m68hc11_indirect_p): Likewise and check the mode.
10265         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10266
10267 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10268
10269         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10270         (expand_builtin_setjmp_setup): Use
10271         targetm.builtin_setjmp_frame_value instead of
10272         BUILTIN_SETJMP_FRAME_VALUE.
10273         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10274         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10275         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10276         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10277         * targhooks.c (default_builtin_setjmp_frame_value): New.
10278         * targhooks.h: Add a prototype for
10279         default_builtin_setjmp_frame_value.
10280         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10281         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10282
10283 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10284
10285         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10286         sequences of moves.
10287         (add peepholes): New peepholes to optimize sequences adding small
10288         constants.
10289         (bset peepholes): New peepholes to transform an OR in a bset form
10290         (bclr peepholes): Likewise for bclr form.
10291         (cmp peepholes): New peepholes to avoid register copies when comparing.
10292
10293 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10294
10295         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10296         to separate push from moves.
10297         ("*pushdf_internal"): Likewise.
10298         ("*pushsf_internal"): Likewise.
10299         ("*pushsi_internal"): Likewise.
10300         ("movdi_internal"): Use define_insn_and_split; non push operand.
10301         ("movdf_internal"): Likewise.
10302         ("movsf_internal"): Likewise.
10303         ("movsi_internal"): Likewise.
10304         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10305         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10306         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10307
10308 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10309
10310         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10311         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10312         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10313         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10314         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10315         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10316         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10317         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10318         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10319         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10320         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10321
10322 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10323
10324         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10325         (SOFT_XY_REGNUM): Define.
10326         (cmp split): Use the above instead of hard coded numbers.
10327         (8-bit op split): No need to check the mode; allow Q_REG.
10328         (ashift split): Adjust the first operand if it uses the SP and we
10329         are pushing the shifted value.
10330         (plus shift split): Fix when a source is in register D+X.
10331         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10332
10333 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10334
10335         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10336         comparing with Z register.
10337
10338 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10339
10340         * cfgloop.h (struct loop_desc): Removed.
10341         (struct loop): Fields simple, desc and has_desc removed.
10342         (simple_loop_p, count_loop_iterations): Declaration removed.
10343         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10344         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10345         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10346         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10347         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10348         simple_condition_p, simple_increment, count_strange_loop_iterations,
10349         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10350         Removed.
10351         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10352
10353 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10354
10355         * genattrtab.c: Don't handle MATCH_INSN.
10356         * genrecog.c: Likewise.
10357         * gensupport.c: Likewise.
10358         * rtl.def (match_insn): Remove.
10359         * doc/md.texi (match_insn, match_insn2): Remove.
10360
10361 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10362
10363         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10364         macro results in memory allocation.
10365
10366 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10367
10368         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10369         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10370         %(fbsd_dynamic_linker),
10371         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10372         config/i386/freebsd.h
10373         * config/arm/freebsd.h: Ditto.
10374         * config/i386/freebsd.h: Ditto.
10375         * config/i386/freebsd64.h: Ditto.
10376         * config/ia64/freebsd.h: Ditto.
10377         * config/rs6000/sysv4.h: Ditto.
10378         * config/sparc/freebsd.h: Ditto.
10379
10380 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10381
10382         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10383
10384 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10385
10386         * rtl.def (define_combine): Remove.
10387
10388 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10389
10390         * config/h8300/h8300.md: Tweak formatting.
10391
10392 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10393
10394         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10395         *cmphi_h8300_znvc.
10396         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10397
10398 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10399
10400         PR bootstrap/14356
10401         * gcc.c (process_command): Remove const-qualification from argv.
10402         (main): Likewise.
10403
10404 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10405
10406         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10407         pushqi1_h8300hs_advanced.  Adjust its caller.
10408         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10409         Adjust its caller.
10410
10411 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10412
10413         * Makefile.in (install-libgcc, install-multilib): Pass
10414         mkinstalldirs var to libgcc.mk.
10415
10416 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10417
10418         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10419         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10420
10421 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10422
10423         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10424         * config/h8300/h8300.md: Split several peephole2's, each into
10425         two.
10426
10427 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10428
10429         * dominance.c (recount_dominator): Handle postdominators.
10430
10431 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10432
10433         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10434         (NUM_SYMBOL_TYPES): Likewise.
10435         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10436         (mips_unspec_address): Declare.
10437         (mips_gotoff_page, mips_gotoff_global): Delete.
10438         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10439         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10440         (mips_symbolic_constant_p, mips_symbolic_address_p)
10441         (mips_symbol_insns): Handle new symbol types.
10442         (general_symbolic_operand): New predicate.
10443         (mips_unspec_address): Make extern.
10444         (mips_gotoff_page, mips_gotoff_global): Delete.
10445         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10446         Handle new symbol types.
10447         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10448         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10449         mips_unspec_address directly.
10450         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10451         the documentation of -mexplicit-relocs.
10452
10453 2004-03-01  Jeff Law  <law@redhat.com>
10454
10455         * fold-const.c (fold): An equality comparison of a non-weak object
10456         against zero has a known result.  Similarly an equality comparison
10457         of the address of two non-weak, unaliased symbols has a known result.
10458
10459         * ggc-page.c (struct page_entry): New field PREV.
10460         (ggc_alloc): Update PREV field appropriately.
10461         (sweep_pages): Likewise.
10462         (ggc_free): Likewise.  Use PREV field rather than loop to
10463         improve ggc_free performance.
10464
10465 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10466
10467         * config/mips/mips.c (mips_output_division): Use the division
10468         instruction to fill the delay slot of a zero check.
10469         (mips_idiv_insns): Adjust accordingly.
10470
10471 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10472
10473         * config.gcc: Create a default tmake_file for linux, and use
10474         it in all but two linux clauses.  Comment those two.
10475
10476 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10477
10478         * combine.c (try_combine):  Do not refer to is_replaced.
10479         (gen_lowpart_for_combine):  Perverse subregs now have a
10480         more politically correct name.
10481         * cse.c (cse_insn): Likewise.
10482         * jump.c: Fix bogus reference to delete_insn.
10483
10484 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10485
10486         PR debug/14328
10487         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10488         constants as signed values.
10489
10490         PR middle-end/13448
10491         * c-tree.h (readonly_warning): Rename to ...
10492         (readonly_error): ... this.
10493         * c-typeck.c (build_unary_op): Adjust accordingly.
10494         (readonly_warning): Rename to ...
10495         (readonly_error): ... this and issue errors, not warnings.
10496         (build_modify_expr): Call readonly_error, not readonly_warning.
10497         (c_expand_asm_operands): Likewise.
10498         * tree-inline.c (optimize_inline_calls): Do not inline functions
10499         after errors have occurred.
10500
10501 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10502
10503         * configure.ac: Rearrange some threading code for clarity;
10504         add section comment.
10505         * configure: Regenerate.
10506
10507 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10508
10509         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10510         typos.
10511         * doc/cppopts.texi: Fix a typo.
10512
10513 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10514
10515         * config/i386/i386.md: Fix formatting.
10516
10517 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10518
10519         * configure.ac: Add some comments delineating sections of code.
10520
10521         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10522
10523         * doc/install.texi: Fix idiot typo in previous commit.
10524
10525         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10526
10527 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10528
10529         * config/h8300/h8300.md: Add comments about peephole2's.
10530
10531 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10532
10533         * config/h8300/h8300.md: Tweak operand numbers of some
10534         peephole2's.
10535
10536 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10537
10538         * config/h8300/h8300.md: Tweak comments about peephole2's.
10539
10540 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10541
10542         PR middle-end/14203
10543         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10544         instead of testing whether DECL_RTL is not NULL.
10545
10546 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10547
10548         * config/sh/sh.c: Fix formatting.
10549
10550 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10551
10552         * config/sh/sh.c: Convert to ISO-C.
10553
10554 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10555
10556         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10557         my previous patch.
10558
10559         * config/darwin.h (machopic_finish): Output stub even if the
10560         symbol is already defined.
10561
10562 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10563
10564         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10565
10566 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10567
10568         * genattr.c (main): Don't define
10569         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10570         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10571         (DFA_PIPELINE_INTERFACE): Likewise.
10572         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10573         (DFA_PIPELINE_INTERFACE): Likewise.
10574
10575 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10576
10577         * config/mips/mips.md (tstsi, tstdi): Delete.
10578
10579 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10580
10581         * config/mips/mips.c (override_options): Remove an obsolete
10582         duplicate definition of the "e" constraint.
10583         * config/mips/mips.h: Update a comment accordingly.
10584
10585 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10586
10587         * config/mips/mips.md: Complete the unfinished R4000
10588         multiply/shift errata workaround.  Improve documentation.
10589         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10590         has a hilo hazard.
10591         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10592         (muldi3, muldi3_internal): Likewise.
10593         (muldi3_internal2): Remove, replacing with...
10594         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10595         (mulsidi3): Take the errata into account.
10596         (mulsidi3_32bit): Remove, replacing with...
10597         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10598         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10599         (umulsidi3): Take the errata into account.
10600         (umulsidi3_32bit): Remove, replacing with..
10601         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10602         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10603         TARGET_FIX_R4000.
10604         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10605         (smuldi3_highpart, umuldi3_highpart): Likewise.
10606         * doc/invoke.texi: Document the errata workaround.
10607
10608 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10609
10610         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10611         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10612         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10613         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10614         * config/mips/mips.c (mips_idiv_insns): New function.
10615         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10616         (mips_output_division): Add a workaround for the R4000 divide/shift
10617         errata.
10618         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10619         the length of an "idiv" instruction.
10620         * doc/invoke.texi: Document the new switches.
10621
10622 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10623
10624         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10625         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10626
10627 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10628
10629         PR optimization/14229
10630         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10631
10632 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10633
10634         * fold-const.c (fold): Strip NOPs that change the signedness
10635         for RSHIFT too.  Expand comment.
10636
10637 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10638
10639         PR optimization/7871
10640         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10641         from or to call insns.
10642
10643 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10644
10645         PR optimization/7871
10646         * flow.c (propagate_one_insn): Interpret calls as setting global
10647         registers, not merely clobbering them.
10648
10649 2004-02-27  Dale Johannesen  <dalej@apple.com>
10650
10651         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10652         config/darwin-protos.h:  Ditto.
10653         config/darwin.h:  Remove call to it.
10654         * combine.c (distribute_notes): Do not place a REG_DEAD note
10655         when value is both set and used.
10656
10657 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10658
10659         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10660         as well.
10661         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10662         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10663
10664 2004-02-27  Andrew Pinski  <apinski@apple.com>
10665
10666         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10667         Speedup common case of the type values being in the same order.
10668
10669 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10670
10671         * config/ia64/ia64.h (no-inline-float-divide): New option.
10672         * config/ia64/ia64.h (no-inline-int-divide): New option.
10673         * config/ia64/ia64.h (no-inline-sqrt): New option.
10674         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10675         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10676         * config/ia64/ia64.c (ia64_override_options): Modify error
10677         checking for inlined division/sqrt.
10678
10679 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10680
10681         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10682         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10683         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10684         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10685         copyright.
10686
10687 2004-02-27  Paul Brook  <paul@codesourcery.com>
10688
10689         * function.c (assign_parms): Don't count pretend args for alignment.
10690
10691 2004-02-27  Richard Henderson  <rth@redhat.com>
10692
10693         * passes.c: New file.
10694         * Makefile.in (OBJS-common): Add it.
10695         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10696         * flags.h (rtl_dump_and_exit): ... here.
10697         * output.h (size_directive_output, last_assemble_variable_decl):
10698         Move from toplev.c.
10699         * rtl.h (reg_alloc): Move from toplev.c.
10700         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10701         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10702         open_dump_file, close_dump_file, rest_of_decl_compilation,
10703         rest_of_type_compilation, rest_of_handle_final,
10704         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10705         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10706         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10707         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10708         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10709         rest_of_handle_tracer, rest_of_handle_if_conversion,
10710         rest_of_handle_if_after_combine, rest_of_handle_web,
10711         rest_of_handle_branch_prob,
10712         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10713         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10714         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10715         rest_of_handle_null_pointer, rest_of_handle_combine,
10716         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10717         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10718         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10719         (decode_d_option): Use enable_rtl_dump_file.
10720         (compile_file, finalize, do_compile): Move profile+combine+graph
10721         cleanup to finish_optimization_passes.
10722         * toplev.h (init_optimization_passes, finish_optimization_passes,
10723         enable_rtl_dump_file): Declare.
10724
10725 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10726             Roger Sayle  <roger@eyesopen.com>
10727
10728         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10729         operands to build a tree with swapped operands.
10730         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10731         'unsignedp' predicate to specify the signedness.
10732
10733 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10734
10735         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10736         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10737         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10738         comment typos and formatting.  Follow spelling conventions.
10739
10740 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10741
10742         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10743         fix_truncsfsi2.
10744
10745         * config/rs6000/spe.md: Delete spe_efsctuiz.
10746         Add spe_fixuns_truncsfsi2.
10747         Add spe_fix_truncsfsi2.
10748
10749 2004-02-26  Eric Christopher  <echristo@redhat.com>
10750
10751         * c-lex.c (c_lex_string_translate): New variable.
10752         (lex_string): Use to determine string translation.
10753         * c-pragma.h: Prototype.
10754         * c-parse.in (start_string_translation): New. Set above.
10755         (stop_string_translation): Ditto.
10756         (attribute, attribute_list, asm_def, asm_stmt,
10757         asm_operand): Use above functions.
10758         * cp/parser.c (cp_parser_declaration): Translate strings
10759         unless token is RID_EXTERN. Set c_lex_string_translate
10760         for recursive use.
10761         (cp_parser_asm_definition): Only translate argument strings
10762         to asms.
10763         (cp_parser_asm_operand_list): Ditto.
10764         (cp_parser_attribute_list): Do not translate attribute strings.
10765
10766 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10767
10768         * stmt.c (expand_start_case_dummy): Remove.
10769         * tree.h: Remove the corresponding prototype.
10770
10771 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10772
10773         * builtins.c (apply_args_register_offset): Remove.
10774         * tree.h: Remove the corresponding prototype.
10775
10776 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10777
10778         * stor-layout.c (is_pending_size): Remove.
10779         * tree.h: Remove the corresponding prototype.
10780
10781 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10782
10783         * recog.c (validate_replace_src): Remove.
10784         * recog.h: Remove the corresponding prototype.
10785
10786 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10787
10788         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10789         MAYBE_REG_PARM_STACK_SPACE.
10790         * function.c: Likewise.
10791         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10792         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10793         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10794         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10795
10796 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10797
10798         * c-decl.c (c_expand_deferred_function): Remove.
10799         * c-tree.h: Remove the corresponding prototype.
10800
10801 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10802
10803         * postreload.c (reload_cse_move2add): Generate just a PLUS
10804         instead of an entire SET.
10805
10806 2004-02-26  Jan Hubicka  <jh@suse.cz>
10807
10808         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10809         /pentium4m.
10810         * i386.c (override_options): Add support for new CPUs.
10811         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10812         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10813         constants.
10814         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10815
10816 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10817
10818         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10819
10820 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10821
10822         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10823         (sparc_emit_fixunsdi): New prototype.
10824         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10825         (sparc_emit_fixunsdi): New function.
10826         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10827         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10828         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10829         to sparc_emit_floatunsdi.
10830         (fixuns_truncsfdi2): New expander.
10831         (fixuns_truncdfdi2): Likewise.
10832
10833 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10834
10835         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10836         unless HAVE_cc0.
10837
10838 2004-02-25  Richard Henderson  <rth@redhat.com>
10839
10840         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10841         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10842         use (op0-op1) == 0 if op0 is a pointer.
10843         * config/alpha/alpha.md (cmpdi): Use some_operand.
10844         (three comparison combine splits): Remove.
10845
10846 2004-02-25  Richard Henderson  <rth@redhat.com>
10847
10848         PR c/12794
10849         * c-common.c (handle_alias_attribute): Reject the attribute if
10850         current_function_decl is set.
10851
10852 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10853
10854         * config.gcc: Add comment describing extra_gcc_objs.
10855         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10856         * configure.ac (extra_gcc_objs): New substitution variable.
10857         (host_extra_gcc_objs): Don't substitute.
10858         * configure: Regenerate.
10859         * Makefile.in: Use extra_gcc_objs.
10860
10861 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10862
10863         * doc/contrib.texi: Add an entry for myself.
10864
10865 2004-02-25  Jan Hubicka  <jh@suse.cz>
10866
10867         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10868         * cfgbuild.c (make_eh_edge):  Make global.
10869         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10870         * except.c (build_post_landing_pads, connect_post_landing_pads,
10871         dw2_build_landing_pads, sjlj_emit_function_enter,
10872         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10873         sjlj_build_landing_pads): Update CFG.
10874         (emit_to_new_bb_before): New function.
10875         (finish_eh_generation): Do not rebuild the CFG.
10876
10877 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10878
10879         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10880         target_cpu_default defines.
10881         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10882         * pa.h (TARGET_DEFAULT): Likewise.
10883
10884 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10885
10886         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10887         comparisons with regard to signedness.
10888
10889 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10890
10891         * arm.c (thumb_legitimize_address): New function.
10892         * arm-protos.h: Prototype it.
10893         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10894         (LEGITIMIZE_ADDRESS): Use it.
10895
10896 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10897
10898         * reload1.c (reload): Only spill eliminable register with multiple
10899         adjacent elimination alternatives if all alternatives fail.
10900
10901 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10902
10903         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10904         is -4095...+4095 inclusive.
10905
10906 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10907
10908         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10909         the bootstrap failure with Sun CC 5.4 and 5.5.
10910
10911 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10912
10913         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10914         which modifies NEWREG.
10915         (cse_condition_code_reg): Update the mode of CC_REG in
10916         CC_SRC_INSN on our own.
10917
10918 2004-02-24  Michael Matz  <matz@suse.de>
10919
10920         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10921         regparm attributes.
10922
10923 2004-02-24  Richard Henderson  <rth@redhat.com>
10924
10925         * toplev.c (dump_file_tbl): Rename from dump_file.
10926         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10927         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10928         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10929         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10930         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10931         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10932         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10933         s/rtl_dump_file/dump_file/g.
10934
10935 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10936
10937         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10938         (spe_fixuns_truncsfsi2): Delete.
10939
10940         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10941         (fixuns_truncsfsi2): Delete.
10942
10943 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10944
10945         PR/14240
10946         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10947
10948 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10949
10950         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10951
10952 2004-02-24  Jason Merrill  <jason@redhat.com>
10953
10954         * tree.c (check_qualified_type): New fn.
10955         (get_qualified_type): Use it.  If type already has the desired
10956         quals, just return it.
10957         * tree.h: Declare it.
10958
10959 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10960
10961         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10962         TARGET_SCHED_FINISH_GLOBAL): New macros.
10963
10964         * target.h (md_init_global, md_finish_global): Function
10965         declarations corresponding to new target macros.
10966
10967         * haifa-sched.c (sched_init, sched_finish): Allow target to
10968         call the new schedular hooks.
10969
10970         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10971         call to update_life_info.
10972
10973         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10974         flag_schedule_insns for SH4.
10975
10976         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10977         find_set_regmode_weight, find_insn_regmode_weight,
10978         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10979         sh_variable_issue, high_pressure, ready_reorder,
10980         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10981         functions used to throttle the insn movement in first
10982         scheduling pass for SH.
10983
10984         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10985         TARGET_SCHED_FINISH_GLOBAL.
10986
10987 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10988
10989         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10990         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10991         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10992         symbols in sections named by the user.
10993         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10994         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10995         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10996         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10997         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10998         the above.
10999         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11000         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11001         one more pseudo to further improve code generation.
11002         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11003         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11004         inside UNSPEC.
11005         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11006         * config/frv/frv.c (frv_legitimate_address_p): Added
11007         allow_double_reg_p argument.  Adjust all callers.  Use it to
11008         decide whether to enable double-register indirect addressing.
11009         (frv_funcdesc_alias_set): Remove.
11010         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11011         register.  Emit movdi_ldd.
11012         (ldd_address_operand): New.
11013         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11014         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11015         (PREDICATE_CODES): Add ldd_address_operand.
11016         * config/frv/frv.md (movdi_ldd): New.
11017         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11018         intermediate computations if possible.
11019         (symGOTOFF2reg_i): Fix harmless typo.
11020         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11021         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11022         relocated p_vaddr to vaddr type.
11023         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11024         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11025         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11026         MEM, or use a funcdesc alias set.  Use regular move instead of
11027         ldd.
11028         (dbl_memory_one_insn_operand): Recognize function descriptors by
11029         type or by alias set, and don't split them.
11030         * config/frv/frv.md (call, call_value): Never use call_internal
11031         for fdpic.
11032         (call_internal, call_value_internal): Never match for FDPIC.
11033         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11034         call_value_fdpicsi): Require FDPIC.
11035         (ldd): Removed.
11036         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11037         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11038         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11039         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11040         FDPIC.  Compute data base address.
11041         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11042         before the other self-specs are processed.
11043         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11044         Build with -fPIC.
11045         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11046         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11047         inhibit_libc is defined.
11048         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11049         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11050         __FRV_FDPIC__.
11051         (__RELOC_POINTER): Define.
11052         (_Unwind_IteratePhdrCallback): Use it.
11053         * config/frv/frv.h (Twrite): Define.
11054         (TRANSFER_FROM_TRAMPOLINE): Use it.
11055         * config/frv/linux.h (INVOKE__main): Undefine.
11056         (Twrite): Override.
11057         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11058         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11059         (-mlibrary-pic): Emphasize that this option generates EABI code.
11060         (-mcpu): Add fr550.
11061         (-mpack): Remove.
11062         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11063         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11064         and CONSTs in FDPIC mode.
11065         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11066         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11067         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11068         constants.
11069         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11070         rather than 'i' constraint for the 2-instruction alternative.
11071         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11072         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11073         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11074         EXTRA_CONSTRAINT_FOR_Y.
11075         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11076         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11077         (addsi3): Change 'Y' constraint to 'Q'.
11078         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11079         * reload.c (CONST_POOL_OK_P): New macro.
11080         (find_reloads): Use it to decide whether a constant can be forced
11081         into memory.
11082         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11083         constant satisfies got12_operand.
11084         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11085         (frv_legitimate_address_p): Check for valid unspec offsets using
11086         got12_operand rather than frv_legitimate_fdpic_operand_p.
11087         (frv_legitimate_fdpic_operand_p): Delete.
11088         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11089         or after reload.
11090         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11091         TARGET_FDPIC.
11092         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11093         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11094         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11095         (frv_fdpic_fptr_operand): Don't declare here.
11096         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11097         rather than fdpic_got12_operand.
11098         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11099         got12_operand and const_unspec_operand.
11100         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11101         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11102         (symbolic_operand): Remove.
11103         (const_unspec_operand): New predicate.
11104         * config/frv/frv.md (*movsi_got): Use got12_operand.
11105         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11106         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11107         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11108         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11109         * config/frv/frv.c (frv_unspec): New structure.
11110         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11111         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11112         validate CONST indices.  Use frv_output_const_unspec to print them.
11113         (frv_print_operand): Update call to unspec_got_name.  Use
11114         frv_output_const_unspec to print constant unspecs.
11115         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11116         Reject UNSPECs otherwise.
11117         (unspec_got_name): Take the relocation number as argument, not an
11118         rtx containing it.
11119         (frv_output_addr_const_extra): Remove, replacing with...
11120         (frv_output_const_unspec): ...this new function.
11121         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11122         (gpr_or_int12_operand): Use fdpic_got12_operand.
11123         (dbl_memory_one_insn_operand): Likewise.
11124         (fdpic_got12_operand): Use frv_const_unspec_p.
11125         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11126         are already legitimate.  Use frv_small_data_reloc_p when deciding
11127         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11128         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11129         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11130         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11131         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11132         label, for real this time.
11133         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11134         representation of visibility.
11135         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11136         such.
11137         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11138         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11139         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11140         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11141         it was explicitly disabled.
11142         (frv_stack_info): There is no need to save the link register in every
11143         frame unless TARGET_LINKED_FP is true.
11144         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11145         frame pointer if the stack pointer might change value.
11146         (frv_return_addr_rtx): Check and process "count" argument.
11147         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11148         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11149         (frv_find_base_term): Declare.
11150         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11151         (FIND_BASE_TERM): Define.
11152         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11153         small_data_register_operand, small_data_symbolic_operand.  Add
11154         symbolic_operand.
11155         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11156         (frv_print_operand_memory_reference, output_move_single): Remove
11157         special handling for unlegitimized sdata addresses.
11158         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11159         and symbolic addresses.
11160         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11161         (frv_find_base_term): New function.
11162         (int_2word_operand): Check specifically for symbolic address constants.
11163         (pic_register_operand, pic_symbolic_operand): Delete.
11164         (small_data_register_operand, small_data_symbolic_operand): Delete.
11165         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11166         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11167         (move_source_operand): Only accept CONSTs if they're a two-insn
11168         symbolic constant.
11169         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11170         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11171         using gen_symGOTOFF2reg*.
11172         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11173         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11174         themselves a cost of 3 insns.
11175         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11176         Change predicate to symbolic_operand.
11177         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11178         (*movsi_lda_sdata): Delete.
11179         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11180         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11181         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11182         frv-*-*linux*.
11183         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11184         label.
11185         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11186         -multilib-library-pic.
11187         (LINK_SPEC): Add -z text for -mfdpic.
11188         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11189         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11190         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11191         Override.
11192         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11193         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11194         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11195         crtstuff-generated files.
11196         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11197         * config.gcc: Add frv-*-*linux*.
11198         * config/frv/linux.h, config/frv/t-linux: New.
11199         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11200         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11201         when -mfdpic even if a linker script is explicitly listed.
11202         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11203         * config/frv/frv.c (frv_override_options): Clear asm_out
11204         unaligned_op for SImode on FDPIC.
11205         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11206         argument passed to decl_readonly_section.
11207         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11208         whole block run with FDPIC even with -fno-PIC.
11209         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11210         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11211         symbol or label plus offset to memory.
11212         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11213         GOTOFF and GPREL for LABEL_REF.
11214         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11215         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11216         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11217         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11218         * doc/invoke.texi: Document them.
11219         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11220         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11221         (frv_splittable_got_operand): Removed.
11222         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11223         LO_SUM.  Add comments.
11224         (frv_override_options): Moved enabling of FDPIC to
11225         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11226         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11227         (frv_legitimize_fdpic_address): Don't duplicate logic in
11228         frv_emit_movsi.
11229         (frv_gen_GPsym2reg): New.
11230         (unspec_got_name): Added gprel.
11231         (frv_expand_fdpic_call): Add support for inlining PLTs.
11232         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11233         (gpr_or_int12_operand): Added GPREL12.
11234         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11235         (small_data_symbolic_operand): Fail if FDPIC.
11236         (fdpic_splittable_got_operand): Removed.
11237         (fdpic_got12_operand): Added GPREL12.
11238         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11239         when appropriate.  Fix sdata GOTOFF.
11240         (frv_legitimate_constant_p): Require legitimate PIC operand for
11241         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11242         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11243         flag_pic case.
11244         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11245         frv_assemble_integer fails.
11246         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11247         (SUBTARGET_DRIVER_SELF_SPECS): New.
11248         (ASM_SPEC): Don't pass -mno-fdpic.
11249         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11250         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11251         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11252         -multilib-library-pic.
11253         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11254         condexec_si_media_operator, condexec_sf_add_operator and
11255         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11256         and condexec_sf_unary_operator.
11257         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11258         New.
11259         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11260         movsi_internal.  Give them internal names.  movsi_got has type
11261         int.
11262         (fdpic got splitters): Remove.
11263         (symGPREL2reg, symGPREL2reg_hilo): New.
11264         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11265         to -mlibrary-pic.  Map -multilib-library-pic to it.
11266         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11267         Document.
11268         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11269         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11270         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11271         (frv_cannot_force_const_mem): New function.
11272         (const_small_data_p, plus_small_data_p): Update comments on sdata
11273         on FDPIC.
11274         (frv_override_options): Set flag_pie for FDPIC too.
11275         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11276         call-saved registers on FDPIC.
11277         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11278         don't force LR to be preserved.
11279         (frv_expand_prologue): Likewise.
11280         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11281         (frv_frame_pointer_required): Don't force it just because the
11282         FDPIC register is used.
11283         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11284         operand only if !condexec_p.
11285         (frv_legitimize_address): Return the FDPIC-legitimized address.
11286         Don't match small data here on FDPIC.
11287         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11288         symbols.  Use TRUE/FALSE instead of 1/0.
11289         (frv_local_funcdesc_p): New.
11290         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11291         immediates when possible.
11292         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11293         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11294         an UNSPEC_GOT.
11295         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11296         12-bit immediates when possible.
11297         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11298         are not legitimate pic operands.
11299         (frv_in_small_data_p): Re-enable for FDPIC.
11300         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11301         (FRV_GLOBAL_P): Removed.
11302         * config/frv/frv.md: Add modes to CONSTs.
11303         (movsi_got): New.
11304         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11305         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11306         (fdpic splittable operations): Match on flag_pic != 1.
11307         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11308         * config/frv/frv.c (frv_asm_out_constructor,
11309         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11310         bytes, not bits.
11311         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11312         * config/frv/frv.c (frv_assemble_integer): Reject complex
11313         expressions referencing function SYMBOL_REFs.
11314         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11315         (move_source_operand): Reject CONSTs that reference function
11316         SYMBOL_REFs on FDPIC.
11317         (frv_emit_movsi): If we get such a CONST, break it up.
11318         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11319         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11320         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11321         MEM.
11322         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11323         (frv_trampoline_size): Increase for FDPIC.
11324         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11325         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11326         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11327         Disable use of GOTOFF for now.
11328         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11329         Disable use of small data in FDPIC for now.
11330         (frv_asm_output_mi_thunk): Implement for FDPIC.
11331         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11332         * config/frv/frv.c (frv_asm_out_constructor): Use
11333         frv_assemble_integer for FDPIC pointers.
11334         (frv_asm_out_destructor): Likewise.
11335         * config/frv/frv.md (ldd): Fix order of operands.  Use
11336         address_operand for input.
11337         2003-09-18  DJ Delorie  <dj@redhat.com>
11338         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11339         (unspec_got_name): Correct typo.
11340         (frv_emit_movsi): Pre-expand splittable GOTs.
11341         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11342         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11343         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11344         * config/frv/t-frv: Add -mfdpic multilibs.
11345         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11346         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11347         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11348         flag_pic, default to 32-bit pics, require DWORD ops.
11349         (frv_override_options): Add W and Z constraints.
11350         (frv_expand_prologue): No pic prologue for -mfdpic.
11351         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11352         (frv_print_operand_memory_reference): Handle GOT constants.
11353         (frv_legitimate_address_p): Allow GOT constants.
11354         (frv_legitimize_address): Handle GOT addresses too.
11355         (frv_legitimate_fdpic_operand_p): New.
11356         (frv_legitimize_fdpic_address): New.
11357         (unspec_got_name): New.
11358         (frv_output_addr_const_extra): New.
11359         (frv_expand_fdpic_call): New.
11360         (frv_fdpic_fptr_operand): New.
11361         (gpr_or_int12_operand): Handle GOT operands.
11362         (int_2word_operand): Handle GOT operands.
11363         (fdpic_operand): New.
11364         (fdpic_splittable_got_operand): New.
11365         (fdpic_got12_operand): New.
11366         (frv_emit_movsi): Handle GOT operands.
11367         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11368         (frv_print_operand): Support 'g' code for GOT operands.
11369         * config/frv/frv-protos.h: Add prototypes as needed.
11370         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11371         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11372         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11373         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11374         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11375         R_FRV_GOTOFFLO): New.
11376         (movsi_high_got, movsi_lo_sum_got): New.
11377         (*movsi_pic): Don't use this splitter for -mfdpic.
11378         (addsi3): Allow GOT references also.
11379         (call, call_value): Handle -mfdpic separately.
11380         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11381         call_value_fdpicsi): New.
11382         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11383         symGOTOFF2reg_i): New.
11384         * config/frv/frv.h (MASK_FDPIC): New.
11385         (TARGET_FDPIC): New.
11386         (TARGET_SWITCHES): Add -mfdpic.
11387         (FDPIC_FPTR_REGNO): New.
11388         (FDPIC_REGNO): New.
11389         (OUR_FDPIC_REG): New.
11390         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11391         FDPIC_CALL_REGS.
11392         (REG_CLASS_NAMES): Likewise.
11393         (REG_CLASS_CONTENTS): Likewise.
11394         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11395         (EXTRA_CONSTRAINT): Add it here.
11396         (FRV_GLOBAL_P): New.
11397         (OUTPUT_ADDR_CONST_EXTRA): New.
11398
11399 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11400
11401         * config/sparc/sparc.h: Remove commented-out definitions of
11402         TARGET_EDOM and GEN_ERRNO_RTX.
11403
11404 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11405
11406         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11407         df_analyse with df_analyze.
11408
11409 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11410
11411         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11412         beginning of block.
11413
11414 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11415
11416         * calls.c (precompute_arguments): Update comment.
11417
11418 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11419
11420         * et-forest.c: Replace et_occurences with et_occurrences.
11421
11422 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11423
11424         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11425         with iv_analyze.
11426
11427 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11428
11429         * config/i386/i386.c: Rename pni to sse3.
11430         * config/i386/i386.h: Likewise.
11431         * config/i386/i386.md: Likewise.
11432         * config/i386/pmmintrin.h: Likewise.
11433         * doc/extend.texi: Likewise.
11434         * doc/invoke.texi: Likewise.
11435
11436 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11437             Kazu Hirata  <kazu@cs.umass.edu>
11438
11439         Remove -fwritable-strings.
11440         * c-common.c (fix_string_type): Don't check
11441         flag_writable_strings.
11442         (fix_string_type): Likewise.
11443         * c-opts.c (set_std_c89): Don't initialize
11444         flag_writable_strings.
11445         (set_std_c99): Likewise.
11446         * common.opt (fwritable-strings): Remove.
11447         * flags.h: Remove the external declaration of
11448         flag_writable_strings.
11449         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11450         Remove.
11451         * toplev.c (flag_writable_strings): Remove.
11452         (f_options): Remove an entry for writable-strings.
11453         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11454         flag_writable_strings.
11455         (compare_constant) <STRING_CST>: Likewise.
11456         (build_constant_desc): Likewise.
11457         * config/darwin.c (machopic_select_section): Likewise.
11458         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11459         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11460         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11461         * config/mips/mips.c (mips_select_section): Likewise.
11462         (mips_encode_section_info): Likewise.
11463         * config/pa/pa.c (pa_select_section): Likewise.
11464         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11465         * config/v850/v850.c (v850_select_section): Likewise.
11466         * doc/invoke.texi (-fwritable-strings): Remove.
11467         (-fno-const-strings): Don't mention -fwritable-strings.
11468         * doc/trouble.texi: Don't mention -fwritable-strings.
11469
11470 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11471
11472         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11473
11474 2004-02-23  Dale Johannesen  <dalej@apple.com>
11475
11476         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11477         (movdf_hardfloat64):  Ditto.
11478         (movdf_softfloat64):  Ditto.
11479
11480 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11481         * config/rs6000/rs6000.c (function_arg): call to
11482         rs6000_mixed_function_arg for DFmode moved to allow
11483         normal DFmode incoming register assignment.
11484
11485 2004-02-23  Dale Johannesen  <dalej@apple.com>
11486
11487         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11488         (movdf_hardfloat64):  Ditto.
11489
11490 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11491
11492         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11493         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11494         copyright.
11495
11496 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11497
11498         PR c/14156
11499         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11500         to use DECL_P instead.
11501
11502         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11503         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11504
11505 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11506
11507         * Makefile.in (opts.o): Depend on target.h.
11508         * opts.c (decode_options): Use targetm.default_short_enums
11509         instead of DEFAULT_SHORT_ENUMS.
11510         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11511         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11512         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11513         * target.h (gcc_target): Add default_short_enums.
11514         * config/cris/cris.h: Remove a comment about
11515         DEFAULT_SHORT_ENUMS.
11516         * config/ip2k/ip2k.h: Likewise.
11517         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11518         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11519
11520 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11521             Falk Hueffner  <falk@debian.org>
11522
11523         PR c/14188
11524         * builtins.c (expand_builtin_va_arg): Emit an informative message
11525         if a trap is generated.
11526         * c-typeck.c (build_function_call): Likewise.
11527
11528 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11529
11530         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11531         fopen.
11532         * libgcov.c: Include sys/stat.h.
11533         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11534         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11535         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11536         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11537
11538 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11539
11540         * reorg.c: Remove comments about dead ports.
11541
11542 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11543
11544         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11545         extra host object file when targetting cygwin rather than generic
11546         object files.
11547
11548 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11549
11550         Merge from tree-ssa:
11551         2003-11-20  Richard Henderson  <rth@redhat.com>
11552
11553                 * tree-inline.c (insert_decl_map): New.
11554                 (remap_decl, remap_type, remap_block, copy_body_r,
11555                 initialize_inlined_parameters, declare_return_variable,
11556                 remap_save_expr): Use it.
11557
11558         * function.c (copy_body_r): Add mapping from id->ret_label to
11559         id->ret_label.  Revert test for ret_label.
11560
11561 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11562
11563         * genoutput.c (process_template): Strip trailing whitespace in @
11564         templates and issue a warning if there was any.
11565
11566 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11567
11568         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11569         object file when targetting cygwin.
11570         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11571         overridden by top-level Makefile.
11572
11573 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11574
11575         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11576         the x87's load constant instructions when optimizing for size.
11577
11578 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11579
11580         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11581         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11582         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11583         * fold-const.c: Likewise.
11584         * simplify-rtx.c: Likewise.
11585
11586 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11587
11588         * combine.c (can_combine_p): Don't ignore SETs marked with
11589         REG_EH_REGION notes.
11590         (try_combine): When attemting to fix unrecognized insns, don't
11591         split a PARALLEL that contains the original i2.
11592
11593 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11594
11595         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11596         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11597         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11598         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11599         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11600         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11601         portion of header.
11602         (__altivec_link_error_invalid_argument): Remove prototype; will use
11603         __builtin_altivec_compiletime_error("vec_*") instead.
11604         (vec_*): Fix/complete set of available operation overloads given the
11605         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11606         cv-correctness of pointer arguments; in C, always check for correct
11607         argument types before macro expansion.
11608         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11609         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11610         '-W[no-]altivec-long-deprecated' switches.
11611         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11612         '__vector', '__pixel' and '__bool' macros using
11613         '__attribute__((altivec(...)))' types.
11614         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11615         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11616         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11617         New type nodes.
11618         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11619         handling '-W[no-]altivec-long-deprecated'.
11620         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11621         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11622         altivec_expand_dst_builtin): Remove casts from integer literals.
11623         (altivec_expand_builtin): Likewise; handle expansion of new
11624         '__builtin_altivec_compiletime_error' function.
11625         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11626         types, and make them distinct from other vector types; register
11627         '__builtin_altivec_compiletime_error' function.
11628         (print_operand): For 'P', print a full target register name instead of
11629         merely its number.
11630         (rs6000_attribute_table): Add "altivec" attribute.
11631         (rs6000_handle_altivec_attribute): New function.
11632         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11633         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11634         maps to).
11635         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11636         declare.
11637         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11638
11639 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11640
11641         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11642         check.
11643         (shift_mix4left+2): Delete redundant pattern.
11644
11645 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11646
11647         * alias.c (OUTGOING_REGNO): Don't define the default.
11648         * builtins.c (OUTGOING_REGNO): Likewise.
11649         (INCOMING_REGNO): Likewise.
11650         (apply_args_register_offset): Always use OUTGOING_REGNO.
11651         * combine.c (OUTGOING_REGNO): Likewise.
11652         * sibcall.c (OUTGOING_REGNO): Likewise.
11653         * defaults.h (INCOMING_REGNO): Provide the default.
11654         (OUTGOING_REGNO): Likewise.
11655
11656 2004-02-21  Jan Hubicka  <jh@suse.cz>
11657
11658         * params.def (max-peeled-insns, max-completely-peeled-insns,
11659         max-once-peeled-insns): Set to 400.
11660
11661 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11662
11663         PR c++/12007
11664         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11665         are set for parameters before outputing debugging information.
11666
11667 2004-02-20  Falk Hueffner  <falk@debian.org>
11668
11669         PR target/14201
11670         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11671         numbers.
11672
11673 2004-02-20  Per Bothner  <per@bothner.com>
11674
11675         * input.h:  Don't #include line-map.h.  It may cause link problems
11676         with undefined linemap_line_start when line-map.h is included but
11677         line-map.o is not linked, as currently happens with gengtype on
11678         compilers that don't support inline.
11679         * toplev.c:  So we do have to explicitly #include line-map.h here.
11680
11681 2004-02-20  Richard Henderson  <rth@redhat.com>
11682
11683         * doc/invoke.texi: Add -Wvariadic-macros.
11684
11685 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11686
11687         * haifa-sched.c (sched_emit_insn): Remove.
11688         * sched-int.h: Remove the corresponding prototype.
11689
11690 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11691
11692         Revert:
11693         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11694         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11695         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11696         * config/cris/cris.h: Remove a comment about
11697         DEFAULT_SHORT_ENUMS.
11698         * config/ip2k/ip2k.h: Likewise.
11699         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11700
11701 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11702             Tom Tromey  <tromey@redhat.com>
11703
11704         * doc/install.texi: Moved --disable-libgcj and
11705         --with-system-zlib documentation to new section for
11706         Java-specific options.
11707         Added explicit Cross-Compiler-Specific Options subheading.
11708         Added section for Java-specific options.
11709
11710 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11711
11712         * doc/install.texi (Building the Ada compiler): Remove
11713         example.
11714
11715 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11716
11717         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11718
11719 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11720
11721         * gcc.c (process_command): Allow translation of the copyright
11722         symbol but not the rest of the copyright message.
11723         * gcov.c (print_version): Likewise.  Allow translation of the
11724         message about warranty.
11725
11726 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11727
11728         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11729         predicate.
11730         ("*andsi_clear"): Tweak constraints to not match postincrement.
11731         Adjust the predicate to exclude a volatile memory reference.
11732         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11733         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11734
11735 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11736
11737         * move-if-change: Remove.
11738         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11739         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11740         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11741         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11742         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11743         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11744
11745 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11746
11747         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11748         for operand2.  Add condition that requires register_operand operand2
11749         before reload.
11750
11751 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11752             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11753
11754         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11755         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11756
11757 2004-02-19  Richard Henderson  <rth@redhat.com>
11758
11759         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11760         * tree.c (build0, build1, build2, build3, build4): Split out from...
11761         (build): ... here.  Call them.
11762         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11763
11764         * convert.c (convert_to_integer): Remove extra build argument.
11765         * tree-inline.c (expand_call_inline): Likewise.
11766
11767 2004-02-19  Richard Henderson  <rth@redhat.com>
11768
11769         * c-opts.c (warn_variadic_macros): New.
11770         (c_common_handle_option): Set it.
11771         (sanitize_cpp_opts): Copy it to cpp_opts.
11772         * c.opt (Wvariadic-macros): New.
11773         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11774         * cppinit.c (cpp_create_reader): Initialize it.
11775         * cppmacro.c (parse_params): Check it.
11776
11777 2004-02-19  David Daney <ddaney@avtrex.com>
11778
11779         PR preprocessor/14198
11780         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11781         builtin_assert ("machine=mips")
11782
11783 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11784
11785         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11786         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11787         * config/cris/cris.h: Remove a comment about
11788         DEFAULT_SHORT_ENUMS.
11789         * config/ip2k/ip2k.h: Likewise.
11790         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11791
11792 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11793
11794         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11795         when passing single SFmode quantities in general registers,
11796         put them in the high half.
11797
11798 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11799
11800         * doc/md.texi (Standard Names): Document additional dependency on
11801         fix pattern.
11802
11803         * optabs.c (ftruncify): Remove.
11804         (expand_fix): Manually inline ftruncify above.
11805         (can_fix_p): Add FIXME note.
11806
11807 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11808
11809         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11810         spe_fixuns_truncsfsi2.
11811
11812         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11813         fixuns_truncsfsi2.
11814
11815 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11816
11817         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11818         * testsuite/gcc.dg/20040219-1.c: New test.
11819
11820 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11821
11822         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11823         "*subsf3_cconly"): Subtraction is not commutative.
11824
11825 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11826
11827         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11828         (sdbout_symbol): If called before sdbout_init, queue DECL for
11829         later and return.
11830         (sdbout_init): Set sdbout_initialized true, process decls
11831         queued earlier by sdbout_symbol.
11832         (sdbout_finish): Use size_t for index variable.
11833
11834 2004-02-19  Jeff Law  <law@redhat.com>
11835
11836         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11837         for unordered comparison codes.
11838
11839 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11840
11841         * reload1.c (reload): Correct comment.
11842         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11843         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11844         register variables are not used by reload.
11845
11846 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11847
11848         PR target/14209
11849         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11850         constraints to not match postincrement.  Adjust the predicate to
11851         exclude a volatile memory reference.
11852
11853 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11854
11855         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11856
11857 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11858
11859         * hooks.c (hook_void_tree_int): Remove.
11860         (hook_void_constcharptr): Likewise.
11861         (hook_int_void_0): Likewise.
11862         * hooks.h: Remove the prototypes for the above three
11863         functions.
11864         * targhooks.c (hook_bool_machine_mode_true): Remove.
11865         * targhooks.h: Remove the prototype for
11866         hook_bool_machine_mode_true.
11867
11868 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11869
11870         * emit-rtl.c (subreg_realpart_p): Remove.
11871         (reorder_insns_with_line_notes): Likewise.
11872         (end_full_sequence): Likewise.
11873         * rtl.h: Remove the prototype for the above functions.
11874
11875 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11876
11877         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11878         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11879         config/iq2000/iq2000.h, config/m32r/m32r.h,
11880         config/pdp11/pdp11.h, config/sparc/sparc.h,
11881         config/xtensa/xtensa.h: Remove commented-out or useless
11882         definitions of CASE_VECTOR_PC_RELATIVE.
11883
11884 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11885
11886         * loop.c (all_sets_invariant_p): Remove.
11887
11888 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11889
11890         PR target/12916
11891         * config/sparc/sparc.h (NPARM_REGS): Delete.
11892         (BASE_RETURN_VALUE_REG): Likewise.
11893         (BASE_OUTGOING_VALUE_REG): Likewise.
11894         (BASE_PASSING_ARG_REG): Likewise.
11895         (BASE_INCOMING_ARG_REG): Likewise.
11896         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11897         TARGET_ARCH64, not TARGET_V9.
11898         (function_arg_slotno): Dispatch based on the mode class.
11899         Handle vector modes like floating-point modes.
11900         (function_arg_record_value_1): Handle vector types like
11901         floating-point types.
11902         (function_arg_record_value_2): Likewise.
11903         Calculate regno after mode transformation.
11904         (function_arg): Handle vector modes like floating-point modes.
11905         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11906         If ARCH64, do not recheck alignment.
11907         (function_arg_pass_by_reference): Reorder the conditions.
11908         (sparc_return_in_memory): Move after function_arg_padding.
11909         Implement calling conventions for vector modes.
11910         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11911         (function_value): Move scope of 'regbase'.
11912         Implement calling conventions for vector modes.
11913         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11914         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11915         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11916         the argument is passed by reference.
11917         (sparc_type_code): Handle vector types.
11918
11919 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11920
11921         * function.c (assign_parms): When building decl_rtl for
11922         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11923
11924 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11925
11926         * expr.c (is_aligning_offset): Check if we are aligning the
11927         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11928         in bits.
11929
11930 2003-02-18  Matt Austern  <austern@apple.com>
11931
11932         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11933         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11934         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11935         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11936         spec string.
11937         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11938
11939 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11940
11941         * dwarf2out.c (loclabel_num): Move outside #ifdef
11942         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11943         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11944         Mark with GTY(()).
11945         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11946         Allocate memory with ggc_alloc.  No need to copy anything.
11947         (ia64_hpux_file_end): Update to match.
11948
11949 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11950
11951         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11952         by default.
11953
11954 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11955
11956         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11957         ("divmodtisi3"): Likewise.
11958         ("udivmoddi4", "udivmodtidi3"): Likewise.
11959         ("divmodsi4", "divmoddisi3"): Likewise.
11960         ("udivmodsi4", "udivmoddisi3"): Likewise.
11961         ("udivsi3", "umodsi3"): Likewise.
11962
11963 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11964
11965         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11966         placeholder insn when chunkifying the pool.
11967
11968 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11969
11970         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11971         generating PIC code.
11972
11973 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11974
11975         * config/h8300/h8300-protos.h: Add a prototype for
11976         h8300_expand_branch.
11977         * config/h8300/h8300.c (h8300_expand_branch): New.
11978         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11979         bgtu, beq, bne): Call h8300_expand_branch().
11980
11981 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11982
11983         * config/h8300/h8300-protos.h: Add prototypes for
11984         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11985         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11986         (h8300_hard_regno_mode_ok): Likewise.
11987         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11988         h8300_hard_regno_nregs().
11989         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11990
11991 2004-02-18  Per Bothner  <per@bothner.com>
11992
11993         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11994         partly reverts my 2003-10-01 change, because we're back to logically
11995         including <command line> inside the main line.
11996         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11997         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11998         Fixes PR preprocessor/14103.
11999
12000         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12001         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12002         (cpp_push_include):  Don't need to increment pfile's line field.
12003         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12004
12005         * c-ppoutput.c (print struct):  New first_time field.
12006         (init_pp_output):  Set print.first_time.
12007         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12008         which is set also for (say) <command line>.  Clear print.first_time.
12009
12010         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12011         does not match the code, so fix both.
12012         (should_stack_file):  Inline include_pch_p function.
12013         (include_pch_p):  Remove pointless function.
12014
12015         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12016
12017 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12018
12019         * config/h8300/h8300.md (four define_peephole2's): Use
12020         h8300_regs_ok_for_stm().
12021
12022 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12023
12024         * config/h8300/h8300-protos.h: Update the prototype for
12025         expand_a_rotate().
12026         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12027         argument.
12028         * config/h8300/h8300.md: Update all callers.
12029
12030 2004-02-18  Jan Hubicka  <jh@suse.cz>
12031
12032         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12033         floats.
12034         (simplify_binary_operation): Deal with logicals on floats.
12035
12036         * i386.md (SSE fabs splitters): Emit new patterns.
12037         (SSE cmov splitters): Likewise.
12038         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12039         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12040         subregs.
12041         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12042         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12043
12044 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12045
12046         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12047         by hand.
12048         (output_a_rotate): Tweak a comment.
12049         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12050         (*rotlhi3_1): Change to rotlhi3_1.
12051         (*rotlsi3_1): Change to rotlsi3_1.
12052
12053 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12054
12055         PR target/13866
12056         * arm.c (load_multiple_operation): Don't insist that the source reg
12057         of a post-increment component is the same as the destination.
12058         (store_multiple_operation): Likewise.
12059
12060 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12061
12062         * config/h8300/h8300.md: Move movsf patterns into one section
12063         of the file.
12064
12065 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12066
12067         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12068         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12069         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12070         config/mips/linux64.h, config/pa/pa-64.h,
12071         config/rs6000/aix51.h, config/rs6000/aix52.h,
12072         config/rs6000/spe.md, config/sparc/linux.h,
12073         config/sparc/linux64.h: Update copyright.
12074
12075 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12076
12077         * config/h8300/h8300.md: Move push patterns into one
12078         section of the file.
12079
12080 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12081
12082         PR c++/11326
12083         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12084         fntype.
12085
12086 2004-02-18  Paul Brook  <paul@codesourcery.com>
12087
12088         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12089
12090 2004-02-18  Paul Brook  <paul@codesourcery.com>
12091
12092         PR debug/12934
12093         * dwarf2out.c (loc_descriptor_from_tree): Handle
12094         EXPR_WITH_FILE_LOCATION.
12095
12096 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12097
12098         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12099         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12100         trailing whitespace from instructions.
12101
12102 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12103
12104         * configure.ac: When generating auto-build.h, pass
12105         --enable-languages to the sub-configure.
12106         Put quotes around ${program_transform_name} when generating
12107         name of as, ld, nm, objdump.
12108         * configure: Regenerate.
12109
12110 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12111
12112         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12113         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12114         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12115         (s-preds, s-iov): Do not depend on move-if-change.
12116
12117 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12118
12119         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12120         (insert_save): Likewise.
12121
12122 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12123
12124         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12125         warning.
12126
12127 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12128
12129         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12130         *one_cmplsi2_h8300.
12131         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12132
12133 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12134
12135         * config/h8300/h8300-protos.h: Update the prototype of
12136         fix_bit_operand().
12137         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12138         argument "what".
12139         * config/h8300/h8300.md: Update all callers.
12140
12141 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12142
12143         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12144         the last argument to "code" from "type".
12145
12146 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12147
12148         * config/h8300/h8300.c: Remove an extern declaration of
12149         rtx_equal_function_value_matters.
12150
12151 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12152
12153         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12154         by hand.
12155         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12156         (*iorqi3_1): Change to iorqi3_1.
12157         (*xorqi3_1): Change to xorqi3_1.
12158
12159 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12160
12161         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12162         typos.
12163
12164 2004-02-17  Jan Hubicka  <jh@suse.cz>
12165
12166         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12167
12168 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12169
12170         PR optimization/14119
12171         * combine.c (try_combine): When attemting to fix unrecognized insns,
12172         don't delete SETs marked with REG_EH_REGION notes.
12173
12174 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12175
12176         * combine.c (simplify_if_then_else): Do not replace
12177         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12178         modes differ.
12179
12180 2004-02017  Steven Bosscher  <stevenb@suse.de>
12181
12182         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12183         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12184         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12185         * ada/utils.c: Likewise.
12186         * cp/decl.c: Likewise.
12187         * f/com.c: Likewise.
12188         * java/class.c: Likewise.
12189
12190 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12191
12192         * config/h8300/h8300.md: Fix comment typos.
12193
12194 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12195
12196         * config/mips/t-iris6gld: Renamed to ...
12197         * config/mips/t-irix-gld: ... this.
12198         * config.gcc (mips-sgi-irix6*): Reflect this
12199         (mips-sgi-irix5*): Use it with GNU ld.
12200
12201         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12202         to ...
12203         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12204         * config/mips/t-irix-gld: Reflect this.
12205         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12206
12207         * config/mips/iris5gld.h: New file.
12208         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12209         Only use collect2 without gas.
12210
12211         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12212         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12213         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12214         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12215
12216         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12217         * config/mips/iris5.h: ... here.
12218
12219         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12220         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12221         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12222
12223         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12224         using irix_startfile_spec, irix_endfile_spec.
12225
12226 2004-02-16  Gunther Nikl  <gni@gecko.de>
12227
12228         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12229
12230 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12231
12232         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12233         insns by hand.
12234
12235 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12236
12237         * cfghooks.c (split_edge): Speed up updating of dominators.
12238
12239 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12240
12241         PR c++/11326
12242         * c-common.c (flag_abi_version): Remove.
12243         * c-common.h (flag_abi_version): Likewise.
12244         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12245         * c.opt (fabi-version): Remove.
12246         * calls.c (expand_call): Always pass a function type to
12247         struct_value_rtx.  Use convert_memory_address.
12248         * common.opt (fabi-version): Add it.
12249         * flags.h (flag_abi_version): Likewise.
12250         (abi_version_at_least): New macro.
12251         * opts.c (common_handle_option): Add OPT_fabi_version.
12252         * toplev.c (flag_abi_version): Define it.
12253         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12254         New function.
12255         (ia64_output_mi_thunk): Use it.
12256         (ia64_struct_value_rtx): Likewise.
12257
12258 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12259
12260         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12261         Don't generate insns by hand.
12262
12263 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12264
12265         PR c++/14178
12266         * doc/invoke.texi (fabi-version): The default is 2 now.
12267
12268 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12269
12270         * loop-iv.c: New file.
12271         * Makefile.in (loop-iv.o): New.
12272         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12273         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12274         num_loop_branches): New functions.
12275         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12276         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12277         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12278         get_simple_loop_desc, free_simple_loop_desc): Declare.
12279         (simple_loop_desc): New inline function.
12280         (struct rtx_iv, struct niter_desc): New.
12281         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12282         * expr.c (force_operand): Handle subregs of expressions created by
12283         loop unroller.
12284         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12285         parts of the initialization to toplev.c
12286         * loop-unroll.c (loop_exit_at_end_p): New.
12287         (unroll_and_peel_loops): Call iv_analysis_done.
12288         (decide_peel_once_rolling, decide_peel_completely,
12289         decide_unroll_stupid, decide_unroll_constant_iterations,
12290         decide_unroll_runtime_iterations, decide_peel_simple,
12291         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12292         unroll_loop_runtime_iterations): Use new simple loop analysis.
12293         * loop-unswitch.c (compare_and_jump_seq): New.
12294         (may_unswitch_on_p): Renamed to ...
12295         (may_unswitch_on): Use new iv analysis.
12296         (reversed_condition): Export.
12297         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12298         * predict.c (estimate_probability): Use new simple loop analysis.
12299         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12300         canon_condition, simplify_using_condition): Declare.
12301         * stor-layout.c (get_mode_bounds): New.
12302         * toplev.c (rest_of_handle_loop2): Some parts of
12303         initialization/finalization moved here from loop-init.c.
12304
12305 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12306
12307         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12308         pointer.
12309         (CALL_USED_REGISTERS): Likewise.
12310         (REG_ALLOC_ORDER): Likewise.
12311         (REG_CLASS) <GENERAL_REGS>: Likewise.
12312
12313 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12314
12315         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12316         in associative operators.
12317         * rtlanal.c (commutative_operand_precedence): Create some new
12318         variables.  Prefer a commutative operand on the left, then
12319         binary expressions, then NEG and NOT.
12320
12321 2004-02-16  Matthias Klose  <doko@debian.org>
12322
12323         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12324         in terms of SHLIB_SOVERSION.
12325         * config/m68k/t-slibgcc-elf-ver: New file.
12326         * config/pa/t-slibgcc-elf-ver: New file.
12327         * config.gcc (m68k-linux, parisc-linux): Use them when not
12328         sjlj exceptions are not configured.
12329
12330 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12331
12332         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12333
12334 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12335
12336         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12337
12338 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12339
12340         * doc/sourcebuild.texi: Mention backends.html.
12341
12342 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12343
12344         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12345         line-map.c, line-map.h, var-tracking.c: Fix comment
12346         formatting.
12347
12348 2004-02-16  Richard Henderson  <rth@redhat.com>
12349
12350         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12351
12352         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12353
12354 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12355
12356         * config/h8300/h8300.md: Remove unnecessary parallels from
12357         all define_insn and define_split patterns.
12358
12359 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12360
12361         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12362         "clobber").
12363
12364 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12365
12366         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12367         '%#'.
12368
12369 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12370
12371         * config/ia64/ia64.c, config/mips/mips.c,
12372         config/mmix/mmix-modes.def: Fix comment typos.
12373
12374 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12375
12376         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12377         (get_directive_line): Remove unused function prototype.
12378
12379 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12380
12381         * tree-inline.c (copy_body_r): Do not replace ret_label.
12382
12383 2004-02-14  Jan Hubicka  <jh@suse.cz>
12384
12385         * i386.c (x86_four_jump_limit): New variable.
12386         (k8_avoid_jump_misspredicts): Rename to ...
12387         (ix86_avoid_jump_misspredicts): .. this one.
12388         (ix86_pad_returns): Break out from ...
12389         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12390         to.
12391         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12392
12393 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12394
12395         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12396         PARALLEL is NULL.
12397
12398 2004-02-14  Per Bothner  <per@bothner.com>
12399
12400         * fix-header.c (line_table):  Move local variable in main to global.
12401         * scan.h (line_table):  Use it.
12402         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12403         line (recently renamed to src_loc) before calling recognized_function.
12404
12405 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12406
12407         * Makefile.in: Fix comment typos.
12408
12409 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12410
12411         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12412         for start_value when it is directly moved into reg, and factorize
12413         the retrieval of GET_MODE (reg).
12414
12415 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12416
12417         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12418         (mips_load_got_global): Delete.
12419         (mips_gotoff_page): Declare.
12420         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12421         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12422         UNSPEC_LOAD_GOT pattern rather than a MEM.
12423         (*load_got[sd]i): New patterns.
12424         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12425         (mips_load_got_page, mips_load_got_global): Delete.
12426         (mips_gotoff_page): New function.
12427         (override_options): Don't initialize mips_got_alias_set.
12428
12429 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12430
12431         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12432         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12433         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12434         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12435         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12436         * config/mips/mips.c: Fix some overly-long lines.
12437         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12438         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12439
12440 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12441
12442         * configure.ac: Search for as, ld below libexec/gcc.
12443         * configure: Regenerate.
12444
12445 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12446
12447         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12448         __builtin_arm_setwcx ().
12449         * config/arm/arm.c (arm_expand_builtin): Generate operands
12450         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12451
12452 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12453
12454         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12455         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12456         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12457         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12458         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12459         (_mm_mulhi_pu16): Likewise.
12460
12461 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12462
12463         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12464         DECL_NAME != 0 before dereferencing.
12465
12466 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12467
12468         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12469         (s390_output_addr_const_extra): Declare.
12470         (s390_output_pool_entry): Remove FILE * argument.
12471         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12472         (s390_output_addr_const_extra): New function.
12473         (print_operand_address): Call output_addr_const instead of
12474         s390_output_symbolic_const.
12475         (print_operand): Likewise.
12476         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12477         Remove FILE * argument.
12478         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12479         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12480         call.
12481
12482 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12483
12484         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12485         (struct edge, struct vertex, struct graph): New.
12486         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12487         free_graph): New functions.
12488
12489 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12490
12491         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12492         Use ".set macro" to avoid warnings about multi-instruction
12493         macros, since they're intentional.
12494
12495 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12496
12497         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12498         comment about STANDARD_EXEC_PREFIX.
12499
12500         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12501         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12502         for installing .1 manpages.  Add rules for installing cpp
12503         and gcov manpages under their installed names.
12504
12505 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12506
12507         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12508         host, but try LD_FOR_TARGET first.
12509         * configure: Rebuilt.
12510
12511 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12512
12513         * dbxout.c: Move declaration of dbxout_type_decl outside
12514         #ifdef DBX_DEBUGGING_INFO.
12515         * c-parse.in: Don't give the asmdef production a type.
12516
12517 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12518
12519         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12520         (debug_nothing_tree_int): Prototype.
12521         (dwarf_debug_hooks): Delete, unused.
12522         * debug.c (do_nothing_debug_hooks): Update.
12523         (debug_nothing_tree_int): New function.
12524         * langhooks.h (struct lang_hooks_for_decls):
12525         Remove builtin_type_decls field.
12526         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12527         (LANG_HOOKS_DECLS): Update.
12528         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12529         Use debug_hooks->type_decl.
12530         * dbxout.c (preinit_symbols): New static.
12531         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12532         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12533         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12534         for symbols to output.
12535         (dbxout_type_decl): New function.
12536         (dbxout_symbol): If called before dbxout_init has run, queue
12537         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12538         to TYPE_DECLs before emitting them.
12539         * xcoffout.c (assign_type_number): Delete.
12540         (xcoff_type_numbers): New static table.
12541         (xcoff_assign_fundamental_type_number): New function.
12542         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12543         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12544         * sdbout.c: Include varray.h.
12545         (deferred_global_decls): New static.
12546         (sdb_debug_hooks): Update.
12547         (sdbout_global_decl): If we can't emit something right now,
12548         remember it in deferred_global_decls.
12549         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12550         (sdbout_init): Initialize deferred_global_decls.
12551         * Makefile.in: Update dependencies of sdbout.o.
12552         * dwarf2out.c (dwarf2out_type_decl): New function.
12553         (dwarf2_debug_hooks): Update.
12554         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12555         * c-decl.c (getdecls): Just return 0.
12556         (check_for_loop_decls): Don't use getdecls.
12557         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12558         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12559
12560 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12561
12562         * config/s390/s390.c (s390_sched_reorder2): Remove.
12563         (TARGET_SCHED_REORDER2): Do not redefine.
12564
12565 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12566
12567         * c-parse.in (maybe_type_qual): Delete.
12568         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12569         (asm_argument): New grammar rules.
12570         (extdef_1): Use asmdef.
12571         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12572         (xexpr): Move up with other expression rules.
12573         (stmt): Use asm_stmt.
12574
12575         * c-typeck.c (build_asm_expr): New function - body mostly
12576         pulled from build_asm_stmt.
12577         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12578         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12579
12580 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12581
12582         PR bootstrap/13617
12583         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12584         (mips_declare_object): Make variadic.
12585         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12586         mips_output_aligned_decl_common.
12587         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12588         (mips_declare_object): Make variadic.
12589
12590 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12591
12592         * function.c (update_epilogue_consts): Teach about binary operations.
12593
12594         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12595         previous MEM_VOLATILE in REF.
12596         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12597         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12598
12599 2004-02-12  Gunther Nikl  <gni@gecko.de>
12600
12601         * config.gcc: Restore support for m68k-openbsd.
12602
12603 2004-02-12  Jan Hubicka  <jh@suse.cz>
12604
12605         * tree-optimize.c (tree_rest_of_compilation): Do not release
12606         DECL_ARGUMENTS.
12607
12608 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12609
12610         * doc/install.texi: Fix the spelling of "explicitly".
12611
12612 2004-02-11  Eric Christopher  <echristo@redhat.com>
12613
12614         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12615         duplicate argument structure of cpp_interpret_string.
12616         * cpphash.h: Move prototype...
12617         * cpplib.h: Here.
12618         * cpplib.c: Fix calls to match new function signature.
12619
12620 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12621
12622         PR c/456
12623         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12624         constant expressions at all outside C99 mode if pedantic.
12625
12626 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12627
12628         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12629         (log10_optab, log2_optab): Define corresponding macros.
12630         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12631         * genopinit.c (optabs): Implement log10_optab and log2_optab
12632         using log10?f2 and log2?f2 patterns.
12633         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12634         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12635         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12636         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12637
12638         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12639         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12640         log2, log2f and log2l built-ins as inline x87 intrinsics.
12641
12642 2004-02-11  Richard Henderson  <rth@redhat.com>
12643
12644         PR target/1532
12645         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12646         dead insn after reload.
12647
12648 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12649
12650         * tree.h (frame_base_decl): Add GTY marker.
12651         * var-tracking.c (frame_base_decl): Likewise.
12652
12653 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12654
12655         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12656         incorrect, hunk.
12657         (add_location_or_const_value_attribute): Use text_section_label,
12658         not TEXT_SECTION_NAME.
12659
12660 2004-02-11  Per Bothner  <per@bothner.com>
12661
12662         Represent column numbers using line-map's source_location.
12663         The "next available source_location" is now managed internally by
12664         line-maps.c rather than by clients.
12665         * line-map.h (struct line_map):  New field column_bits.
12666         <from_line>:  Rename field to start_location.
12667         (struct line_maps):  New fields highest_location and max_column_hint.
12668         (linemap_check_files_exited):  New declaration.
12669         (linemap_line_start):  New declaration.
12670         (linemap_add):  Remove from_line parameter; use highest_location field.
12671         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12672         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12673         (CURRENT_LINE_MAP):  Remove macro.
12674         (linemap_position_for_column):  New inline function.
12675         * line-map.c (linemap_init):  Clear new fields.
12676         (linemap_check_files_exited):  New function, extracted from ...
12677         (linemap_free):  Use linemap_check_files_exited.
12678         (linemap_add):  Remove from_line parameter.  Various updates.
12679         (linemap_line_start):  New function.
12680         (linemap_lookeup):  Update for new field names.
12681         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12682         linemap_position_for_column may unpredictably change the current map,
12683         it is cleaner and simpler for us to not cache it in cpp_reader.
12684         (struct cpp_buffer):  New sysp field.
12685         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12686         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12687         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12688         current map using linemap_lookup.
12689         (do_linemarker):  Also set buffer's sysp field.
12690         (destringize_and_run):  No longer need to decrement current line.
12691         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12692         (search_path_head, open_file_failed):  Use buffer's sysp.
12693         (cpp_make_system_header):  Get current map using linemap_lookup.
12694         Also set buffer's sysp flag.
12695         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12696         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12697         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12698         (struct cpp_reader):  ... and adding saved_line_base field.
12699         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12700         Update accordingly.  Don't adjust line.
12701         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12702         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12703         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12704         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12705         * cpplex.c (_cpp_lex_direct):  Likewise.
12706         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12707         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12708         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12709         Remove col field as it is now subsumed by src_loc.
12710         * cpperror.c:  Update various field, parameter, and macro names.
12711         (print_location):  If col==0, try SOURCE_COLUMN of line.
12712         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12713         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12714         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12715         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12716         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12717         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12718         (_cpp_lex_direct):  Use linemap_position_for_column.
12719         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12720         parameter.  Instead get it from the line_table global.  Adjust callers.
12721         (print):  Remove map field.  Replace line field to src_line.
12722         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12723         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12724         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12725         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12726         * cpptrad.c (copy_comment):  Rename variable.
12727         * c-lex.c (map):  Remove static variable, for same reason we removed
12728         cpp_reader's map field.
12729         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12730         to call linemap_lookup.
12731         (cb_line_change):  Token's line field replaced by src_loc.
12732         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12733         Don't save new_map.
12734
12735         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12736         source_location.
12737
12738 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12739
12740         * config/rs6000/altivec.md (*movv4si_internal): At least one
12741         operand must be register_operand.
12742         (*movv8hi_internal1): Likewise.
12743         (*movv16qi_internal1): Likewise.
12744         (*movv4sf_internal1): Likewise.
12745
12746 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12747
12748         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12749         operand.
12750         (movv4hi_internal): Same.
12751         (movv2sf_internal): Same.
12752         (movv1di_internal): Same.
12753
12754 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12755
12756         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12757         TARGET_OLDABI consistently.
12758         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12759         mips_va_arg,override_options,compute_frame_size,
12760         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12761         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12762         and TARGET_OLDABI consistently.
12763         * config/mips/mips.md (exception_receiver): Likewise.
12764         * config/mips/linux64.h: Likewise.
12765
12766 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12767
12768         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12769         Set AltiVec ABI and vrsave as default for ppc64 linux.
12770         (init_cumulative_args): Post error, if try to return
12771         value in AltiVec register without enable AltiVec.
12772         (function_arg_advance): Ditto for passing arguments.
12773
12774 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12775
12776         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12777         a label before updating its usage count.
12778
12779 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12780
12781         * doc/install.texi: Remove extra cd.
12782
12783 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12784
12785         * c-common.c (vector_size_helper): Remove; call
12786         reconstruct_complex_type() instead.
12787         * tree.c (reconstruct_complex_type): New function
12788         (formerly vector_size_helper() in c-common.c).
12789         (make_vector): Make externally visible.
12790         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12791
12792 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12793
12794         * config/h8300/h8300-protos.h: Add a prototype for
12795         h8300_regs_ok_for_stm.
12796         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12797         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12798         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12799         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12800         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12801         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12802         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12803         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12804         h8300_regs_ok_for_stm().
12805
12806 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12807
12808         PR c/14088
12809         * real.c (real_from_string): Look for 'X' as well as 'x' in
12810         hexfloat strings.
12811
12812 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12813
12814         * config/h8300/h8300.md: Remove an incorrect comment about
12815         peephole2.  Add comments.
12816
12817 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12818
12819         PR/14058
12820         * emit-rtl.c (set_decl_incoming_rtl): New.
12821         * tree.h (set_decl_incoming_rtl): New.
12822         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12823         DECL_INCOMING_RTL.
12824         * ada/misc.c (adjust_decl_rtl): Likewise.
12825
12826 2004-02-10  Per Bothner  <per@bothner.com>
12827
12828         * c-opts.c (c_common_post_options):   Don't emit working directory
12829         in cpp output if -P was specified.
12830
12831 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12832
12833         PR c/14092
12834         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12835         negate_expr back to the original type.
12836
12837 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12838
12839         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12840         bump retaddr here.
12841
12842 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12843
12844         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12845         gen_lowpart_SUBREG): Move under the file in which they
12846         are actually declared.
12847
12848 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12849
12850         * doc/sourcebuild.texi: Add libada documentation.
12851
12852         * doc/install.texi: Update documentation on Ada build, now
12853         that the GNAT lib and tools are built automatically.
12854
12855 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12856
12857         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12858         && TARGET_IRIX.
12859
12860 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12861
12862         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12863         boundaries outside build_component_ref() call (a macro in ObjC++).
12864
12865 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12866
12867         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12868         (init_cumulative_args): Likewise.
12869         (a7_overlap_mentioned_p): Delete prototype.
12870         * config/xtensa/xtensa.c (struct machine_function): Replace
12871         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12872         Add set_frame_ptr_insn field.
12873         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12874         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12875         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12876         at the function entry and replace the operand with the pseudo.
12877         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12878         argument and record this flag in CUMULATIVE_ARGS.
12879         (function_arg): Remove result_mode and special-case code to handle
12880         arguments in a7.  Instead, set need_a7_copy flag when there is an
12881         incoming argument in a7.
12882         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12883         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12884         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12885         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12886         special-case code.
12887         (a7_overlap_mentioned_p): Delete.
12888         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12889         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12890         arguments to init_cumulative_args and pass "incoming" flag instead.
12891         (BLOCK_REG_PADDING): Delete.
12892         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12893         checks for reload_in_progress and reload_completed.  Update calls to
12894         xtensa_copy_incoming_a7.
12895         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12896         to call xtensa_copy_incoming_a7.
12897
12898 2004-02-09  DJ Delorie  <dj@redhat.com>
12899
12900         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12901         longer modify standard_exec_prefix, standard_bindir_prefix, or
12902         standard_startfile_prefix.
12903
12904 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12905
12906         PR c++/11295
12907         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12908         to expand_expr_real call, and pass in alt_rtl as last argument.
12909
12910         PR libstdc++/5625
12911         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12912         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12913         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12914         * except.c (expand_builtin_extend_pointer): New.
12915         * except.h (expand_builtin_extend_pointer): Declare.
12916
12917 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12918
12919         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12920         unaligned loads and stores.
12921
12922 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12923
12924         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12925         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12926
12927         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12928         * config/mips/iris5.h: ... here.
12929         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12930
12931         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12932         * config/mips/iris5.h: ... here.
12933
12934 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12935
12936         * configure.ac: Remove default executable files before AC_PROG_CC.
12937         * configure: Regenerate.
12938
12939 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12940
12941         PR target/13721
12942         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12943         print a operand other than a register.
12944
12945 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12946
12947         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12948         tree code rather than call fold_convert, which doesn't specify a
12949         default floating point to integer conversion.
12950
12951 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12952
12953         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12954         code to support SGS assembler.  Reformat adjacent code where possible.
12955         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12956         definition.
12957         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12958         for '%#'.
12959         * config/m68k/linux.h, config/m68k/m68k.c,
12960         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12961         macros and asm_printf() format strings.
12962         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12963         * config/m68k/linux.h: Update copyright.
12964         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12965
12966 2004-02-08  Andreas Schwab  <schwab@suse.de>
12967             Bernardo Innocenti  <bernie@develer.com>
12968
12969         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12970         REGISTER_PREFIX.
12971         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12972         frame pointer register, overridable by OS targets.
12973         * (M68K_REGNAME): Macro to obtain register name for asm output,
12974         eventually replacing %a6 with M68K_FP_REG_NAME.
12975         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12976         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12977         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12978         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12979         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12980
12981 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12982
12983         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12984         hook_rtx_tree_int_null.
12985         * targhooks.c (default_struct_value_rtx): Remove.
12986         * targhooks.h: Remove the prototype for
12987         default_struct_value_rtx.
12988         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12989         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12990         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12991         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12992         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12993         config/rs6000/rs6000.c, config/s390/s390.c,
12994         config/stormy16/stormy16.c, config/v850/v850.c,
12995         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12996         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12997
12998 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12999
13000         * README.Portability: Change "ISO C89" to "ISO C90".
13001         * c-parse.in (primary, initelt): Likewise.
13002
13003 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13004
13005         * real.c (encode_ibm_extended): Normalize the input value before
13006         converting it to a double.  Handle the case where a normal value
13007         rounds to infinity.
13008
13009 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13010
13011         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13012         warning.
13013         * cse.c (preferrable): Change to preferable. Update all of its
13014         callers.
13015         * genautomata.c (ainsn): Change
13016         first_ainsn_with_given_equialence_num to
13017         first_ainsn_with_given_equivalence_num.  Update all of its
13018         references.
13019
13020 2004-02-08  Jan Hubicka  <jh@suse.cz>
13021
13022         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13023
13024 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13025
13026         * function.c (assign_parms): Fix formatting.
13027
13028 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13029
13030         * default.h (PROMOTE_PROTOTYPES): Remove.
13031         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13032         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13033         EXPAND_BUILTIN_SAVEREGS): Poison.
13034         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13035         hook_bool_tree_false.
13036         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13037         * target.h: Replace SETUP_INCOMING_VARARGS with
13038         targetm.calls.setup_incoming_varargs().
13039         * targhooks.c (default_promote_function_return): Remove.
13040         (default_promote_prototypes): Likewise.
13041         (default_struct_value_rtx): Always abort().
13042         (default_expand_builtin_saveregs): Always print an error
13043         message.
13044         (default_setup_incoming_varargs): Do nothing.
13045         (default_pretend_outgoing_varargs_named): Don't depend on
13046         SETUP_INCOMING_VARARGS.
13047         * targhooks.h: Remove the prototype for
13048         default_promote_function_return and
13049         default_promote_prototypes.
13050
13051 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13052
13053         * system.h (SHARED_SECTION_ASM_OP): Poison.
13054         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13055         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13056
13057 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13058
13059         Bug 13856
13060         * c-decl.c (diagnose_mismatched_decls): Only give special
13061         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13062         is also true.
13063         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13064         DECL_FUNCTION_CODE when defining a built-in function.
13065         Don't update DECL_ESTIMATED_INSNS.
13066         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13067         FUNCTION_DECLs.
13068         * tree.h: Delete DECL_ESTIMATED_INSNS.
13069         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13070         (expand_call_inline, optimize_inline_calls): Don't update
13071         DECL_ESTIMATED_INSNS nor inlined_insns.
13072         * cgraphunit.c (cgraph_analyze_function): Don't update
13073         DECL_ESTIMATED_INSNS.
13074
13075 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13076
13077         * c-common.c (shadow_warning): Delete.
13078         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13079         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13080         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13081         * c-parse.in (free_parser_stacks): Delete.
13082
13083 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13084
13085         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13086         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13087         Use the top level mkinstalldirs, not the one in the gcc subdir.
13088         * mkinstalldirs: Remove (from the gcc subdir).
13089
13090 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13091
13092         PR middle-end/13696
13093         * fold-const.c (fold_convert): New function to provide type
13094         conversion to the middle-end without using convert.
13095         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13096         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13097         invert_truthvalue, optimize_bit_field_compare, range_binop,
13098         decode_field_reference, make_range, build_range_check, unextend,
13099         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13100         fold_binary_op_with_conditional_arg, fold_inf_compare,
13101         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13102         convert with calls to fold_convert.
13103
13104 2004-02-07  Jan Hubicka  <jh@suse.cz>
13105
13106         * genrecog.c (find_operand): add extra argument stop.
13107         (validate_pattern): Verify that mach_dup is duplicating operand
13108         defined lexically earlier.
13109
13110 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13111
13112         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13113         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13114         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13115         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13116         config/ia64/ia64.h, config/ip2k/ip2k.h,
13117         config/iq2000/iq2000.h, config/mips/iris5.h,
13118         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13119         config/rs6000/aix51.h, config/rs6000/aix52.h,
13120         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13121         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13122         config/sparc/linux.h, config/sparc/linux64.h,
13123         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13124         config/xtensa/xtensa.h: Remove the definitions of
13125         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13126         MAX_WCHAR_TYPE_SIZE.
13127         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13128         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13129
13130 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13131
13132         PR bootstrap/13990
13133         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13134         gen_rtx_NE.
13135
13136 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13137
13138         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13139         #ifdef ENABLE_CHECKING and #endif.
13140
13141 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13142
13143         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13144         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13145         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13146         integer types and floating point with unsafe_math_optimizations.
13147         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13148         Optimize A - B as A + (-B), if B is easily negated.
13149
13150 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13151
13152         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13153         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13154         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13155         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13156         Update copyright.
13157
13158 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13159
13160         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13161
13162 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13163
13164         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13165         glibc 2.3 or better.
13166
13167 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13168
13169         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13170         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13171
13172 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13173
13174         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13175         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13176         (SHLIB_MKMAP_OPTS): Delete.
13177         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13178         (bispecs): Add rule.
13179         * config/rs6000/libgcc-ppc64.ver: New file.
13180         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13181         (__floatdidf, __floatdisf): Optimize multiply.
13182         (__fixunstfdi): New function.
13183         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13184         real and imag parts larger than one register.
13185         (function_arg): Correct type of reg used when fp arg split partially
13186         to stack.
13187         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13188         and __MACH__ or __powerpc64__.
13189
13190 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13191             Ulrich Weigand  <uweigand@de.ibm.com>
13192
13193         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13194         of gen_highpart or gen_lowpart when the floating point format is
13195         wider than the result mode.
13196
13197 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13198
13199         * dwarf2out.c (loclabel_num): Move into #ifdef
13200         DWARF2_DEBUGGING_INFO.
13201
13202 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13203
13204         * objc/objc-act.c (build_super_template) the 'class' field of
13205         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13206         (get_super_receiver): Likewise.
13207
13208 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13209
13210         * reload1.c (check_eliminable_occurrences): Optimize the reset
13211         of can_eliminate.
13212         (eliminate_regs_in_insn): Likewise.
13213
13214 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13215             Josef Zlomek  <zlomekj@suse.cz>
13216
13217         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13218         at the beginning of function, call dwarf2out_var_location for
13219         NOTE_INSN_VAR_LOCATION note.
13220         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13221         decl_loc_table): New.
13222         (lookup_decl_loc): New function.
13223         (add_var_loc_to_decl): New function.
13224         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13225         only if can_use_fbreg.
13226         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13227         functions.
13228         (loc_descriptor): Likewise. Process VAR_LOCATION.
13229         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13230         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13231         can_use_fbreg == true.
13232         (add_location_or_const_value_attribute): Added parameter enum
13233         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13234         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13235         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13236         with attr == DW_AT_location.
13237         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13238         if frame_base_decl is defined and has a location list.
13239         (gen_variable_die): Call add_location_or_const_value_attribute with
13240         attr == DW_AT_location.
13241         (dwarf2out_var_location): New function.
13242         (dwarf2out_begin_function): New function.
13243         (dwarf2out_init): Create decl_loc_table.
13244
13245 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13246
13247         * loop.c (force_movables): Transitively increase the priorities of
13248         all insns forces by an insn, not just the first one.
13249
13250 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13251             Daniel Berlin <dberlin@dberlin.org>
13252
13253         Josef Zlomek  <zlomekj@suse.cz>
13254         * Makefile.in (var-tracking.o): New.
13255         * common.opt (fvar-tracking): New.
13256         * flags.h (flag_var_tracking): New.
13257         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13258         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13259         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13260         * rtl.c (note_insn_name): Likewise.
13261         * rtl.def (VAR_LOCATION): New.
13262         * rtl.h (NOTE_VAR_LOCATION): New.
13263         (NOTE_VAR_LOCATION_DECL): New.
13264         (NOTE_VAR_LOCATION_LOC): New.
13265         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13266         (variable_tracking_main): New exported function.
13267         * timevar.def (TV_VAR_TRACKING): New.
13268         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13269         (dump_file): "vartrack" was added (-dV).
13270         (flag_var_tracking): New.
13271         (f_options): "var-tracking" was added.
13272         (rest_of_handle_variable_tracking): New function.
13273         (rest_of_compilation): Run variable tracking.
13274         (process_options): If user has not specified flag_var_tracking set it
13275         according to optimize, debug_info_level and debug_hooks.
13276         * tree.h (frame_base_decl): New.
13277         * var-tracking.c: New file.
13278         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13279         (ia64_override_options): Set flags to run variable tracking in machine
13280         dependent reorg instead of toplev.c.
13281         (ia64_reorg): Run variable tracking if wanted.
13282         * doc/invoke.texi: Mention variable tracking in -dV,
13283         add and -fvar-tracking.
13284         * doc/passes.texi: Added variable tracking pass.
13285
13286         Daniel Berlin <dberlin@dberlin.org>
13287         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13288         * dbxout.c (dbx_debug_hooks): Likewise.
13289         (xcoff_debug): Likewise.
13290         * debug.c (do_nothing_debug_hooks): Likewise.
13291         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13292         * dwarfout.c (dwarf_debug_hooks): Likewise.
13293         * sdbout.c (sdb_debug_hooks): Likewise.
13294         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13295         * final.c (final_scan_insn): Call var_location debug hook for each
13296         NOTE_INSN_VAR_LOCATION.
13297
13298 2004-02-06  Jan Hubicka  <jh@suse.cz>
13299
13300         * flow.c (update_life_info): Allocate reg_deaths when called from
13301         scheudler.
13302         (attempt_auto_inc):  Update life ranges accordingly.
13303
13304 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13305
13306         PR debug/11816
13307         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13308
13309 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13310
13311         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13312
13313 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13314
13315         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13316         a separate line info table in use.
13317         Use the correct size for terminators.
13318         (output_die): Use offset, not delta.
13319
13320 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13321
13322         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13323
13324 2004-02-06  Jan Hubicka  <jh@suse.cz>
13325
13326         * recog.c (split_all_insns): Do not update reg info.
13327         * regrename.c (regrename_optimize): Likewise.
13328         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13329         * flow.c (struct propagate_block_info): Add insn_num field.
13330         (reg_deaths): New array.
13331         (life_analysis): Free reg_deaths info.
13332         (allocate_reg_life_data): Allocate reg_deaths array.
13333         (propagate_one_insn): Use new array.
13334         (init_propagate_block): Initialize it.
13335         (free_propagate_block_info): Finish compuation of
13336         REG_LIVE_LENGTH
13337         (attempt_auto_inc): Sanity check that REG_INFO is not
13338         computed at same time.
13339         (mark_used_regs): Update new array.
13340
13341         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13342         substitution.
13343
13344 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13345
13346         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13347         *extendqisi2_short_displ.
13348
13349 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13350
13351         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13352         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13353         (emit_library_call_value_1): Likewise pass nargs.
13354         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13355         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13356         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13357         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13358         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13359         prototype.
13360         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13361         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13362         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13363         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13364         INIT_CUMULATIVE_ARGS.
13365         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13366         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13367         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13368         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13369         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13370         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13371         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13372         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13373         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13374         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13375         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13376         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13377
13378 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13379
13380         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13381         possible.
13382
13383 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13384
13385         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13386         note containing (plus (reg) (const_int)), where reg is an
13387         eliminable reg, then perform the register elimination without
13388         depending on eliminate_regs().
13389
13390 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13391
13392         * config/arc/arc.c (arc_return_in_memory): Check the return
13393         value of int_size_in_bytes against -1.  Don't check
13394         TREE_ADDRESSABLE.
13395         * config/avr/avr.c (avr_return_in_memory): Check the return
13396         value of int_size_in_bytes against -1.
13397         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13398         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13399         Likewise.
13400         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13401         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13402         Likewise.
13403
13404 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13405
13406         * config/frv/frv-protos.h: Remove the prototype for
13407         frv_setup_incoming_varargs.
13408         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13409         (frv_setup_incoming_varargs): Make it static.
13410         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13411
13412 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13413
13414         * config/fr30/fr30-protos.h: Remove the prototype for
13415         fr30_setup_incoming_varargs.
13416         Update the prototypes for fr30_num_arg_regs and
13417         fr30_function_arg_partial_nregs.
13418         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13419         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13420         (fr30_setup_incoming_varargs): Make it static.
13421         Add argument second_time.  Don't do anything when second_time
13422         is nonzero.
13423         (fr30_num_arg_regs): Change the type of the first argument to
13424         enum machine_mode.
13425         (fr30_function_arg_partial_nregs): Change the type of the
13426         second argument to enum machine_mode.
13427         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13428         (SETUP_INCOMING_VARARGS): Remove.
13429
13430 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13431
13432         * config/arc/arc-protos.h: Remove the prototype for
13433         arc_setup_incoming_varargs.
13434         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13435         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13436         (arc_setup_incoming_varargs): Make it static.
13437         (arc_external_libcall): Likewise.
13438         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13439         Remove the commented-out definition of
13440         ASM_OUTPUT_EXTERNAL_LIBCALL.
13441
13442 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13443
13444         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13445         to $$(slibdir) in the installation commands.
13446
13447 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13448
13449         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13450         with inner_regno, not regno.
13451         * rtlanal.c (refers_to_regno_p): Same.
13452
13453 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13454
13455         * config.gcc: Remove i370 support.
13456
13457 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13458
13459         * doc/install.texi:  Update automake and autoconf version
13460         requirements.  Note where to find gcj automake version.
13461
13462 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13463
13464         * Makefile.in (generate-manpages): Move dependencies to ...
13465         (man): here.
13466         * doc/makefile.texi: Document new targets.
13467         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13468
13469 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13470
13471         PR/13485
13472         Makefile.in (srcextra):  Add a level of indirection to ...
13473         (gcc.srcextra): ... here.
13474         (po-generated): Delete.
13475         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13476         options.c.
13477         (start.encap): Remove superfluous lang.srcextra dependency.
13478         objc/Make-lang.in (po-generated):  Delete.
13479
13480 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13481
13482         * config/ia64/ia64.c (REG_GP): Remove.
13483
13484 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13485
13486         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13487
13488 2004-02-05  Devang Patel  <dpatel@apple.com>
13489
13490         * dwarf2out.c (force_type_die): Look up input type itself
13491         instead of root_type() of type.
13492
13493 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13494
13495         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13496         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13497         pre-reload splitters are transformed to post-reload
13498         define_insn_and_split patterns.
13499         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13500
13501 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13502
13503         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13504         TARGET_PROMOTE_PROTOTYPES.
13505
13506 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13507
13508         PR middle-end/13750
13509         Revert:
13510         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13511         PR pch/13361
13512         * c-typeck.c (constructor_asmspec): Delete.
13513         (struct initializer_stack): Delete field 'asmspec'.
13514         (start_init): Delete saving of asmspec.
13515         (finish_init): Don't update constructor_asmspec.
13516         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13517         * stmt.c (expand_asm): Duplicate strings from tree.
13518         (expand_asm_operands): Likewise.
13519         * tree.c (tree_size): Update computation of size of STRING_CST.
13520         (make_node): Don't make STRING_CST nodes.
13521         (build_string): Allocate string with tree node.
13522         * tree.def (STRING_CST): Update comment.
13523         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13524         (tree_string): Place contents of string in tree node.
13525         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13526         from tree.
13527
13528 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13529
13530         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13531         msgid.
13532
13533 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13534
13535         * config/rs6000/altivec.md (*movv4si_internal): At least one
13536         operand must be altivec_register_operand.
13537         (*movv8hi_internal1): Likewise.
13538         (*movv16qi_internal1): Likewise.
13539         (*movv4sf_internal1): Likewise.
13540
13541 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13542
13543         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13544         * configure: Regenerate.
13545
13546 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13547
13548         * doc/install.texi: Update description of --gxx-include-dir to
13549         give correct default value.
13550
13551 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13552
13553         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13554         8 with MAC_REG.
13555
13556 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13557
13558         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13559         gen_rtx_PARALLEL.
13560
13561 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13562
13563         * emit-rtl.c: Update the comment about the file.
13564
13565 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13566
13567         * sourcebuild.texi (Test Idioms): Update testcase naming
13568         conventions.
13569
13570 2004-02-04  Per Bothner  <per@bothner.com>
13571
13572         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13573         * c-ppoutput.c (pp_dir_change):  New function.
13574         * c-common.h (pp_dir_change):  New declaration.
13575         * cpplib.h (struct cpp_options):  Remove working_directory field.
13576         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13577         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13578         Don't handle -fworking_directory here, but in c_common_post_options.
13579         (read_original_directory): Don't back up when done.
13580         Don't clear no-longer used working_directory flag.
13581         * cpplib.h:  Update declarations to match.
13582         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13583         (init_c_lex):  Don't set dir_change callback here, since we want
13584         to set it even if flag_preprocess_only.
13585         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13586         (c_common_post_options):  Set dir_change callback.
13587         Call pp_dir_change if approporiate.
13588         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13589         unneeded parameter and result. Do LC_RENAME for <built-in>.
13590         (c_common_post_options):  Call cpp_read_main_file here instead.
13591         (c_common_init):  Update accordingly.
13592         (push_command_line_include):  Don't cpp_push_main_file.
13593         Do LC_RENAME rather than LC_LEASE to get back to main file.
13594         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13595         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13596         files, but call finish_options for all files.
13597         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13598         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13599         cpp_find_main_file + cpp_push_main_file.
13600         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13601         * opts.c (handle_options):  Only set main_input_filename first time.
13602
13603 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13604
13605         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13606
13607 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13608
13609         * reload.c (find_equiv_reg): When checking for register overlap,
13610         don't index hard_regno_nregs with a pseudo-reg.
13611
13612 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13613
13614         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13615
13616 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13617
13618         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13619         against FIRST_PSEUDO_REGISTER.
13620
13621 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13622
13623         * Makefile.in: Move target, host overrides after per-language
13624         fragments.
13625
13626         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13627         (GNATLIBCFLAGS): Remove -g.
13628
13629 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13630
13631         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13632         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13633         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13634         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13635         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13636         config/sparc/sparc.c, config/vax/vax.c: Revert the
13637         replacements of "FALLTHRU" with "Fall through" done in the
13638         previous patch.
13639
13640 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13641
13642         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13643         config/arm/arm.c, config/arm/arm.md,
13644         config/cris/cris-protos.h, config/fr30/fr30.c,
13645         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13646         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13647         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13648         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13649         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13650         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13651         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13652         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13653         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13654         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13655         config/s390/s390.md, config/sparc/netbsd-elf.h,
13656         config/sparc/openbsd.h, config/sparc/sparc.c,
13657         config/xtensa/lib2funcs.S: Fix comment formatting.
13658
13659 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13660
13661         * config/alpha/alpha.c, config/arc/arc.c,
13662         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13663         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13664         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13665         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13666         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13667         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13668         config/iq2000/iq2000.c, config/m32r/m32r.c,
13669         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13670         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13671         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13672         config/rs6000/rs6000.h, config/sparc/sparc.c,
13673         config/vax/vax.c: Fix comment typos.  Follow spelling
13674         conventions.
13675
13676 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13677
13678         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13679         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13680         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13681         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13682         config/arm/fpa.md, config/arm/iwmmxt.md,
13683         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13684         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13685         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13686         config/sparc/netbsd-elf.h: Update copyright.
13687
13688 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13689
13690         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13691         for all modes whose size is greater than 8 bytes if ARCH32.
13692         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13693         by reference if ARCH32.
13694
13695 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13696
13697         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13698
13699 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13700
13701         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13702         to before adddi3 insn patterns.
13703         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13704         "reload_insi"): Move to before addsi3 insn patterns.
13705
13706 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13707
13708         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13709         parameter.  Use it instead of current_function_is_thunk.
13710         * function.h (struct function): Update documentation for is_thunk.
13711         * tree.h (CALL_FROM_THUNK_P): New macro.
13712         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13713         no_new_pseudos when testing current_function_is_thunk.
13714         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13715
13716 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13717
13718         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13719         TARGET_SETUP_INCOMING_VARARGS.
13720
13721 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13722
13723         * emit-rtl.c (gen_rtx): Remove.
13724         * genattrtab.c: Don't mention gen_rtx in a comment.
13725         * rtl.h: Remove the prototype for gen_rtx.
13726         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13727
13728 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13729
13730         * config/arc/arc.h, config/fr30/fr30.h
13731         (SETUP_INCOMING_VARARGS): Remove the target-independent
13732         comments.
13733         * doc/tm.texi: Don't mention deprecated target macros.
13734
13735 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13736
13737         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13738         target-independent comment.
13739
13740 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13741
13742         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13743         mention deprecated target macros.
13744
13745 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13746
13747         * config.gcc: Remove obsolete ports and configurations.
13748         * config/linux-aout.h, config/netware.h,
13749         config/t-linux-gnulibc1, config/d30v/abi,
13750         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13751         config/d30v/d30v.h, config/d30v/d30v.md,
13752         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13753         config/dsp16xx/dsp16xx-modes.def,
13754         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13755         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13756         config/i370/README, config/i370/i370-c.c,
13757         config/i370/i370-protos.h, config/i370/i370.c,
13758         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13759         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13760         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13761         config/i386/moss.h, config/i386/netware.h,
13762         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13763         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13764         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13765         config/i960/i960-c.c, config/i960/i960-coff.h,
13766         config/i960/i960-modes.def, config/i960/i960-protos.h,
13767         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13768         config/i960/rtems.h, config/i960/t-960bare,
13769         config/m68k/hp310.h, config/m68k/hp320.h,
13770         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13771         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13772         Remove.
13773         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13774         doc/md.texi: Remove mentions of obsolete ports.
13775
13776 2004-02-04  Jan Hubicka  <jh@suse.cz>
13777
13778         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13779         pointer when all VALUE's locations has been invalidated.
13780         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13781
13782 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13783
13784         * doc/invoke.texi (x86 options): Fix spelling/wording.
13785
13786 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13787
13788         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13789         put the original string in a comment.
13790         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13791         * config/mips/mips.c (mips_output_ascii): Likewise.
13792         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13793
13794 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13795
13796         * system.h (GIV_SORT_CRITERION): Poison.
13797         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13798         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13799
13800 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13801
13802         PR target/9348
13803         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13804         multiplies with a multiplication of the wrong signedness, its the
13805         signedness of the multiplication that we've performed that needs to
13806         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13807         if expand_mult_highpart_adjust places the result in target.
13808
13809 2004-02-03  Richard Henderson  <rth@redhat.com>
13810
13811         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13812
13813 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13814
13815         * config.gcc (sh[234]l): Use little endian fragments.
13816
13817 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13818
13819         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13820         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13821         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13822         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13823         floating point format.
13824         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13825         the above functions.
13826         (output_move_quad): Output float values in correct target format.
13827         (legitimate_const_double_p): New function.
13828         * config/pdp11/pdp11.h: Fix typos.
13829         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13830         (TARGET_FLOAT_FORMAT): Ditto.
13831         (pdp11_f_format, pdp11_d_format): Add external declarations.
13832         (MAX_REGS_PER_ADDRESS): Corrected.
13833         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13834         (PRINT_OPERAND): Output float literals in target format.
13835
13836 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13837
13838         PR c++/13975
13839         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13840         TI_PRIVATE.
13841         (access_public_node): Redefine.
13842         (access_protected_node): Likewise.
13843         (access_private_node): Likewise.
13844         * tree.c (build_common_tree_nodes): Create access_public_node,
13845         access_protected_node, and access_private_node.
13846
13847 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13848
13849         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13850         (MASK_INLINE_INT_DIV_THR): Ditto.
13851         (MASK_INLINE_SQRT_LAT): Ditto.
13852         (MASK_INLINE_SQRT_THR): Ditto.
13853         (MASK_DWARF2_ASM): Ditto.
13854         (MASK_EARLY_STOP_BITS): Ditto.
13855
13856 2004-02-02  Paul Brook  <paul@codesourcery.com>
13857
13858         Merge from csl-arm-branch.
13859
13860         2004-01-30  Paul Brook  <paul@codesourcery.com>
13861
13862         * aof.h (REGISTER_NAMES): Add vfp reg names
13863         (ADDITIONAL_REGISTER_NAMES): Ditto.
13864         * aout.h (REGISTER_NAMES): Ditto.
13865         (ADDITIONAL_REGISTER_NAMES): Ditto.
13866         * arm-protos.h: Update/Add Prototypes.
13867         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13868         Only allow 0.0 for VFP.
13869         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13870         (values_fp): Rename from values_fpa.  Update Users.
13871         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13872         Update users.  Only check valid constants for this hardware.
13873         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13874         Only allow consts for FPA.
13875         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13876         Only allow consts for FPA.
13877         (use_return_insn): Check for saved VFP regs.
13878         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13879         (arm_legitimize_address): Ditto.
13880         (arm_general_register_operand): New function.
13881         (vfp_mem_operand): New function.
13882         (vfp_compare_operand): New function.
13883         (vfp_secondary_reload_class): New function.
13884         (arm_float_compare_operand): New function.
13885         (vfp_print_multi): New function.
13886         (vfp_output_fstmx): New function.
13887         (vfp_emit_fstm): New function.
13888         (arm_output_epilogue): Output VPF reg restore code.
13889         (arm_expand_prologue): Output VFP reg save code.
13890         (arm_print_operand): Add 'P'.
13891         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13892         (arm_regno_class): Return classes for VFP regs.
13893         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13894         (arm_get_frame_size): Ditto.
13895         * arm.h (FIXED_REGISTERS): Add VFP regs.
13896         (CALL_USED_REGISTERS): Ditto.
13897         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13898         (FIRST_VFP_REGNUM): Define.
13899         (LAST_VFP_REGNUM): Define.
13900         (IS_VFP_REGNUM): Define.
13901         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13902         (HARD_REGNO_NREGS): Handle VFP regs.
13903         (REG_ALLOC_ORDER): Add VFP regs.
13904         (enum reg_class): Add VFP_REGS.
13905         (REG_CLASS_NAMES): Ditto.
13906         (REG_CLASS_CONTENTS): Ditto.
13907         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13908         (REG_CLASS_FROM_LETTER): Add 'w'.
13909         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13910         (EXTRA_MEMORY_CONSTRAINT): Define.
13911         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13912         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13913         (REGISTER_MOVE_COST): Ditto.
13914         (PREDICATE_CODES): Add arm_general_register_operand,
13915         arm_float_compare_operand and vfp_compare_operand.
13916         * arm.md (various): Rename as above.
13917         (divsf3): Enable when TARGET_VFP.
13918         (divdf3): Ditto.
13919         (movdfcc): Ditto.
13920         (sqrtsf2): Ditto.
13921         (sqrtdf2): Ditto.
13922         (arm_movdi): Disable when TARGET_VFP.
13923         (arm_movsi_insn): Ditto.
13924         (movsi): Only split with general regs.
13925         (cmpsf): Use arm_float_compare_operand.
13926         (push_fp_multi): Restrict to TARGET_FPA.
13927         (vfp.md): Include.
13928         * vfp.md: New file.
13929         * fpa.md (various): Rename as above.
13930         * doc/md.texi: Document ARM w and U constraints.
13931
13932         2004-01-15  Paul Brook  <paul@codesourcery.com>
13933
13934         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13935         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13936         Break out of loop when we find a float-abi.  Fix typo.
13937         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13938         Set -mfloat-abi=.
13939         * doc/install.texi: Document --with-fpu.
13940
13941         2003-01-14  Paul Brook  <paul@codesourcery.com>
13942
13943         * config.gcc (with_arch): Add armv6.
13944         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13945         * config/arm/arm.c (arm_overrride_options): Ditto.
13946
13947         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13948
13949         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13950         (FL_ARCH6): Renamed from FL_ARCH6J.
13951         (arm_arch3m): Renamed from arm_fast_multiply.
13952         (arm_arch6): Renamed from arm_arch6j.
13953         * arm.h: Update all uses of above.
13954         * arm-cores.def: Likewise.
13955         * arm.md: Likewise.
13956
13957         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13958         not arm6j.  Add entry for arch armv6.
13959
13960         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13961
13962         * arm.c (arm_emit_extendsi): Delete.
13963         * arm-protos.h (arm_emit_extendsi): Delete.
13964         * arm.md (zero_extendhisi2): Also handle zero-extension of
13965         non-subregs.
13966         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13967         (thumb_zero_extendhisi2): Only match if not v6.
13968         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13969         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13970         (thumb_extendqisi2): Likewise.
13971         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13972         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13973         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13974         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13975         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13976         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13977         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13978         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13979         (arm_extendqisi2addsi): Likewise.
13980
13981         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13982
13983         Revert this change:
13984         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13985         + REG addressing modes.
13986
13987         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13988         + REG addressing modes.
13989
13990         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13991
13992         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13993         CONSTANT_P_RTX.
13994
13995         2003-30-12  Paul Brook  <paul@codesourcery.com>
13996
13997         * longlong.h: protect arm inlines with !defined (__thumb__)
13998
13999         2003-30-12  Paul Brook  <paul@codesourcery.com>
14000
14001         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14002
14003         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14004
14005         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14006         change.
14007
14008         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14009
14010         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14011         to the virtual incoming args pointer for downward stacks.
14012
14013         2003-12-29  Paul Brook  <paul@codesourcery.com>
14014
14015         * config/arm/arm-cores.def: Add cost function.
14016         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14017         (arm_rtx_costs): Remove
14018         (struct processors): Add rtx_costs field.
14019         (all_cores, all_architectures): Ditto.
14020         (arm_override_options): Set targetm.rtx_costs.
14021         (thumb_rtx_costs): New function.
14022         (arm_rtx_costs_1): Remove cases handled elsewhere.
14023         * config/arm/arm.h (processor_type): Add COSTS parameter.
14024
14025         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14026
14027         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14028         (arm926ejs.md): Include it.
14029         * config/arm/arm926ejs.md: New pipeline description.
14030
14031         2003-12-24  Paul Brook  <paul@codesourcery.com>
14032
14033         * config/arm/arm.c (arm_arch6j): New variable.
14034         (arm_override_options): Set it.
14035         (arm_emit_extendsi): New function.
14036         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14037         * config/arm/arm.h (arm_arch6j): Declare.
14038         * config/arm/arm.md: Add sign/zero extend insns.
14039
14040         2003-12-23  Paul Brook  <paul@codesourcery.com>
14041
14042         * config/arm/arm.c (all_architectures): Add armv6.
14043         * doc/invoke.texi: Document it.
14044
14045         2003-12-19  Paul Brook  <paul@codesourcery.com>
14046
14047         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14048         insn patterns to match.
14049         * config/arm/arm-generic.md: Ditto.
14050         * config/arm/cirrus.md: Ditto.
14051         * config/arm/fpa.md: Ditto.
14052         * config/amm/iwmmxt.md: Ditto.
14053         * config/arm/arm1026ejs.md: Ditto.
14054         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14055         for 11_loadb.
14056
14057         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14058
14059         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14060         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14061         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14062         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14063         arm_no_early_mul_dep): Correctly deal with conditional execution,
14064         parallels and single shift operations.
14065         (arm_no_early_alu_shift_value_dep): Define.
14066         * arm.md (attr type): Replace 'normal' with 'alu',
14067         'alu_shift' and 'alu_shift_reg'.
14068         (attr core_cycles): Adjust.
14069         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14070         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14071         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14072         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14073         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14074         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14075         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14076         attribute appropriately.
14077         * config/arm/arm1026ejs.md (alu_op): Adjust.
14078         (alu_shift_op, alu_shift_reg_op): New.
14079         * config/arm/arm1136.md: Add better bypasses for early
14080         registers. Remove load[234] and store[234] bypasses.
14081         (11_alu_op): Adjust.
14082         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14083
14084         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14085
14086         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14087         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14088         * config/arm/arm.c (arm_no_early_store_addr_dep,
14089         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14090         * config/arm/arm1026ejs.md: Add load-store bypass.
14091         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14092         Add bypasses between instructions.
14093
14094         2003-12-10  Paul Brook  <paul@codesourcery.com>
14095
14096         * config/arm/arm.c (arm_fpu_model): New variable.
14097         (arm_fload_abi): New variable.
14098         (target_fpe_name): Rename from target_fp_name.
14099         (target_fpu_name): New variable.
14100         (arm_is_cirrus): Remove.
14101         (fpu_desc): New struct.
14102         (all_fpus): Define.
14103         (pf_model_for_fpu): Define.
14104         (all_loat_abis): Define.
14105         (arm_override_options): Set fp arch flags based on -mfpu=
14106         and -float-abi=.
14107         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14108         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14109         (*): Use new TARGET_* flags.
14110         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14111         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14112         (TARGET_SOFT_FLOAT): Ditto.
14113         (TARGET_SOFT_FLOAT_ABI): New.
14114         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14115         TARGET_HARD_FLOAT.
14116         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14117         (TARGET_OPTIONS): Add -mfpu=.
14118         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14119         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14120         (arm_pf_model): Define.
14121         (arm_float_abi_type): Define.
14122         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14123         * config/arm/arm.md: Use new TARGET_* flags.
14124         * config/arm/cirrus.md: Ditto.
14125         * config/arm/fpa.md: Ditto.
14126         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14127         * config/arm/semi.h (ASM_SPEC): Ditto.
14128         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14129         (FPUTYPE_DEFAULT): Set to VFP.
14130         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14131
14132         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14133
14134         PR target/12476
14135         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14136         'bx' instead of 'b' to avoid branch range restrictions.  Output
14137         the thunk immediately before the thunked-to function.
14138         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14139         .thumb_func if a thunk is being generated.  Emit .code 16 along
14140         with .thumb_func if a thunk is not being generated.
14141
14142         2003-11-15  Nicolas Pitre <nico@cam.org>
14143
14144         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14145         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14146         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14147         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14148         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14149
14150         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14151             Ian Lance Taylor  <ian@wasabisystems.com>
14152
14153         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14154         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14155
14156         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14157
14158         * config/arm/arm.md (insn):  Add new V6 instruction names.
14159         (generic_sched):  New attr.
14160         * config/arm/arm-generic.md:  Use generic_sched here.
14161         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14162         stages of pipeline.  Adjust latency counts accordingly.
14163         * config/arm/arm1136jfs.md:  New file.
14164
14165         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14166
14167         * config/arm/arm.h (processor_type): New enumeration type.
14168         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14169         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14170         (CPP_CPU_ARCH_SPEC): Likewise.
14171         * config/arm/arm.c (arm_tune): New variable.
14172         (all_cores): Use cores.def.
14173         (all_architectures): Add representative processor.
14174         (arm_override_options): Restructure way in which tuning
14175         information is deduced.
14176         * arm.md: Update "insn" and "type" attributes throughout.
14177         (insn): New attribute.
14178         (type): Compute "mult" from "insn" attribute.  Add load2,
14179         load3, load4 alternatives.
14180         (arm automaton): Move to arm-generic.md.
14181         * config/arm/arm-cores.def: New file.
14182         * config/arm/arm-generic.md: Likewise.
14183         * config/arm/arm1026ejs.md: Likewise.
14184
14185 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14186
14187         * doc/invoke.texi (SPARC options): Remove -mflat and
14188         all -mxxx (xxx:chip) options.
14189         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14190         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14191         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14192         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14193         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14194         * config/sparc/sparc.c: Likewise.
14195         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14196         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14197         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14198         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14199         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14200         (sparc_flat_must_save_register_p): Likewise.
14201         (sparc_flat_compute_frame_size): Likewise.
14202         (sparc_flat_save_restore): Likewise.
14203         (sparc_flat_function_prologue): Likewise.
14204         (sparc_flat_function_epilogue): Likewise.
14205         (sparc_flat_epilogue_delay_slots): Likewise.
14206         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14207         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14208         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14209         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14210         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14211         (CONDITIONAL_REGISTER_USAGE): Likewise.
14212         (FRAME_POINTER_REQUIRED): Likewise.
14213         (INITIAL_ELIMINATION_OFFSET): Likewise.
14214         (BASE_RETURN_VALUE_REG): Likewise.
14215         (BASE_OUTGOING_VALUE_REG): Likewise.
14216         (BASE_PASSING_ARG_REG): Likewise.
14217         (BASE_INCOMING_ARG_REG): Likewise.
14218         (INCOMING_REGNO): Likewise.
14219         (OUTGOING_REGNO): Likewise.
14220         (LOCAL_REGNO): Likewise.
14221         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14222         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14223         (EPILOGUE_USES): Likewise.
14224         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14225         ("flat" attribute): Delete.
14226         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14227         handling.
14228         (call followed by jump define_peephole's): Delete.
14229         (exception_receiver): Likewise.
14230         (builtin_setjmp_receiver): Likewise.
14231         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14232
14233 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14234
14235         PR c/11658
14236         PR c/13994
14237         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14238         on langhooks.h.
14239         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14240         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14241         Include langhooks.h.  Replace c_common_truthvalue_conversion
14242         with the truthvalue_conversion language hook throughout.
14243         (expr_no_commas): Call default_conversion before save_expr
14244         for the first term of the production 'x ? : y'.
14245         * c-common.c (c_common_truthvalue_conversion): Remove
14246         obsolete block.  Invoke recursively the hook instead
14247         of this function.
14248         * c-convert.c (convert): handle ERROR_MARK_NODE.
14249         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14250         returned by the truthvalue_conversion language hook.
14251         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14252         c_objc_common_truthvalue_conversion.
14253         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14254         New function.
14255         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14256         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14257         c_objc_common_truthvalue_conversion.
14258
14259 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14260
14261         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14262         of gen_rtx.
14263         (LIBCALL_VALUE): Likewise.
14264         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14265         gen_rtx_CC0 instead of gen_rtx.
14266         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14267         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14268         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14269         gen_rtx.
14270         (m68hc11_emit_logical): Likewise.
14271
14272 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14273
14274         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14275         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14276         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14277         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14278         config/mips/mips.md, config/mmix/mmix.c,
14279         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14280         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14281         config/rs6000/altivec.md, config/s390/s390.c,
14282         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14283         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14284         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14285         constants that are readily available.
14286
14287 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14288
14289         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14290         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14291         instead of GEN_INT (0).  Do the same for other constants that
14292         are readily available.
14293
14294 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14295
14296         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14297         gen_rtx.
14298         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14299         instead of gen_rtx.
14300         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14301         gen_rtx.
14302         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14303         gen_rtx_ASHIFT instead of gen_rtx.
14304         (udivmodqi4): Likewise.
14305
14306 2004-02-02  Richard Henderson  <rth@redhat.com>
14307
14308         PR target/13789
14309         * expr.c (store_expr): Use force_operand before emit_move_insn.
14310
14311 2004-02-02  Jeff Law  <law@redhat.com>
14312             Roger Sayle  <roger@eyesopen.com>
14313
14314         * tree.c (commutative_tree_code, associative_tree_code): New
14315         functions.
14316         (iterative_hash_expr): Use commutative_tree_code.
14317         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14318         * fold-const.c (operand_equal_p): Use commutative_tree_code
14319         rather than inlining the commutativity check.
14320         (fold): Likewise.
14321
14322 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14323
14324         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14325         * config/frv/frv-protos.h: Remove the prototype for
14326         frv_function_arg_keep_as_reference.
14327         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14328         Remove.
14329         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14330         * config/stormy16/stormy16.h: Remove the commented-out
14331         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14332
14333 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14334
14335         PR target/13914
14336         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14337         for retaddr_column.
14338
14339 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14340
14341         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14342         gen_rtx.
14343
14344 2004-02-02  Eric Christopher  <echristo@redhat.com>
14345             Zack Weinberg  <zack@codesourcery.com>
14346
14347         * c-opts.c (c_common_handle_option): Add -finput-charset.
14348         * c.opt: Ditto.
14349         * cppcharset.c (one_iso88591_to_utf8): Remove.
14350         (convert_iso88591_utf8): Ditto.
14351         (conversion_tab): Remove 8859-1 converter.
14352         (_cpp_input_to_utf8): Remove.
14353         (_cpp_init_iconv_buffer): Ditto.
14354         (_cpp_close_iconv_buffer): Ditto.
14355         (_cpp_convert_input): New function.
14356         (_cpp_default_encoding): Ditto.
14357         * cpphash.h: Add/remove prototypes for above.
14358         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14359         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14360         for narrow execution and input character sets.
14361         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14362         * doc/cppopts.texi: Document -finput-charset.
14363
14364 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14365
14366         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14367         against FIRST_PSEUDO_REGISTER.
14368
14369 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14370
14371         * doc/invoke.texi (SPARC options): Further improve.
14372
14373 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14374
14375         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14376         config/h8300/h8300.c, config/ip2k/ip2k.md,
14377         config/iq2000/iq2000.c, config/mips/mips.c,
14378         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14379         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14380         config/v850/v850.md: Fix indentation.
14381
14382 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14383
14384         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14385         arguments on a 16-byte boundary in the parameter array if ARCH64.
14386         Split handling of TFmode.
14387
14388 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14389
14390         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14391         Don't test CONSTANT_P (x).
14392         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14393         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14394         Fix misindentation.
14395
14396 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14397
14398         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14399
14400 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14401
14402         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14403         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14404         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14405         config/iq2000/iq2000.c, config/m32r/m32r.c,
14406         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14407         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14408         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14409         config/stormy16/stormy16.c, config/v850/v850.md,
14410         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14411
14412 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14413
14414         * config/mcore/mcore.c (block_move_sequence): Replace
14415         gen_rtx_CONST_INT with GEN_INT.
14416
14417 2004-02-02  Jan Hubicka  <jh@suse.cz>
14418
14419         * alias.c (record_set): Use hard_regno_nregs.
14420         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14421         * builtins.c (apply_args_size): Likewise.
14422         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14423         mark_set_regs, add_stored_regs, mark_referenced_regs,
14424         insert_restore, insert_save, insert_one_insn): Likewise.
14425         * cfgcleanup.c: Include regs.h
14426         (mark_effect, mentions_nonequal_regs): Likewise.
14427         * cfgrtl.c (mark_killed_regs): Likewise
14428         * combine.c (update_table_tick, record_value_for_reg,
14429         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14430         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14431         reg_bitfield_target_p, distribute_notes): Likewise.
14432         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14433         exp_equiv_p, cse_insn): Likewise.
14434         * cselib.c (cselib_lookup): Likewise.
14435         (cselib_invalidate_regno, cselib_record_set): Likewise.
14436         * df.c (df_ref_record): Likewise.
14437         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14438         Likewise.
14439         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14440         count_or_remove_death_notes_bb): Likewise.
14441         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14442         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14443         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14444         * integrate.c (mark_stores): Likewise.
14445         * jump.c (delete_prior_computation): Likewise.
14446         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14447         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14448         * loop.c (LOOP_REGNO_NREGS): Likewise.
14449         * postreload.c (reload_combine, reload_combine_note_store,
14450         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14451         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14452         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14453         try_recolor_web, insert_coalesced_conflicts, check_colors,
14454         break_precolored_alias): Likewise.
14455         * ra-debug.c: Include regs.h
14456         (ra_print_rtx_object): Likewise.
14457         * ra-rewrite (choose_spill_colors): Likewise.
14458         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14459         * ra.c (init_ra): Likewise.
14460         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14461         peep2_find_free_register): Likewise.
14462         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14463         * regclass.c (hard_regno_nregs): New array.
14464         (init_reg_modes_once): Initialize it.
14465         (choose_hard_reg_mode): Use it.
14466         (record_reg_classes): Likewise.
14467         * regmove.c (mark_flags_life_zones): Likewise.
14468         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14469         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14470         copy_value, maybe_mode_change, find_oldest_value_reg,
14471         copyprop_hardreg_forward_1):
14472         * regs.h (hard_regno_nregs): Declare.
14473         * realod.c (reload_inner_reg_of_subreg): Use it.
14474         (push_reload, combine_reloads, find_dummy_reload,
14475         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14476         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14477         reload_adjust_reg_for_mode): Likewise.
14478         * reload1.c (compute_use_by_pseudos, count_pseudo,
14479         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14480         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14481         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14482         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14483         delete_output_reload): Likewise.
14484         * resource.c (update_live_status, mark_referenced_resources,
14485         mark_set_resources, mark_target_live_regs): Likewise.
14486         * rtlanal.c:  Include regs.h
14487         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14488         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14489         subreg_regno_offset, subreg_offset_representable_p,
14490         hoist_test_store): Likewise.
14491         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14492         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14493         * stmt.c: Include regs.h
14494         (decl_conflicts_with_clobbers_p): Likewise.
14495         * varasm.c (make_decl_rtl): Likewise.
14496         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14497
14498 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14499
14500         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14501         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14502         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14503         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14504         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14505         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14506         config/iq2000/iq2000.h, config/m32r/m32r.c,
14507         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14508         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14509         config/mcore/mcore.c, config/mcore/mcore.h,
14510         config/mcore/mcore.md, config/mips/mips.c,
14511         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14512         config/rs6000/rs6000.c, config/s390/s390.c,
14513         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14514         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14515         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14516
14517 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14518
14519         * config/h8300/h8300.md (two peephole2's): New.
14520
14521 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14522
14523         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14524         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14525         (ASM_CPU_SPEC): Likewise
14526         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14527         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14528
14529 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14530
14531         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14532         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14533         (expand_builtin): Always call expand_builtin_pow.
14534
14535 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14536
14537         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14538         BUILT_IN_SIGNBITL): New GCC builtins.
14539         * builtins.c (expand_builtin_signbit): New function to RTL expand
14540         calls to signbit, signbitf and signbitl as inline intrinsics.
14541         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14542         (fold_builtin_signbit): New function to perform constant folding
14543         of signbit, signbitf and signbitl.
14544         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14545
14546         * doc/extend.texi: Document new signbit{,f,l} builtins.
14547
14548 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14549
14550         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14551
14552 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14553
14554         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14555         "mips_const_double_ok" and "simple_memory_operand", which were
14556         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14557         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14558         for removal of simple_memory_operand.
14559
14560 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14561
14562         * config/c4x/c4x.md: Use GEN_INT instead of
14563         gen_rtx (CONST_INT, ...).
14564
14565 2004-01-31  Richard Henderson  <rth@redhat.com>
14566
14567         * varasm.c (output_constant_pool): Don't zap the pool.
14568
14569 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14570
14571         * genrecog.c (decision_type): Add DT_const_int.
14572         (write_cond) [DT_const_int]: Print a comparison against small
14573         constant.
14574         (write_node): Simplify comparisons against small constants
14575         before printing tests.
14576
14577 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14578
14579         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14580         instead of gen_rtx_CONST_INT.
14581
14582 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14583
14584         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14585         instead of gen_rtx_CONST_INT.
14586
14587 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14588
14589         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14590         hook_bool_CUMULATIVE_ARGS_false.
14591         * targhooks.c (default_strict_argument_naming): Rename to
14592         hook_bool_CUMULATIVE_ARGS_false.
14593         * targhooks.h: Update the prototype for
14594         default_strict_argument_naming.
14595
14596 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14597
14598         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14599         * config/sh/sh.h: Likewise.
14600         * config/sh/sh.md: Likewise.
14601
14602 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14603
14604         * doc/invoke.texi (SPARC options): Restructure and update.
14605
14606 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14607
14608         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14609         STRICT_ARGUMENT_NAMING): Poison.
14610         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14611         hook_bool_tree_false.
14612         * targhooks.c (default_promote_function_args): Remove.
14613         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14614         Don't check incoming.
14615         (default_strict_argument_naming): Don't use
14616         STRICT_ARGUMENT_NAMING.
14617         * targhooks.h: Remove the prototype for
14618         default_promote_function_args.
14619
14620 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14621
14622         * config/i386/i386-protos.h: Remove the prototype for
14623         ix86_setup_incoming_varargs.
14624         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14625         (ix86_setup_incoming_varargs): Make it static.
14626         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14627
14628 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14629
14630         * alloc-pool.c: Fix comment typos.
14631         * builtin-types.def: Likewise.
14632         * builtins.def: Likewise.
14633         * c-pretty-print.c: Likewise.
14634         * df.h: Likewise.
14635         * reload1.c: Likewise.
14636
14637 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14638
14639         * doc/invoke.texi: Follow spelling conventions.
14640         * doc/tm.texi: Likewise.
14641
14642 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14643
14644         * doc/install.texi: Fix typos.
14645         * doc/invoke.texi: Likewise.
14646
14647 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14648
14649         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14650         registers as pointers.
14651         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14652
14653 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14654
14655         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14656         and restore it to gen_lowpart_general on exit.
14657         (gen_lowpart_for_combine): Adjust all callers to go through
14658         gen_lowpart.
14659         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14660         and restore it to gen_lowpart_general on exit.
14661         (gen_lowpart_if_possible): Adjust all callers to go through
14662         gen_lowpart.
14663         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14664         (gen_lowpart): Declare as pointer to function, initialized to
14665         gen_lowpart_general.
14666         * rtl.h (gen_lowpart): Declare as pointer to function.
14667
14668 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14669
14670         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14671         * calls.c: Likewise.
14672         * emit-rtl.c: Likewise.
14673         * function.c: Likewise.
14674         * reload1.c: Likewise.
14675         * config/i386/cygming.h: Likewise.
14676         * config/i386/i386.c: Likewise.
14677         * config/i386/winnt.c: Likewise.
14678
14679 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14680
14681         PR bootstrap/9249
14682         * doc/install.texi: document --enable-__cxa_atexit option.
14683         * configure.ac: Disable __cxa_atexit if not supported.
14684         * configure: Regenerate.
14685
14686 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14687
14688         * ggc-zone.c (ggc_free): New function.
14689
14690 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14691
14692         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14693         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14694         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14695         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14696         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14697         config/alpha/alpha.c, config/alpha/alpha.h,
14698         config/alpha/alpha.md, config/alpha/unicosmk.h,
14699         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14700         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14701         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14702         config/frv/frvend.c, config/i386/cygming.h,
14703         config/i386/djgpp.h, config/i386/emmintrin.h,
14704         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14705         config/i386/i386-protos.h, config/i386/openbsd.h,
14706         config/i386/winnt.c, config/i386/xm-mingw32.h,
14707         config/i386/xmmintrin.h, config/ia64/ia64.md,
14708         config/iq2000/iq2000.md, config/m32r/m32r.md,
14709         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14710         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14711         config/mips/iris5gas.h, config/mips/iris6.h,
14712         config/mips/iris6gas.h, config/mips/linux.h,
14713         config/mips/mips.md, config/mips/netbsd.h,
14714         config/mips/openbsd.h, config/mips/windiss.h,
14715         config/pa/fptr.c, config/rs6000/aix.h,
14716         config/rs6000/altivec.h, config/rs6000/darwin.h,
14717         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14718         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14719         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14720         config/sparc/sol2.h: Update copyright.
14721
14722 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14723
14724         * Makefile.in (abs_docdir, abs_srcdir): Define.
14725         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14726
14727 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14728
14729         * genconfig.c (main): Have CC0_P check its operand even on a
14730         target without cc0.
14731
14732 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14733
14734         * config/alpha/alpha.c: Remove mentions of deprecates macros
14735         in comments, remove some target-independent comments about target
14736         macros, and/or add minimal function comments for target hook
14737         implementations.
14738         * config/avr/avr.c: Likewise.
14739         * config/ia64/ia64.h: Likewise.
14740         * config/ip2k/ip2k.c: Likewise.
14741         * config/iq2000/iq2000.c: Likewise.
14742         * config/m32r/m32r.h: Likewise.
14743         * config/m68hc11/m68hc11.c: Likewise.
14744         * config/mcore/mcore.c: Likewise.
14745         * config/mmix/mmix.c: Likewise.
14746         * config/mn10300/mn10300.c: Likewise.
14747         * config/pa/pa.c: Likewise.
14748         * config/pdp11/pdp11.c: Likewise.
14749         * config/rs6000/rs6000.h: Likewise.
14750         * config/sh/sh.c: Likewise.
14751         * config/sh/sh.h: Likewise.
14752         * config/sparc/sparc.c: Likewise.
14753         * config/sparc/sparc.h: Likewise.
14754         * config/stormy16/stormy16.c: Likewise.
14755         * config/xtensa/xtensa.c: Likewise.
14756
14757 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14758
14759         PR optimization/12147
14760         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14761         RELOAD_FOR_OPADDR_ADDR.
14762         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14763         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14764
14765 2004-01-30  Jan Hubicka  <jh@suse.cz>
14766
14767         * reload.c (get_secondary_mem): Fix updating of
14768         secondary_memlocs_elim_used.
14769
14770 2004-01-30  Richard Henderson  <rth@redhat.com>
14771
14772         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14773         (MAX_RTX_HASH_TABLE): Remove.
14774         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14775         (first_pool, last_pool, pool_offset): Remove.
14776         (struct rtx_constant_pool): Split out from ...
14777         (struct varasm_status): ... here.  Reference one via pointer.
14778         (struct constant_descriptor_rtx): Merge struct pool_constant.
14779         (SYMHASH): Remove.
14780         (decode_rtx_const): Remove.
14781         (const_hash_rtx, compare_constant_rtx): Remove.
14782         (record_constant_rtx): Remove.
14783         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14784         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14785         (const_rtx_hash_1, const_rtx_hash): New.
14786         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14787         (simplify_subtraction): Use simplify_rtx.
14788         (force_const_mem): Rewrite to use new data structures.
14789         (find_pool_constant): Likewise.
14790         (get_pool_constant, get_pool_constant_mark,
14791         get_pool_constant_for_function, get_pool_mode,
14792         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14793         (output_constant_pool_2): Split out from output_constant_pool.
14794         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14795         (output_constant_pool): Zap entire pool datastructure.
14796         (mark_constant): Use new pool datastructures.
14797         (mark_constants): Use for_each_rtx.
14798         (mark_constant_pool): Use new pool datastructures.
14799
14800 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14801
14802         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14803         Copy operands[1] to pseudo for simplify_gen_subreg.
14804
14805 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14806
14807         * gcse.c (bypass_block): Fix a typo in the previous check-in
14808         to the file.
14809
14810 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14811
14812         * toplev.c: Include alloc-pool.h.
14813         * Makefile.in (toplev.c): Update dependencies.
14814
14815 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14816
14817         * combine.c (simplify_shift_const, case XOR): Be careful when
14818         commuting XOR with ASHIFTRT.
14819
14820 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14821             Eric Botcazou  <ebotcazou@libertysurf.fr>
14822
14823         * config/sparc/sparc-protos.h: Remove the prototype for
14824         sparc_builtin_saveregs.
14825         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14826         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14827         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14828         (TARGET_STRUCT_VALUE_RTX): Likewise.
14829         (TARGET_RETURN_IN_MEMORY): Likewise.
14830         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14831         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14832         (sparc_builtin_saveregs): Make it static.
14833         (sparc_promote_prototypes): New.
14834         (sparc_struct_value_rtx): Likewise.
14835         (sparc_return_in_memory): Likewise.
14836         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14837         (PROMOTE_FUNCTION_RETURN): Likewise.
14838         (RETURN_IN_MEMORY): Likewise.
14839         (STRUCT_VALUE): Likewise.
14840         (STRUCT_VALUE_INCOMING): Likewise.
14841         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14842         (STRICT_ARGUMENT_NAMING): Likewise.
14843         (PROMOTE_PROTOTYPES): Likewise.
14844
14845         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14846
14847 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14848
14849         PR c/12818
14850         * varasm.c (const_hash_1) <STRING_CST>: Use the
14851         address to compute the hash value if flag_writable_strings.
14852         (compare_constant) <STRING_CST>: Compare the addresses
14853         if flag_writable_strings.
14854         (build_constant_desc): Do not copy the expression for a
14855         STRING_CST if flag_writable_strings.
14856
14857 2004-01-30  Jan Hubicka  <jh@suse.cz>
14858
14859         * alloc-pool.c: Include hashtab.h
14860         (alloc_pool_descriptor): New structure
14861         (alloc_pool_hash): New global variable.
14862         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14863         (create_alloc_pool): Update statistics.
14864         (free_alloc_pool): Likewise.
14865         (pool_alloc): Likewise.
14866         (output_info): New structure
14867         (print_statistics, dump_alloc_pool_statistics): New function.
14868         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14869         (dump_alloc_pool_statistics): Declare.
14870         * toplev.c (finalize):  Dump statistics.
14871
14872         * reload.c (secondary_memlocs_elim_used): New static variable.
14873         (get_secondary_mem): Update it.
14874         (find_reloads): Use it.
14875
14876 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14877
14878         * toplev.c: Fix broken checkin of 2003-12-30, again.
14879
14880 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14881
14882         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14883         s390*-*-* targets by specifying a 'nop' insn.
14884         * configure: Regenerate.
14885
14886 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14887
14888         PR target/11475
14889         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14890
14891 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14892
14893         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14894         of addr when creating MEM copy.
14895
14896 2004-01-29  Devang Patel  <dpatel@apple.com>
14897
14898         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14899
14900 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14901
14902         PR inline-asm/6162
14903         * reload.c (find_reloads): Only support one pair of commutative
14904         operands.
14905
14906 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14907
14908         PR java/13824
14909         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14910         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14911         recursion.
14912
14913 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14914
14915         * config/frv/frv.c: Don't mention deprecated macros in
14916         comments.  Remove some target-independent comments about
14917         target macros.
14918         * config/frv/frv.h: Likewise.
14919
14920 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14921
14922         * cfghooks.c (split_block): Set probability and count of the
14923         new edge.
14924
14925 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14926
14927         * dwarf2out.c (struct die_struct): Added field decl_id.
14928         (decl_die_table): Changed to hash table.
14929         (decl_die_table_allocated): Deleted.
14930         (decl_die_table_in_use): Deleted.
14931         (DECL_DIE_TABLE_INCREMENT): Deleted.
14932         (decl_die_table_hash): New function.
14933         (decl_die_table_eq): New function.
14934         (lookup_decl_die): Lookup in a hash table.
14935         (equate_decl_number_to_die): Insert into a hash table.
14936         (dwarf2out_init): Init hash table decl_die_table.
14937
14938 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14939
14940         PR optimization/13424
14941         * expr.c (store_constructor): Revert 2003-12-03 change.
14942
14943         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14944         expected before returning early.  Avoid sharing RTL if they
14945         need to be changed.
14946
14947         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14948         handling so that memory attributes are preserved.  Don't call
14949         ix86_set_move_mem_attrs.
14950         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14951         (ix86_expand_clrstr): Rename src argument to
14952         dst.  Rework rep_stos and strset handling so that memory attributes
14953         are preserved.
14954         (ix86_expand_strlen): Pass src argument to
14955         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14956         memory attributes are preserved.
14957         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14958         change_address instead of gen_rtx_MEM.
14959         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14960         expanders.
14961         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14962         strmovqi, strmovqi_rex64): Remove.
14963         (rep_mov*, strmov*): Prefix insn names with *.
14964         (strset, strset_singleop, rep_stos): New expanders.
14965         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14966         strsetqi, strsetqi_rex64): Remove.
14967         (rep_stos*, strset*): Prefix insn names with *.
14968         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14969         to SImode.
14970         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14971         are preserved.
14972         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14973         Prefix insn names with *.
14974         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14975         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14976         (strlenqi_1): New expander.
14977         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14978
14979 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14980
14981         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14982         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14983         verify_flow_info): Declaration removed.
14984         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14985         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14986         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14987         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14988         instead of delete_block.
14989         * cfghooks.c: Include timevar.h and toplev.h.
14990         (cfg_hooks): Define here.
14991         (verify_flow_info, dump_bb): Moved from cfg.c.
14992         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14993         split_block, split_block_after_labels, move_block_after,
14994         delete_basic_block, split_edge, create_basic_block,
14995         create_empty_bb, can_merge_blocks_p, merge_blocks,
14996         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14997         New functions.
14998         * cfghooks.h (struct cfg_hooks): Added fields name,
14999         make_forwarder_block, tidy_fallthru_edge and
15000         move_block_after. Changed type of verify_flow_info, dump_bb,
15001         split_block fields. Renamed cfgh_split_edge and delete_block
15002         fields.
15003         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15004         split_block, delete_block, split_edge, create_basic_block,
15005         can_merge_blocks_p, merge_blocks): Macros removed.
15006         (cfg_hooks): Do not export.
15007         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15008         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15009         move_block_after, delete_basic_block, split_edge, create_basic_block,
15010         create_empty_bb, can_merge_blocks_p, merge_blocks,
15011         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15012         Declare.
15013         (cfg_layout_rtl_cfg_hooks): Declare.
15014         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15015         New functions.
15016         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15017         (redirect_edge_with_latch_update): Removed.
15018         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15019         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15020         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15021         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15022         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15023         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15024         cfghooks.c.
15025         (rtl_create_basic_block): Coding style fix.
15026         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15027         rtl_make_forwarder_block): New functions.
15028         (update_cfg_after_block_merging): Removed.
15029         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15030         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15031         to dump_bb.
15032         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15033         find_if_case_2): Don't update dominators.
15034         * timevar.def (TV_CFG_VERIFY): New.
15035         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15036         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15037         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15038         (remove_bbs): Don't call remove_bbs.
15039         (create_preheader): Use make_forwarder_block.
15040         (mfb_keep_just, mfb_update_loops): New static functions.
15041
15042 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15043
15044         * config/avr/avr.h: Remove target-independent comments about
15045         target macros.
15046
15047 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15048
15049         * timevar.c (timevar_print): Mention when checking is enabled.
15050
15051 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15052
15053         * c-lex.c (c_lex): Rename to...
15054         (c_lex_with_flags): Add new parameter to get CPP flags.
15055         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15056         * c-pragma.h (c_lex_with_flags): Declare.
15057
15058 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15059
15060         * config/mcore/mcore.c (mcore_external_libcall): Add a
15061         comment.
15062         (mcore_return_in_memory): Likewise.
15063
15064 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15065
15066         * config/mcore/mcore-protos.h: Remove the prototype for
15067         mcore_setup_incoming_varargs.
15068         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15069         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15070         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15071         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15072         (TARGET_STRUCT_VALUE_RTX): Likewise.
15073         (TARGET_RETURN_IN_MEMORY): Likewise.
15074         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15075         (mcore_setup_incoming_varargs): Make it static.  Receive the
15076         first argument by reference.  Add argument second_time.
15077         (mcore_external_libcall): New.
15078         (mcore_return_in_memory): Likewise.
15079         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15080         (PROMOTE_FUNCTION_RETURN): Likewise.
15081         (STRUCT_VALUE): Likewise.
15082         (RETURN_IN_MEMORY): Likewise.
15083         (SETUP_INCOMING_VARARGS): Likewise.
15084         (PROMOTE_PROTOTYPES): Likewise.
15085         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15086
15087 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15088
15089         * config/m32r/m32r-protos.h: Remove the prototype for
15090         m32r_setup_incoming_varargs.
15091         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15092         (TARGET_STRUCT_VALUE_RTX): Likewise.
15093         (TARGET_RETURN_IN_MEMORY): Likewise.
15094         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15095         (m32r_return_in_memory): New.
15096         (m32r_setup_incoming_varargs): Make it static.
15097         * config/m32r/m32r.h: Remove #undef of
15098         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15099         definitions of PROMOTE_FUNCTION_ARGS and
15100         PROMOTE_FUNCTION_RETURN.
15101         (PROMOTE_PROTOTYPES): Remove.
15102         (RETURN_IN_MEMORY): Likewise.
15103         (STRUCT_VALUE): Likewise.
15104
15105 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15106
15107         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15108         (TARGET_STRUCT_VALUE_RTX): Likewise.
15109         (m68k_struct_value_rtx): Likewise.
15110         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15111         STRUCT_VALUE_REGNUM.
15112         (PROMOTE_PROTOTYPES): Remove.
15113         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15114         STRUCT_VALUE_REGNUM.
15115         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15116         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15117
15118 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15119
15120         * config/stormy16/stormy16.c
15121         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15122         TARGET_BUILD_BUILTIN_VA_LIST.
15123
15124 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15125
15126         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15127         (TARGET_STRUCT_VALUE_RTX): Likewise.
15128         (TARGET_RETURN_IN_MEMORY): Likewise.
15129         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15130         (v850_return_in_memory): Likewise.
15131         (v850_setup_incoming_varargs): Likewise.
15132         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15133         (SETUP_INCOMING_VARARGS): Likewise.
15134         (RETURN_IN_MEMORY): Likewise.
15135         (STRUCT_VALUE): Likewise.
15136
15137 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15138
15139         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15140         (fr30_setup_incoming_varargs): Don't use
15141         STRICT_ARGUMENT_NAMING.
15142         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15143         (STRICT_ARGUMENT_NAMING): Likewise.
15144
15145 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15146
15147         * config/frv/frv-protos.h: Remove the prototype for
15148         frv_expand_builtin_saveregs.
15149         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15150         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15151         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15152         STRUCT_VALUE_REGNUM.
15153         (frv_expand_builtin_saveregs): Make it static.
15154         (frv_struct_value_rtx): New.
15155         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15156
15157 2004-01-29  Jan Hubicka  <jh@suse.cz>
15158
15159         PR c++/12850
15160         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15161         initial pointers.
15162         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15163         for functions that will be only inlined.
15164         (cgraph_mark_function_to_output): Likewise.
15165         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15166         do not clear function body.
15167         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15168         (tree_rest_of_compilation): Reorganize the logic releasing function
15169         body to use callgraph datastructure.
15170
15171 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15172
15173         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15174         to register_operand.
15175
15176 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15177
15178         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15179         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15180         match_operand expressions so that all match_dups appear
15181         lexically after their corresponding match_operands.
15182
15183 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15184
15185         * config/h8300/h8300.c (WORD_REG_USED): Use
15186         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15187         (compute_saved_regs): Likewise.
15188         (h8300_expand_prologue): Likewise.  Allocate locals after
15189         saving registers.
15190         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15191         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15192         registers.
15193         (h8300_initial_elimination_offset): Adjust for the new frame
15194         layout, which swaps flips the order of locals and saved
15195         registers.
15196         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15197         (HARD_FRAME_POINTER_REGNUM): New.
15198         (ELIMINABLE_REGS): Add an elimination rule from
15199         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15200         (REGISTER_NAMES): Add fp.
15201         * config/h8300/h8300.md (FP_REG): Change to 11.
15202         (HFP_REG): New.
15203
15204 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15205
15206         * genrecog.c (write_node): Remove a useless local variable.
15207
15208 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15209
15210         * Makefile.in (options.c options.h): Use stamp file s-options to
15211         avoid unnecessary rebuilds.
15212         (options.o): New target listing dependencies.
15213         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15214         (STAGESTUFF): Add s-gtyp-gen.
15215
15216 2004-01-28  Richard Henderson  <rth@redhat.com>
15217
15218         * ggc.h (ggc_free): Declare.
15219         * ggc-common.c (ggc_realloc): Use it.
15220         * ggc-page.c: Remove lots of inline markers.
15221         (globals): Add free_object_list.
15222         (ggc_alloc): Tidy.
15223         (ggc_free, validate_free_objects): New.
15224         (poison_pages): Provide default.
15225         (ggc_collect): Call validate_free_objects; emit markers to
15226         the debug file.
15227
15228 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15229             Jim Wilson  <wilson@specifixinc.com>
15230
15231         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15232         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15233         scratch pointer.
15234         (ia64_secondary_reload_class): Delete case GR_REGS.
15235         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15236         Do not allocate a scratch register.
15237         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15238
15239 2004-01-28  Jan Hubicka  <jh@suse.cz>
15240
15241         * gcse.c (bypass_block): Prevent edges to be unified when we are
15242         about to emit compenstation code.
15243
15244 2004-01-28  Nick Clifton  <nickc@redhat.com>
15245
15246         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15247         the setcwx insn into a register.
15248
15249 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15250
15251         * config/fp-bit.c (pack_d): When using paired doubles to implement
15252         a long double, round the high part separately.
15253         (unpack_d): Fix the case in which the high part is a power of two
15254         and the low part is a nonzero value of the opposite sign.
15255
15256 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15257
15258         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15259         (TARGET_STRUCT_VALUE_RTX): Likewise.
15260         (c4x_external_libcall): Likewise.
15261         (c4x_struct_value_rtx): Likewise.
15262         * config/c4x/c4x.h: Remove.
15263         (STRUCT_VALUE_REGNUM): Likewise.
15264         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15265
15266 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15267
15268         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15269         (TARGET_STRUCT_VALUE_RTX): Likewise.
15270         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15271         (STRUCT_VALUE): Likewise.
15272         (PROMOTE_PROTOTYPES): Likewise.
15273
15274 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15275
15276         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15277         CONST_INT before using INTVAL.
15278
15279 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15280
15281         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15282         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15283         frame if !TARGET_BACKCHAIN.
15284         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15285         TARGET_BACKCHAIN.
15286         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15287
15288 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15289
15290         * ia64.c (ia64_function_arg): When placing HFAs in integer
15291         registers, do not special case the mode used for complex
15292         types.  Do not advance int_regs until the current register
15293         is full.
15294
15295 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15296
15297         PR target/7297
15298         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15299
15300 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15301
15302         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15303         slow, unaligned loads and stores while debugging.  Fix formatting.
15304
15305 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15306
15307         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15308         of computing wmode.
15309         (restore_stack_nonlocal): Same.
15310
15311 2004-01-27  Devang Patel <dpatel@apple.com>
15312
15313         * Makefile.in (dwarf2out.o): Depend on input.h
15314         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15315         imported_module_or_decl.
15316         (xcoff_debug_hooks): Same.
15317         * sdbout.c (sdb_debug_hooks): Same.
15318         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15319         * debug.c (do_nothing_debug_hooks): Same.
15320         (debug_nothing_tree_tree): New function.
15321         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15322         * dwarf2out.c: Include input.h.
15323         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15324         (remove_child_TAG): New function.
15325         (dwarf_tag_name): Handle DW_TAG_imported_module.
15326         (gen_subprogram_die): Equate decl number to declaration die. Do not
15327         remove all children dies while reusing declaration die for definition.
15328         Instead, selectively remove only formal parameters.
15329         (gen_variable_die): Equate variable decl to declaration die.
15330         (gen_field_die): Equate field decl to line number.
15331         (force_namespace_die): Replace it with ...
15332         (force_decl_die): ... this.
15333         (force_type_die): New function.
15334         (setup_namespace_context): Replace use of force_namespace_die() with
15335         force_decl_die().
15336         (gen_namespace_die): Same.
15337         (dwarf2out_imported_module_or_decl): New function.
15338
15339 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15340
15341         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15342         on CQImode and CHImode incoming arguments in register a7.
15343         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15344         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15345         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15346         xtensa_copy_incoming_a7 before reload.
15347
15348 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15349
15350         * coverage.c (get_coverage_counts): Give a different message
15351         if flag_guess_branch_prob is set.
15352         * predict.c (counts_to_freqs): Return an int.
15353         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15354         calculate estimates.
15355
15356 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15357
15358         * config/iq2000/iq2000-protos.h: Remove the prototype for
15359         iq2000_setup_incoming_varargs.
15360         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15361         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15362         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15363         (TARGET_STRUCT_VALUE_RTX): Likewise.
15364         (TARGET_RETURN_IN_MEMORY): Likewise.
15365         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15366         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15367         (iq2000_return_in_memory): Likewise.
15368         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15369         first argument by reference.
15370         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15371         (PROMOTE_FUNCTION_RETURN): Likewise.
15372         (PROMOTE_PROTOTYPES): Likewise.
15373         (RETURN_IN_MEMORY): Likewise.
15374         (STRUCT_VALUE): Likewise.
15375         (SETUP_INCOMING_VARARGS): Likewise.
15376         (STRICT_ARGUMENT_NAMING): Likewise.
15377
15378 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15379
15380         * fixinc/fixinc.c (test_test): Initialize res.
15381         (start_flexer): Initialize pz_cmd_save.
15382
15383 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15384
15385         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15386         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15387
15388 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15389
15390         PR 7198
15391         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15392         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15393         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15394         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15395         Possibly rename pattern for consistency.
15396         Remove ??? comments suggesting that this be done.
15397         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15398         New patterns.
15399         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15400         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15401         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15402         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15403         Update to match.
15404
15405 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15406
15407         * config/arm/arm.c (output_return_instruction): Only restore IP
15408         into SP if frame_pointer_needed.
15409
15410 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15411
15412         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15413         for SCmode and DCmode if ARCH32.
15414         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15415         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15416         if ARCH32.
15417         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15418         if ARCH32.
15419         (BASE_OUTGOING_VALUE_REG): Likewise.
15420
15421 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15422
15423         PR target/10904
15424         PR target/13058
15425         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15426         Forbid mode changes from SImode for lower FP regs if ARCH64.
15427
15428 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15429
15430         * Makefile.in (bt-load.o): Depend on except.h.
15431         * bt-load.c (except.h): #include.
15432         (compute_defs_uses_and_gen): If insn at end of BB can throw
15433         within this function, consider registers used by it unavailable for
15434         btr migration.
15435         (move_btr_def): If insn at end of BB can throw, insert before rather
15436         than after.
15437
15438         * flags.h (flag_btr_bb_exclusive): Declare.
15439         * toplev.c (flag_btr_bb_exclusive): New variable.
15440         (f_options): Add btr-bb-exclusive.
15441         * bt-load.c (augment_live_range): Restore old behaviour if
15442         flag_btr_bb_exclusive is set.
15443         * common.opt: Add entry for -fbtr-bb-exclusive.
15444         * opts.c (common_handle_options): Same.
15445         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15446
15447         * bt-load.c (btrs_live_at_end): New variable.
15448         (compute_defs_uses_and_gen): Compute its pointed-to array.
15449         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15450         (augment_live_range): When augmenting with a new dominator,
15451         use only its btrs_live_at_end set, but also add in the full set
15452         of the old dominator.
15453         (btr_def_live_range): Use btrs_live_at_end.
15454         (move_btr_def): Set other_btr_uses_before_def, and move new set
15455         to the end of the basic block, if appropriate.
15456         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15457
15458         * bt-load.c (basic_block_freq): Remove outdated comment.
15459
15460 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15461
15462         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15463         (PREDICATE_CODES): Remove duplicate.
15464         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15465         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15466         (MASK_PROFILE_KERNEL): Adjust define.
15467
15468 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15469
15470         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15471         of long string literals from 32 bytes to sizeof (void *) when !-Os
15472         and to 1 with -Os.
15473
15474 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15475
15476         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15477         constant addresses in the normal mode.
15478
15479 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15480
15481         * system.h (CHAR_BITFIELD): Delete.
15482         (BOOL_BITFIELD): New.
15483         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15484         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15485
15486 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15487
15488         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15489         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15490         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15491         (TARGET_STRUCT_VALUE_RTX): Likewise.
15492         (TARGET_RETURN_IN_MEMORY): Likewise.
15493         (arc_return_in_memory): Likewise.
15494         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15495         (PROMOTE_FUNCTION_RETURN): Likewise.
15496         (RETURN_IN_MEMORY): Likewise.
15497         (STRUCT_VALUE): Likewise.
15498
15499 2004-01-26  Richard Henderson  <rth@redhat.com>
15500
15501         * c-parse.in (extension): Use itype.
15502         (SAVE_EXT_FLAGS): Don't allocate a tree.
15503         (RESTORE_EXT_FLAGS): Don't read a tree.
15504
15505 2004-01-26  Jan Hubicka  <jh@suse.cz>
15506
15507         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15508         to datastructure to be recycled.
15509
15510 2004-01-25  Jan Hubicka  <jh@suse.cz>
15511
15512         * genextract.c (main): Do not output the memset when not checking.
15513
15514 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15515
15516         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15517         switch statement instead of a chain of if statements.
15518
15519 2004-01-26  Jeff Law  <law@redhat.com>
15520
15521         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15522         acute accents for Petur Runolfsson's entry.
15523
15524 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15525
15526         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15527         (TARGET_RETURN_IN_MEMORY): Likewise.
15528         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15529         (RETURN_IN_MEMORY): Likewise.
15530
15531 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15532
15533          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15534          unaligned load/store into smaller loads and stores.
15535
15536 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15537
15538         * function.c (assign_parms): Do not assign
15539         long long argument to memory in prologue if
15540         is it loaded into register.
15541
15542 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15543
15544          PR middle-end/13779
15545          * expr.c (emit_group_load): split constant
15546          correctly into register components of PARALLEL insn.
15547
15548 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15549
15550         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15551         Use adjust_address_nv directly with appropriate mode.
15552         (restore_stack_nonlocal): Ditto.
15553
15554 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15555
15556         * config/xtensa/xtensa-protos.h: Remove the prototype for
15557         xtensa_builtin_saveregs.
15558         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15559         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15560         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15561         (TARGET_STRUCT_VALUE_RTX): Likewise.
15562         (TARGET_RETURN_IN_MEMORY): Likewise.
15563         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15564         (xtensa_builtin_saveregs): Make it static.
15565         (xtensa_return_in_memory): New.
15566         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15567         (PROMOTE_FUNCTION_RETURN): Likewise.
15568         (PROMOTE_PROTOTYPES): Likewise.
15569         (STRUCT_VALUE): Likewise.
15570         (RETURN_IN_MEMORY): Likewise.
15571         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15572
15573 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15574
15575         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15576         (arm_setup_incoming_varargs): Likewise.
15577         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15578
15579 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15580
15581         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15582         (cris_setup_incoming_varargs): Likewise.
15583         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15584
15585 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15586
15587         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15588         (ns32k_struct_value_rtx): Likewise.
15589         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15590         NS32K_STRUCT_VALUE_REGNUM.
15591
15592 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15593
15594         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15595         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15596         (TARGET_STRUCT_VALUE_RTX): Likewise.
15597         (arm_struct_value_rtx): Likewise.
15598         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15599         (STRUCT_VALUE): Likewise.
15600         (STRUCT_VALUE_REGNUM): Likewise.
15601         (PROMOTE_PROTOTYPES): Likewise.
15602
15603 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15604
15605         * config/ia64/ia64-protos.h: Remove the prototype for
15606         ia64_setup_incoming_varargs and ia64_return_in_memory.
15607         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15608         (TARGET_RETURN_IN_MEMORY): Likewise.
15609         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15610         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15611         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15612         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15613         (ia64_return_in_memory): Make it static.  Change the return
15614         type to bool from int.  Add an argument.
15615         (ia64_struct_value_rtx): New.
15616         * config/ia64/ia64.h: Remove commented-out definitions of
15617         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15618         PROMOTE_PROTOTYPES.
15619         (RETURN_IN_MEMORY): Remove.
15620         (STRUCT_VALUE_REGNUM): Likewise.
15621         (STRICT_ARGUMENT_NAMING): Likewise.
15622
15623 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15624
15625         PR target/13666
15626         * config/sparc/sparc.c (function_arg_union_value): New function.
15627         (function_arg): Use it to deal with unions.
15628         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15629         Replace a conditional statement by a simpler one.
15630
15631 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15632
15633         * config/mips/mips.c (mips16_optimize_gp): Delete.
15634         (mips_reorg): Don't call it.
15635
15636 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15637
15638         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15639         (floatunsqihf2): Remove operand 6.
15640         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15641         fix patterns.
15642         (ldi_conditional, ldf_conditional): Validate operands.
15643
15644 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15645
15646         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15647         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15648
15649 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15650
15651         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15652         memory references if TARGET_EXPOSE_LDP nonzero.
15653
15654 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15655
15656         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15657
15658 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15659
15660         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15661         invalid operand combinations.
15662
15663 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15664
15665         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15666         c4x_legitimate_address_p.  Fix post_modify check.
15667
15668         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15669         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15670
15671 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15672
15673         * config/pa/pa-protos.h: Remove the prototype for
15674         hppa_builtin_saveregs.  Add a prototype for
15675         pa_return_in_memory.
15676         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15677         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15678         (TARGET_STRUCT_VALUE_RTX): Likewise.
15679         (TARGET_RETURN_IN_MEMORY): Likewise.
15680         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15681         (pa_struct_value_rtx): Likewise.
15682         (pa_return_in_memory): Likewise.
15683         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15684         PA_STRUCT_VALUE_REGNUM.
15685         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15686         (EXPAND_BUILTIN_SAVEREGS): Remove.
15687         (PROMOTE_PROTOTYPES): Likewise.
15688         (PROMOTE_FUNCTION_RETURN): Likewise.
15689
15690 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15691
15692         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15693         (TARGET_STRUCT_VALUE_RTX): Likewise.
15694         (vax_struct_value_rtx): Likewise.
15695         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15696         VAX_STRUCT_VALUE_REGNUM.
15697         (PROMOTE_PROTOTYPES): Remove.
15698
15699 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15700
15701         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15702
15703 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15704
15705         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15706         and MIPS64 have HI/LO interlocks.  Update comment.
15707
15708 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15709
15710         * config/stormy16/stormy16-protos.h: Remove the prototype for
15711         xstormy16_setup_incoming_varargs.
15712         * config/stormy16/stormy16.c
15713         (xstormy16_setup_incoming_varargs): Remove.
15714         (xstormy16_return_in_memory): New.
15715         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15716         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15717         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15718         (TARGET_STRUCT_VALUE_RTX): Likewise.
15719         (TARGET_RETURN_IN_MEMORY): Likewise.
15720         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15721         (PROMOTE_FUNCTION_RETURN): Likewise
15722         (PROMOTE_PROTOTYPES): Likewise
15723         (RETURN_IN_MEMORY): Likewise
15724         (STRUCT_VALUE): Likewise
15725         (SETUP_INCOMING_VARARGS): Likewise
15726
15727 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15728
15729         * config/mips/mips.c (mips_offset_within_object_p): New function.
15730         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15731         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15732         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15733
15734 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15735
15736         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15737         (PROMOTE_FUNCTION_RETURN): Likewise.
15738
15739 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15740
15741         * config/mn10300/mn10300-protos.h: Remove the prototype for
15742         mn10300_builtin_saveregs.
15743         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15744         (TARGET_STRUCT_VALUE_RTX): Likewise.
15745         (TARGET_RETURN_IN_MEMORY): Likewise.
15746         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15747         (mn10300_return_in_memory): Likewise.
15748         (mn10300_builtin_saveregs): Make it static.
15749         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15750         (RETURN_IN_MEMORY): Likewise.
15751         (STRUCT_VALUE): Likewise.
15752         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15753
15754 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15755
15756         PR bootstrap/13853
15757         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15758
15759 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15760
15761         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15762         using ccr.
15763
15764 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15765
15766         * config/i860/i860-protos.h: Remove the prototype for
15767         i860_saveregs.
15768         * config/i860/i860.c (i860_saveregs): Make it static.
15769         (i860_struct_value_rtx): New.
15770         (TARGET_STRUCT_VALUE_RTX): Likewise.
15771         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15772         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15773         I860_STRUCT_VALUE_REGNUM.
15774         (EXPAND_BUILTIN_SAVEREGS): Remove.
15775
15776 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15777
15778         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15779         (TARGET_RETURN_IN_MEMORY): Likewise.
15780         (m68hc11_struct_value_rtx): Likewise.
15781         (m68hc11_return_in_memory): Likewise.
15782         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15783         of PROMOTE_PROTOTYPES.
15784         (RETURN_IN_MEMORY): Remove.
15785         (STRUCT_VALUE_REGNUM): Likewise.
15786
15787 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15788
15789         * config/mmix/mmix-protos.h: Remove the prototype for
15790         mmix_setup_incoming_varargs.
15791         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15792         (TARGET_STRUCT_VALUE_RTX): Likewise.
15793         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15794         (mmix_setup_incoming_varargs): Make it static.
15795         (mmix_struct_value_rtx): New.
15796         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15797         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15798         (STRUCT_VALUE_REGNUM): Remove.
15799         (SETUP_INCOMING_VARARGS): Likewise.
15800
15801 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15802
15803         * config/mips/mips-protos.h: Remove the prototypes for
15804         mips_setup_incoming_varargs and mips_return_in_memory.
15805         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15806         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15807         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15808         (TARGET_STRUCT_VALUE_RTX): Likewise.
15809         (TARGET_RETURN_IN_MEMORY): Likewise.
15810         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15811         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15812         (mips_setup_incoming_varargs): Match the prototype for
15813         TARGET_SETUP_INCOMING_VARARGS.
15814         (mips_return_in_memory): Make it static.  Add argument fntype.
15815         (mips_strict_argument_naming): New.
15816         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15817         (PROMOTE_FUNCTION_ARGS): Likewise.
15818         (PROMOTE_FUNCTION_RETURN): Likewise.
15819         (STRUCT_VALUE): Likewise.
15820         (RETURN_IN_MEMORY): Likewise.
15821         (SETUP_INCOMING_VARARGS): Likewise.
15822         (STRICT_ARGUMENT_NAMING): Likewise.
15823
15824 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15825
15826         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15827         (TARGET_RETURN_IN_MEMORY): Likewise.
15828         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15829         (ip2k_return_in_memory): Likewise.
15830         (ip2k_setup_incoming_varargs): Likewise.
15831         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15832         (STRUCT_VALUE): Likewise.
15833         (STRUCT_VALUE_INCOMING): Likewise.
15834         (SETUP_INCOMING_VARARGS): Likewise.
15835
15836 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15837
15838         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15839         (TARGET_RETURN_IN_MEMORY): Likewise.
15840         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15841         (avr_return_in_memory): Remove.
15842         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15843         (STRUCT_VALUE): Likewise.
15844         (STRUCT_VALUE_INCOMING): Likewise.
15845         (STRICT_ARGUMENT_NAMING): Likewise.
15846
15847 2004-01-25  Jan Hubicka  <jh@suse.cz>
15848
15849         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15850
15851 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15852
15853         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15854         (mips_regno_mode_ok_for_base_p): Declare.
15855         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15856         (FRAME_POINTER_REGNUM): Renumber to 78.
15857         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15858         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15859         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15860         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15861         (REG_MODE_OK_FOR_BASE_P): Likewise.
15862         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15863         entry for 77 to "$arg" and entry for 78 to "$frame".
15864         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15865         (mips_reg_mode_ok_for_base_p): Remove.
15866         (mips_regno_mode_ok_for_base_p): New function, derived from old
15867         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15868         restrictions unless we're being strict.
15869         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15870
15871 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15872
15873         * c-common.h: Fix comment typos.
15874         * c-decl.c: Likewise.
15875         * cgraphunit.c: Likewise.
15876         * combine.c: Likewise.
15877         * et-forest.c: Likewise.
15878         * flow.c: Likewise.
15879         * function.c: Likewise.
15880         * ifcvt.c: Likewise.
15881         * integrate.c: Likewise.
15882         * jump.c: Likewise.
15883         * postreload.c: Likewise.
15884         * varray.c: Likewise.
15885
15886 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15887
15888         * doc/frontends.texi: Update copyright.
15889         * doc/gcov.texi: Likewise.
15890         * doc/gty.texi: Likewise.
15891         * doc/sourcebuild.texi: Likewise.
15892         * doc/standards.texi: Likewise.
15893
15894 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15895
15896         PR target/12978
15897         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15898         Remove movstrqi_small because it conflicts with movstrqi_large.
15899
15900 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15901
15902         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15903         (TARGET_STRUCT_VALUE_RTX): Likewise.
15904         (cris_struct_value_rtx): Likewise.
15905         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15906         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15907         STRUCT_VALUE_REGNUM.
15908         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15909
15910 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15911
15912         PR bootstrap/13848
15913         * cse.c (cse_cc_succs): Change the mode of the source expression
15914         as soon as decide we need a new mode.  Don't permit changing modes
15915         if we found a match in a successor block.
15916         (cse_condition_code_reg): Save original mode of source expression
15917         so that we know whether we have to change the mode in other
15918         insns.
15919
15920 2004-01-24  Jan Hubicka  <jh@suse.cz>
15921
15922         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15923         widen_memory_access):  Return early when there is nothing to change.
15924
15925 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15926
15927         * simplify-rtx.c (simplify_relational_operation): Don't
15928         simplify address == constant into address + -constant == 0.
15929
15930 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15931
15932         * gcc.c (process_command): Don't internationalize the
15933         Copyright message.
15934         * mips-tfile.c (main): Likewise.
15935
15936 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15937
15938         * cse.c: (cse_cc_succs) Fix comparison warning.
15939
15940 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15941
15942         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15943
15944 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15945
15946         * config/h8300/h8300-protos.h: Provide prototypes for
15947         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15948         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15949         (h8300_rtx_ok_for_base_p): Likewise.
15950         (h8300_legitimate_address_p): Likewise.
15951         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15952         h8300_legitimate_constant_p.
15953         (RTX_OK_FOR_BASE_P): Remove.
15954         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15955
15956 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15957
15958         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15959         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15960         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15961         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15962         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15963         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15964         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15965         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15966
15967 2004-01-24  Jan Hubicka  <jh@suse.cz>
15968
15969         * cselib.c (remove_useless_values):  Do not access discarded values.
15970
15971 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15972
15973         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15974         arrays.
15975
15976 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15977
15978         * recog.c: Fix a typo in copyright.
15979
15980 2004-01-23  Andrew Pinski  <apinski@apple.com>
15981
15982         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15983         (call_value): Likewise.
15984
15985 2004-01-23  Richard Henderson  <rth@redhat.com>
15986
15987         PR opt/12941
15988         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15989         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15990         if SHIFT_COUNT_TRUNCATED is set.
15991
15992 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15993
15994         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15995         separate real and imaginary parts.
15996         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15997
15998 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15999
16000         PR target/13674
16001         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16002         loading into GPR.
16003
16004 2004-01-23  Jan Hubicka  <jh@suse.cz>
16005
16006         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16007         change.
16008
16009         * alloc-pool.c (align_four): Kill.
16010         (create_alloc_pool): Align size to eight.
16011         (free_alloc_pool, free_pool): Invalidate deallocated data.
16012
16013 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16014
16015         PR gcc/1532
16016         * cse.c (cse_change_cc_mode): New static function.
16017         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16018         (cse_condition_code_reg): New function.
16019         * rtl.h (cse_condition_code_reg): Declare.
16020         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16021         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16022         cc_modes_compatible.
16023         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16024         (TARGET_CC_MODES_COMPATIBLE): Define.
16025         (TARGET_INITIALIZER): Add new initializers.
16026         * targhooks.c (default_cc_modes_compatible): New function.
16027         * targhooks.c (default_cc_modes_compatible): Declare.
16028         * hooks.c (hook_bool_intp_intp_false): New function.
16029         * hooks.h (hook_bool_intp_intp_false): Declare.
16030         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16031         (TARGET_CC_MODES_COMPATIBLE): Define.
16032         (ix86_fixed_condition_code_regs): New static function.
16033         (ix86_cc_modes_compatible): Likewise.
16034         * doc/tm.texi (Condition Code): Document new hooks.
16035
16036 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16037
16038         * fixinc/inclhack.def (bad_lval): Renamed to ...
16039         (alpha_bad_lval): ... this.
16040         Removed file list.
16041         Restrict to alpha*-dec-osf*.
16042         * fixinc/fixincl.x: Regenerate.
16043         * fixinc/tests/base/dirent.h: Remove, moving test ...
16044         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16045
16046 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16047
16048         PR c/13814
16049         * c-decl.c (diagnose_mismatched_decls): Also discard a
16050         built-in if we encounter an old-style definition with the
16051         same name.
16052
16053 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16054
16055         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16056         set to default{32,64}.
16057
16058 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16059
16060         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16061         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16062
16063 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16064             Olivier Hainque  <hainque@act-europe.fr>
16065
16066         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16067         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16068
16069 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16070
16071         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16072         size for minipool references.
16073
16074 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16075
16076         * real.c (real_floor, real_ceil): Tweak to allow input and output
16077         arguments to overlap.
16078         (real_round): New function to implement round(3m) semantics.
16079         * real.h (real_round): Prototype here.
16080         * builtins.c (fold_builtin_round): New function to constant fold
16081         round, roundf and roundl.
16082         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16083
16084 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16085
16086         PR optimization/13819
16087         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16088         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16089         (sh_handle_sp_switch_attribute): Remove warning.
16090
16091 2003-11-30  Jan Hubicka  <jh@suse.cz>
16092
16093         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16094
16095 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16096
16097         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16098         may or may not return non-NIL.
16099         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16100         check CANNOT_CHANGE_MODE_CLASS
16101
16102 2004-01-23  Jan Hubicka  <jh@suse.cz>
16103
16104         * basic-block.h (PROP_POSTRELOAD): New macro.
16105         (CLEANUP_LOG_LINKS): New.
16106         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16107         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16108
16109         * cselib.c (value_pool): New.
16110         (new_cselib_val): Use pool.
16111         (cselib_init): Initialize value_pool
16112         (cselib_finish): Free pool.
16113
16114 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16115
16116         * config/sparc/sparc.c (scan_record_type): New function.
16117         (function_arg_slotno): Use it to determine which kinds of
16118         registers the record can be passed in.
16119
16120 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16121
16122         * config/pa/fptr.c: Fix old-style definition.
16123
16124 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16125
16126         PR optimization/13724
16127         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16128         represents the zero bits produced by a ZERO_EXTEND operation.
16129
16130 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16131
16132         PR optimization/13821
16133         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16134         correctly calculate the lowpart offset of the contracted subreg.
16135
16136 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16137
16138         * doc/invoke.texi (Optimize Options): Note that --param arguments
16139         are subject to change without notice.
16140
16141 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16142
16143         * config.gcc (mips-sgi-irix6*o32): Removed.
16144         * config/mips/iris6-o32-as.h: Likewise.
16145         * config/mips/iris6-o32-gas.h: Likewise.
16146         * config/mips/iris6-o32.h: Likewise.
16147
16148 2004-01-22  Jan Hubicka  <jh@suse.cz>
16149
16150         * cfgcleanup.c (first_pass): New static variable.
16151         (try_forward_edges):  Add work limiting check for threading.
16152         (try_crossjump_bb):  Add work limiting check for crossjumping.
16153         (try_optimize_cfg):  Maintain first pass variable.
16154
16155 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16156
16157         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16158         handles complex and vector modes.
16159
16160 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16161
16162         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16163         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16164         (STRICT): Likewise.
16165
16166 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16167
16168         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16169         (genrtl_for_stmt): Remove emit_nop calls.
16170
16171 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16172
16173         PR target/13713
16174         PR target/13324
16175         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16176         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16177         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16178
16179 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16180
16181         * config/arm/arm.c: Include "debug.h".
16182         (thumb_pushpop): Take two new arguments.  Add some commentary.
16183         Output frame information when pushing.
16184         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16185         thumb_pushpop.
16186         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16187         offset, and pass it to thumb_pushpop.  Output CFI information.
16188         (thumb_expand_prologue): Add some frame-related markers and notes.
16189
16190 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16191
16192         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16193         for TARGET_64BIT.
16194         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16195         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16196
16197 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16198             Paolo Bonzini  <bonzini@gnu.org>
16199
16200         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16201         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16202         * rtl.h (subreg_lsb_1): Prototype here.
16203         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16204         sign extensions.
16205
16206 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16207
16208         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16209         macro need not be defined if jump-tables should contain
16210         relative addresses only when -fPIC or -fPIC is in effect.
16211
16212 2004-01-22  Jan Hubicka  <jh@suse.cz>
16213
16214         * alias.c (reg_base_value): Turn into varray.
16215         (reg_base_value_size): Kill.
16216         (old_reg_base_value): New deletable varray.
16217         (alias_invariant_size): New variable.
16218         (REG_BASE_VALUE): Update to use varray.
16219         (find_base_value): Likewise.
16220         (record_set): Likewise.
16221         (record_base_value): Likewise.
16222         (memrefs_conflict_p): Likewise.
16223         (record_set): Likewise
16224         (record_base_value): Likewise.
16225         (memrefs_conflict_p): Use alias_invariant_size.
16226         (init_alias_analysis): Use varray; set alias_invariant_size;
16227         rescale other arrays to be sized by maxreg.
16228         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16229
16230 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16231
16232         * config/sparc/sparc.c (function_arg_slotno): Use
16233         FLOAT_TYPE_P to detect FP fields in structures.
16234         (function_arg_record_value_1): Likewise.
16235         (function_arg_record_value_2): Likewise.
16236
16237 2004-01-22  Jan Hubicka  <jh@suse.cz>
16238
16239         * function.c (allocate_struct_function): Do not initialize expr, emit
16240         and varasm.
16241         (prepare_function_start): Do it here.
16242         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16243
16244 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16245
16246         PR target/13559
16247         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16248         to 'word_mode' once the first slot has been filled.
16249
16250 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16251
16252         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16253         computation of the number of integer registers required.
16254
16255 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16256
16257         * config/i386/i386.md: Simplify certain comparisons of
16258         const_int.
16259
16260 2004-01-21  Andrew Pinski  <apinski@apple.com>
16261
16262         PR target/13785
16263         * config/rs6000/rs6000.md (call_value): Force operand
16264         1 not operand 0 into a register.
16265
16266 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16267
16268         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16269         unwind-dw2-fde.h: Update copyright.
16270
16271 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16272
16273         * pa-protos.h: Update copyright.
16274         * pa.h: Likewise.
16275         * pa.md: Likewise.
16276
16277 2004-01-21  Caroline Tice  <ctice@apple.com>
16278
16279         PR target/12308
16280         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16281         flags register.
16282         (fix_truncdfdi2): Likewise.
16283         (fix_truncsfdi2): Likewise.
16284         (*fix_truncdi_1): Likewise.
16285         (fix_truncxfsi2): Likewise.
16286         (fix_truncdfsi2): Likewise.
16287         (fix_truncsfsi2): Likewise.
16288         (*fix_truncsi_1): Likewise.
16289         (fix_truncxfhi2): Likewise.
16290         (fix_truncdfhi2): Likewise.
16291         (fix_truncsfhi2): Likewise.
16292         (*fix_trunchi_1): Likewise.
16293
16294 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16295
16296         * alias.c, basic-block.h, c-common.c, c-common.h,
16297         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16298         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16299         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16300         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16301         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16302         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16303         genautomata.c, genconditions.c, genemit.c, genflags.c,
16304         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16305         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16306         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16307         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16308         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16309         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16310         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16311         unwind.h, varray.c, varray.h: Update copyright.
16312
16313 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16314
16315         * config/h8300/coff.h: Update copyright.
16316         * config/h8300/elf.h: Likewise.
16317         * config/h8300/h8300-protos.h: Likewise.
16318         * config/h8300/h8300.c: Likewise.
16319         * config/h8300/h8300.h: Likewise.
16320         * config/h8300/h8300.md: Likewise.
16321
16322 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16323
16324         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16325         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16326         ultrix_unistd): New hacks.
16327         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16328         ULTRIX_CONST2_CHECK): Add checks.
16329         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16330         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16331         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16332         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16333         * fixinc/tests/base/locale.h: New file.
16334         * fixinc/fixincl.x: Rebuilt.
16335
16336 2004-01-21  Andreas Jaeger  <aj@suse.de>
16337             Michael Matz  <matz@suse.de>
16338
16339         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16340
16341 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16342
16343         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16344         _Jv_RegisterClasses through a function pointer.
16345
16346 2004-01-21  Falk Hueffner  <falk@debian.org>
16347
16348         PR target/12898
16349         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16350         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16351         which need multiple instructions to emit.
16352
16353 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16354
16355         * config/m32r/m32r.h (CPP_SPEC): Define.
16356
16357 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16358
16359         * c-decl.c (merge_decls): Kill different_binding_level and
16360         different_tu arguments; simplify throughout.
16361         (duplicate_decls): Likewise.
16362         (pushdecl, merge_translation_unit_decls): Update calls to
16363         duplicate_decls.
16364
16365 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16366
16367         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16368         $(SYSTEM_H).
16369         (print-rtl1.o): Depend on $(SYSTEM_H).
16370
16371 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16372
16373         PR bootstrap/12730
16374         * configure.ac: Delete definition and subsitution of docdir.
16375         Add info, man, srcman and srcinfo to target hooks. Create doc/
16376         directory.
16377         * configure: Regenerate.
16378         * Makefile.in: Don't substitute docdir and delete all references
16379         throughout.
16380         (MAKEINFOFLAGS): Define.
16381         (stmp-docobjdir): Delete.
16382         (INFOFILES, MANFILES): Define.
16383         (info): Call lang.info, srcinfo and lang.srcinfo.
16384         (generated-manpages): Call lang.man, srcman and lang.srcman.
16385         (srcinfo, srcman): New rules to copy back files to source directory.
16386         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16387         (install-man): Revamp rule.
16388         (clean): Update dvi directory.
16389         (distclean): Delete TAGS from front end directorys.
16390         (maintainer-clean): Delete all document files in source directory.
16391
16392         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16393         (objc.srcman, objc.srcinfo): Likewise.
16394
16395 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16396
16397         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16398         (matherr_decl): rename & relocate as exception_structure.
16399         This fix must precede the math_exception fix.
16400
16401 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16402
16403         * fold-const.c (fold_convert): Rename to fold_convert_const.
16404         (fold_convert_const): Change arguments to take a tree_code,
16405         a type and the operand/expression to be converted.  Return
16406         NULL_TREE if no simplification is possible.  Add support for
16407         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16408         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16409         Adjust call to fold_convert to match new fold_convert_const.
16410         Avoid modifying the tree passed to fold in-place.
16411
16412 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16413
16414         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16415         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16416         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16417
16418 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16419
16420         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16421         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16422         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16423         (emit_move_sequence): Check scratch_reg first in various if statements.
16424         Extend source simplification to handle all 64-bit CONST_INTs.
16425         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16426         frame size.
16427         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16428         frame offset calculations.
16429         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16430         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16431         LEGITIMATE_64BIT_CONST_INT_P): Define.
16432         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16433         any CONST_INT as legitimate during and after reload.
16434         (VAL_32_BITS_P, INT_32_BITS): Define.
16435         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16436
16437 2004-01-20  Jan Hubicka  <jh@suse.cz>
16438
16439         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16440         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16441         containing hard regs are shared.
16442         (gen_hard_reg_clobber): New function.
16443         (hard_reg_clobbers): New array.
16444         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16445         (copy_rtx): Do not copy clobbers containing hard regs.
16446         * rtl.h (gen_hard_reg_clobber): Declare.
16447
16448 2004-01-20  Jan Hubicka  <jh@suse.cz>
16449
16450         * varray.c:  Include hashtab.h
16451         (varray_descriptor): New structure.
16452         (hash_descriptor, eq_descriptor, varray_descriptor,
16453         print_statistics): New static functions
16454         (varray_init, varray_grow): Update statistics
16455         (dump_varray_statistics): New function.
16456         * varray.h (dump_varray_statistics): Declare.
16457         * toplev.c (finalize): Call it.
16458         * Makefile.in (varray.o): Add dependency.
16459
16460 2004-01-20  Jan Hubicka  <jh@suse.cz>
16461
16462         * cselib.c: Include alloc-pool.h
16463         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16464         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16465         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16466         unchain_one_elt_loc_list_pool, unchain_one_value,
16467         new_cselib_val): Simplify using allocpool.
16468         (cselib_init): Initialize allocpools.
16469         (cselib_finish): Finish allocpools.
16470         * Makefile.in (cselib.o): Depend on alloc-pool.h
16471
16472 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16473
16474         * config/mips/mips.c (mips_load_call_address): Make the call insn
16475         use $gp if it could be calling a lazy binding stub.
16476
16477 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16478
16479         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16480         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16481         (TARGET_STRUCT_VALUE_RTX): Likewise.
16482         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16483         (PROMOTE_FUNCTION_RETURN): Remove.
16484         (STRUCT_VALUE): Remove.
16485
16486 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16487
16488         PR bootstrap/13735
16489         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16490         register as pointer after reload.
16491
16492 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16493
16494         PR optimization/12440
16495         * loop.c: Include ggc.h.
16496         (loop_optimize): Run garbage collector between optimization of loops.
16497         * Makefile.in (loop.o): Add GGC_H dependency.
16498
16499 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16500
16501         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16502         vector register special in function without prototype.
16503         (function_arg_advance): Vector parameters get always
16504         GPRs allocated for the linux64 target.
16505
16506 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16507
16508         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16509         not TARGET_M32RX_MASK.
16510
16511 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16512
16513         PR target/13557
16514         * config/sparc/sparc.c (function_arg): Reorder the cases.
16515
16516 2004-01-19  Per Bothner  <per@bothner.com>
16517
16518         Move cpp_reader's line_maps field to a shared global.
16519         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16520         and change the type to a pointer rather than a struct.
16521         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16522         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16523         Likewise.
16524         * cppfiles.c (validate_pch):  Likewise.
16525         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16526         Likewise.
16527         * cpperror.c (print_location):  Likewise.
16528         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16529         * cppinit.c (cpp_create_reader):  Handle new parameter.
16530         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16531         * input.h (line_table):  New variable.
16532         * toplev.c (line_table):  Declare variable.
16533         (general_init):  Initialize line_table.
16534         * c-opts.c (c_common_init_options):  Pass line_table to
16535         cpp_create_reader.
16536         * fix-header.c (read_scan_file):  New local variable line_table.
16537         Initialize, and pass it to cpp_create_reader.
16538         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16539         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16540
16541 2004-01-19  Per Bothner  <per@bothner.com>
16542
16543         Implement a cache for linemap_lookup.
16544         * line-map.h (struct_line_maps):  Add cache field.
16545         * line-map.c (linemap_init):  Zero cache field.
16546         (linemap_add):  Set cache field to offset of newly allocated map.
16547         (linemap_lookup):  Use and set cache field.
16548
16549 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16550
16551         PR optimization/13567
16552         * cse.c (cse_basic_block): Call cse_insn with a non-null
16553         libcall_insn for the last SET insn of a no-confilict block.
16554
16555 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16556
16557         * Makefile.in (target_noncanonical, program_transform_name): Use
16558         immediate define instead of deferred.
16559         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16560         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16561         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16562         deferred backquote.
16563
16564 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16565
16566         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16567         true unconditionally.
16568         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16569         Remove.
16570         (build_unary_op, build_modify_expr): Don't handle extended
16571         lvalues.
16572         (build_component_ref, build_conditional_expr): Call non_lvalue
16573         instead of pedantic_non_lvalue.
16574         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16575         * fold-const.c (fold): Don't check pedantic directly for
16576         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16577         passed to pedantic_non_lvalue.
16578         * doc/extend.texi: Remove documentation of extended lvalues.
16579
16580 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16581
16582         PR optimization/5263
16583         * simplify-rtx.c (associative_constant_p): Delete.
16584         (simplify_associative_operation): Rewrite to linearize terms, and
16585         attempt to simplify new term against both left and right subterms.
16586         (simplify_binary_operation): Call swap_commutative_operands_p on
16587         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16588         trueop0 and trueop1 down to where first needed.
16589         (simplify_relational_operation): Likewise.
16590         * rtlanal.c (commutative_operand_precedence): Also order constant
16591         operands using avoid_constant_pool_reference.
16592
16593 2004-01-19  Richard Henderson  <rth@redhat.com>
16594
16595         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16596         don't check memory mode.
16597         (unaligned_memory_operand): Likewise.
16598         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16599         abort for op0 not MEM.
16600
16601         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16602         is not a reg, copy to a scratch first.
16603         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16604         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16605         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16606         (reload_inqi, reload_inhi): Fix mode of op0.
16607         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16608         reload_outhi_help): Likewise.  Use define_insn_and_split.
16609
16610         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16611         as well as $29 dead.
16612
16613 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16614
16615         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16616         "tls_object" for thread-local objects.
16617         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16618         "#tls" for thread-local sections.
16619         * configure.ac (thread-local checks): Specify --fatal-warnings in
16620         every binutils-specific checks.  For sparc*-*-*, test whether the
16621         OS is Solaris and the tools are native and act accordingly.
16622         * configure: Rebuild.
16623
16624 2004-01-19  Jeff Law  <law@redhat.com>
16625
16626         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16627         Jerry Quinn and Petur Runolfsson.
16628
16629 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16630
16631         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16632         size, don't use the larger zero-extending loads.
16633
16634 2004-01-19  Richard Henderson  <rth@redhat.com>
16635
16636         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16637         * alpha.md (UNSPEC_NT_LDA): Remove.
16638         (UNSPEC_CVTLQ, cvtlq): New.
16639         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16640         (extendsidi2_fix): Remove.
16641         (extendsidi2 splitter): Use cvtlq.
16642         (extendsidi2 fp peepholes): Remove.
16643         (cvtql): Use SFmode instead of SImode.
16644         (fix_trunc?fsi): Update to match.
16645         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16646         (movsi): Rename from movsi_nofix, remove f alternatives.
16647         (movsi_nt_vms): Similarly.
16648         (movsi_fix, movsi_nt_vms_fix): Remove.
16649         (nt_lda): Remove.
16650         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16651
16652 2004-01-19  Jan Hubicka  <jh@suse.cz>
16653
16654         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16655         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16656         list.
16657         (cgraph_remove_unreachable_nodes): New function
16658         (cgraph_decide_inlining_of_small_function): Fix pasto.
16659         (cgraph_decide_inlining_incrementally): Fix pasto.
16660         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16661
16662 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16663
16664         * gengtype.c (header_file): Make it static.
16665         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16666         * gengtype.h (header_file): No longer extern.
16667
16668 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16669
16670         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16671         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16672         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16673
16674 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16675
16676         * stmt.c (HAVE_casesi): Define it not already defined.
16677         (HAVE_tablejump): Likewise.
16678         (expand_end_case_type): Resort to the binary tree method if
16679         neither casesi or tablejump is available.
16680
16681 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16682
16683         * final.c (final_scan_insn): Make non-static again.
16684         * output.h (final_scan_insn): Re-add prototype.
16685         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16686         to final_scan_insn call.
16687         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16688         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16689         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16690         * config/sh/sh.c (print_slot): Likewise.
16691         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16692         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16693
16694 2004-01-18  Jan Hubicka  <jh@suse.cz>
16695
16696         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16697         * cfgcleanup.c (try_optimize_cfg): Use it.
16698         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16699         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16700         Kill hack.
16701         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16702
16703         Revert:
16704         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16705
16706                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16707                 even after reload, just don't remove the actual jump tables.
16708
16709 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16710
16711         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16712
16713 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16714
16715         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16716         the size of a pointer in bytes.
16717
16718 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16719
16720         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16721         live "next" variable, which could lead to an infinite loop.
16722
16723 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16724
16725         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16726         block.
16727
16728         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16729         Check for NULL in the chain and remove repeated code.
16730
16731 2004-01-18  Jan Hubicka  <jh@suse.cz>
16732
16733         * coverage.c (checksum_string): Rename to ...
16734         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16735         names containing random number and zero the number out in order to get
16736         match.
16737
16738 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16739
16740         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16741
16742 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16743
16744         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16745         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16746         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16747         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16748         doc/trouble.texi: Remove trailing whitespace.
16749
16750 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16751
16752         PR target/7618
16753         * config/mips/mips.c: Include cfglayout.h.
16754         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16755         (mips_unspec_offset_high): Add temporary register argument.
16756         (mips_load_call_address): New function, split out from...
16757         (mips_expand_call): ...here.
16758         (mips_output_cplocal): New function.
16759         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16760         (mips_emit_loadgp): New function, split out from...
16761         (mips_expand_prologue): ...here.
16762         (mips_output_mi_thunk): New function.
16763
16764 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16765
16766         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16767         mcpu32): Remove redundant checks for implied target predefines.
16768
16769 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16770
16771         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16772         Return type is unsigned int not int.
16773         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16774         Likewise.
16775
16776 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16777
16778         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16779         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16780         "GNU/Linux" and "Microsoft Windows" terminology.
16781
16782 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16783
16784         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16785         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16786         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16787         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16788         @smallexample instead of @example.
16789
16790 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16791
16792         * objc/objc-act.c (build_objc_method_call): Use target
16793         hooks instead of macros to determine if ..._stret
16794         dispatchers should be used (NeXT runtime only).
16795
16796 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16797
16798         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16799         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16800
16801 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16802
16803         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16804         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16805         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16806         macros.
16807         * reload1.c (emit_reload_insns): Use them.
16808         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16809         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16810         for NULL PATTERN.
16811
16812 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16813
16814         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16815         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16816         a line note after the prologue.  Make static.
16817         (line_note_exists): Remove.
16818         (final): Don't initialize line_note_exists.  Update call to
16819         final_scan_insn.
16820         * output.h (final_scan_insn): Remove prologue.
16821         * function.c (set_insn_locators): Update comment.
16822         (thread_prologue_and_epilogue_insns): Add a comment.
16823
16824 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16825
16826         PR target/10781
16827         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16828         Prototype.
16829         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16830         New function.
16831         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16832         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16833         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16834
16835 2004-01-17  Jan Hubicka  <jh@suse.cz>
16836
16837         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16838         commit.
16839
16840         * toplev.c (HAVE_conditional_execution): Provide default.
16841         (rest_of_handle_reorder_blocks): For conditional_execution target
16842         update liveness once after all transformations
16843         (rest_of_compilation): Do crossjumping before ce3.
16844
16845 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16846
16847         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16848         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16849         for PCH.
16850         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16851         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16852         (get_TOC_alias_set): Mark 'set' for PCH.
16853
16854 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16855
16856         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16857         even after reload, just don't remove the actual jump tables.
16858
16859 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16860
16861         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16862         Remove checks for is_ada() and TREE_UNSIGNED.
16863         (subrange_type_die): Emit a byte_size attribute if the subrange
16864         type size is different from the base type size.
16865         (modified_type_die): Replace call to is_ada_subrange_type() by
16866         call to is_subrange_type().
16867
16868 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16869
16870         * config/sh/sh.c: Include ggc.h.
16871
16872 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16873
16874         * Makefile.in (MD5_H): New.
16875         (fold-const.o): Depend on md5.h.
16876         (dwarf2out.o): Likewise.
16877         (cppfiles.o): Likewise.
16878         * cppfiles.c: Include md5.h.
16879         (should_stack_file): Check against list read from PCH file.
16880         (struct pchf_data): New.
16881         (pchf): New variable.
16882         (struct pchf_adder_info): New.
16883         (pchf_adder): New.
16884         (pchf_save_compare): New.
16885         (_cpp_save_file_entries): New.
16886         (_cpp_read_file_entries): New.
16887         (struct pchf_compare_data): New.
16888         (pchf_compare): New.
16889         (check_file_against_entries): New.
16890         * cpphash.h (_cpp_save_file_entries): Prototype.
16891         (_cpp_read_file_entries): Prototype.
16892         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16893         (cpp_read_state): Read the list of headers.
16894
16895 2004-01-17  Jan Hubicka  <jh@suse.cz>
16896
16897         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16898         builtin_expect specially.
16899         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16900         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16901         * invoke.texi (max-inline-insns-single): Set to 100.
16902         (large-function-insns): Set to 3000.
16903
16904 2004-01-16  Eric Christopher  <echristo@redhat.com>
16905             Chandrakala Chavva <cchavva@redhat.com>
16906
16907         * cppcharset.c (one_iso88591_to_utf8): New function.
16908         (convert_iso88591_utf8): Ditto. Use.
16909         (conversion_tab): Use.
16910         (_cpp_input_to_utf8): New function.
16911         (_cpp_init_iconv_buffer): Ditto.
16912         (_cpp_close_iconv_buffer): Ditto.
16913         * cpphash.h: Prototype new functions.
16914         (cpp_buffer): Add input_cset_desc.
16915         * cppinit.c: Add input_charset default.
16916         * cpplib.c (cpp_push_buffer): Support init and
16917         close of iconv.
16918         * cpplib.h (cpp_options): Add input_charset.
16919
16920 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16921
16922         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16923         * config/alpha/unicosmk.h: Remove a commented-out definition
16924         of ASM_OUTPUT_SECTION_NAME.
16925         * config/stormy16/stormy16.h: Likewise.
16926
16927 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16928
16929         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16930         (alpha___extern_prefix_sys_stat): ... this.
16931         Apply to <sys/mount.h>, too.
16932         Tweak to match more variations.
16933         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16934
16935         * fixinc/inclhack.def (alpha___extern_prefix,
16936         alpha___extern_prefix_standards): New hacks to obey
16937         __PRAGMA_EXTERN_PREFIX.
16938         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16939         test.
16940         * fixinc/tests/base/standards.h: Likewise.
16941
16942         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16943         variations.
16944         New testcase.
16945         * fixinc/tests/base/pthread.h: Handle it.
16946
16947         * fixincl/inclhack.def (bad_lval): Sort file list.
16948         Add many missing files up to Tru64 UNIX V5.1B.
16949         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16950         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16951         order.
16952
16953         * fixinc/fixincl.x: Regenerate.
16954
16955 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16956
16957         * version.c (version_string): Change to 3.5.0.
16958         * doc/include/gcc-common.texi (version-GCC): Likewise.
16959
16960 2004-01-16  Jan Hubicka  <jh@suse.cz>
16961
16962         * i386.md (load_tp_di): Fix pasto.
16963
16964         PR opt/13608
16965         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16966
16967         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16968         pp_c_character_constant, pp_c_floating_constant,
16969         pp_c_additive_expression, pp_c_shift_expression,
16970         pp_c_equality_expression, pp_c_and_expression,
16971         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16972         pp_c_logical_and_expression): Remove inline modifier.
16973         * dwarf2out.c (get_AT): Likewise.
16974         * et-forest.c (et_splay): Likewise.
16975         * ra.h (ra_alloc, ra_calloc): Likewise
16976
16977 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16978
16979         * config/frv/frv-protos.h: Fix comment formatting.
16980         * config/frv/frv.c: Likewise.
16981         * config/frv/frv.h: Likewise.
16982         * config/frv/frv.md: Likewise.
16983         * config/frv/frvbegin.c: Likewise.
16984         * config/frv/frvend.c: Likewise.
16985
16986 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16987
16988         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16989         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16990         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16991         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16992
16993 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16994
16995         PR 11864
16996         * postreload.c (reload_cse_simplify_operands): Don't remove
16997         implicit extension from LOAD_EXTEND_OP.
16998
16999 2004-01-16  Jan Hubicka  <jh@suse.cz>
17000
17001         PR opt/11350
17002         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17003         after reload.
17004         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17005         rtl_try_redirect_by_replacing_branch): Likewise.
17006
17007 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17008
17009         PR pch/13689
17010         * alias.c (struct alias_set_entry): Mark for GC.
17011         (alias_sets): Make static, mark for GC.
17012         (record_alias_subset): Use GC to allocate alias structures.
17013         * varray.c (element): Make generic varrays GCed.
17014
17015         PR pch/13361
17016         * c-typeck.c (constructor_asmspec): Delete.
17017         (struct initializer_stack): Delete field 'asmspec'.
17018         (start_init): Delete saving of asmspec.
17019         (finish_init): Don't update constructor_asmspec.
17020         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17021         * stmt.c (expand_asm): Duplicate strings from tree.
17022         (expand_asm_operands): Likewise.
17023         * tree.c (tree_size): Update computation of size of STRING_CST.
17024         (make_node): Don't make STRING_CST nodes.
17025         (build_string): Allocate string with tree node.
17026         * tree.def (STRING_CST): Update comment.
17027         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17028         (tree_string): Place contents of string in tree node.
17029         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17030         from tree.
17031
17032         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17033         altivec operands.
17034
17035 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17036
17037         * c-common.h: Fix comment formatting.
17038         * c-cppbuiltin.c: Likewise.
17039         * c-pragma.c: Likewise.
17040         * calls.c: Likewise.
17041         * collect2.c: Likewise.
17042         * cppcharset.c: Likewise.
17043         * cpptrad.c: Likewise.
17044         * dbxout.c: Likewise.
17045         * defaults.h: Likewise.
17046         * dwarf2out.c: Likewise.
17047         * fold-const.c: Likewise.
17048         * genautomata.c: Likewise.
17049         * genconditions.c: Likewise.
17050         * genflags.c: Likewise.
17051         * gengtype.c: Likewise.
17052         * integrate.c: Likewise.
17053         * loop.c: Likewise.
17054         * predict.c: Likewise.
17055         * sdbout.c: Likewise.
17056
17057 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17058
17059         * config/ia64/ia64.md (*movti_internal): C output template
17060         extracted to ia64.c.
17061         (*movti_internal_reg): Delete.
17062         (reload_inti, reload_outti): Use the correct mode on operand 2
17063         in the first place, don't fix it up in the output template.
17064         (movtf, reload_ointf, reload_outtf): New expanders.
17065         (*movtf_internal): New define_insn_and_split.
17066         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17067         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17068         (ia64_split_tmode_move): New function, body mostly pulled
17069         from ia64.md:*movti_internal.
17070         (ia64_function_arg_words): New function, extracted common
17071         logic from ia64_function_arg et seq.
17072         (ia64_function_arg_offset): Likewise.  Handle correctly the
17073         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17074         (ia64_function_arg, ia64_function_arg_partial_nregs)
17075         (ia64_function_arg_advance): Use ia64_function_arg_words and
17076         ia64_function_arg_offset.
17077         (ia64_function_value): TCmode does not go in float regs.
17078         (ia64_secondary_reload_class): Also handle TFmode.
17079         * config/ia64/ia64-protos.h: Remove prototype for
17080         ia64_split_timode; add prototype for ia64_split_tmode_move.
17081
17082 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17083
17084         * Makefile.in (MAINT): Make it an immediate assignment.
17085
17086 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17087
17088         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17089
17090 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17091
17092         * config/h8300/coff.h: Replace Hitachi with Renesas.
17093         * config/h8300/elf.h: Likewise.
17094         * config/h8300/h8300-protos.h: Likewise.
17095         * config/h8300/h8300.c: Likewise.
17096         * config/h8300/h8300.h: Likewise.
17097         * config/h8300/h8300.md: Likewise.
17098         * config/h8300/lib1funcs.asm: Likewise.
17099
17100 2004-01-15  Andrew Pinski  <apinski@apple.com>
17101
17102         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17103         around it.
17104
17105 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17106
17107         * config/h8300/h8300.c (h8300_return_in_memory): New.
17108         (TARGET_STRUCT_VALUE_RTX): Likewise.
17109         (TARGET_RETURN_IN_MEMORY): Likewise.
17110         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17111         (RETURN_IN_MEMORY): Likewise.
17112
17113 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17114
17115         PR optimization/13375
17116         * gcse.c (handle_avail_expr): Just return if the source is not a
17117         single set.
17118
17119 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17120             Daniel Jacobowitz  <drow@mvista.com>
17121
17122         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17123         (EQUIV): Define.
17124         (ARM_FUNC_ALIAS): New macro.
17125         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17126         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17127
17128 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17129
17130         PR optimization/12372
17131         * calls.c (expand_call): Add call_fusage data for stack arguments in
17132         constant calls.
17133
17134 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17135
17136         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17137         (rs6000_elf_declare_function_name): Formatting.
17138         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17139
17140 2004-01-15  Jan Hubicka  <jh@suse.cz>
17141
17142         PR bootstrap/13692
17143         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17144         previous patch.
17145
17146 2004-01-15  Richard Henderson  <rth@redhat.com>
17147
17148         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17149         integer regs of the same call-savedness.
17150
17151 2004-01-15  Andreas Schwab  <schwab@suse.de>
17152
17153         PR bootstrap/13562
17154         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17155         status for NOTB/NOTW/NEGW methods.
17156
17157 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17158
17159         * doc/invoke.texi: Update dump file names.  Fix a typo.
17160
17161 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17162
17163         * builtins.c (expand_builtin_va_end): Don't use
17164         EXPAND_BUILTIN_VA_END.
17165         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17166         * config/d30v/d30v.h: Remove a commented-out definition of
17167         EXPAND_BUILTIN_VA_END.
17168         * config/stormy16/stormy16.h: Likewise.
17169
17170 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17171
17172         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17173         * targhooks.c (default_struct_value_rtx): Don't use
17174         STRUCT_VALUE_INCOMING_REGNUM.
17175
17176 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17177
17178         PR bootstrap/12744
17179         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17180         GENINSRC and not parsedir.  Define srcextra as a langhook.
17181         * configure: Regenerate.
17182         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17183         parsedir and delete all references throughout.  Conditionally define
17184         rule for srcextra dependent on GENINSRC.
17185         (stmp-docobjdir): Delete.
17186         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17187         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17188         and gengtype-yacc.h back to source directory.
17189         (maintainer-clean): Delete all parse files in source directory.
17190         (distclean): Delete generated files.
17191
17192         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17193         (objc-parse.c, objc-parse.y): Don't use parsedir.
17194         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17195         directory if requested.
17196         (po-generated): Don't use parsedir.
17197         (objc.maintainer-clean): Delete above files from source directory.
17198
17199 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17200
17201         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17202
17203 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17204
17205         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17206         TARGET_RETURN_IN_MEMORY.
17207
17208 2004-01-15  Jan Hubicka  <jh@suse.cz>
17209
17210         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17211         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17212         functions accepting SSE arguments
17213         (function_arg): Warn only when asked to warn.
17214         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17215
17216 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17217
17218         * c-parse.in (stmts_and_decls): Make label at end of compound
17219         statement a hard error.
17220
17221 2004-01-14  Jan Hubicka  <jh@suse.cz>
17222
17223         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17224         * cgraph.h (cgraph_local_info): Sort fields by size; add
17225         redefined_extern_inline
17226         (cgraph_global_info): Sort fields by size.
17227         (cgraph_node): Likewise.
17228         * cgraphunit.c (cgraph_finalize_function): Se
17229         local.redefined_extern_inline on redefinition.
17230         (cgraph_analyze_function): Use it; fix formating.
17231
17232 2004-01-14  Jan Hubicka  <jh@suse.cz>
17233
17234         PR c++/10776
17235         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17236         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17237         bitmaps
17238         (cache_size): New variable
17239         (add_dependence): Update use; canonize early memory locations
17240         (sched_analyze_1): Likewise.
17241         (sched_analyze_2): Likewise.
17242         (init_dependency_caches): Initialize bitmaps.
17243         (free_dependency_caches): Free bitmaps
17244
17245 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17246
17247         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17248         targetm.calls.strict_argument_naming().
17249         * target.h: Likewise.
17250
17251 2004-01-14  Richard Henderson  <rth@redhat.com>
17252
17253         PR debug/13231
17254         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17255         instructions.
17256
17257 2004-01-14  Richard Henderson  <rth@redhat.com>
17258
17259         PR c++/12491
17260         * except.c (struct eh_region): Add u.fixup.resolved.
17261         (resolve_one_fixup_region): Split out from ...
17262         (resolve_fixup_regions): ... here.
17263
17264 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17265
17266         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17267
17268 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17269
17270         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17271         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17272         (STRUCT_VALUE): Remove.
17273
17274 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17275
17276         * system.h: Poison PROMOTED_MODE
17277         * integrate.c (expand_inline_function): Don't mention the
17278         PROMOTED_MODE.
17279         * loop.c (update_giv_derive): Same.
17280         * tree.h (DECL_RTL): Same.
17281
17282 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17283
17284         PR target/9365
17285         * sh.c (gen_block_redirect): Add special handling of RETURN.
17286         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17287         far branch target (i.e. it's a return).
17288
17289 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17290
17291         * regrename.c (find_oldest_value_reg): Fix a warning.
17292
17293 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17294
17295         PR bootstrap/12527
17296         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17297         Move linux-gas.h and linux-elf.h before aout.h.
17298         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17299         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17300
17301 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17302
17303         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17304         (CONST_INT, VOIDmode, ...).
17305
17306 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17307
17308         * regrename.c (find_oldest_value_reg): If the replacement uses
17309         multiple hard registers, check that all of them are in CLASS.
17310
17311 2004-01-14  Jan Hubicka  <jh@suse.cz>
17312
17313         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17314         impossible.
17315
17316 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17317
17318         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17319
17320 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17321
17322         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17323         Calculate always vrsave_mask if TARGET_ALTIVEC.
17324         (rs6000_emit_prologue): Emit code for vrsave
17325         only if TARGET_ALTIVEC_VRSAVE.
17326         (rs6000_emit_epilogue): Likewise.
17327
17328 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17329
17330         * config/sparc/sparc.md (tie_add32): Fix pasto.
17331         (tie_add64): Likewise.
17332
17333 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17334
17335         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17336
17337 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17338
17339         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17340         * config/iq2000/iq2000.c: Likewise.
17341         * config/iq2000/iq2000.md: Likewise.
17342
17343 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17344
17345         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17346         (subrange_type_die): Add handle for nameless subrange types.
17347
17348 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17349
17350         * config/h8300/h8300-protos.h: Replace do_movsi with
17351         h8300_expand_movsi.
17352         * config/h8300/h8300.c (do_movsi): Change to
17353         h8300_expand_movsi.
17354         * config/h8300/h8300.md (movsi): Replace do_movsi with
17355         h8300_expand_movsi.
17356         (movsf): Likewise.
17357
17358 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17359
17360         * config/h8300/h8300.c (dosize): Change to
17361         h8300_emit_stack_adjustment.  Update callers.
17362
17363 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17364
17365         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17366         the source being post_inc.  Tighten the predicate for the
17367         destination to register_operand.
17368         (movstricthi): Likewise.
17369
17370 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17371
17372         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17373         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17374         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17375
17376 2004-01-14  Jan Hubicka  <jh@suse.cz>
17377
17378         Partial fix PR c++/12850
17379         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17380         at zero nest level.
17381
17382 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17383
17384         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17385         pseudo-register.
17386
17387 2004-01-13  Devang Patel <dpatel@apple.com
17388
17389         PR debug/7078
17390         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17391         NAMESPACE_DECL memebers.
17392
17393 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17394
17395         PR c++/12709
17396         * c-common.c (finish_fname_decls): Use the chain only if the
17397         tree is an expr_stmt.
17398
17399 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17400
17401         * rtl.def: Add comment about new option in automata_option.
17402
17403         * genautomata.c (PROGRESS_OPTION): New macro.
17404         (progress_flag): New global variable.
17405         (gen_automata_option): Process `progress'.
17406         (transform_insn_regexps, check_unit_distributions_to_automata,
17407         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17408         expand_automata, write_automata): Print about the progress only if
17409         progress_flag.  Remove fflush.
17410         (initiate_automaton_gen): Process command line flag `-progress'.
17411
17412         * doc/md.texi: Describe the new option.
17413
17414 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17415
17416         * cfg.c (dump_bb): Dump entry edges.
17417
17418 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17419
17420         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17421         references from SImode.
17422         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17423
17424 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17425
17426         * system.h (TEXT_SECTION): Poison.
17427         * varasm.c (text_section): Don't use TEXT_SECTION.
17428         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17429         * doc/tm.texi (TEXT_SECTION): Remove.
17430
17431 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17432
17433         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17434
17435 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17436
17437         * unwind-libunwind.c: Delete.
17438
17439 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17440
17441         PR 13656
17442         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17443         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17444         them at the very end.
17445         (validate_proto_after_old_defn): Restructure for comprehensibility;
17446         make error messages clearer.
17447
17448 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17449
17450         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17451         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17452         * varray.c: No need to prototype error.
17453         (varray_check_failed): Wrap long string onto two lines.
17454         (varray_underflow): New function.
17455
17456 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17457
17458         PR c++/13376
17459         * function.h (struct function): Kill `name' field.
17460         (current_function_name): Make it an extern function.
17461         * function.c (current_function_name): New function.
17462         * graph.c: Update all uses of current_function_name.
17463         * gcse.c: Likewise.
17464         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17465         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17466         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17467         instead of a strcmp with "main".
17468
17469 2004-01-13  Jan Hubicka  <jh@suse.cz>
17470
17471         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17472
17473         * cgraphunit.c (cgraph_optimize_function):  Always do
17474         optimize_inline_calls when there is always_inline callee.
17475         (cgraph_decide_inlining): Fix formating.
17476         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17477         functions.
17478         (expand_call_inline): Likewise.
17479         * toplev.h (sorry): Fix prototype.
17480
17481 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17482
17483         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17484         conditional jumps that drop through to unconditional jumps or the
17485         end of the sequence.
17486
17487 2004-01-13  Jan Hubicka  <jh@suse.cz>
17488
17489         * alias.c (new_alias_set): Construct the alias_set varray.
17490         (init_alias_once): Don't do it here.
17491
17492 2004-01-12  Marc Espie <espie@openbsd.org>
17493
17494         * system.h: handle YYBYACC like YYBISON.
17495
17496 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17497
17498         PR target/10847
17499         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17500         building on sparc64-*-openbsd*.
17501
17502 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17503
17504         PR debug/13539
17505         * dbxout.c (dbxout_type): Protected inheritance is not
17506         private but protected.
17507
17508 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17509
17510         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17511
17512 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17513
17514         PR optimization/12508.
17515         * combine.c (try_combine): Remove a dead set in a parallel
17516         even if its destination is a subreg.
17517
17518         Revert:
17519         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17520         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17521         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17522
17523 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17524
17525         * real.c: Update copyright date.
17526         * emit-rtl.c: Likewise.
17527         * rtl.h: Likewise.
17528         * dwarf2out.c: Likewise.
17529         * config/rs6000/darwin-ldouble.c: Likewise.
17530         * config/rs6000/rs6000.md: Likewise.
17531
17532 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17533
17534         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17535         TFmode to SImode libfuncs.
17536
17537 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17538
17539         PR middle-end/11397
17540         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17541
17542 2004-01-12  Jan Hubicka  <jh@suse.cz>
17543
17544         PR opt/12826
17545         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17546         stored.
17547
17548         PR opt/12863
17549         * cfgcleanup.c (label_is_jump_target_p): Move to...
17550         * rtlanal.c (label_is_jump_target_p): ... here.
17551         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17552         edges unified with branch edges.
17553
17554 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17555
17556         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17557         high word of an integral CONST_DOUBLE.
17558
17559 2004-01-12  Paul Brook  <paul@codesourcery.com>
17560
17561         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17562
17563 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17564
17565         PR target/13585
17566         * sh-protos.h (check_use_sfunc_addr): Declare.
17567         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17568         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17569
17570 2004-01-12  Jan Hubicka  <jh@suse.cz>
17571
17572         * alias.c:  Invlude varray.h
17573         (alias_sets): Turn into varray.
17574         (get_alias_set_entry): Use VARRAY; mark inline.
17575         (mems_in_disjoint_alias_sets_p): Mark inline.
17576         (record_alias_subset): Use varray.
17577         (init_alias_once): Initialize varray.
17578         (new_alias_set): Grow array.
17579         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17580
17581 2004-01-12  Jan Hubicka  <jh@suse.cz>
17582
17583         Partial fix for PR opt/10776 II
17584         * cselib.c: Include params.h
17585         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17586         locations.
17587         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17588         * Makefile.in (cselib.o): Depend on params.h
17589
17590 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17591
17592         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17593         simplify_unary_operation if the operand has a known mode.
17594
17595 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17596
17597         PR target/13534
17598         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17599         predicate to handle 'ld' conform addresses.
17600         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17601         contraint.
17602         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17603         are memory contraints.
17604         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17605         New prototype.
17606         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17607         Change 'o' to 'Y' constraint.
17608         (*movdf_softfloat64): Ditto.
17609
17610 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17611
17612         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17613         brace-enclosed syntax in all C output statements.
17614
17615 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17616
17617         PR target/13401
17618         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17619         Objective-C language type value is 14.
17620
17621 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17622
17623         PR c/12148
17624         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17625         `int' in a number of places to make sure we always have a SImode
17626         and not a HImode.  Add a 'L' suffix to a number of constants.
17627
17628 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17629
17630         * pa.c: Don't include obstack.h.
17631
17632         * pa.md: Correct constraint in pattern for loading PIC label address.
17633
17634 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17635
17636         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17637          before defining.
17638
17639 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17640
17641         PR fortran/9972
17642         * toplev.c (rest_of_handle_inline): Also consider functions
17643         for deferral if the language is GNU F77.
17644
17645 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17646
17647         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17648         diagnostic messages.
17649
17650 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17651
17652         PR middle-end/13392
17653         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17654         to drop through label.  Don't fall back to SCC even when conditional
17655         jump has not been found.
17656
17657 2004-01-11  Jan Hubicka  <jh@suse.cz>
17658
17659         * invoke.texi: Fix syntax error in previous patch.
17660
17661         Partial fix for PR opt/10776
17662         * Makefile.in (reload.o): Include param.h
17663         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17664         * reload.c: Include params.h.
17665         (find_equiv_reg): Work limiting check.
17666         * invoke.texi: Document.
17667
17668 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17669
17670         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17671         out-of-bounds accesses to string constants.  Simplify mips16
17672         case accordingly.
17673
17674 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17675
17676         PR optimization/13469
17677         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17678         reload_cse_regs (-fnon-call-exceptions only).
17679
17680 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17681
17682         * config/mcore/lib1.asm: Fix comment formatting.
17683         * config/mcore/mcore-elf.h: Likewise.
17684         * config/mcore/mcore.c: Likewise.
17685         * config/mcore/mcore.h: Likewise.
17686         * config/mcore/mcore.md: Likewise.
17687
17688 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17689
17690         * c-decl.c (duplicate_decls): Break apart into...
17691         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17692         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17693         ... these new functions.  Restructure for comprehensibility.
17694         Remove various archaic special cases.  Always report the
17695         location of the previous declaration when a diagnostic is issued.
17696         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17697         (match_builtin_function_types): Delete unnecessary forward declaration.
17698
17699 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17700
17701         * genautomata.c (make_automaton, NDFA_to_DFA):
17702         Print progress bars with '.' characters instead of '*'.
17703         (build_automaton): Change notes to match.
17704
17705 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17706
17707         * config/m32r/m32r.md: Use define_constants for unspec and
17708         unspec_volatile.
17709
17710 2004-01-10  Jan Hubicka  <jh@suse.cz>
17711
17712         PR opt/11635
17713         * expr.c (expand_expr_real):  More curefully expand union casts.
17714
17715 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17716
17717         * config/m32r/m32r.md (flush_icache): Use 1 for
17718         unspec_volatile.
17719
17720 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17721             James E Wilson  <wilson@specifixinc.com>
17722
17723         PR debug/12860
17724         * dbxout.c (dbxout_symbol): Remove initialization of
17725         current_sym_code, current_sym_value, and current_sym_addr.
17726         (dbxout_symbol_location): Same.
17727         (dbxout_prepare_symbol): Zero current_sym_code,
17728         current_sym_value, and current_sym_addr.
17729
17730 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17731
17732         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17733         check is done first.
17734
17735 2004-01-09  Eric Christopher  <echristo@redhat.com>
17736
17737         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17738         if we're running mark_constant_function.
17739
17740 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17741
17742         PR target/12561
17743         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17744
17745 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17746
17747         PR debug/11231
17748         * dbxout.c (dbxout_type_fields): Return if any item is
17749         error_mark_node or the type is error_mark_node.
17750
17751 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17752
17753         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17754         exactly what is expected as a 'long double'.
17755         (_xlqadd): When a value to be returned is representable as a
17756         'double', just return it directly, do not construct it using a union.
17757         Also, correct final fixup.
17758         (_xlqmul): Likewise.
17759         (_xlqdiv): Likewise.
17760         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17761
17762         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17763
17764 2004-01-09  Richard Henderson  <rth@redhat.com>
17765
17766         * recog.c (constrain_operands): Validate mem operands.
17767
17768 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17769
17770         * gcc.c (init_spec): Remove -lunwind from shared case.
17771         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17772
17773 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17774
17775         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17776         * configure: Regenerate
17777
17778 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17779
17780         PR c/11234
17781         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17782         between function and object pointers.
17783         (digest_init): When comparing a pointer to function type to the
17784         target type, only apply TREE_TYPE once to the pointer to function
17785         type.
17786         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17787         function pointer rather than casting it to a function pointer.
17788         (for_each_eh_label): Update caller.
17789         * recog.h (struct insn_data): Use a struct or union for output.
17790         * genoutput.c (output_insn_data): Update.
17791         * final.c (get_insn_template): Update.
17792
17793 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17794
17795         * expr.h (expand_expr): Make it a macro, not a function.
17796         (expand_expr_real): New function.
17797         * expr.c (store_expr): Adjust logic for deciding whether or not to
17798         copy the value returned by expand_expr.
17799         (expand_expr): Rename to ...
17800         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17801         calls to language hooks.
17802         * c-common.h (c_expand_expr): Adjust prototype.
17803         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17804         * langhooks-def.h (lhd_expand_expr): Change prototype.
17805         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17806         * langhooks.h (lang_hooks): Change type of expand_expr.
17807         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17808         (last_expr_alt_rtl): Likewise.
17809         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17810         (clear_last_expr): Clear it.
17811         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17812         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17813         * tree.def (RTL_EXPR): Give it an additional operand.
17814         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17815
17816 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17817
17818         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17819         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17820
17821 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17822
17823         PR target/13380.
17824         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17825         or (ne:SI (reg:CC 17) (const_int 0)).
17826         Be specific about modes wherever possible.
17827
17828 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17829
17830         * config/m32r/m32r.c (m32r_expand_block_move): Call
17831         gen_movestrsi_internal with two more arguments.
17832         (m32r_output_block_move): Adjust operand numbers.
17833         Properly update the source and destination pointers.
17834         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17835         'r+'.  Change the set detinations to match_operand.
17836
17837 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17838
17839         * final.c (FIRST_INSN_ADDRESS): Remove.
17840         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17841         * system.h (FIRST_INSN_ADDRESS): Poison.
17842         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17843         * config/m32r/m32r-protos.h: Remove the prototype for
17844         m32r_first_insn_address.
17845         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17846         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17847         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17848
17849 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17850
17851         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17852         we just created.
17853         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17854         emitted as subrange types too.
17855         (subrange_type_die): Add handling of enumeration subtypes.
17856
17857 2004-01-08  Richard Henderson  <rth@redhat.com>
17858
17859         PR opt/12441
17860         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17861         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17862         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17863         (ix86_address_cost): Be prepared for SUBREGed registers.
17864         (legitimate_address_p): Accept SUBREGed registers.
17865
17866 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17867
17868         * Makefile.in: Rename configure.in to configure.ac
17869         * doc/sourcebuild.texi: Likewise.
17870         * configure: Regenerate.
17871         * config.in: Regenerate.
17872
17873 2004-01-08  Stuart Hastings  <stuart@apple.com>
17874
17875         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17876
17877 2004-01-08  Jan Hubicka  <jh@suse.cz>
17878
17879         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17880
17881 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17882
17883         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17884         (UNSPEC_FIX_TRUNC_TF): New constant.
17885         (movtf_internal): Make splitter active only when insn is active.
17886         (extenddftf2): Rewrite to properly load zero into low part.
17887         (extenddftf2_internal): New.
17888         (extendsftf2): Rewrite.
17889         (truncdftf2): Correct length.
17890         (floatditf2): Delete.
17891         (fix_trunc_helper): New.
17892         (fix_trunctfdi2): Use fix_trunc_helper.
17893         (fix_trunctfsi2): Likewise.fix_trunc
17894         (fix_trunctfsi2_internal): New.
17895
17896         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17897         addresses are legitimate on Darwin even when flag_pic.
17898         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17899         non-offsettable addresses for loads of TFmode constants.
17900
17901 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17902
17903         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17904         variables in the appropriate bss section.
17905
17906 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17907
17908         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17909         target_flags has MASK_POWERPC64 when -m64.
17910         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17911         to 620, 630, power3, power4 and rs64a entries.
17912         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17913
17914 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17915
17916         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17917         floating-point constants.
17918
17919 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17920
17921         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17922         Create the subrange_type DIE using the given context DIE.
17923         (modified_type_die): Update call to subrange_type_die.
17924
17925 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17926
17927         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17928         Add multiple-include guard.
17929
17930 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17931
17932         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17933         all vector constant loadable by vsplt*.
17934         (output_vec_const_move): Likewise.
17935
17936 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17937
17938         PR c/6024
17939         * c-typeck.c (comptypes): Only treat enumerated types in the same
17940         translation unit as compatible with each other when they are the
17941         same type.
17942         * doc/extend.texi: Update.
17943
17944 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17945
17946         PR c/12165
17947         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17948         array type from the array element type.
17949
17950 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17951
17952         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17953         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17954         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17955         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17956         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17957
17958 2004-01-06  Eric Christopher  <echristo@redhat.com>
17959
17960         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17961         (DWARF2_DEBUGGING_INFO): Define.
17962         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17963         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17964         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17965         for irix as.
17966         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17967         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17968         * config/mips/iris5gas.h: Ditto.
17969         (DBX_DEBUGGING_INFO): Remove.
17970         (DWARF2_DEBUGGING_INFO): Ditto.
17971         (MIPS_DEBUGGING_INFO): Ditto.
17972         (PREFERRED_DEBUGGING_TYPE): Ditto.
17973         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17974         (PREFERRED_DEBUGGING_TYPE): Ditto.
17975         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17976         * config/mips/elf64.h: Ditto.
17977
17978 2004-01-06  Jan Hubicka  <jh@suse.cz>
17979
17980         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17981         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17982
17983 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17984
17985         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17986         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17987         * config/rs6000/darwin-ldouble.c: New.
17988
17989         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17990         for constants.
17991         (constant_subword): Delete.
17992         * rtl.h (constant_subword): Delete prototype.
17993         (immed_double_const): Is not in varasm.c.
17994         * simplify-rtx.c (simplify_immed_subreg): New.
17995         (simplify_subreg): Use simplify_immed_subreg.
17996
17997         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17998         than trying to generate RTL directly.
17999         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18000         RTL directly.
18001
18002         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18003
18004 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18005
18006         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18007         function into a separate macro.
18008         (read_only_data_section): Add void argument.
18009         (private_data_section): Same.
18010         (read_only_private_data_section): Same.
18011         (toc_section): Same.
18012
18013 2004-01-06  Jan Hubicka  <jh@suse.cz>
18014
18015         * invoke.texi:  Remove typo in last change.
18016
18017         PR target/10301
18018         * config.gcc: Accept opteron and athlon-64 as variants
18019         of k8.
18020         * i386.c (override_options): Likewise.
18021         * invoke.texi (i386 -mtune): Expand documentation.
18022
18023 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18024
18025         * alias.c: Fix comment typos.
18026         * builtins.c: Likewise.
18027         * cfg.c: Likewise.
18028         * df.c: Likewise.
18029         * dominance.c: Likewise.
18030         * dwarf2out.c: Likewise.
18031         * emit-rtl.c: Likewise.
18032         * expr.c: Likewise.
18033         * final.c: Likewise.
18034         * fold-const.c: Likewise.
18035         * gcse.c: Likewise.
18036         * genattrtab.c: Likewise.
18037         * genrecog.c: Likewise.
18038         * gensupport.c: Likewise.
18039         * ggc-zone.c: Likewise.
18040         * integrate.c: Likewise.
18041         * local-alloc.c: Likewise.
18042         * loop.c: Likewise.
18043         * recog.c: Likewise.
18044         * regmove.c: Likewise.
18045         * reg-stack.c: Likewise.
18046         * reorg.c: Likewise.
18047         * rtlanal.c: Likewise.
18048         * rtl.h: Likewise.
18049         * sched-ebb.c: Likewise.
18050         * simplify-rtx.c: Likewise.
18051         * toplev.c: Likewise.
18052         * varasm.c: Likewise.
18053
18054 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18055
18056         * doc/install.texi: Fix typos.
18057         * doc/invoke.texi: Likewise.
18058         * doc/md.texi: Likewise.
18059
18060 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18061
18062         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18063
18064 2004-01-06  Jan Hubicka  <jh@suse.cz>
18065
18066         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18067         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18068         of MMX_REGPARM.
18069         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18070         add MMX_REGPARM.
18071         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18072         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18073         (MMX_REGPARM_MAX): Similarly for -mmmx.
18074
18075 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18076
18077         * config/sh/linux.h: Fix comment formatting.
18078         * config/sh/netbsd-elf.h: Likewise.
18079         * config/sh/sh.c: Likewise.
18080         * config/sh/sh.h: Likewise.
18081         * config/sh/vxworks.h: Likewise.
18082
18083 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18084
18085         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18086         * toplev.c (output_file_directive): Don't use
18087         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18088
18089 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18090
18091         * toplev.c: Fix broken checkin of 2003-12-30.
18092
18093 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18094
18095         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18096         (USING_MMAP): We don't support non-mmap.
18097         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18098         large objects.
18099         (struct page_entry): Remove bytes_free.
18100         (struct page_table_chain): Remove.
18101         (struct globals): Remove page_table member.
18102         (loookup_page_table_entry): Function deleted.
18103         (set_page_table_entry): Ditto.
18104         (ggc_allocated_p): No longer need page table lookups.
18105         (ggc_marked_p): Ditto.
18106         (alloc_small_page): Don't care about bytes_free anymore.
18107         (alloc_large_page): Round up size.
18108         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18109         their size the new way.
18110         Remove page table lookups and setting.
18111         (ggc_get_size): Calculate large object size the new way.
18112         (sweep_pages): Redo to account for fact that we no longer have
18113         bytes_free.
18114         (ggc_collect): No longer need to reincrement bytes_free.
18115         (ggc_pch_alloc_object): Handle new large objects properly.
18116         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18117
18118 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18119
18120         * doc/invoke.texi: Remove a page break.
18121
18122 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18123
18124         * config/avr/avr.c (avr_output_function_prologue): Remove an
18125         extra pair of curly braces.
18126
18127 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18128
18129         * config/mn10300/mn10300.c: Fix comment formatting.
18130         * config/mn10300/mn10300.h: Likewise.
18131
18132 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18133
18134         * tree.h: Update documentation on nothrow_flag.
18135         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18136         types.
18137
18138 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18139
18140         * doc/invoke.texi: Remove traces of dead ports.
18141
18142 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18143
18144         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18145         option.
18146
18147 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18148
18149         PR target/12945
18150         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18151         counter labels.
18152         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18153         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18154         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18155         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18156         (mips_symbol_insns): Don't trust the local/global classification.
18157         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18158         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18159         -mno-explicit-relocs.
18160         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18161         between local and global symbols.
18162
18163 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18164
18165         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18166         (mips_preferred_reload_class): Declare.
18167         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18168         (EXTRA_CONSTRAINT): Update accordingly.
18169         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18170         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18171         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18172         mips_dangerous_for_la25_p.
18173         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18174         if mips_dangerous_for_la25_p.
18175
18176 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18177
18178         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18179         warning.
18180
18181 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18182
18183         * configure.ac: Use AC_PROG_CPP_WERROR.
18184         * configure: Regenerate.
18185
18186 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18187
18188         * .cvsignore: Add autom4te.cache.
18189
18190 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18191
18192         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18193         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18194         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18195         then architecture options, then ABI options.  General rewording.
18196
18197 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18198
18199         PR c/3414
18200         * doc/extend.texi: Clarify definition of malloc attribute.
18201
18202 2004-01-04  Jan Hubicka  <jh@suse.cz>
18203
18204         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18205         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18206         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18207         (cgraph_inline_p): Add extra argument reason.
18208         * cgraphunit.c: Minor formating fixes.
18209         cgraph_first_inlined_callee): New functions.
18210         (record_call_1): Record builtins too.
18211         (cgraph_analyze_function): Update inline_failed messages.
18212         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18213         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18214         (cgraph_check_inline_limits): Likewise; Add argument reason.
18215         (cgraph_set_inline_failed): New static function.
18216         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18217         reasons.
18218         (cgraph_inline_p): Add new argument reason.
18219         * tree-inline.c (expand_call_inline):  Update warning.
18220
18221 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18222
18223         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18224         with modern equivalents.
18225         * configure: Regenerate.
18226
18227         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18228         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18229         * configure: Regenerate.
18230
18231         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18232
18233         * configure.in: Rename to configure.ac.
18234         * configure.ac: Renamed from configure.in; make minimum necessary
18235         changes for autoconf 2.5x.
18236         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18237         * configure: Regenerate with autoconf 2.57.
18238
18239 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18240
18241         * config/mips/linux.h: Fix comment formatting.
18242         * config/mips/mips.c: Likewise.
18243         * config/mips/mips.h: Likewise.
18244         * config/mips/mips.md: Likewise.
18245         * config/mips/netbsd.h: Likewise.
18246         * config/mips/windiss.h: Likewise.
18247
18248 2004-01-02  Richard Henderson  <rth@redhat.com>
18249
18250         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18251         for sse and 387; add suppression for mmx.
18252
18253 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18254
18255         * loop.c (loop_optimize): Free all loops_info's mems.
18256
18257         * c-typeck.c (finish_init): Free spelling_base before
18258         setting it again.
18259
18260         * cfgloop.c (flow_loops_find): Always free the sbitmap
18261         headers.
18262
18263         * predict.c (estimate_probability): Free bbs after being
18264         done with it.
18265
18266 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18267
18268         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18269         const_8bit_operand and call_address_operand.
18270
18271 2004-01-02  Jan Hubicka  <jh@suse.cz>
18272
18273         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18274         when there is nothing to inline but warnings are requested.
18275         (cgraph_decide_inlining):  Fix memory leak.
18276
18277 2004-01-02  Jan Hubicka  <jh@suse.cz>
18278
18279         * expr.c (store_constructor):  Fix pasto in previous patch.
18280
18281 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18282
18283         * config/i386/cygming.h: Fix comment formatting.
18284         * config/i386/djgpp.h: Likewise.
18285         * config/i386/gthr-win32.c: Likewise.
18286         * config/i386/i386-interix.h: Likewise.
18287         * config/i386/i386.c: Likewise.
18288         * config/i386/i386.h: Likewise.
18289         * config/i386/openbsd.h: Likewise.
18290         * config/i386/winnt.c: Likewise.
18291         * config/i386/xm-mingw32.h: Likewise.
18292
18293 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18294
18295         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18296         copyright and last modification dates.
18297
18298 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18299
18300         * doc/install.texi (Specific): Mention x86_64.
18301
18302 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18303
18304         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18305         Call force_operand on plus_constant result.
18306
18307 2004-01-01  Jan Hubicka  <jh@suse.cz>
18308
18309         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18310         * expr.c (store_constructor): Use vec_init pattern.
18311         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18312         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18313         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18314         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18315         New patterns.
18316         (sse2_unpc?pd): Fix pattern.
18317         (sse2_movlpd): Kill.
18318         (sse2_movsd): Deal with movlpd too.
18319         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18320         (ix86_expand_vector_init): New.
18321         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18322         * md.texi (vec_set, vec_extract): Document
18323
18324 2003-12-31  Jan Hubicka  <jh@suse.cz>
18325
18326         PR opt/13473
18327         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18328         ASM input operands
18329
18330         PR opt/12617
18331         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18332         (dump_file): Likewise.
18333         (rest_of_compilation): Likewise.
18334
18335         PR debug/13367
18336         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18337         flag_really_no_inline we inline always_inline functions.
18338         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18339         for non-always_inline functions when there is flag_really_no_inline.
18340         (cgraph_decide_inlining): Limit work done when not inlining.
18341         (cgraph_decide_inlining_incrementally): Likewise.
18342         (cgraph_optimize_function): Check whether something got inlined.
18343         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18344         extern inline functions when not inlining.
18345
18346         * opts.c (decode_options):  Disable crossjumping at -O1
18347         * invoke.texi (-O1): Document change.
18348
18349 See ChangeLog.10 for earlier changes.