OSDN Git Service

gcc/ChangeLog:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-15  Jeff Law  <law@redhat.com>
2
3         * fold-const.c (swap_tree_comparison): No longer static.
4         (tree_swap_operands_p): Similarly.  Return true if both operands
5         are SSA_NAMEs and the first operand has a higher version number than
6         the second operand.
7         * tree.h (swap_tree_comparison): Prototype.
8         (tree_swap_operands_p): Prototype.
9         * tree-ssa-operands.c (get_expr_operands): For commutative
10         operators and relational comparisons, canonicalize the
11         order of the operands.
12
13 2004-06-15  Richard Henderson  <rth@redhat.com>
14
15         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
16         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
17         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
18         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
19         (finish_fname_decls, fname_decl): Use statement_lists.
20         (c_expand_expr_stmt): Don't set last_expr_type.
21         (c_type_hash): Fix indentation.
22         (c_safe_from_p): Don't follow TREE_CHAIN.
23         (c_tree_chain_matters_p): Remove.
24         * c-common.def (SCOPE_STMT): Remove.
25         (CLEANUP_STMT): Redefine to contain its own body.
26         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
27         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
28         Add x_cur_stmt_list.
29         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
30         (cur_stmt_list): New.
31         (STATEMENT_LIST_STMT_EXPR): New.
32         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
33         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
34         (CLEANUP_BODY): New.
35         (CLEANUP_DECL): Move to operand 2.
36         (c_common_stmt_codes): Remove SCOPE_STMT.
37         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
38         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
39         (c_push_function_context, c_pop_function_context): Don't save it.
40         (finish_decl): Set TREE_USED on the decl for a cleanup.
41         Use push_cleanup.
42         (store_parm_decls): Use statement lists.
43         (finish_function): Remove compstmt rule workaround.  Use statement
44         lists.  Call finish_fname_decls after finalizing the body.
45         (c_begin_compound_stmt): Move to c-typeck.c.
46         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
47         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
48         (c_genericize): Invoke them.
49         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
50         (c_build_bind_expr): Export.
51         (gimplify_block, gimplify_cleanup): Remove.
52         (gimplify_condition): Use gimplify_stmt.
53         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
54         (gimplify_if_stmt): Remove recursion hack.
55         (c_gimplify_expr): Remove STMT_EXPR handling.
56         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
57         (is_last_stmt_of_scope): Remove.
58         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
59         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
60         c_end_compound_stmt.
61         * c-objc-common.c (build_cdtor): Likewise.
62         * c-parse.in (primary): Use c_finish_stmt_expr.
63         (push_scope, pop_scope): Remove.
64         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
65         (c99_block_end, compstmt): Use c_end_compound_stmt.
66         (c99_block_lineno_labeled_stmt): Likewise.
67         (compstmt_primary_start): Use c_begin_stmt_expr.
68         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
69         (do_stmt_start): Fill in body directly.
70         (lineno_stmt): Avoid setting lineno on constants.
71         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
72         Remove SCOPE_STMT.
73         * c-semantics.c (begin_stmt_tree): Remove.
74         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
75         (add_stmt): Use statement lists.
76         (add_scope_stmt, finish_stmt_tree): Remove.
77         (push_cleanup): New.
78         * c-tree.h: Move some decls from c-common.h.
79         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
80         (do_case, c_finish_case): Likewise.
81         (c_finish_then): Take body for then as argument.
82         (c_finish_else): Similarly.
83         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
84         c_finish_for_stmt_incr, c_finish_for_stmt): New.
85         (c_begin_stmt_expr, c_finish_stmt_expr): New.
86         (c_begin_compound_stmt): Do scope management.
87         (c_end_compound_stmt): New.
88         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
89         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
90         Look through exception handling constructs.
91         (gimplify_bind_expr): Accept temporary argument.
92         (gimplify_target_expr): Special case BIND_EXPR bodies.
93         (gimplify_expr): Handle fallback == fb_none like a statement.
94         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
95         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
96         * langhooks.h (tree_chain_matters_p): Remove.
97         * stub-objc.c (objc_clear_super_receiver): New.
98         * tree-gimple.h (voidify_wrapper_expr): Update decl.
99         (append_to_statement_list, append_to_statement_list_force): Move
100         to tree-iterator.h.
101         * tree-inline.c (expand_call_inline): Update call.
102         (clone_body): Use statement lists.
103         (walk_tree): Don't check tree_chain_matters_p.
104         (copy_tree_r): Likewise.
105         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
106         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
107         * tree-iterator.h (append_to_statement_list,
108         append_to_statement_list_force): Moved from tree-gimple.h.
109         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
110         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
111         (objc_enter_block): Likewise.
112         (objc_exit_block): Use c_end_compound_stmt.
113         (objc_build_try_enter_fragment): Add #error and comment for
114         rewriting for OBJCPLUS.
115         (objc_build_extract_fragment, objc_build_try_epilogue,
116         objc_build_catch_stmt, objc_build_finally_prologue,
117         objc_build_finally_epilogue): Update for C statement builders.
118         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
119         Remove.
120
121 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
122
123         * df.c (df_reg_clobber_gen): Removed.
124         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
125         Make more effective for hard regs.
126         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
127
128 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
129
130         * c-pragma.h (c_lex_string_translate): Change type to int.
131         * c-parse.in: Change all assignments of c_lex_string_translate
132         to true and false to 1 and 0.
133         * c-lex.c (c_lex_string_translate): Likewise.
134         (lex_string): Convert string without translation in the -1
135         case.
136
137 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
138
139         * convert.h: Add include guards
140
141 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
142
143         * tree-flow-inline.h: Document all functions.
144         
145 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
146
147         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
148         * tree-dfa.c (create_stmt_ann): Ditto.
149         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
150         * tree-inline.c (estimate_num_insns_1): Ditto.
151         * tree.c (tree_size): Ditto.
152         (make_node_stat): Ditto.
153         (tree_node_structure): Ditto.
154         (ephi_node_elt_check_failed): Remove.
155         (is_essa_node): Ditto.
156         * tree.def (EPHI_NODE): Ditto.
157         (EEXIT_NODE): Ditto.
158         (EUSE_NODE): Ditto.
159         (EKILL_NODE): Ditto.
160         * tree.h (EREF_NODE_CHECK): Remove.
161         (EPHI_NODE_ELT_CHECK): Ditto.
162         (struct tree_eref_common): Ditto.
163         (struct tree_euse_node): Ditto.
164         (struct ephi_arg_d): Ditto.
165         (struct tree_ephi_node): Ditto.
166         (ephi_node_elt_check_failed): Remove prototype.
167         (is_essa_node): Ditto.
168         (enum tree_node_structure_enum): Remove TS_E*_NODE.
169         (union tree_node): Remove E*_NODE uses.
170
171 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
172
173         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
174         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
175         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
176         Likewise.
177         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
178         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
179         expand_builtin_strcmp, expand_builtin_strncmp,
180         expand_builtin_frame_address): Likewise.
181         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
182         insert_one_insn): Likewise.
183         * calls.c (prepare_call_address, precompute_register_parameters,
184         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
185         * cfganal.c (flow_active_insn_p): Likewise.
186         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
187         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
188         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
189         make_extraction, recog_for_combine, gen_lowpart_for_combine,
190         simplify_comparison, record_dead_and_set_regs_1,
191         record_dead_and_set_regs, record_promoted_value,
192         check_promoted_subreg, get_last_value_validate, get_last_value,
193         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
194         unmentioned_reg_p_1): Likewise.
195         * conflict.c (mark_reg): Likewise.
196         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
197         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
198         merge_equiv_classes, flush_hash_table, invalidate,
199         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
200         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
201         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
202         record_jump_cond, cse_insn, addr_affects_sp_p,
203         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
204         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
205         cse_cc_succs, cse_condition_code_reg): Likewise.
206         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
207         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
208         cselib_record_set, cselib_record_sets): Likewise.
209         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
210         dbxout_block): Likewise.
211         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
212         * dojump.c (do_jump): Likewise.
213         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
214         is_based_loc, rtl_for_decl_location): Likewise.
215         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
216         set_decl_incoming_rtl, mark_user_reg): Likewise.
217         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
218         copy_to_suggested_reg, allocate_dynamic_stack_space,
219         probe_stack_range, hard_function_value): Likewise.
220         * expmed.c (store_bit_field, store_fixed_bit_field,
221         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
222         extract_split_bit_field, expand_divmod, emit_store_flag_force):
223         Likewise.
224         * expr.c (convert_move, convert_modes,
225         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
226         use_group_regs, emit_move_insn, emit_move_insn_1,
227         compress_float_constant, push_block, emit_single_push_insn,
228         emit_push_insn, get_subtarget, expand_assignment, store_expr,
229         store_constructor, store_field, force_operand, safe_from_p,
230         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
231         Likewise.
232         * final.c (profile_function, final_scan_insn, alter_subreg,
233         get_mem_expr_from_op, output_asm_operand_names, output_operand,
234         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
235         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
236         find_regno_partial, propagate_one_insn, init_propagate_block_info,
237         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
238         attempt_auto_inc, find_auto_inc, mark_used_regs,
239         count_or_remove_death_notes_bb): Likewise.
240         * function.c (find_temp_slot_from_address, update_temp_slot_address,
241         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
242         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
243         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
244         purge_single_hard_subreg_set, instantiate_decl,
245         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
246         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
247         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
248         expand_function_start, diddle_return_value, clobber_return_register,
249         expand_function_end, keep_stack_depressed, handle_epilogue_set,
250         update_epilogue_consts): Likewise.
251         * genemit.c (gen_exp, gen_insn): Likewise.
252         * genrecog.c (make_insn_sequence): Likewise.
253         * global.c (global_conflicts, expand_preferences, mark_reg_store,
254         mark_reg_conflicts, set_preference, reg_becomes_live,
255         build_insn_chain, mark_reg_change): Likewise.
256         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
257         Likewise.
258         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
259         Likewise.
260         * integrate.c (copy_rtx_and_substitute, try_constants,
261         subst_constants, mark_stores, allocate_initial_values): Likewise.
262         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
263         delete_computation, rtx_renumbered_equal_p, true_regnum,
264         reg_or_subregno): Likewise.
265         * lcm.c (reg_dies, reg_becomes_live): Likewise.
266         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
267         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
268         wipe_dead_reg, no_conflict_p): Likewise.
269         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
270         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
271         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
272         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
273         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
274         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
275         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
276         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
277         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
278         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
279         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
280         try_swap_copy_prop): Likewise.
281         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
282         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
283         Likewise.
284         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
285         reload_cse_simplify_operands, reload_combine,
286         reload_combine_note_store, reload_combine_note_use,
287         reload_cse_move2add, move2add_note_store): Likewise.
288         * print-rtl.c (print_rtx): Likewise.
289         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
290         contains_pseudo, handle_asm_insn): Likewise.
291         * ra-debug.c (ra_print_rtx_object, dump_constraints,
292         dump_static_insn_cost): Likewise.
293         * ra-rewrite.c (slots_overlap_p, emit_colors,
294         remove_suspicious_death_notes): Likewise.
295         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
296         register_operand, scratch_operand, nonmemory_operand,
297         constrain_operands): Likewise.
298         * reg-stack (check_asm_stack_operands, remove_regno_note,
299         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
300         subst_asm_stack_regs): Likewise.
301         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
302         record_address_regs, reg_scan_mark_refs): Likewise.
303         * regmove.c (discover_flags_reg, replacement_quality,
304         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
305         fixup_match_1): Likewise.
306         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
307         kill_set_value, copyprop_hardreg_forward_1): Likewise.
308         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
309         reload_inner_reg_of_subreg, can_reload_into, push_reload,
310         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
311         operands_match_p, decompose, find_reloads, find_reloads_toplev,
312         find_reloads_address, subst_indexed_address, find_reloads_address_1,
313         find_reloads_subreg_address, find_replacement,
314         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
315         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
316         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
317         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
318         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
319         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
320         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
321         do_output_reload, emit_reload_insns, gen_reload,
322         delete_address_reloads_1, inc_for_reload): Likewise.
323         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
324         update_reg_unused_notes, fill_slots_from_thread): Likewise.
325         * resource.c (update_live_status, mark_referenced_resources,
326         mark_set_resources, mark_target_live_regs): Likewise.
327         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
328         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
329         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
330         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
331         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
332         parms_set, find_first_parameter_load, keep_with_call_p,
333         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
334         num_sign_bit_copies1): Likewise.
335         * rtlhooks.c (gen_lowpart_general): Likewise.
336         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
337         sched_analyze): Likewise.
338         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
339         Likewise.
340         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
341         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
342         simplify_binary_operation, simplify_const_relational_operation,
343         simplify_subreg): Likewise.
344         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
345         expand_end_stmt_expr, expand_return, expand_decl,
346         expand_anon_union_decl): Likewise.
347         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
348         find_splittable_regs, find_splittable_givs, find_common_reg_term,
349         loop_iterations): Likewise.
350         * var-tracking.c (variable_union, variable_part_different_p,
351         variable_different_p, count_uses, add_uses, add_stores,
352         compute_bb_dataflow, set_variable_part, delete_variable_part,
353         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
354         Likewise.
355         * varasm.c (assemble_variable): Likewise.
356
357 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
358
359         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
360         definition.
361         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
362         #undef and #if 0'd definition.
363
364 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
365
366         * combine.c (distribute_notes): Comment typo fix.
367
368 2004-06-15  Roger Sayle  <roger@eyesopen.com>
369
370         * expmed.c (synth_mult): Mask bits of the multiplier to the
371         machine mode of the multiplication.  Don't consider shifts
372         by more than (or equal to) the width of the operation's mode.
373
374 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
375
376         * doc/install.texi: Yet another update for autoconf
377         and automake versions.
378
379 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
380
381         * function.h (struct function): Remove cannot_inline field.
382         (current_function_cannot_inline): Remove.
383         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
384         Simplify conditionals to ignore warn_return_type.
385         * tree-optimize.c (tree_rest_of_compilation): Do not reset
386         DECL_DEFER_OUTPUT.
387         * objc/objc-act.c (build_module_descriptor, finish_method_def):
388         Do not set current_function_cannot_inline.
389
390 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
391
392         * cfglayout.c (fixup_reorder_chain): Handle case where the
393         destination of E_TAKEN is EXIT_BLOCK_PTR.
394
395 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
396
397         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
398
399 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
400
401         * fold-const.c (operand_equal_p): Update comment.
402
403 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
404
405         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
406         (INCOMING_RETURN_ADDR_RTX): Define.
407         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
408         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
409         __builtin_return_address(0).
410         (m32r_return_addr): Added for __builtin_return_address(0).
411         (m32r_reload_lr): Ditto.
412
413         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 
414         
415 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
416
417         * doc/install.texi (Prerequisites): Update libbanshee,
418         fastjar, libcpp, libjava/libltdl entries to
419         automake 1.8.5.
420
421 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
422             Olivier Hainque  <hainque@act-europe.fr>
423
424         * function.c (fixup_var_refs): Also adjust the start of sequence
425         after fixing up the insns.
426
427 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
428
429         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
430
431 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
432
433         * doc/install.texi (Prerequisites): Update libstdc++ entry to
434         automake 1.8.5.
435
436 2004-06-14  Eric Christopher  <echristo@redhat.com>
437
438         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
439         to -mtpf-trace (-mno-tpf-trace).
440         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
441         documentation.
442
443 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
444
445         * real.c: Fix bit count in head comment.
446
447 2004-06-14  Jeff Law  <law@redhat.com>
448
449         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
450         PHIs where the destination or an argument is marked with
451         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
452
453 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
454
455         PR middle-end/15945
456         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
457         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
458
459 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
460
461         * opts.sh (var_args): Fix regexp.
462
463 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
464
465         PR target/15178
466         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
467
468 2004-06-14  Paul Brook  <paul@codesourcery.com>
469
470         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
471
472 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
473
474         * Makefile.in (FLAGS_H): New.
475         (flags.h): Replace by FLAGS_H.
476         * c.opt: Document Var, VarExists, Init and Report attributes.
477         * common.opt: Fill the values of the attributes.
478         * diagnostic.c (flag_fatal_errors): Do not define.
479         * except.c (flag_non_call_exceptions): Do not define.
480         * flags.h: Include options.h.  Remove declarations conflicting with
481         the automatically defined ones.
482         * opts.c: Remove automatically defined variables.
483         (handle_option): Perform default initialization.
484         (common_handle_option): Do not handle options covered by the
485         default initialization.
486         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
487         fields.
488         (CL_REPORT): New.
489         * opts.sh: Generate variable declarations, handle CL_REPORT.
490         * toplev.c: Remove automatically defined variables.
491         (f_options): Removed.
492         (print_switch_values): Use cl_options instead of f_options.
493         * toplev.h (version_flag): Declaration removed.
494
495 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
496
497         * config/sparc/sparc.h: Correct comment about availability of
498         little endian option.
499
500         * config.gcc: Remove sparc64-*-aout*.
501         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
502         * config/sparc/sp64-aout.h: Remove.
503         * config/sparc/aout.h: Remove.
504
505 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
506
507         * config/s390/s390.c: Include "tree-gimple.h".
508         (s390_gimplify_va_arg): New function.
509         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
510         (s390_va_arg): Remove.
511         * config/s390/s390-protos.h (s390_va_arg): Remove.
512         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
513
514 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
515
516         * basic-block.h (could_fall_through): Declare.
517         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
518         Fail if the source already has a fallthrough edge to the exit
519         block pointer.
520         (could_fall_through): New function.
521         * cfgbuild.c (make_edges): Check if we already have a fallthrough
522         edge to the exit block pointer.
523         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
524         not called before reload has completed.
525         Handle special case of first block having a fall-through exit edge.
526         (cfg_layout_finalize): Don't call it before reload or if we have
527         rtl epilogues.
528         (fixup_reorder_chain): A fall through to the exit block does not
529         require the block to come last.  Add sanity checks.
530         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
531         edges to the exit block.
532         * function.c (cfglayout.h): #include.
533         (thread_prologue_and_epilogue_insns): If we have neither return nor
534         epilogue, but a fall through to the exit block from mid-function,
535         force a non-fall-through exit.
536         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
537
538 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
539
540         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
541         for power5 and rs64a.  Correct condition for default.  Correct power3,
542         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
543
544 2004-06-13  Steven Bosscher <stevenb@suse.de>
545
546         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
547         Revert previous change, don't use CALL_P.
548
549 2004-06-13  Jason Merrill  <jason@redhat.com>
550
551         * tree.h: Move std_gimplify_va_arg_expr protoype here.
552         * tree-gimple.h: From here.
553
554 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
555
556         Fix PR tree-optimization/15979
557         Fix PR tree-optimization/15981
558         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
559         try to insert values undefined along some path.
560
561 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
562
563         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
564         are available everywhere too.
565
566 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
567
568         * fold-const.c (fold_checksum_tree <case 't'>): Only
569         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
570         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
571         EXPR is an INTEGERAL_TYPE or a scalar float type.
572
573 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
574
575         * tree-sra.c (tree_sra): Update documentation.
576
577 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
578
579         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
580         function_types_compatible_p, type_lists_compatible_p): Remove
581         flags parameter.
582         * c-tree.h (comptypes): Likewise.
583         (COMPARE_STRICT): Remove.
584         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
585         callers changed.
586
587 2004-06-13  Eric Christopher  <echristo@redhat.com>
588
589         * c-decl.c (diagnose_mismatched_decls): Improve error message.
590         Remove unused code.
591         * c-typeck.c (comptypes): Add location in standard we're checking.
592
593 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
594
595         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
596         version 3.3.4.
597
598 2004-06-12  Roger Sayle  <roger@eyesopen.com>
599
600         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
601         index by machine mode.
602         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
603         tables inside the loop over machine modes.
604         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
605         expand_divmod): Index shift*_cost by the appropriate machine mode.
606
607 2004-06-12  Eric Christopher  <echristo@redhat.com>
608
609         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
610         * config/s390/s390.md: Ditto.
611         * config/s390/s390.c: Ditto.
612         (s390_frame_info): Conditionalize frame and setup info on
613         TARGET_TPF_PROFILING.
614         (s390_arg_frame_offset): Ditto.
615
616 2004-06-12  Roger Sayle  <roger@eyesopen.com>
617
618         * fold-const.c (omit_two_operands): New function.
619         * tree.h (omit_two_operands): Prototype here.
620         * builtins.c (fold_builtin_unordered_cmp): New function to lower
621         C99 unordered comparison builtins to the appropriate tree nodes.
622         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
623         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
624         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
625         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
626         (simplify_builtin_memcmp, simplify_builtin_strncmp,
627         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
628         omit_two_operands function to build the required COMPOUND_EXPRs.
629
630 2004-06-12  Steven Bosscher <stevenb@suse.de>,
631             Andreas Jaeger  <aj@suse.de>
632
633         * gcse.c (record_set_info): Use predicates like REG_P.
634         (mems_conflict_for_gcse_p): Likewise.
635         (load_killed_in_block_p): Likewise.
636         (hash_expr_1): Likewise.
637         (insert_set_in_table): Likewise.
638         (gcse_constant_p): Likewise.
639         (hash_scan_set): Likewise.
640         (hash_scan_insn): Likewise.
641         (canon_list_insert): Likewise.
642         (record_last_mem_set_info): Likewise.
643         (record_last_set_info): Likewise.
644         (compute_hash_table_work): Likewise.
645         (mark_set): Likewise.
646         (mark_clobber): Likewise.
647         (mark_oprs_set): Likewise.
648         (compute_transp): Likewise.
649         (find_avail_set): Likewise.
650         (cprop_insn): Likewise.
651         (do_local_cprop): Likewise.
652         (cprop): Likewise.
653         (find_implicit_sets): Likewise.
654         (find_bypass_set): Likewise.
655         (bypass_conditional_jumps): Likewise.
656         (insert_insn_end_bb): Likewise.
657         (pre_insert_copy_insn): Likewise.
658         (compute_transpout): Likewise.
659         (next_ls_expr): Likewise.
660         (invalidate_any_buried_refs): Likewise.
661         (compute_ld_motion_mems): Likewise.
662         (reg_set_info): Likewise.
663         (reg_clear_last_set): Likewise.
664         (find_moveable_store): Likewise.
665         (compute_store_table): Likewise.
666         (find_loads): Likewise.
667         (store_killed_in_insn): Likewise.
668         (insert_insn_start_bb): Likewise.
669         (reg_set_between_after_reload_p): Likewise.
670         (reg_used_between_after_reload_p): Likewise.
671         (is_jump_table_basic_block): Likewise.
672         (gcse_after_reload): Likewise.
673         (hash_scan_set_after_reload): Likewise.
674         (compute_hash_table_after_reload): Likewise.
675
676 2004-06-12  Steven Bosscher  <stevenb@suse.de>
677
678         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
679         (INSN_P): Don't look at the rtx code class, just explicitly
680         check for one of the tree RTX_INSN codes.
681
682 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
683
684         * c-typeck.c (default_function_array_conversion): Use
685         build_pointer_type not TYPE_POINTER_TO.
686
687 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
688
689         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
690         * configure, config.in: Regenerate.
691         * system.h: Unconditionally define bool as unsigned char,
692         BOOL_BITFIELD as unsigned int.
693         * domwalk.h: Use BOOL_BITFIELD.
694
695 2004-06-12  Andreas Jaeger  <aj@suse.de>
696
697         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
698         * libgcc-darwin.ver: Likewise.
699
700 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
701
702         * reload.c (find_reloads): Force reload for pseudo registers on big
703         endian machines.
704
705 2004-06-11  Steven Bosscher <stevenb@suse.de>
706
707         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
708         Don't try to mark anything control dependent on the entry or
709         exit blocks.
710
711 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
712
713         Fix Bug 15899
714         Fix Bug 15460
715         * tree.h (SSA_NAME_VALUE): New macro.
716         (struct tree_ssa_name): Add value_handle member.
717         * tree-ssa-pre.c: Replaced.
718         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
719         (struct cst_ann_d): New.
720         (struct expr_ann_d): New.
721         (union tree_ann_d): Add cst_ann, expr_ann.
722         * tree-dfa.c (create_cst_ann): New function.
723         (create_expr_ann): Ditto.
724         * tree-flow-inline.h (cst_ann): New function.
725         (expr_ann): Ditto.
726         (get_cst_ann): Ditto.
727         (get_expr_ann): Ditto..
728
729 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
730
731         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
732         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
733         _U_Qfcmp library function.
734         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
735         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
736
737         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
738         unspec used for loading address from DLT.
739         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
740         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
741         Don't use short code sequence when loading the address of a nonlocal
742         label.
743         (nonlocal_goto): New expander.
744         (indirect_goto): New jump pattern for nonlocal gotos.
745         (short_jump): Remove extra whitespace.
746         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
747         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
748         pattern.
749
750 2004-06-11  Roger Sayle  <roger@eyesopen.com>
751
752         * expmed.c (synth_mult): Add an additional MODE argument for the
753         machine mode of the multiplication.  Update recursive calls.  Use
754         mode instead of word_mode for determining operation costs.
755         (choose_mult_variant): Update calls to synth_mult with "mode".
756
757 2004-06-11  Richard Henderson  <rth@redhat.com>
758
759         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
760         and makes_aliased_stores.
761
762 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
763
764         * doc/install.text (--enable-shared): Fix typo.
765
766 2004-06-11  Richard Henderson  <rth@redhat.com>
767
768         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
769         argument.  Use internal post for call to gimplify_expr.  Tidy
770         rounded type size computation.
771         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
772         get_initialized_tmp_var.
773
774 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
775
776         * doc/install.texi (--enable-shared): Update libobjc's shared library
777         status.  Remove reference to libf2c.
778
779 2004-06-11  Jason Merrill  <jason@redhat.com>
780
781         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
782         * config/i386/i386.c (ix86_va_arg): Remove.
783         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
784         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
785         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
786         * config/alpha/alpha.c (alpha_va_arg): Remove.
787         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
788         * config/sparc/sparc.c (sparc_va_arg): Remove.
789
790         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
791         assignment might throw.
792         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
793         expressions.
794
795 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
796
797         PR 15886:
798         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
799
800 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
801
802         * doc/install.texi (Prerequisites): Update documentation of
803         required versions of autoconf and automake.  Remove mention of
804         libf2c.
805
806 2004-06-11  Jason Merrill  <jason@redhat.com>
807
808         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
809         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
810
811 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
812
813         * typeclass.h: Add GPL plus exception license.  Add include
814         guard.
815
816 2004-06-10  Jason Merrill  <jason@redhat.com>
817
818         * gimplify.c (gimplify_modify_expr): Don't force a temporary
819         of an aggregate_value_p type.
820
821 2004-06-10  Jeff Law  <law@redhat.com>
822
823         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
824         code when we are in gimple form.
825
826 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
827
828         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
829         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
830         (highest_ssa_version): Remove.
831         * tree-outof-ssa.c (new_temp_expr_table): Replace
832         highest_ssa_version with num_ssa_names.
833         (dump_replaceable_exprs): Likewise.
834         (rewrite_vars_out_of_ssa): Likewise.
835         * tree-ssa-ccp.c (initialize): Likewise
836         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
837         * tree-ssa-dce.c (tree_dce_init): Likewise.
838         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
839         * tree-ssa-live.c (create_ssa_var_map): Likewise.
840         (dump_var_map): Likewise.
841         * tree-ssa.c (verify_ssa): Likewise.
842         (kill_redundant_phi_nodes): Likewise.
843         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
844         * tree-ssanames.c: Include tree-flow.h
845         (ssa_names): New varray.
846         (init_ssa_names): Initialize ssa_names.
847         Reserve the first slot of the ssa_names table.
848         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
849         Assign version numbers using num_ssa_names.
850
851 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
852
853         * doc/sourcebuild.texi (Front End): Add details of more
854         installation documentation required.
855
856 2004-06-10  Brian Booth  <bbooth@redhat.com>
857
858         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
859         of V_MAY_DEF and V_MUST_DEF.
860         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
861         num_vdefs to num_v_may_defs.
862         (compute_immediate_uses_for_stmt): Rename occurences of vdef
863         to v_may_def.
864         (redirect_immediate_uses): Ditto.
865         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
866         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
867         Also add code to sum up the number of v_must_defs.
868         (vdefs_disappeared_p): Replace with...
869         (v_may_defs_disappeared_p): This.
870         (v_must_defs_disappeared_p): New function.
871         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
872         Also add code to mark new variables found in V_MUST_DEFs for
873         renameing.
874         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
875         vdef_ops to v_may_def_ops.
876         (get_vdef_ops): Replace with...
877         (get_v_may_def_ops): This.
878         * tree-flow-inline.h (get_vdef_ops): Replace with...
879         (get_v_may_def_ops): This.
880         (get_v_must_def_ops): New function.
881         (get_vdef_result_ptr): Replace with...
882         (get_v_may_def_result_ptr): This.
883         (get_vdef_op_ptr): Ditto with...
884         (get_v_may_def_op_ptr); This.
885         (get_v_must_def_op_ptr): New function.
886         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
887         to v_may_def. Also add code to mark statements with
888         V_MUST_DEFs as definition sites.
889         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
890         add code to register new V_MUST_DEFs made by the statement.
891         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
892         (check_replaceable): Rename occurences of vdef to v_may_def. Also
893         add check for V_MUST_DEFs.
894         (find_replaceable_in_bb): Ditto.
895         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
896         to v_may_def. Also add code to dump V_MUST_DEFs.
897         * tree-sra.c (mark_all_vdefs): Replace with...
898         (mark_all_v_may_defs): This.
899         (mark_all_v_must_defs): New function.
900         (create_scalar_copies): Replace call to mark_all_vdefs with
901         calls to mark_all_v_may_defs and mark_all_v_must_defs.
902         (scalarize_structures): Rename occurences of vdef to v_may_def.
903         Also add a check for V_MUST_DEFs.
904         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
905         * tree-ssa-alias.c (global_var): Update comment.
906         (compute_may_aliases): Ditto.
907         (compute_points_to_and_addr_escape): Rename occurences of vdef
908         to v_may_def. Also add code to mark variables in V_MUST_DEF
909         operands as being written to.
910         (group_aliases): Update comment.
911         (maybe_create_global_var): Ditto.
912         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
913         Also add a check for V_MUST_DEFs on GIMPLE registers.
914         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
915         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
916         to v_may_def. Also add code to mark all V_MUST_DEF operands
917         VARYING.
918         (initialize): Ditto.
919         (set_rhs): Rename occurences of vdef to v_may_def. Also add
920         code to update SSA_NAMEs in V_MUST_DEFs.
921         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
922         to v_may_def.
923         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
924         occurences of vdef to v_may_def. Also add code to mark statements
925         with V_MUST_DEFs as necessary.
926         (propagate_necessity): Rename occurences of vdef to v_may_def.
927         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
928         occurences of vdef to v_may_def. Also add code to mark operands
929         in V_MUST_DEFs for renaming.
930         (eliminate_redundant_computations): Rename occurences of vdef
931         to v_may_def.
932         (record_equivalences_from_stmt): Rename occurences of vdef
933         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
934         (optimize_stmt): Remove unnesessary variable vdefs. Update
935         comment.
936         (register_definitions_for_stmt): Rename occurences of vdef
937         to v_may_def. Also add code to register definitions made with
938         V_MUST_DEFs.
939         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
940         (fix_stmt_v_may_defs): This.
941         (fix_phi_uses): Rename occurences of vdef to v_may_def.
942         (dse_optimize_stmt): Ditto.
943         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
944         to v_may_def. Also add code to mark V_MUST_DEF operands as being
945         used in virtual operators.
946         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
947         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
948         renaming.
949         * tree-ssa-operands.c (opf_kill_def): New flag for killing
950         definitions.
951         (build_vdefs): Renamed to...
952         (build_v_may_defs): This.
953         (build_v_must_defs): New variable.
954         (voperands_d): Add v_must_def_ops and replace vdef_ops with
955         v_may_def_ops.
956         (append_vdef): Replace with...
957         (append_v_may_def): This.
958         (append_v_must_def): New function.
959         (NUM_FREE): Increment for V_MUST_DEF
960         (optype_freelist): Increment its size for V_MUST_DEF
961         (allocate_vdef_optype): Replace with...
962         (allocate_v_may_def_optype): This.
963         (allocate_v_must_def_optype): New function.
964         (free_vdefs): Replace with...
965         (free_v_may_defs): This.
966         (free_v_must_defs): New function.
967         (remove_vdefs): Replace with...
968         (remove_v_may_defs): This.
969         (remove_v_must_defs): New function.
970         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
971         add code to initialize build_v_must_defs.
972         (finalize_ssa_vdefs): Replace with...
973         (finalize_ssa_v_may_defs): This.
974         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
975         (finalize_ssa_v_must_defs): New function.
976         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
977         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
978         (verify_start_operands): Rename occurences of vdef to v_may_def.
979         Also add check for build_v_must_defs.
980         (get_stmt_operands): Rename occurences of vdef to v_may_def.
981         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
982         killing definitions.
983         (get_expr_operands): Update comment and use opf_kill_def for
984         killing definitions.
985         (add_stmt_operand): Replace code that appends VDEFs with code
986         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
987         otherwise.
988         (add_call_clobber_ops): Update comments.
989         * tree-ssa-operands.h (vdef_optype_d): Replace with...
990         (v_may_def_optype_d): This.
991         (v_must_def_optype_d): New structure.
992         (VDEF_OPS): Replace with...
993         (V_MAY_DEF_OPS): This.
994         (STMT_VDEF_OPS): Same with...
995         (STMT_V_MAY_DEF_OPS): This.
996         (NUM_VDEFS): And...
997         (NUM_V_MAY_DEFS): This.
998         (VDEF_RESULT_PTR): As well as...
999         (V_MAY_DEF_RESULT_PTR): This.
1000         (VDEF_RESULT): Same goes for...
1001         (V_MAY_DEF_RESULT): This.
1002         (VDEF_OP_PTR): And...
1003         (V_MAY_DEF_OP_PTR): This.
1004         (VDEF_OP): And...
1005         (V_MAY_DEF_OP): This.
1006         (V_MUST_DEF_OPS): New macro.
1007         (STMT_V_MUST_DEF_OPS): Ditto.
1008         (NUM_V_MUST_DEFS): Ditto.
1009         (V_MUST_DEF_OP_PTR): Ditto.
1010         (V_MUST_DEF_OP): Ditto.
1011         (remove_vdefs): Replace signature with...
1012         (remove_v_may_defs): This.
1013         (remove_v_must_defs): New function signature.
1014         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1015         with calls to remove_v_may_defs and remove_v_must_defs.
1016         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1017         Also add code that marks left occurences of operands in V_MUST_DEFs.
1018         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1019         to v_may_def. Also add check for V_MUST_DEFs.
1020         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1021
1022 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1023
1024         PR target/15653
1025         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1026         insn.
1027
1028 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1029
1030         PR web/15263
1031         * doc/install.texi: Remove superfluous linebreak.
1032
1033 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1034
1035         * builtins.c (expand_builtin): Fall back to library function call for
1036         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1037         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1038         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1039         IMAGPART_EXPR respectively.
1040
1041 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1042
1043         * sh.c (dump_table): New argument start.  Changed caller.
1044         (fixup_mova): New function.
1045         (find_barrier): Use it.
1046         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1047         If the label a mova refers to is above the mova itself, change
1048         the mova into a load.
1049         * sh.md (*casesi_worker): Rename to:
1050         (casesi_worker_1).
1051         (casesi_worker_2): New insn.
1052
1053 2004-06-10  Jason Merrill  <jason@redhat.com>
1054
1055         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1056         hook signature.
1057         * tree-gimple.h: Adjust.
1058         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1059         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1060         Use fold_convert.
1061         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1062         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1063         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1064         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1065         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1066         Gimplify valist rather than calling stabilize_va_list.
1067
1068 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1069
1070         * Makefile.in (df.o): Remove fibheap dependency.
1071         * df.h: Do not include sbitmap.h.
1072         (struct ref): New field "data".
1073         (DF_REF_DATA): New accessor macro.
1074         (struct df): Field "dom" removed.
1075         (df_analyze_subcfg): New function.
1076         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1077         (transfer_function): ... new type.
1078         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1079         (iterative_dataflow): ... new function.
1080         (enum set_representation, struct dataflow): New.
1081         * df.c: Do not include fibheap.h.
1082
1083         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1084         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1085         prune_to_subcfg, df_bb_modify): New functions.
1086         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1087         df_refs_update, df_reg_table_realloc, df_ref_create,
1088         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1089         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1090         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1091
1092         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1093         (df_rd_transfer_function, df_ru_transfer_function,
1094         df_lr_transfer_function): Type of bitmaps changed to void *.
1095         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1096         (hybrid_search): ... new function.
1097         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1098         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1099         a worklist.  Do not process basic blocks unnecessarily.
1100
1101 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1102
1103         * fold-const.c (fold_abs_const): Make extern.
1104         * tree.h (fold_abs_const): Prototype here.
1105         * builtins.c (fold_builtin_fabs): New function to transform
1106         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1107         (fold_builtin_abs): New function to transform abs, labs, llabs
1108         and imaxabs builtins into ABS_EXPR tree nodes.
1109         (expand_builtin): Fall back to a function call for abs, labs,
1110         llabs and imaxabs builtins that survive constant folding.
1111         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1112         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1113
1114 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1115
1116         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1117         leaf function without unwind info at RP 0.
1118
1119 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1120
1121         PR c++/14791
1122         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1123         (fileptr_type_node): Define.
1124         * tree.c (build_common_tree_nodes_2): Initialize
1125         fileptr_type_node to ptr_type_node.
1126         * c-common.c (c_common_nodes_and_builtins): For C++, make
1127         fileptr_type_node a distinct type copy.
1128         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1129         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1130         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1131         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1132         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1133         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1134         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1135         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1136         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1137         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1138         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1139         the above *FILEPTR* types instead of *PTR*.
1140
1141 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1142
1143         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1144         match.
1145
1146 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1147
1148         * fold-const.c (fold_not_const): New function.
1149         (fold) <ABS_EXPR>: Don't bother testing wins.
1150         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1151         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1152
1153 2004-06-09  Richard Henderson  <rth@redhat.com>
1154
1155         PR middle-end/15228
1156         * function.c (assign_parms): Always set_mem_align with the computed
1157         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1158
1159 2004-06-09  Richard Henderson  <rth@redhat.com>
1160
1161         PR opt/15108
1162         * tree-tailcall.c (find_tail_calls): Don't check early for
1163         tail_recursion failure.
1164
1165 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1166
1167         Move SSA_NAME annotations into tree_ssa_name.
1168
1169         * tree-dfa.c (create_ssa_name_ann): Remove.
1170         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1171         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1172         (struct ssa_name_ann_d): Remove.
1173         (union tree_ann_d): Update.
1174         (ssa_name_ann_t): Remove.
1175         * tree-ssa-alias.c: (get_ptr_info): New local function.
1176         Replace references to ssa_name_ann_t with struct ptr_info_def.
1177         * tree-ssa-operands.c (get_expr_operands): Likewise.
1178         * tree.h (SSA_NAME_PTR_INFO): Define.
1179         (struct ptr_info_def): Declare.
1180         (struct tree_ssa_name): Add field 'ptr_info'.
1181
1182 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1183
1184         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1185         misplaced ')'.
1186
1187 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1188
1189         * config/i386/k6.md: Rewrite using the DFA model.
1190         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1191         cost of load-operation insns for the K6.
1192         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1193         (ia32_multipass_dfa_lookahead): Likewise.
1194
1195 2004-06-09  Richard Henderson  <rth@redhat.com>
1196
1197         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1198         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1199
1200 2004-06-09  Richard Henderson  <rth@redhat.com>
1201
1202         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1203
1204 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1205
1206         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1207         (CPP_ID_DATA_H): New.
1208         (gtype-desc.o): Update dependencies.
1209         (GTFILES): Use CPP_ID_DATA_H.
1210
1211 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1212
1213         Revert:
1214         PR c++/15815
1215         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1216         * doc/extend.texi: Deprecate #pragma interface and #pragma
1217         implementation.
1218
1219 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1220
1221         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1222
1223 2004-06-09  Richard Henderson  <rth@redhat.com>
1224
1225         * basic-block.h (struct edge_def): Add goto_locus.
1226         * tree-cfg.c (make_goto_expr_edges): Set it.
1227         (disband_implicit_edges): Use it.
1228         * tree-pretty-print.c (dump_implicit_edges): Print it.
1229
1230 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1231
1232         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1233
1234 2004-06-08  Jason Merrill  <jason@redhat.com>
1235
1236         Gimplify VA_ARG_EXPR into simpler forms.
1237         * target.h: Add gimplify_va_arg_expr hook.
1238         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1239         * fold-const.c (build_fold_addr_expr)
1240         (build_fold_addr_expr_with_type): Move from gimplify.c.
1241         * tree.h: Declare them.
1242         * gimplify.c (gimplify_and_add): New fn.
1243         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1244         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1245         (gimplify_expr): Use build_fold_*.
1246         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1247         don't know how to gimplify it.
1248         * builtins.c (std_gimplify_va_arg_expr): New fn.
1249         (dummy_object): New static fn.
1250         (gimplify_va_arg_expr): New fn.
1251         (stabilize_va_list): Use build_fold_*.
1252         * tree-gimple.h: Declare new fns.
1253         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1254         (ix86_gimplify_va_arg): New fn.
1255         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1256         (ia64_gimplify_va_arg): New fn.
1257         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1258         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1259         * alias.c (get_varargs_alias_set): Just return 0 for now.
1260
1261         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1262
1263 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1264
1265         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1266         of convert.
1267         * tree-inline.c (setup_one_parameter): Likewise.
1268         * tree-sra.c (csc_build_component_ref): Likewise.
1269         * tree-ssa-ccp.c (ccp_fold): Likewise.
1270         * tree-ssa-copy.c (cprop_operand): Likewise.
1271         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1272         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1273
1274 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1275
1276         PR rtl-optimization/15521:
1277         * sched-int.h (in_post_call_group_p): Change type to enum.
1278         * sched-deps.c (sched_analyze_insn):
1279         (sched_analyze): When in_post_call_group_p is post_call_initial,
1280         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1281         and also reset in_post_call_group_p to post_call.
1282         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1283         initialize in_post_call_group_p as post_call_initial.
1284         (init_deps): initialize in_post_call_group_p to not_post_call.
1285
1286 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1287
1288         PR ada/6637
1289         * doc/install.texi: List ada, libada as options to --enable-shared
1290
1291 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1292
1293         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1294         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1295         config.in entries.
1296         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1297         if hard links are not available.
1298         * configure: Regenerate.
1299         * config.in: Regenerate.
1300
1301 2004-06-08  Per Bothner  <per@bothner.com>
1302
1303         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1304
1305 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1306
1307         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1308         Correct formatting.
1309
1310 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1311
1312         PR target/15790
1313         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1314
1315 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1316
1317         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1318         POINTER_TYPE and INTEGER_TYPE.
1319
1320 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1321
1322         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1323         defined.
1324
1325 2004-06-08  Jeff Law  <law@redhat.com>
1326
1327         * doc/contrib.texi: Add entries for Stefan Olsson and
1328         Ola Ronnerup.
1329
1330 2004-06-08  DJ Delorie  <dj@redhat.com>
1331
1332         * toplev.c (floor_log2_wide): Replace loop with faster bit
1333         operations.
1334         (exact_log2_wide): Define in terms of the above.
1335         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1336         available.
1337
1338 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1339
1340         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1341         Make sure that we are in INDIRECT mode when getting the
1342         stub name.
1343
1344 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1345
1346         * h8300.md (extendqisi2_h8300): Add constraints.
1347         (ldm_h8300s_4_normal): Fix typo.
1348
1349 2004-06-08  Richard Henderson  <rth@redhat.com>
1350
1351         * gimple-low.c (struct lower_data): Replace the_return_label and
1352         one_return_stmt with return_statements.
1353         (lower_function_body): Process the entire list of return_statements.
1354         (lower_return_expr): Check source value before unifying return_exprs.
1355         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1356         for !aggregate_value_p.
1357         * tree-gimple.c: Update RETURN_EXPR grammer.
1358
1359 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1360
1361         PR target/15598
1362         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1363
1364 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1365
1366         PR rtl-optimization/15717
1367         * config/i386/i386.c (legitimate_constant_p): Do not allow
1368         x - symbol_ref.
1369
1370 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1371
1372         * gimplify.c (copy_if_shared_r): Revert:
1373         2004-05-21  Richard Henderson  <rth@redhat.com>
1374         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1375
1376 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1377
1378         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1379         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1380         (init_expmed): Initialize these cost arrays as appropriate.
1381         (store_bit_field, extract_bit_field): Correct whitespace.
1382         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1383         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1384         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1385         word_mode or compute_mode as appropriate.
1386
1387 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1388
1389         PR target/15783
1390         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1391         parameter.  Enumerate the registers inside the PARALLEL.
1392         (function_arg): Adjust call to function_arg_union_value.
1393         (function_value): Likewise.
1394
1395         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1396
1397 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1398
1399         * real.c (real_copysign): New function to implement libm's copysign.
1400         * real.h (real_copysign): Prototype here.
1401         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1402         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1403         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1404         fold_builtin_isdigit): Add function prototypes.
1405         (fold_builtin_copysign): New function to fold copysign, copysignf
1406         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1407         constant arguments at compile-time using real_copysign.  Fold
1408         copysign(X,Y) as fabs(X) if Y is always non-negative.
1409         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1410         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1411
1412 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1413
1414         * tree.c (iterative_hash_expr): Use real_hash.
1415
1416 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1417
1418         PR c/14765
1419         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1420         NULL_TREE.
1421
1422 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1423
1424         PR c++/15815
1425         * doc/extend.texi: Deprecate #pragma interface and #pragma
1426         implementation.
1427
1428 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1429
1430         PR middle-end/15666
1431         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1432         builtin decl as well.
1433
1434 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1435
1436         PR c/14649
1437         * c-typeck.c (require_constant_value, require_constant_elements):
1438         Move declarations to the top of the file.
1439         (build_function_call): If we require a constant value, fold with
1440         fold_initializer.  If the result is a constant, and the function
1441         wasn't called using __builtin_foo, issue a pedantic warning.
1442         (build_unary_op): If we require a constant value, fold tree with
1443         fold_initializer.
1444         (build_binary_op): Use require_constant_value to determine whether
1445         to call fold or fold_initializer.
1446
1447 2004-06-07  Richard Henderson  <rth@redhat.com>
1448
1449         * gimple-low.c (struct lower_data): Add the_return_label and
1450         one_return_stmt.
1451         (lower_function_body): Initialize and use them.
1452         (lower_return_expr): New.
1453         (lower_stmt): Call it.
1454         * gimplify.c (gimplify_return_expr): Force the argument to be either
1455         null or a result_decl.
1456         * tree-gimple.c: Update gimple grammer to match.
1457         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1458         coalescing of result_decls.
1459
1460 2004-06-07  Richard Henderson  <rth@redhat.com>
1461
1462         PR rtl-opt/15193
1463         * expmed.c (extract_bit_field): Fix vector_extract return.
1464
1465         * config/i386/i386.md (negv4sf2): New pattern.
1466
1467 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1468
1469         PR c++/15337
1470         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1471         message.
1472
1473 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1474
1475         * config.in: Regenerate.
1476
1477 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1478
1479         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1480         SWITCH_LABELS are always sorted.
1481
1482 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1483
1484         * hooks.c (hook_int_void_1): New generic hook.
1485         * hooks.h (hook_int_void_1): Add prototype.
1486         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1487         Define to hook_int_void_1.
1488         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1489         with dummies for the new one.
1490
1491 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1492
1493         * tree.h (lvalue_or_else): Delete function prototype.
1494         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1495
1496 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1497
1498         PR target/14542
1499         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1500         a live change of a register after peephole replacement.
1501
1502 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1503
1504         PR c/13519
1505         * c-typeck.c (composite_type, common_pointer_type): New functions.
1506         (common_type): Split parts into composite_type and
1507         common_pointer_type.  Ensure that arithmetic operations return
1508         unqualified types without attributes.  Don't make composite type
1509         of signed enum and compatible integer be unsigned.
1510         (build_conditional_expr, build_binary_op): Use
1511         common_pointer_type.
1512         * c-decl.c (merge_decls): Use composite_type.
1513         * c-tree.h (composite_type): Declare.
1514
1515 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1516
1517         PR target/14457
1518         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1519         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1520         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1521         (inhibit_libc): Must define.
1522         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1523         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1524         ("xorhi3"): Likewise.
1525
1526 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1527
1528         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1529         always_inline pass.
1530
1531 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1532
1533         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1534         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1535
1536 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1537
1538         * regclass.c (init_reg_sets): Check for missing registers in target
1539         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1540
1541 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1542
1543         * Makefile.in (MKDEPS_H): New shorthand.
1544         (c-opts.o): Update dependencies.
1545         * c-opts.c: Include mkdeps.h.
1546         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1547         not cpp_add_dependency_target.
1548
1549 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1550
1551         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1552         * config/v850/v850.md: Convert to DFA scheduler description.
1553
1554 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1555
1556         PR fortran/15478
1557         * doc/install.texi: Document GMP as prerequisite. Document
1558         --with-gmp and --with-gmp-dir configure options.
1559         * fortran/gfortran.texi: Remove section "Compiling and testing",
1560         remove TOC reference to it.
1561
1562 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1563
1564         * combine.c(simplify_shift_const): Check shift amount is a
1565         CONST_INT.
1566
1567 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1568
1569         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1570         opening asm_out_file.
1571         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1572         reading asm_out_file. Replace fflush after reading asm_out_file
1573         with fseek.
1574         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1575         default and add to HOST_HOOKS_INITIALIZER.
1576         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1577         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1578         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1579         to set mmi.offset padding.
1580          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1581         $(srcdir)/config/i386/winnt.c.
1582         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1583         (i[34567]86-*-uwin*): Likewise.
1584         *i[34567]86-*-interix3*): Likewise.
1585         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1586         * config/i386/host-mingw32.c: New file.
1587         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1588         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1589         (extern_head): Likewise.
1590         (struct export_list) Likewise.
1591         (export_head): Likewise.
1592         (i386_pe_record_external_function): Use ggc_alloc.
1593         (i386_pe_record_exported_symbol): Likewise.
1594         Include "gt-winnt.h" at end.
1595         * doc/hostconfig.texi: Document
1596         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1597
1598 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1599
1600         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1601         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1602         trailing whitespace before EOLs and before TABs.
1603         (MAX_CODE_ALIGN): Remove unused macro.
1604         (CALL_USED_REGISTERS): Reformat and add comments.
1605
1606 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1607
1608         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1609         to enumerate -lmudflap* and dependencies when linking.
1610
1611 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1612
1613         PR target/15822
1614         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1615
1616 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1617
1618         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1619         * genconditions.c (write_header): Back out removal of reload.h.
1620
1621 2004-06-04  Jan Hubicka  <jh@suse.cz>
1622
1623         Re-apply hopefully fixed patch:
1624         * i386.md (UNSPECV_EH_RETURN): Kill.
1625         (eh_return): Use jump_insn.
1626         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1627
1628 2004-06-04  Jeff Law  <law@redhat.com>
1629
1630         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1631
1632 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1633
1634         * except.c (for_each_eh_region): New function.
1635         * except.h (for_each_eh_region): Add a prototype for it.
1636         * tree-cfg.c (update_eh_labels): New function, callback for
1637         for_each_eh_region.
1638         (label_for_bb): Make global static, unfortunately.
1639         (cleanup_dead_labels): Also update label references for
1640         exception regions.
1641
1642 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1643
1644         * config/mips/mips.c (struct irix_section_align_entry): Fix
1645         GTY marker.
1646
1647 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1648
1649         * toplev.c (check_global_declarations): Don't ask for
1650         DECL_ASSEMBLER_NAME unless the function really is declared
1651         static and not defined.
1652
1653 2004-06-03  Matt Austern  <austern@apple.com>
1654
1655         PR c++/15428
1656         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1657         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1658         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1659         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1660         documentation to reflect the new macro name and to clarify its
1661         meaning.
1662
1663 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1664
1665         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1666
1667 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1668
1669         * config/darwin.c (machopic_indirect_data_reference): Copy
1670         the SYMBOL_REF_DECL from the original RTX for the new
1671         non-lazy pointer RTX.
1672
1673 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1674
1675         * tree.h: Remove include of version.h
1676         * c-cppbuiltin.c: Include version.h
1677         * diagnostic.c: Include version.h
1678         * dwarf2out.c: Include version.h
1679         * toplev.c: Include version.h
1680         * vmsdbgout.c: Include version.h
1681         * Makefile.in: Remove dependency on version.h from TREE_H, and
1682         add dependencies to required .o targets
1683
1684 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1685
1686         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1687         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1688         (TARGET_H): Add insn-modes.h.
1689         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1690         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1691         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1692         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1693         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1694         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1695         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1696         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1697         CFGLAYOUT_H.
1698         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1699         Replace ra.h with RA_H.
1700         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1701         insn-recog.o): Replace resource.h with RESOURCE_H.
1702         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1703         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1704         with SCHED_INT_H.
1705         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1706         ra-rewrite.o): Replace df.h with DF_H.
1707         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1708         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1709         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1710         (insn-conditions.o): Remove unused reload.h.
1711         * cfglayout.h: Add include guard.  Include basic-block.h.
1712         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1713         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1714         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1715         basic-block.h.
1716         * genconditions.c:  Remove reload.h.
1717         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1718         hard-reg-set.h, insn-modes.h.
1719         * resource.h: Add include guard.  Include hard-reg-set.h.
1720         * sched-int.h:  Add include guard.  Include insn-attr.h,
1721         basic-block.h, rtl.h.
1722         * target.h: Add include guard.  Include insn-modes.h.
1723         * tree-ssa-live.h: Include partition.h.
1724
1725 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1726                 Kenneth Zadeck <zadeck@naturalbridge.com>
1727
1728         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1729         (add_var_to_ssa_edges_worklist): Add value argument.
1730         Update callers.
1731         Use new worklist.
1732         (process_ssa_edge_worklist): New function.
1733         (tree_ssa_ccp): Move worklist processing core to
1734         process_ssa_edge_worklist, and just call that for the two worklists.
1735
1736 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1737
1738         * basic-block.c (tail_recursion_label_list): Don't declare.
1739         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1740         accordingly.
1741         * cfgbuild.c (find_label_refs): Remove.
1742         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1743         * cfgcleanup.c (tail_recursion_label_p): Remove.
1744         (merge_blocks_move): Do not check for tail recursion.
1745         (try_optimize_cfg): Likewise.
1746         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1747         * cfgrtl.c (tail_recursion_label_list): Remove.
1748         * except.c (remove_unreachable_regions): Don't handle
1749         CALL_PLACEHOLDER insns.
1750         (convert_from_eh_region_ranges_1, can_throw_internal,
1751         can_throw_external): Likewise.
1752         * function.c (free_after_compilation): Don't clear
1753         x_tail_recursion_label.
1754         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1755         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1756         (reorder_blocks_1): Likewise.
1757         * function.h (struct function): Remove x_tail_recursion_label
1758         member.  Don't define tail_recursion_label.
1759         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1760         * print-rtl.c (print_rtx): Likewise.
1761         * rtl.def (CALL_PLACEHOLDER): Remove.
1762         * rtl.h (sibcall_use_t): Remove enum.
1763         (optimize_sibling_and_tail_recursive_calls,
1764         replace_call_placeholder): Remove function prototypes.
1765         * stmt.c (tail_recursion_args): Remove.
1766         (optimize_tail_recursion): Remove.
1767         (expand_return): Don't check for possible tail recursion.
1768         * tree.h (optimize_tail_recursion): Remove prototype.
1769
1770 2004-06-02  Jan Hubicka  <jh@suse.cz>
1771
1772         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1773         return_stmt.
1774
1775 2004-06-02  Jason Merrill  <jason@redhat.com>
1776
1777         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1778         Do include c-parse.in.
1779
1780 2004-06-02  Eric Christopher  <echristo@redhat.com>
1781
1782         * c-typeck.c (common_type): Don't lose type qualifiers
1783         when creating new variants.
1784
1785 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1786
1787         PR tree-optimization/14042
1788         PR tree-optimization/14729
1789         PR tree-optimization/14736
1790         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1791         Check the type which the pointer points to
1792         instead of the pointer types.
1793
1794 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1795
1796         PR tree-optimization/15738.
1797         * builtins.c (fold_builtin_strchr): Transform
1798         strrchr (s, '\0') to strchr (s, '\0').
1799
1800 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1801
1802         * i386.c (ix86_adjust_cost): Don't increase the cost for
1803         load+operation for PROCESSOR_PENTIUMPRO, it is already
1804         modelled in the DFA description
1805
1806 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1807
1808         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1809         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1810         (ALIAS_H, EMIT_RTL_H): New.
1811         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1812         (cfgcleanup.o): Add EMIT_RTL_H.
1813         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1814         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1815         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1816         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1817         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1818         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1819         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1820         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1821         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1822         set_mem_size): Move to emit-rtl.h.
1823         * emit-rtl.h: New.
1824         * alias.h: New.
1825
1826 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1827
1828         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1829         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1830         Adjust recursive calls to self.
1831         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1832
1833 2004-06-01  Richard Henderson  <rth@redhat.com>
1834             Andrew Pinski  <pinskia@physics.uc.edu>
1835
1836         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1837         (primary): Handle offsetof.  Add error productions for faux functions.
1838         Move component_ref objc checking to build_component_ref.
1839         (reswords): Add offsetof.
1840         (rid_to_yy): Add offsetof.
1841         * c-tree.h (build_offsetof): Declare.
1842         * c-common.h (objc_is_public): Declare.
1843         * c-typeck.c (build_component_ref): Check objc_is_public.
1844         (build_offsetof): New.
1845         * stub-objc.c (objc_is_public): New.
1846         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1847         from is_public.
1848         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1849         * doc/extend.texi (Offsetof): Move from C++ section to C section
1850         and rewrite for __builtin_offsetof.
1851
1852 2004-06-01  Peter Barada  <peter@the-baradas.com>
1853             Peter Jakubek  <peter@laseranimation.com>
1854
1855         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1856         a scratch to perform an add to memory.
1857
1858 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1859
1860         PR target/14018
1861         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1862         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1863         m68k_align_funcs): Remove.
1864         (override_options): Remove code to handle -malign-* options.
1865         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1866         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1867         (m68k_align_loops_string, m68k_align_jumps_string,
1868         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1869         m68k_align_funcs): Remove definitions.
1870
1871 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1872
1873         PR target/15626
1874         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1875         by the Sun linker in conjunction with the Sun assembler.
1876         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1877
1878 2004-06-01  Jeff Law  <law@redhat.com>
1879
1880         * stmt.c (expand_decl): Be more selective about calling
1881         mark_reg_pointer.
1882
1883 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1884
1885         PR objc/7993
1886         * objc-act.c (is_private): Do not emit the 'instance variable %s
1887         is declared private' error.
1888         (is_public): Emit the error after calling is_private.
1889         (lookup_objc_ivar): If the instance variable is private, return 0
1890         - the instance variable is invisible here.
1891
1892 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1893
1894         * doc/invoke.texi (-static-libgcc): Explicitly mention
1895         non-GNU linkers.
1896
1897 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1898
1899         PR target/12968
1900         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1901
1902 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1903
1904         PR c/15749
1905         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1906         misuses of structures with flexible array members if
1907         in_system_header.
1908
1909 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1910
1911         PR target/15693
1912         * config/sparc/sparc.c (compare_operand): New predicate.
1913         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1914         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1915         operand is a ZERO_EXTRACT and the second operand is not zero,
1916         force the former to a register.
1917         (cmpdi expander): Likewise.
1918
1919 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1920
1921         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1922         looks at.
1923         * alias.c (alias_invariant_size): Make alias_invariant_size
1924         static, fix GTY marker.
1925
1926 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1927
1928         PR tree-optimization/15743.
1929         * builtins.c (fold_builtin_1): Fold index() and rindex().
1930
1931 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1932
1933         PR middle-end/15069
1934         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1935         into "X < 0" (where C is the signbit) if X's type is a full mode.
1936
1937 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1938
1939         * pa.md: Disable the peephole2 patterns that generate indexed
1940         floating-point stores when indexing is disabled.
1941
1942 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1943
1944         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1945         (pp_c_right_bracket): Likewise.
1946         (pp_c_star): Likewise.
1947         (pp_c_ampersand): Define.
1948         * c-pretty-print.h (pp_c_left_bracket): Declare.
1949         (pp_c_right_bracket): Likewise.
1950         (pp_c_star): Likewise.
1951         (pp_c_ampersand): Likewise.
1952
1953 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1954
1955         * config/sol2.h (__enable_execute_stack): ANSIfy function
1956         definition.
1957
1958 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1959
1960         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1961         HAVE_DOS_BASED_FILESYSTEM.
1962
1963 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1964
1965         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1966         Only look at case labels if the immediate dominator is also
1967         the only predecessor.  Don't look for more case labels if the
1968         first seen is a case range.
1969
1970 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1971
1972         * builtins.c: Add a prototype for fold_builtin_strchr().
1973
1974 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1975
1976         Revert this patch:
1977         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1978
1979         * combine.c (gen_binary): Remove.
1980         (known_cond, simplify_shift_const
1981         find_split_point, combine_simplify_rtx,
1982         simplify_if_then_else, simplify_set,
1983         simplify_logical, expand_field_assignment,
1984         extract_left_shift, force_to_mode,
1985         if_then_else_cond, apply_distributive_law,
1986         simplify_and_const_int, simplify_shift_const,
1987         gen_lowpart_for_combine, simplify_comparison,
1988         reversed_comparison): Replace with
1989         simplify_gen_binary, simplify_gen_relational or
1990         distribute_and_simplify_rtx.
1991         (distribute_and_simplify_rtx): New function.
1992
1993 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1994
1995         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1996         when generating PIC code.
1997
1998 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1999
2000         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2001         (c_expand_body): here.
2002         (c_expand_decl): Move to ...
2003         * c-common.c (c_expand_decl): Here and remove check for nested
2004         functions.
2005         * c-common.h (c_expand_decl): Add prototype.
2006         * c-tree.h (c_expand_decl): Remove.
2007
2008 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2009
2010         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2011         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2012         fold_mathfn_compare, fold_inf_compare, fold,
2013         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2014         Use constant_boolean_node where appropriate.  Don't bother using
2015         fold_convert on the second argument to omit_one_operand.
2016
2017 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2018
2019         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2020         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2021         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2022         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2023         Add missing (but documented) tree nodes to the index.
2024
2025 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2026
2027         PR tree-optimization/14819
2028         * builtins.c (fold_builtin_strchr): New.
2029         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2030         with fold_builtin_strchr().
2031
2032 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2033
2034         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2035         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2036         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2037         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2038         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2039         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2040         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2041         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2042         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2043         formatting.
2044
2045 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2046
2047         * gimplify.c (sort_case_labels): New.  Split out from...
2048         (gimplify_switch_expr): ...here.  Use it.
2049         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2050         the SWITCH_EXPR created here before leaving the function.
2051         * tree.c (sort_case_labels): Add prototype.
2052
2053 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2054
2055         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2056         of BOOLEAN_TYPE.
2057
2058 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2059
2060         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2061         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2062         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2063         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2064         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2065         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2066         comment typos.  Follow spelling conventions.
2067
2068 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2069
2070         * gengtype-yacc.y: Add NESTED_PTR token.
2071         (option): Record `nested_ptr' option.
2072         * gengtype-lex.l: Handle `nested_ptr' keyword.
2073         * gengtype.c (walk_type): Process `nested_ptr' option.
2074         * gengtype.h (struct nested_ptr_data): New.
2075         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2076         * stringpool.c (struct string_pool_data): Make 'entries' point to
2077         ht_identifier instead of tree.
2078         (gt_pch_save_stringpool): Don't adjust pointers.
2079         (gt_pch_restore_stringpool): Call ht_load.
2080
2081 2004-05-29  Jason Merrill  <jason@redhat.com>
2082
2083         * gimplify.c (gimplify_expr): Don't build a statement list
2084         if no gimplification was necessary.
2085
2086 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2087
2088         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2089         and %> as well as %'.
2090         * c-format.c: Use %< and %>.
2091         (gcc_diag_char_table, gcc_cdiag_char_table,
2092         gcc_cxxdiag_char_table): Update.
2093
2094 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2095
2096         * c-typeck.c (common_type): Correct comment.
2097
2098 2004-05-29  Peter Barada  <peter@the-baradas.com>
2099
2100         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2101         * config/m68k/m68k.c (const_method): Likewise.
2102         * config/m68k/m68k.c (const_int_cost): Likewise.
2103         * config/m68k/m68k.c (const_int_cost): Likewise.
2104         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2105
2106 2004-05-29  Peter Barada  <peter@the-baradas.com>
2107
2108         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2109         addressing.
2110         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2111         movsi,movhi,movqi insn patterns.
2112
2113 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2114
2115         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2116
2117         PR target/15720
2118         * config/darwin.c (machopic_indirect_call_target): Copy
2119         the SYMBOL_REF_DECL from the original RTX for the new
2120         stub RTX.
2121
2122 2004-05-28  DJ Delorie  <dj@redhat.com>
2123
2124         * stor-layout.c (place_field): Revert erroneous commit.
2125
2126 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2127
2128         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2129         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2130         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2131         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2132         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2133         vec_ste): Remove type checks for integral parameters and literals
2134         from '..._args_eq' macros.
2135
2136 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2137
2138         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2139
2140 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2141
2142         * testsuite/g++.dg/charset/function.cc: New.
2143
2144         * testsuite/gcc.dg/charset/function.c: New.
2145
2146         * c-decl.c (c_make_fname_decl): Free return value from
2147         fname_as_string.
2148
2149         * cp/decl.c (cp_make_fname_decl): Free return value from
2150         fname_as_string.
2151
2152         * c-common.c (fname_as_string): Translate if necessary.
2153
2154 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2155
2156         * stringpool.c: Add comments to PCH saving/restoring routines.
2157
2158 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2159
2160         * c-common.c (c_estimate_num_insns_1): Kill.
2161         (c_estimate_num_insns): Kill.
2162         * c-common.h (c_estimate_num_insns): Kill.
2163
2164         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2165         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2166         Remove comment about not checking for
2167         _POSIX_PRIORITY_SCHEDULING.
2168         * gthr-posix.c: Likewise.
2169
2170 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2171             Roger Sayle  <roger@eyesopen.com>
2172
2173         PR rtl-optimization/15649
2174         Add LTGT_EXPR and improve pretty-printing of unordered
2175         comparisons.
2176         * c-common.c (c_common_truthvalue_conversion):
2177         Handle LTGT_EXPR.
2178         * c-typeck.c (build_binary_op): Likewise.
2179         * dojump.c (do_jump): Likewise.
2180         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2181         * predict.c (tree_predict_by_opcode): Likewise.
2182         * real.c (real_compare): Likewise.
2183         * tree-cfg.c (verify_expr): Likewise.
2184         * tree-inline.c (estimate_num_insns_1): Likewise.
2185         * tree-pretty-print.c (dump_generic_node): Likewise.
2186         Handle ORDERED_EXPR, UNORDERED_EXPR.
2187         (op_symbol): Print unordered comparisons differently
2188         than ordered ones.
2189         * tree.def (LTGT_EXPR): New '<' tree code.
2190         * doc/c-tree.texi (Expressions): Document floating-point
2191         comparison nodes.
2192
2193         Fold comparisons between floating point values.
2194         * fold-const.c (enum comparison_code): New, from
2195         #define'd constants.  Define compcodes for unordered
2196         comparisons and for invalid transformations.
2197         (invert_tree_comparison): Add "honor_nans" parameter.
2198         (fold_truthop): Revamp to work on floating-point types too.
2199         (comparison_to_compcode): Support unordered comparisons.
2200         Use new enum comparison_code.
2201         (compcode_to_comparison): Likewise.
2202         (combine_compcodes): New function.
2203         (invert_truthvalue): Let invert_tree_comparison decide
2204         whether it is valid to fold the comparison.  Fold ORDERED
2205         and UNORDERED even if flag_unsafe_math_optimizations is off,
2206         and the remaining even if flag_unsafe_math_optimizations
2207         is off but we are under -fno-trapping-math.
2208         (fold_relational_const): Integer modes do not honor NaNs.
2209
2210 2004-05-28  Paul Brook  <paul@codesourcery.com>
2211
2212         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2213
2214 2004-05-28  Paul Brook  <paul@codesourcery.com>
2215
2216         * config/arm/arm.c (thumb_force_lr_save): New function.
2217         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2218         thumb_output_function_prologue): Use it.
2219         (thumb_expand_prologue): Set lr_save_eliminated.
2220
2221 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2222
2223         * config/mips/mips.md (extendsidi2): Tie the source and destination
2224         of the register alternative.  Split it into nothing.
2225
2226 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2227
2228         * rtl.h (skip_consecutive_labels): Declare.
2229         * emit-rtl.c (skip_consecutive_labels): New function.
2230         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2231         * jump.c (follow_jumps): Say what null return values mean.
2232
2233 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2234
2235         PR target/13250
2236         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2237
2238 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2239
2240         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2241         libgcc-std.ver.
2242         * config/sh/libgcc-std.ver: New file.
2243
2244 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2245
2246         * except.c: Revert change of 2004-05-26.
2247         * config/i386/i386.md: Revert change of 2004-05-27.
2248
2249 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2250
2251         * configure.ac: Remove --enable-tree-browser option.
2252         Define TREEBROWSER when ac_tree_checking is defined.
2253         * configure: Rebuilt.
2254
2255 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2256
2257         * expr.c (store_constructor): Restore sanity check on
2258         the size of the type before clearing.
2259
2260 2004-05-27  Jan Hubicka  <jh@suse.cz>
2261
2262         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2263
2264 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2265
2266         * combine.c (gen_binary): Remove.
2267         (known_cond, simplify_shift_const
2268         find_split_point, combine_simplify_rtx,
2269         simplify_if_then_else, simplify_set,
2270         simplify_logical, expand_field_assignment,
2271         extract_left_shift, force_to_mode,
2272         if_then_else_cond, apply_distributive_law,
2273         simplify_and_const_int, simplify_shift_const,
2274         gen_lowpart_for_combine, simplify_comparison,
2275         reversed_comparison): Replace with
2276         simplify_gen_binary, simplify_gen_relational or
2277         distribute_and_simplify_rtx.
2278         (distribute_and_simplify_rtx): New function.
2279         * simplify-rtx.c (simplify_binary_operation):
2280         Use nonzero_bits to simplify ANDs where we are
2281         turning off bits already known to be off in OP0.
2282
2283 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2284
2285         PR target/14478
2286         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2287
2288 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2289
2290         PR middle-end/14084
2291         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2292         to size of decl.
2293
2294 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2295
2296         PR/14924
2297         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2298
2299 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2300
2301         * tree.h: Fix comment typo.
2302
2303 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2304
2305         * gimplify.c (compare_case_labels): New function.
2306         (gimplify_switch_expr): Sort case labels, and make sure the
2307         last label in the label vector is the default case.
2308         * tree-cfg.c (group_case_labels): New function.
2309         (build_tree_cfg): Cleanup redundant labels and group case labels
2310         before creating edges.
2311         (cleanup_dead_labels): Handle GOTO_EXPRs.
2312         (find_case_label_for_value): Use a binary search to find the
2313         case label for the given value.
2314         * tree-gimple.c: Mention that labels are sorted, and that the
2315         last label must be the default.
2316
2317 2004-05-27  Jan Hubicka  <jh@suse.cz>
2318
2319         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2320
2321 2004-05-27  Jan Hubicka  <jh@suse.cz>
2322
2323         * i386.md (UNSPECV_EH_RETURN): Kill.
2324         (eh_return): Use jump_insn.
2325         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2326
2327 2004-05-26  Jan Hubicka  <jh@suse.cz>
2328
2329         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2330         not loop optimizing.
2331
2332 2004-05-26  Jan Hubicka  <jh@suse.cz>
2333
2334         * except.c (can_throw_internal):  Notice RESX instructions.
2335
2336 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2337
2338         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2339         of the two sizes to assemble_integer.
2340
2341 2004-05-25  Paul Brook  <paul@codesourcery.com>
2342
2343         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2344         pointless #ifdef.
2345
2346 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2347
2348         * Makefile.in (top_builddir): Define to .
2349
2350 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2351
2352         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2353         top-level detects, except when in-tree ld is being cross-built.
2354         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2355         then AS only if target is host.
2356         * configure: Rebuilt.
2357
2358 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2359
2360         * global.c (global_alloc): Call make_accurate_live_analysis.
2361         (record_one_conflict): Remove dead code.
2362         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2363         (bb_info): New structure.
2364         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2365         (allocate_bb_info, free_bb_info, mark_reg_change,
2366         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2367         modify_bb_reg_pav, calculate_reg_pav,
2368         make_accurate_live_analysis): New functions.
2369
2370 2004-05-25  Devang Patel  <dpatel@apple.com>
2371
2372         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2373         xrealloc.
2374         (end_alias_analysis): Use ggc_free instead fo free.
2375
2376 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2377
2378         PR target/15546
2379         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2380         as needed to be outputted.
2381
2382 2004-05-25  Jan Hubicka  <jh@suse.cz>
2383
2384         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2385
2386 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2387         Mostafa Hagog  <mustafa@il.ibm.com>
2388
2389         * Makefile.in (modulo-sched.o, ddg.o): New.
2390         * ddg.h, ddg.c, modulo-sched.c: New files.
2391         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2392         internals to "dupicate_insn".
2393         (duplicate_insn): New function.
2394         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2395         declarations.
2396         * common.opt (fmodulo-sched): New flag.
2397         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2398         Remove static and forward declaration.
2399         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2400         functions.
2401         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2402         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2403         declarations.
2404         * flags.h (flag_modulo_sched): New flag.
2405         * opts.c (common_handle_option): Handle modulo-sched flag.
2406         * params.def (max-sms-loop-number, sms-max-ii-factor,
2407         sms-dfa-history, sms-loop-average-count-threshold): New
2408         parameters.
2409         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2410         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2411         parameters.
2412         * passes.c ("sms", "sms-vcg"): New dumps.
2413         (rest_of_handle_sched): Call sms_schedule.
2414         * rtl.h (sms_schedule): New declaration.
2415         * timevar.def (TV_SMS): New.
2416         * toplev.c (flag_modulo_sched): Initialize.
2417         (f_options): Handle -fmodulo-sched option.
2418         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2419         * docs/passes.texi: Document new SMS pass.
2420
2421 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2422
2423         * Makefile.in (OBJS): Add rtlhooks.o.
2424         (rtlanal.o): Depend on function.h.
2425         (cse.o): Depend on rtlhooks-def.h.
2426         (combine.o): Depend on rtlhooks-def.h.
2427         (rtlhooks.o): New rule.
2428         * combine.c: Include rtlhooks-def.h.
2429         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2430         num_sign_bit_copies, cached_num_sign_bit_copies,
2431         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2432         (reg_nonzero_bits_for_combine,
2433         reg_num_sign_bit_copies_for_combine): New functions holding
2434         the remnants of the above.
2435         (combine_rtl_hooks): New.
2436         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2437         * cse.c: Include rtlhooks-def.h.
2438         (cse_rtl_hooks): New.
2439         (cse_main): Set rtl_hooks instead of gen_lowpart.
2440         * emit-rtl.c (gen_lowpart): Remove.
2441         (gen_lowpart_general): Move to rtlhooks.c.
2442         * rtl.h (nonzero_bits, num_sign_bit_copies,
2443         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2444         (gen_lowpart_general): Remove.
2445         (gen_lowpart): Temporarily redefine as a macro.
2446         * rtlanal.c: Include function.h.
2447         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2448         num_sign_bit_copies, cached_num_sign_bit_copies,
2449         num_sign_bit_copies1): New, from combine.c.
2450         * rtlhooks.c: New file.
2451         * rtlhooks-def.h: New file.
2452
2453 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2454
2455         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2456         to support 32-bit -mint8 mode.
2457
2458         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2459         option in the AVR architecture.
2460
2461 2004-05-24  Mike Stump  <mrs@apple.com>
2462
2463         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2464
2465 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2466
2467         * intl.h (open_quote, close_quote): New.
2468         * intl.c (open_quote, close_quote): New.
2469         (gcc_init_libintl): Set them.
2470         * pretty-print.c: Include "intl.h".
2471         (pp_base_format_text): Support 'q' format flag and %` and %'
2472         formats.  Use ' instead of ` in comments.
2473         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2474         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2475         foramt_types_orig): Describe these new formats.
2476         (decode_format_attr, check_function_format,
2477         check_format_info_main): Use these new formats.
2478         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2479         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2480         check these formats to 3.5.
2481
2482 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2483
2484         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2485         (BACKEND): Reflect this.
2486         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2487         (LIBS): Likewise.
2488
2489 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2490
2491         PR tree-optimization/14197
2492         * builtins.c: Include "tree-gimple.h"
2493         (readonly_data_expr): Use get_base_address.  Make sure to call
2494         decl_readonly_section only on trees it can handle.
2495         * tree-gimple.c (get_base_address): Accept STRING_CST and
2496         CONSTRUCTOR expressions.
2497         * Makefile.in: Update dependencies.
2498
2499 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2500
2501         Move libcpp to the toplevel.
2502         * Makefile.in: Remove references to libcpp files,
2503         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2504         and change hashtable.h to that.
2505         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2506         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2507         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2508         * configure: Regenerate.
2509         * config.in: Regenerate.
2510         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2511         * cppcharset.c: Removed.
2512         * cpperror.c: Removed.
2513         * cppexp.c: Removed.
2514         * cppfiles.c: Removed.
2515         * cpphash.c: Removed.
2516         * cpphash.h: Removed.
2517         * cppinit.c: Removed.
2518         * cpplex.c: Removed.
2519         * cpplib.c: Removed.
2520         * cpplib.h: Removed.
2521         * cppmacro.c: Removed.
2522         * cpppch.c: Removed.
2523         * cpptrad.c: Removed.
2524         * cppucnid.h: Removed.
2525         * cppucnid.pl: Removed.
2526         * cppucnid.tab: Removed.
2527         * hashtable.c: Removed.
2528         * hashtable.h: Removed.
2529         * line-map.c: Removed.
2530         * line-map.h: Removed.
2531         * mkdeps.c: Removed.
2532         * mkdeps.h: Removed.
2533         * stringpool.h: Include symtab.h instead of hashtable.h.
2534         * tree.h: Include symtab.h instead of hashtable.h.
2535         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2536
2537 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2538
2539         * gcc.c (struct prefix_list): Add forward declaration.
2540         (do_spec_path): New function, extracted from...
2541         (do_spec_1) <'D'>: ... here.  Drop support for
2542         SPACE_AFTER_L_OPTION.
2543         (do_spec_1) <'I'>: Use do_spec_path.
2544         (process_command): Do not store the 'include' suffix
2545         in include_prefixes.
2546         * system.h: Poison SPACE_AFTER_L_OPTION.
2547
2548 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2549
2550         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2551         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2552
2553 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2554
2555         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2556         Update based on printed manual.  Enable setting of offsets for
2557         FSFPRINT and move it to gcc-common.texi.
2558         * doc/gcc.texi: Update FSF printing details.
2559         * doc/gccint.texi: Remove FSF printing details.
2560
2561 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2562
2563         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2564
2565 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2566
2567         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2568         expand_builtin_strrchr, expand_builtin_strpbrk,
2569         expand_builtin_mempcpy, expand_builtin_memcmp,
2570         expand_builtin_strcmp, expand_builtin_strncmp,
2571         expand_builtin_strcat, std_expand_builtin_va_start,
2572         std_expand_builtin_va_arg, expand_builtin_va_copy,
2573         expand_builtin_signbit, fold_builtin_cabs,
2574         fold_builtin_logarithm, fold_builtin_mempcpy,
2575         fold_builtin_signbit, fold_builtin_isascii,
2576         fold_builtin_toascii, fold_builtin_isdigit,
2577         fold_builtin_1, build_function_call_expr,
2578         simplify_builtin_strchr, simplify_builtin_strrchr,
2579         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2580         simplify_builtin_memcmp, simplify_builtin_strcmp,
2581         simplify_builtin_strncmp, simplify_builtin_strncat,
2582         simplify_builtin_strspn, simplify_builtin_strcspn,
2583         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2584         to build with calls to build2, build3 or omit_one_operand.
2585
2586 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2587
2588         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2589         section when generating EABI code.
2590
2591 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2592
2593         PR 15546
2594         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2595         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2596
2597 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2598
2599         * c-common.c (c_common_truthvalue_conversion): Handle
2600         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2601         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2602         i.e. set the type to truthvalue_type_node and return.
2603
2604 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2605
2606        * tree.h (struct tree_decl): Add possibly_inlined bit.
2607         (DECL_POSSIBLY_INLINED): New accessor macro.
2608         * cgraph.h: Remove declaration of cgraph_inline_hash.
2609         * cgraph.c: Remove definition of cgraph_inline_hash.
2610         (hash_node): Revert to hashing DECL_UID.
2611         (eq_node): Take two pointers to cgraph_node structures.
2612         Compare DECL_UIDs.
2613         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2614         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2615         hash on DECL_UID.
2616         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2617         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2618         (cgraph_node): Allocate a temporary node on the stack, fill in
2619         its DECL field, and pass that to htab_find_slot.
2620         (cgraph_varpool_node): Likewise.
2621         (cgraph_function_possibly_inlined_p): If global info is ready,
2622         return the DECL_POSSIBLY_INLINED bit.
2623         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2624         instead of mucking with cgraph_inline_hash.
2625
2626 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2627
2628         * doc/contrib.texi: Add g77 contributors.
2629
2630 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2631
2632         * calls.c (initialize_argument_information): Forbid sibcalls if a
2633         callee-copied argument is stored in the current function's frame.
2634
2635 2004-05-22  Eric Christopher  <echristo@redhat.com>
2636
2637         * fix-header.c (read_scan_file): Update for add_path change.
2638
2639 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2640
2641         * c.opt (Wmissing-include-dirs): New.
2642         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2643         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2644         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2645         * c-incpath.h (add_path): Add fourth (bool) argument.
2646         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2647         (add_standard_paths): Likewise.
2648         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2649         is used and the directory was user-supplied via -I.
2650         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2651         using add_cpp_dir_path ().
2652         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2653         (struct cpp_dir): Add user_supplied_p.
2654         * doc/invoke.texi (Warning Options): Document new option.
2655
2656 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2657
2658         * fold-const.c (fold_read_from_constant_string): Convert result to
2659         requested type.
2660
2661 2004-05-21  Richard Henderson  <rth@redhat.com>
2662
2663         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2664         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2665         Don't mark VA_ARG_EXPRs volatile here.
2666         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2667
2668 2004-05-21  Richard Henderson  <rth@redhat.com>
2669
2670         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2671         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2672
2673 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2674
2675         * fold-const.c (fold, fold_relational_hi_lo,
2676         nondestructive_fold_binary_to_constant,
2677         fold_read_from_constant_string): Use fold_convert instead of convert.
2678         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2679         simplify_builtin_strchr, simplify_builtin_strrchr,
2680         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2681
2682 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2683
2684         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2685         is NULL.
2686
2687 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2688
2689         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2690         override sparc.h definition.
2691
2692 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2693
2694         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2695         get_unwidened, get_narrower): Replace build with build2.
2696         * fold-const.c (negate_expr, associate_trees, size_binop,
2697         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2698         pedantic_omit_one_operand, distribute_bit_expr,
2699         make_bit_field_ref, optimize_bit_field_compare,
2700         decode_field_reference, range_binop, make_range,
2701         build_range_check, fold_range_test, fold_truthop,
2702         optimize_minmax_comparison, extract_muldiv_1,
2703         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2704         fold_inf_compare, fold_single_bit_test, fold,
2705         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2706         Likewise replace build with either build2 or build3.
2707
2708 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2709
2710         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2711         * calls.c (prepare_call_address): Don't test
2712         NO_RECURSIVE_FUNCTION_CSE.
2713         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2714         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2715         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2716         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2717         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2718         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2719         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2720         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2721         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2722         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2723         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2724         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2725         Likewise.
2726         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2727         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2728         * doc/tm.texi (Costs): Remove documentation for
2729         NO_RECURSIVE_FUNCTION_CSE.
2730
2731 2004-05-20  Paul Brook  <paul@codesourcery.com>
2732
2733         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2734         * unwind-dw2.c (extract_cie_info): Ditto.
2735         (_Unwind_FrameState): Change retaddr_column to word type.
2736
2737 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2738
2739         PR middle-end/3074
2740         * fold-const.c (strip_compound_expr): Delete function.
2741         (count_cond): Delete function.
2742         (fold_binary_op_with_conditional_arg): Only perform transformations
2743         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2744         when a is constant.  This greatly simplifies this routine.
2745
2746         * tree.c (saved_expr_p): Delete function.
2747         * tree.h (saved_expr_p): Delete function prototype.
2748
2749 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2750
2751         * common.opt (ftree-loop-optimize): Remove.
2752
2753 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2754
2755         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2756         (NM_FOR_TARGET): Use := and $(shell).
2757         (mainversion): Remove unused variable.
2758
2759 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2760
2761         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2762         sequence containing the insn to be deleted, always reemit it.
2763
2764 2004-05-20  Richard Henderson  <rth@redhat.com>
2765
2766         PR 15454
2767         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2768         * function.c (expand_function_start): Expand static_chain_decl by hand.
2769         * gimplify.c (create_tmp_var_name): Export.
2770         * tree-gimple.h (create_tmp_var_name): Declare.
2771
2772 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2773
2774         * rs6000.c (print_operand) <case 'z'>: Call
2775         mark_decl_referenced before assemble_name.
2776
2777 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2778
2779         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2780         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2781         (cgraph_varpool_node): Hash on the pointer to the decl, not
2782         the DECL_UID.  Fixes 64-bit bootstrap failure.
2783
2784 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2785
2786         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2787         we don't earlyclobber operands used in the second insn.
2788
2789 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2790
2791         * tree-mudflap.c: Formatting fixes.
2792
2793 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2794
2795         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2796         * gengtype.c (open_base_files): Include reload.h in ifiles.
2797         * reload.h (reg_equiv_memory_loc_varray): Declare.
2798         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2799         (init_reload): Initialize it.
2800         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2801         reg_equiv_memory_loc_varray to size 0.
2802         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2803         growing reg_equiv_memory_loc_varray to the desired size.
2804         * passes.c (rest_of_handle_old_regalloc): Likewise.
2805         * reload.c: Amend comment on calling init_reload.
2806
2807 2004-05-20  Nick Clifton  <nickc@redhat.com>
2808
2809         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2810         with 'TRAMP' in the body of the macro definition.
2811
2812 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2813
2814         PR target/15383
2815         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2816         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2817         cmptf_libfunc isn't set.
2818         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2819         conventions.
2820         (ia64_sysv4_init_libfuncs): New.
2821
2822         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2823         ia64_sysv4_init_libfuncs.
2824
2825 2004-05-20  Falk Hueffner  <falk@debian.org>
2826
2827         PR other/15526
2828         * libgcc2.c (__mulvsi3): Fix overflow test.
2829
2830 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2831
2832         PR c/14171
2833         * reg-stack.c (nan): Rename to ...
2834         (not_a_num): Here.
2835         (reg_to_stack): Rename nan to not_a_num.
2836         (subst_stack_regs_pat): Likewise.
2837         (convert_regs_entry): Likewise.
2838         (convert_regs_1): Likewise.
2839
2840         * tree-cfg.c (find_case_label_for_value): Replace call to
2841         simple_cst_equal with tree_int_cst_equal.
2842
2843 2004-05-19  Jeff Law <law@redhat.com>
2844
2845         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2846         If the operand is for a use, then strip away the SSA_NAME, do not
2847         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2848         (mark_def_sites): Appropriately pass additional argument to
2849         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2850         then set the VDEF_RESULT to the VDEF_OP.
2851         (set_def_block): Strip away any SSA_NAME to get to the real
2852         underlying variable.
2853
2854         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2855         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2856         BB directly.
2857
2858 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2859
2860         PR c++/15463
2861         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2862         result of inverse.
2863
2864         PR rtl-optimization/15274
2865         * loop-iv.c (determine_max_iter, shorten_into_mode,
2866         iv_number_of_iterations): Handle constants correctly.
2867         * rtl.h (get_mode_bounds): Declaration changed.
2868         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2869         the target mode.
2870
2871         PR rtl-optimization/14692
2872         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2873         (unswitch_single_loop): Work correctly when may_unswitch_on
2874         returns a folded constant.
2875
2876         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2877         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2878         comparisons with mode bounds.
2879
2880         * function.c (struct temp_slot): Add new field prev.
2881         (free_after_compilation, init_temp_slots): Free new fields.
2882         (cut_slot_from_list, insert_slot_to_list,
2883         temp_slots_at_level, max_slot_level, move_slot_to_level,
2884         make_slot_available): New functions.
2885         (assign_stack_temp_for_type, combine_temp_slots,
2886         find_temp_slot_from_address, preserve_temp_slots,
2887         preserve_rtl_expr_result, free_temp_slots,
2888         free_temps_for_rtl_expr, pop_temp_slots): Work with
2889         the new structure of lists.
2890         (mark_all_temps_used): Removed.
2891         * function.h (struct function): Field x_temp_slots
2892         replaced by x_used_temp_slots and x_avail_temp_slots.
2893         (temp_slots): Replaced by ...
2894         (used_temp_slots, avail_temp_slots): New.
2895         * tree.h (mark_all_temps_used): Declaration removed.
2896
2897         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2898         simplify_using_assignment): Take the expression out of
2899         the expr_list wrapper.
2900
2901         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2902         infinite loops.
2903
2904 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2905
2906         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2907         costs should be based on code size when optimizing for size.
2908
2909 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2910
2911         * fold-const.c: Remove non-printable character 160.
2912
2913 2004-05-19  Nick Clifton  <nickc@redhat.com>
2914
2915         * doc/invoke.texi (ARM Options): Fix typo.
2916         Remove descrption of -mshort-load-bytes and
2917         -mno-short-load-bytes.
2918
2919         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2920         missing parenthesis.
2921         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2922         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2923
2924 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2925
2926         * expr.c (store_constructor): Build loop start and end by hand
2927         instead of via loop functions from stmt.c.
2928         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2929         Remove the code to expand them.
2930
2931         * stmt.c (loop_stack): Remove this and everything related.
2932         (struct nesting, enum nesting_desc): Update.
2933         (expand_fixup): Likewise.
2934         (expand_loop_start, expand_start_loop_continue_elsewhere,
2935         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2936         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2937         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2938         expand_exit_something): Remove.
2939         * tree.h: Remove prototypes.
2940
2941 2004-05-18  Mike Stump  <mrs@apple.com>
2942             Devang Patel  <dpatel@apple.com>
2943
2944         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2945         if this label is for eh.
2946         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2947         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2948         * dwarf2out.c (output_call_frame_info): Likewise.
2949         * output.h (default_emit_unwind_label): Likewise.
2950         * target.h (unwind_label): Likewise.
2951         * varasm.c (default_emit_unwind_label): Likewise.
2952
2953         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2954         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2955         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2956         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2957         DEBUG_RANGES_SECTION): Define.
2958
2959 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2960
2961         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2962         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2963         (cgraph_varpool_node):
2964         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2965         (cgraph_function_possibly_inlined_p): Use the decl itself for
2966         the key, not DECL_ASSEMBLER_NAME.
2967         (change_decl_assembler_name): No need to muck with the hash tables.
2968         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2969         Delete.
2970         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2971         for the key, not DECL_ASSEMBLER_NAME.
2972         * cgraph.h: Remove prototypes of deleted functions.
2973         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2974         (mark_decl_referenced): New function.
2975         * tree.h: Prototype mark_decl_referenced.
2976         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2977         mark_decl_referenced before assemble_name.
2978         * c-decl.c (finish_decl): Use mark_decl_referenced.
2979
2980 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2981             Jeff Law <law@redhat.com>
2982
2983         * tree-ssa-phiopt.c (abs_replacement): New function.
2984         (empty_block_p): New function extracted from...
2985         (candidate_bb_for_phi_optimization): Break out empty block test.
2986         (conditional_replacement): Use empty_block_p.
2987         (value_replacement): Similarly.
2988
2989         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2990         * tree-ssa-phiopt.c: Include flags.h.
2991         (conditional_replacement): Remove argument names from prototype.
2992         Minor formatting and comment fixes.
2993         (tree_ssa_phiopt): If conditional_replacement returns false, then
2994         call value_replacement.
2995         (value_replacement): New function.
2996
2997 2004-05-18  Jeff Law  <law@redhat.com>
2998
2999         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3000         from conditional_replacement.
3001         (candidate_bb_for_phi_optimization): Similarly.
3002         (conditional_replacement): Use replace_phi_with_stmt and
3003         candidate_bb_for_phi_optimization.
3004
3005         * tree-ssa-phiopt.c: Fix various formatting issues.
3006
3007 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3008
3009         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3010         s390_expand_cmpmem): Do not use expand_start_loop and
3011         expand_end_loop, instead build the loop manually.
3012
3013 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3014
3015         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3016         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3017
3018 2004-05-17  Jeff Law  <law@redhat.com>
3019
3020         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3021         * flags.h (flag_delete_null_pointer_checks): Here.
3022         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3023         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3024         (add_phi_arg, remove_phi_arg_num): Similarly.
3025         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3026         property into PHI nodes.
3027         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3028         (record_equivalences_from_phis): If all PHI arguments are known to be
3029         nonzero, then the result must be nonzero as well.
3030         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3031         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3032         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3033         as appropriate.
3034         * tree.h (PHI_ARG_NONZERO): Define.
3035         (phi_arg_d): Add nonzero flag.
3036
3037 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3038
3039         * f: Entire directory removed
3040
3041         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3042         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3043         (g77_integer_type_node, g77_uinteger_type_node)
3044         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3045         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3046         the above set of variables.
3047
3048         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3049         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3050         to g77 manual.
3051
3052 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3053
3054         PR tree-optimization/15438
3055         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3056         attributed functions as pure or const.
3057
3058 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3059
3060         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3061         from source code with errors.
3062
3063 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3064
3065         Enable tree browser for all front ends.
3066         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3067         (BACKEND): ...to here.
3068
3069 2004-05-17  Jan Hubicka  <jh@suse.cz>
3070
3071         * i386.c (construct_container): Do not produce BLKmode registers.
3072         (classify_argument): Properly compute alignment of complex types.
3073
3074 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3075
3076         PR target/15084
3077         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3078         and renamed to movdi_insv_1_rex64.
3079         (insv): Support SImode for 32bit and DImode for 64bit.
3080
3081 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3082
3083         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3084         (TARGET_SWITCHES): Remove debugg.
3085         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3086         TARGET_64BIT.
3087         (subdi3): Replace the define_expand with a define_insn, the latter
3088         renamed from subdi3_internal_3.
3089         (negdi2): Likewise negdi2_internal_2.
3090         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3091         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3092         and associated define_splits.
3093         (adddi3_internal): Renamed from adddi3_internal_3.
3094         (ashldi3_internal): Likewise ashldi3_internal4.
3095         (ashrdi3_internal): Likewise ashrdi3_internal4.
3096         (lshrdi3_internal): Likewise lshrdi3_internal4.
3097
3098 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3099
3100         * optabs.c (expand_unop): Try implementing negation using subtraction
3101         from zero.
3102
3103 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3104
3105         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3106         SAR register.
3107
3108 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3109
3110         PR target/10982
3111         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3112         (ne_zeroextractsi_shifted): New pattern.
3113         (ite_ne_zeroextractsi): New pattern.
3114         (ite_ne_zeroextractsi_shifted): New pattern.
3115
3116 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3117
3118         * c-gimplify.c (c_genericize):
3119         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3120         * c-parse.in <expr_no_commas>: Likewise.
3121         <if_prefix>: Likewise.
3122         <select_or_iter_stmt>: Likewise.
3123         * expr.c (expand_var, expand_expr_real_1): Likewise.
3124         * expr.h (expand_expr): Make it a static inline function.
3125         Move prototype for expand_expr_real up before this.
3126         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3127         Likewise.
3128         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3129         gimplify_asm_expr, gimplify_expr): Likewise.
3130         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3131         dump_function_to_file): Likewise.
3132         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3133         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3134         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3135         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3136         Likewise.
3137         * tree-optimize.c (execute_one_pass): Likewise.
3138         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3139         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3140
3141         * objc/objc-act.c (objc_build_try_enter_fragment,
3142         objc_build_try_epilogue, objc_build_catch_stmt,
3143         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3144         with lang_hooks.foo ().
3145
3146 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3147
3148         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3149         that simplify_builtin doesn't destructively modify its argument.
3150
3151 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3152
3153         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3154         implementations for ARM and Thumb.
3155         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3156
3157 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3158
3159         * prefix.c (update_path): Replace PREFIX with KEY only
3160         when it matches a full directory name in PATH.
3161
3162 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3163
3164         * arm.h (TARGET_APCS_32): Delete.
3165         (TARGET_MMU_TRAPS): Delete.
3166         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3167         define __APCS_26__.
3168         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3169         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3170         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3171         (prog_mode_type): Delete.
3172         (PROMOTE_MODE): Always promote unsigned for HImode.
3173         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3174         (MASK_RETURN_ADDR): Simplify.
3175         * arm.c (arm_prgmode): Delete.
3176         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3177         (print_multi_reg, output_return_instruction): Simplify.
3178         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3179         (arm_return_addr): Simplify.
3180         * arm.md (prog_mode): Delete.
3181         (conds): Simplify.
3182         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3183         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3184         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3185         (loadhi_shiftpredec): Delete.
3186         (peephole for post-increment on HImode load): Delete.
3187         * arm/crtn.asm: (FUNC_END): Simplify.
3188         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3189         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3190         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3191         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3192         MULTILIB_DEFAULTS as required.
3193         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3194         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3195         variables as required.
3196         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3197
3198 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3199
3200         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3201         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3202         count to 8 to handle n_reg > 2.
3203
3204 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3205
3206         * doc/extend.texi: Update WG14 URL.
3207
3208 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3209
3210         * basic-block.h (life_analysis, delete_noop_moves):
3211         Update prototypes.
3212         * bt-load.c (branch_target_load_optimize): Don't take the
3213         insns stream as an argument.  Update the life_analysis calls.
3214         * combine.c (combine_instructions): Update delete_noop_moves
3215         calls.
3216         * flow.c (notice_stack_pointer_modification): Don't take the
3217         insns stream as an argument.  Work on the flow graph.
3218         (life_analysis): Likewise.
3219         (delete_noop_moves): Likewise.
3220         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3221         (rest_of_handle_life): Update life_analysis call.
3222         (rest_of_compilation): Likewise, and also update
3223         branch_target_load_optimize call.
3224         * ra.c (reg_alloc): Update life_analysis call.
3225         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3226         the insns stream as an argument.
3227         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3228         call.
3229         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3230         prototypes.
3231         * value-profile.c (branch_prob): Update life_analysis call.
3232         * web.c (web_main): Work on the CFG, not on the insns stream.
3233
3234         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3235         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3236         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3237
3238 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3239
3240         PR c/15444
3241         * c-format.c (avoid_dollar_number): New function.
3242         (check_format_info_main): Call avoid_dollar_number when operand
3243         numbers might occur but has_operand_number == 0.
3244
3245 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3246
3247         * arm.md (all peephole2 patterns): Use predicates that validate
3248         register classes as appropriate.
3249
3250 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3251
3252         PR opt/14472
3253         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3254         ignore type conversions that do not inhibit tail calling.
3255         (find_tail_calls): Likewise.
3256
3257 2004-05-14  Jeff Law  <law@redhat.com>
3258
3259         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3260         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3261         bypassed virtuals into vars_to_rename just before into-ssa pass.
3262
3263         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3264         so that it picks up more opportunities to eliminate ABS expressions
3265         or turn them into negations.
3266
3267 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3268
3269         * passes.c (rest_of_handle_null_pointer): Remove.
3270         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3271         (rest_of_compilation): Likewise.
3272         * rtl.h (delete_null_pointer_checks): Remove prototype.
3273         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3274         Remove declarations.
3275         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3276         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3277         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3278         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3279         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3280         one_classic_gcse_pass, invalidate_nonnull_info,
3281         delete_null_pointer_checks_1, delete_null_pointer_checks,
3282         expr_reached_here_p_work): Remove.
3283         (gcse_main): Do not perform classic GCSE when optimizing for size.
3284         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3285         are never used.
3286
3287 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3288
3289         PR optimization/14466
3290         * tree-complex.c (make_temp): Remove.
3291         (gimplify_val): Replace make_temp with make_rename_temp
3292         and add NULL as the second argument.
3293         (expand_complex_div_wide): Likewise.
3294         * tree-dfa.c (make_rename_temp): New function.
3295         * tree-flow.h (make_rename_temp): Declare.
3296         * tree-sra.c (make_temp): Remove.
3297         (lookup_scalar): Replace make_temp with make_rename_temp.
3298         (create_scalar_copies): Likewise.
3299         * tree-ssa-phiopt.c (conditional_replacement): When we
3300         get non gimple create a temporary variable to hold the
3301         casted expression.
3302
3303 2004-05-14  Paul Brook  <paul@codesourcery.com>
3304
3305         * stor-layout.c (update_alignment_for_field): Use
3306         targetm.align_anon_bitfield.
3307         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3308         (TARGET_INITIALIZER): Use it.
3309         * target.h (struct gcc_target): Add align_anon_bitfield.
3310         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3311         (TARGET_ALIGN_ANON_BITFIELD): Define.
3312         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3313
3314 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3315
3316         * tree.def (documentation): Remove mention of class 'b'.
3317         (BLOCK): Now in class 'x'.
3318         * c-common.c (verify_tree): Remove case 'b'.
3319         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3320         * calls.c (calls_function_1): Control cannot get past the switch
3321         when exp is a BLOCK.
3322         * print-tree.c (print_node): Move code for class 'b' to the class
3323         'c'/'x' switch, as case BLOCK.
3324         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3325         (unsafe_for_reeval, substitute_placeholder_in_expr)
3326         (stabilize_reference_1): Remove case 'b'.
3327         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3328         of something being 'b' to tests for TREE_CODE of something being
3329         BLOCK.
3330         * tree-ssa-operands.c (get_expr_operands): Likewise.
3331
3332 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3333
3334         * tree-gimple.c: Rename from tree-simple.c.
3335         * tree-gimple.h: Rename from tree-simple.h.
3336         * c-gimplify.c: Rename from c-simplify.c
3337         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3338         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3339         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3340         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3341         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3342         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3343         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3344         Update.
3345
3346 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3347
3348         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3349
3350 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3351
3352         * tree-ssa.c (delete_tree_ssa): XFREE
3353         bitmaps allocated with BITMAP_XMALLOC.
3354
3355         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3356         idfs_cache at the end of the function.
3357
3358         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3359         at the end of the function.
3360
3361         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3362         el at the end of the function.
3363
3364         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3365         bitmaps allocated with BITMAP_XMALLOC.
3366
3367         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3368         the end.
3369
3370         * final.c (shorten_branches): Free uid_shuid before
3371         reallocating it.
3372
3373         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3374
3375 2004-05-13  Jeff Law  <law@redhat.com>
3376
3377         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3378         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3379         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3380
3381         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3382         rather than iterating through the blocks testing each bit in
3383         livein to initialize the worklist.
3384         (mark_def_sites): Remove useless checks of KILLS for virtual
3385         operands.
3386
3387         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3388         new parameters for the statement and variable worklist as well
3389         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3390         worklist recording interesting variables in the variable worklist
3391         and bitmap.  Handle casts between integral and boolean types.
3392         (substitute_single_use_vars): Accept new parameters for the statement
3393         and variable worklist.  When a substitution is made add a new
3394         entry to the statement worklist.  Handle casts between integral
3395         and boolean types.
3396         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3397         worklists to children.  Iterate until the statement worklist
3398         is empty.
3399
3400 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3401
3402         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3403         the end of the block.
3404
3405         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3406         with BITMAP_XMALLOC.
3407
3408         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3409         with BITMAP_XMALLOC.
3410
3411         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3412         Free nonzero_vars at the end of the function.
3413
3414         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3415         need to generate code instead of a NOP_EXPR.
3416
3417 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3418
3419         * gcc.c (default_compilers): Fill out initializers for new Fortran
3420         entries.
3421
3422 2004-05-13  Paul Brook  <paul@codesourcery.com>
3423
3424         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3425
3426 2004-05-13  Paul Brook  <paul@codesourcery.com>
3427
3428         * config/arm/arm.c (arm_default_short_enums): New function.
3429         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3430
3431 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3432
3433         Merge from tree-ssa-20020619-branch.
3434
3435         * Makefile.in (reload1.o-warn): Add.
3436         (tree-alias-ander.o-warn): Add.
3437         (GMPLIBS): Define.
3438         (GMPINC): Define.
3439         (BANSHEELIB): Define.
3440         (BANSHEEINC): Define.
3441         (TREE_DUMP_H): Define.
3442         (TREE_SIMPLE_H): Define.
3443         (TREE_FLOW_H): Define.
3444         (LIBDEPS): Add BANSHEELIB.
3445         (INCLUDES): Add BANSHEEINC and GMPINC.
3446         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3447         c-mudflap.o and c-pretty-print.o.
3448         (C_OBJS): Remove c-pretty-print.o.
3449         (OBJS-common): Remove sibcall.o.
3450         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3451         tree-ssa.o, tree-optimize.o, tree-simple.o,
3452         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3453         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3454         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3455         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3456         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3457         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3458         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3459         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3460         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3461         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3462         tree-profile.o.
3463         (OBJC-archive): Add tree-nomudflap.o.
3464         (cc1): Add dependency on @TREEBROWSER@.
3465         (c-decl.o): Add dependency on TREE_DUMP_H.
3466         (c-dump.o): Likewise.
3467         (c-common.o): Add dependency on tree-iterator.h
3468         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3469         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3470         (tree.o): Add dependency on tree-iterator.h,
3471         BASIC_BLOCK_H and TREE_FLOW_H.
3472         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3473         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3474         (tree-alias-type.o, tree-alias-ander.o,
3475         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3476         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3477         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3478         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3479         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3480         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3481         tree-nested.o, tree-iterator.o, tree-dfa.o,
3482         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3483         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3484         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3485         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3486         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3487         tree-sra.o, tree-complex.o, tree-profile.o,
3488         rtl-profile.o): New rules.
3489         (function.o): Add dependency on basic-block.h
3490         (expr.o): Add dependency on tree-iterator.h.
3491         (sibcall.o): Remove.
3492         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3493         (cfg.o): Add dependency on TIMEVAR_H.
3494         (cfghooks.o): Add dependency on TREE_FLOW_H.
3495         (reg-stack.o): Add dependency on basic-block.h.
3496         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3497         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3498         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3499         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3500         tree-alias-type.h, tree-alias-common.h,
3501         tree-alias-type.c, tree-alias-common.c,
3502         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3503         rtl-profile.c and tree-nested.c.
3504         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3505         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3506         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3507         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3508         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3509         * basic-block.h: Include predict.h
3510         (struct edge_def): Add GTY marker.
3511         Change field 'insns' to be a union of tree and rtx.
3512         (EDGE_TRUE_VALUE): Define.
3513         (EDGE_FALSE_VALUE): Define.
3514         (EDGE_EXECUTABLE): Define.
3515         (struct bb_ann_d): Forward declare.
3516         (struct basic_block_def): Add GTY marker.
3517         Remove fields head_tree and end_tree.
3518         Add fields stmt_list, rbi and tree_annotations.
3519         (struct reorder_block_def): Define.
3520         (basic_block_info): Add GTY marker.
3521         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3522         variables instead of macros.
3523         (flow_call_edges_add): Remove declaration.
3524         (make_eh_edge): Remove declaration.
3525         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3526         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3527         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3528         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3529         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3530         (try_redirect_by_replacing_jump): Modfiy return type to
3531         edge instead of bool.
3532         * bb-reorder.c (copy_bb): Call duplicate_block
3533         instead of cfg_layout_duplicate_bb.
3534         (copy_bb_p): Call can_duplicate_block_p instead of
3535         cfg_layout_can_duplicate_bb_p.
3536         * bitmap.c (bitmap_first_set_bit): Abort if word
3537         wasn't found.
3538         (bitmap_last_set_bit): Likewise.
3539         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3540         (DEF_FUNCTION_TYPE_3): Add.
3541         * builtins.c (c_strlen): Make extern.
3542         (builtin_save_expr): New.
3543         (expand_builtin_nonlocal_goto): New.
3544         (expand_builtin_constant_p): Remove.
3545         (expand_builtin_mathfn): Call builtin_save_expr instead
3546         of save_expr.
3547         (expand_builtin_mathfn_2): Likewise.
3548         (expand_builtin_strcmp): Likewise.
3549         (expand_builtin_strncmp): Likewise.
3550         (expand_builtin_strcat): Likewise.
3551         (fold_builtin_cabs): Likewise.
3552         (expand_builtin_alloca): Don't trigger if -fmudflap is
3553         given.
3554         (build_string_literal): Set TREE_INVARIANT on new node.
3555         (expand_builtin_profile_fun): New.
3556         (round_trampoline_addr): New.
3557         (expand_builtin_init_trampoline): New.
3558         (expand_builtin_adjust_trampoline): New.
3559         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3560         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3561         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3562         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3563         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3564         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3565         Handle.
3566         (fold_builtin_expect): New.
3567         (fold_builtin_isascii): Don't return non-constant results
3568         in GIMPLE form.
3569         (fold_builtin_isdigit): Likewise.
3570         (fold_builtin_1): New.
3571         (fold_builtin): Call it.
3572         (build_function_call_expr): Update call to build a new
3573         CALL_EXPR.
3574         (purge_builtin_constant_p): Remove.
3575         (simplify_builtin, simplify_builtin_memcmp,
3576         simplify_builtin_strcmp, simplify_builtin_strncmp,
3577         simplify_builtin_strpbrk, simplify_builtin_strstr,
3578         simplify_builtin_strchr, simplify_builtin_strrchr,
3579         simplify_builtin_strcat, simplify_builtin_strncat,
3580         simplify_builtin_strspn, simplify_builtin_strcspn,
3581         simplify_builtin_next_arg, simplify_builtin_va_start,
3582         simplify_builtin_sprintf): New.
3583         * builtins.def (BUILT_IN_STACK_ALLOC,
3584         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3585         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3586         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3587         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3588         * c-common.c: Include tree-iterator.h and hashtab.h.
3589         (lang_statement_code_p): Declare.
3590         (lang_gimplify_stmt): Declare.
3591         (fix_string_type): Set TREE_INVARIANT for value.
3592         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3593         (c_type_hash): New.
3594         (c_common_get_alias_set): Handle multiple type nodes
3595         referring to "the same" type, currently for C90 only.
3596         (c_add_case_label): Use create_artificial_label.
3597         (finish_label_address_expr): Don't set TREE_CONSTANT on
3598         result.
3599         (c_expand_expr): Don't handle STMT_EXPR.
3600         (handle_alias_attribute): Marke aliased variables to be
3601         TREE_STATIC.
3602         (handle_nonnull_attribute): Initialize arg_num.
3603         (check_function_nonnull): Likewise.
3604         (c_walk_subtrees): New.
3605         (c_estimate_num_insns_1): Don't handle
3606         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3607         (c_decl_uninit_1): Remove.
3608         (c_decl_uninit): Remove.
3609         (c_warn_unused_result): New.
3610         * c-common.def (ASM_STMT): Change number of operands
3611         to 4.
3612         (FILE_STMT): Remove.
3613         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3614         Remove.
3615         (lang_gimplify_stmt): Add.
3616         (expand_stmt): Remove.
3617         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3618         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3619         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3620         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3621         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3622         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3623         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3624         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3625         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3626         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3627         genrtl_compound_stmt, genrtl_asm_stmt,
3628         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3629         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3630         c_tree_chain_matters_p, c_warn_unused_result,
3631         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3632         Declare.
3633         * c-convert.c (convert): Make convert work when
3634         converting to compatible types across translation unit.
3635         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3636         tree-simple.h, diagnostic.h and tree-dump.h
3637         (merge_decls): Initialize oldtype to NULL.
3638         (finish_decl): Use DECL_HARD_REGISTER instead of
3639         DECL_C_HARD_REGISTER.
3640         (check_bitfield_type_and_width): Check for null
3641         lang_type_specific when check the precision of an enum.
3642         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3643         in a pointer-to-array declarator.
3644         (finish_struct): Clear allocated struct lang_type.
3645         (finish_enum): Set enum_min and enum_max.  Set
3646         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3647         not to the enumerators.
3648         (set_decl_nonlocal): New.
3649         (store_parm_decls): Use it via walk_tree.
3650         (c_finalize): New.
3651         (finish_function): When !targetm.have_ctors_dtors,
3652         record static constructors and destructors here...
3653         (c_expand_body_1): ... not here.
3654         (c_expand_decl): Rename from c_expand_decl_stmt.
3655         Handle all C-specific expansion semantics.
3656         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3657         STMT_LINENO.
3658         * c-format.c (handle_format_arg_attribute): Initialize
3659         format_num.
3660         * c-lang.c: Include tree-inline.h
3661         (LANG_HOOKS_EXPAND_DECL,
3662         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3663         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3664         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3665         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3666         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3667         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3668         (c_types_compatible_p): New.
3669         * c-mudflap.c: New file.
3670         * c-objc-common.c: Include tree-mudflap.h
3671         (start_cdtor, finish_cdtor): Collapse
3672         together into
3673         (build_cdtor): ...here.  Update to construct a complete tree
3674         for the function.  No need to call push_scope, pop_scope, or
3675         clear_last_expr, or set current_function_cannot_inline.
3676         (c_missing_noreturn_ok_p): Change prototype to return
3677         bool.
3678         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3679         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3680         opts.c.
3681         (c_common_post_options): Don't ever use rtl inlining.
3682         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3683         * c-pragma.c (handle_pragma_redefine_extname): Define
3684         always.
3685         (init_pragma): Activate #pragma redefine_extname for mudflap.
3686         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3687         (pp_c_initializer): Accept any type CONSTRUCTOR.
3688         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3689         COMPLEX_TYPE.
3690         (decl_name_str): New local function.
3691         (pp_c_direct_declarator): Call it.
3692         (pp_c_primary_expression): Call it.
3693         (pp_c_id_expression): Call it.
3694         (pp_c_statement): Call it.
3695         (print_c_tree): Create new pp object.
3696         * c-pretty-print.h (pp_c_tree_decl_identifier,
3697         print_c_tree): Declare.
3698         * c-semantics.c: Include langhooks.h
3699         (lang_expand_stmt, lang_expand_decl_stmt,
3700         find_reachable_label_1, find_reachable_label,
3701         expand_unreachable_if_stmt, expand_unreachable_stmt,
3702         genrtl_do_stmt_1): Remove.
3703         (begin_stmt_tree): Don't check for changed filename.
3704         Call annotate_with_locus.
3705         (finish_stmt_tree): Don't set line for end of function.
3706         (build_stmt): Don't check type nodes for
3707         side effects.
3708         (build_stmt): Set TREE_SIDE_EFFECTS.
3709         Set EXPR_LOCUS instead of STMT_LINENO.
3710         (lang_expand_stmt, lang_expand_decl_stmt,
3711         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3712         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3713         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3714         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3715         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3716         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3717         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3718         find_reachable_label_1, expand_unreachable_if_stmt,
3719         expand_unreachable_stmt): Remove.
3720         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3721         * c-simplify.c: New file.
3722         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3723         (struct lang_type): Add fields enum_min and enum_max.
3724         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3725         (c_expand_decl, c_missing_noreturn_ok_p,
3726         c_types_compatible_p): Declare.
3727         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3728         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3729         (default_function_array_conversion): Rely on build to
3730         set TREE_CONSTANT.
3731         (parser_build_binary_op, pointer_diff): Likewise.
3732         (build_unary_op, build_binary_op): Likewise.
3733         (build_array_ref):
3734         (build_external_ref): Set TREE_INVARIANT.
3735         (build_c_cast, pop_init_level): Likewise.
3736         (process_init_element): Use ASM_VOLATILE_P.
3737         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3738         (c_finish_case): Call c_do_switch_warnings.
3739         * c.opt (fdump-): Remove.
3740         * calls.c (try_to_integrate): Remove.
3741         (prepare_call_address): Replace fndecl arg with a
3742         precomputed static chain value.
3743         (emit_call_1): New argument for full call expr.
3744         (flags_from_decl_or_type): Call special_function_p.
3745         (initialize_argument_information): Add argument
3746         may_tailcall.
3747         (purge_reg_equiv_notes): New.
3748         (expand_call): Do not try to expand calls inline.
3749         (fixup_tail_calls): New.
3750         * cfg.c: Include timevar.h and ggc.h.
3751         (bb_pool, edge_pool): Remove.
3752         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3753         (entry_exit_blocks): Remove.
3754         (rbi_pool): Declare.
3755         (init_flow): Do not create pools.
3756         Allocate entry/exit block.
3757         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3758         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3759         (unlink_block): Clear b->prev_bb and b->next_bb.
3760         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3761         (dump_flow_info): Work on trees too.
3762         (dump_cfg_bb_info): New.
3763         (brief_dump_cfg): New.
3764         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3765         (find_edge): New.
3766         * cfgbuild.c (rtl_make_eh_edge): Rename from
3767         make_eh_edge.  Update all users.
3768         (find_basic_blocks): Don't call VARRAY_FREE on
3769         basic_block_info.
3770         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3771         and newpos2.
3772         (delete_unreachable_blocks): Return changed status.
3773         (merge_seq_blocks): New.
3774         * cfghooks.c: Include tree-flow.h
3775         (tree_register_cfg_hooks, ir_type): New.
3776         (redirect_edge_and_branch): Change return type to edge.
3777         (predict_edge, predicted_by_p, can_duplicate_block_p,
3778         duplicate_block, block_ends_with_call_p,
3779         block_ends_with_condjump_p, flow_call_edges_add): New.
3780         * cfghooks.h (redirect_edge_and_branch): Change return
3781         type to edge.
3782         (predict_edge, predicted_by_p, can_duplicate_block_p,
3783         duplicate_block, block_ends_with_call_p,
3784         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3785         (redirect_edge_and_branch): Change return type to edge.
3786         (struct cfg_hooks): Add fields block_ends_with_call_p,
3787         block_ends_with_condjump_p, flow_call_edges_add,
3788         predict_edge, predicted_by_p, can_duplicate_block_p and
3789         duplicate_block.
3790         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3791         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3792         (fixup_reorder_chain): Use initialize_bb_rbi.
3793         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3794         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3795         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3796         (insn_locators_initialize): Use new info about blocks.
3797         * cfglayout.h (typedef struct reorder_block_def): Moved to
3798         basic_block.h.
3799         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3800         removed.
3801         * cfgloop.c: Include tree.h and tree-flow.h.
3802         * cfgloop.h (create_loop_notes): Declare.
3803         * cfgloopmanip.c (create_loop_notes): New.
3804         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3805         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3806         and duplicate_block fields.
3807         (create_basic_block_structure): Don't look at
3808         RTX_INTEGRATED_P.
3809         (rtl_block_ends_with_call_p): New.
3810         (rtl_block_ends_with_condjump_p): New.
3811         (need_fake_edge_p): Moved from cfganal.c.
3812         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3813         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3814         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3815         (cfg_layout_rtl_cfg_hooks): Ditto.
3816         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3817         functions to be reachable.
3818         * cgraphunit.c (decide_is_function_needed):
3819         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3820         inline functions don't need to be output.
3821         (cgraph_assemble_pending_functions): Don't do anything
3822         special for nested functions.
3823         (cgraph_mark_functions_to_output): Likewise.
3824         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3825         (cgraph_analyze_function): Use estimate_num_insns.
3826         (cgraph_mark_functions_to_output): Likewise.
3827         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3828         (cgraph_expand_function): Allow functions to not be
3829         emitted.
3830         (cgraph_remove_unreachable_nodes):
3831         (cgraph_recursive_inlining_p): Simplify.
3832         (lookup_recursive_calls,
3833         cgraph_decide_recursive_inlining): New.
3834         (cgraph_decide_inlining_*): Update calls of
3835         cgraph_mark_inline.
3836         * combine.c (get_pos_from_mask): Always set *plen.
3837         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3838         ftree-based-profiling, ftree-ccp, ftree-ch,
3839         ftree-combine-temps, ftree-copyrename, ftree-dce,
3840         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3841         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3842         ftree-lrs): Add.
3843         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3844         Undefine.
3845         * configure.ac: Add --enable-tree-browser option.
3846         Add --with-libbanshee option.
3847         Add GMPLIBS and GMPINC.
3848         * configure: Regenerate.
3849         * coverage.c (tree_ctr_tables): New.
3850         (coverage_counter_alloc): Use it.
3851         (build_ctr_info_value): Ditto.
3852         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3853         (tree_coverage_counter_ref): New.
3854         * coverage.h (coverage_counter_ref): Remove declaration.
3855         (rtl_coverage_counter_ref): Declare.
3856         (tree_coverage_counter_ref): Declare.
3857         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3858         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3859         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3860         (struct cse_basic_block_data): Rename enum values to not
3861         conflict with profile.h; update all uses.
3862         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3863         in comments.
3864         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3865         * diagnostic.h (debug_output_buffer, dump_generic_node,
3866         print_generic_stmt, print_generic_stmt_indented,
3867         print_generic_expr, print_generic_decl,
3868         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3869         Declare.
3870         * dominance.c: Cache immediate dominators.
3871         * domwalk.c: New file.
3872         * domwalk.h: New file.
3873         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3874         (gen_subprogram_die): Generate a DIE for a named
3875         return value.
3876         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3877         (add_location_or_const_value_attribute): Likewise.
3878         (add_bound_info): Likewise.
3879         (gen_decl_die): Likewise.
3880         * emit-rtl.c (maybe_set_first_label_num): New.
3881         (copy_most_rtx): Don't copy the integrated flag.
3882         Copy the new return_val flag.
3883         * et-forest.c (MAX_NODES): Define.
3884         (record_path_before_1): Abort if len is greater than
3885         MAX_NODES.
3886         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3887         gen_eh_region_catch, gen_eh_region_allowed,
3888         gen_eh_region_must_not_throw, get_eh_region_number,
3889         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3890         set_eh_region_tree_label, expand_resx_expr): New.
3891         (expand_eh_region_start, expand_start_catch): Use them.
3892         (expand_end_catch): Tidy.
3893         (note_eh_region_may_contain_throw): Take region argument.
3894         (note_current_region_may_contain_throw): New.
3895         (get_exception_filter): Export.
3896         (collect_eh_region_array): Export.
3897         (remove_unreachable_regions): Check ERT_TRY based on reachability
3898         of catches, not reachability of continue_label.  Never remove
3899         ERT_MUST_NOT_THROW regions.
3900         (collect_rtl_labels_from_trees): New.
3901         (convert_from_eh_region_ranges): Use it.
3902         (connect_post_landing_pads): Handle dying cleanups.
3903         (struct reachable_info): Add callback data.
3904         (add_reachable_handler): Invoke the callback.
3905         (foreach_reachable_handler): New.
3906         (reachable_handlers): Use it.
3907         (arh_to_landing_pad, arh_to_label): New.
3908         (can_throw_internal_1): Split out from can_throw_internal.
3909         (can_throw_external_1): Similarly.
3910         * except.h: Update.
3911         * explow.c (emit_stack_save): Remove savearea mode check.
3912         (update_nonlocal_goto_save_area): New.
3913         (allocate_dynamic_stack_space): Use it.
3914         (probe_stack_range): Never emit loop notes.
3915         * expmed.c (extract_fixed_bit_field): Always propagate the
3916         target for the shift if it is a REG.
3917         * expr.c: Include tree-iterator.h
3918         (is_zeros_p): Remove.
3919         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3920         (count_type_elements): New.
3921         (mostly_zeros_p): Use them.
3922         (expr_wfl_stack): Remove.
3923         (convert_move): Do nothing if to and from are the same.
3924         (emit_block_move_via_loop): Don't emit LOOP notes.
3925         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3926         (emit_move_insn_1): Don't generate inline warnings.
3927         (expand_vars, expand_var): Split from ...
3928         (expand_expr_1): ... here.
3929         (expand_expr_real, expand_expr_real_1):  Use new macros
3930         EXPR_LOCATION and EXPR_HAS_LOCATION.
3931         * expr.h (simplify_builtin_fputs,
3932         simplify_builtin_strcpy, simplify_builtin_strncpy,
3933         expand_var, fixup_tail_calls,
3934         update_nonlocal_goto_save_area): Declare.
3935         (lookup_static_chain, expand_inline_function,
3936         mark_seen_cases): Remove.
3937         (prepare_call_address): Change type of 2nd argument to
3938         rtx.
3939         * final.c (profile_function): Update static chain test.
3940         (final): Don't look at RTX_INTEGRATED_P.
3941         * flags.h (flag_mudflap, flag_mudflap_threads,
3942         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3943         flag_tree_dce, flag_tree_combine_temps,
3944         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3945         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3946         flag_tree_points_to): Declare.
3947         (enum pta_type): Declare.
3948         * flow.c (lang_missing_noreturn_ok_p): Remove.
3949         (check_function_return_warnings): Remove.
3950         (update_life_info): Update comments.
3951         (free_basic_block_vars): Don't call VARRAY_FREE for
3952         basic_block_info.
3953         (regno_uninitialized): Remove.
3954         * fold-const.c (int_const_binop): Make extern.
3955         (non_lvalue): Rely on build to set TREE_CONSTANT.
3956         (operand_equal_p): Replace only_const argument with
3957         flags.  Allow pure functions if OEP_PURE_SAME.
3958         (fold): Use OEP_ONLY_CONST.
3959         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3960         boolean type.
3961         (fold_relational_hi_lo,
3962         nondestructive_fold_binary_to_constant,
3963         nondestructive_fold_unary_to_constant,
3964         fold_read_from_constant_string): New.
3965         * function.c (struct function): Remove calls_constant_p.
3966         (current_function_calls_constant_p): Remove.
3967         (inline_function_decl): Remove.
3968         (put_var_into_stack): Don't use it.
3969         (fix_lexical_addr): Likewise.
3970         (inline_function_decl): Remove extern declaration.
3971         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3972         (trampolines_created): Move to varasm.c.
3973         (free_after_compilation): Update for removed fields.
3974         (allocate_struct_function): Likewise.
3975         (delete_handlers, lookup_static_chain): Remove.
3976         (fix_lexical_addr): Don't consider non-local variable refs.
3977         (trampoline_address): Remove.
3978         (round_trampoline_addr): Move to builtins.c.
3979         (adjust_trampoline_addr): Remove.
3980         (expand_function_start): Update for changes to static chain
3981         and nonlocal goto handling.
3982         (initial_trampoline): Move to varasm.c.
3983         (expand_function_end): Don't build trampolines or kill
3984         unreferenced nonlocal goto labels.
3985         (free_after_compilation): Don't set it.
3986         (expand_function_end): Likewise.
3987         (setjmp_vars_warning): Rename from
3988         uninitialized_vars_warning, remove uninitialized vars warning.
3989         (uninitialized_vars_warning): Remove old comment
3990         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3991         and do not call the langhook.
3992         (expand_function_start, expand_function_end): Don't do
3993         function instrumentation here.
3994         (clear_block_marks): Rename from reorder_blocks_0, export.
3995         (blocks_nreverse): Export.
3996         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3997         of rtl.
3998         (reset_block_changes, record_block_change, finalize_block_changes,
3999         check_block_change, free_block_changes): New functions.
4000         (assign_parms): Setting of current_function_stdarg
4001         moved ...
4002         (allocate_struct_function): ... here.
4003         * function.h (struct function): Remove x_nonlocal_labels,
4004         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4005         x_context_display, x_trampoline_list, needs_context.
4006         Add static_chain_decl, nonlocal_goto_save_area.
4007         (struct function): Remove x_clobber_return_insn.
4008         Add tail_call_emit field, last_label_uid,
4009         unexpanded_var_list, dont_emit_block_notes,
4010         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4011         (clear_block_marks): Declare.
4012         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4013         (mfwrap_spec, mflib_spec): Declare.
4014         (cpp_unique_options, cc1_options): Ditto.
4015         (default_compilers): Add .F and .f90.
4016         (static_specs): Add mfwrap and mflib.
4017         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4018         CONSTANT_RTX_P.
4019         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4020         Update to match insns field in struct edge_def.
4021         * gdbinit.in (pgs, pge): Define.
4022         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4023         instead of the integrated flag.
4024         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4025         * gengtype-yacc.y (bitfieldlen): Add empty action.
4026         (struct_fields): Accept unnamed bitfields.
4027         (bitfieldlen): Split from ...
4028         (bitfieldopt): ... here.
4029         * gengtype.c (ifiles): Add tree-alias-type.h and
4030         tree-flow.h.
4031         * genrecog.c (validate_pattern): Do not handle
4032         CONSTANT_P_RTX.
4033         * gimple-low.c: New file.
4034         * gimplify.c: New file.
4035         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4036         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4037         * ifcvt.c (dead_or_predicable): Initialize local variable
4038         'earliest'.
4039         * input.h (expr_wfl_stack): Remove.
4040         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4041         (setup_initial_hard_reg_value_integration): Likewise.
4042         (initialize_for_inline): Likewise.
4043         (note_modified_parmregs): Likewise.
4044         (integrate_parm_decls): Likewise.
4045         (process_reg_param): Likewise.
4046         (save_parm_insns): Likewise.
4047         (copy_insn_list): Likewise.
4048         (copy_insn_notes): Likewise.
4049         (compare_blocks): Likewise.
4050         (find_block): Likewise.
4051         (inlining): Likewise.
4052         (function_cannot_inline_p): Likewise.
4053         (parmdecl_map): Likewise.
4054         (in_nonparam_insns): Likewise.
4055         (save_for_inline): Likewise.
4056         (FIXED_BASE_PLUS): Likewise.
4057         (expand_inline_function): Likewise.
4058         (copy_rtx_and_substitute): Don't look at map->integrating,
4059         map->inline_target, and inlining, since we are never copying
4060         for integrating.
4061         Don't abort on RTX_INTEGRATED_P.
4062         (old_fun): Remove.
4063         (output_inline_function): Remove.
4064         * integrate.h (struct inline_map): Remove fields integrating,
4065         block_map, leaf_reg_map, inline_target, and local_return_label.
4066         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4067         copy_loop_headers, never_reached_warning): Removed.
4068         (any_uncondjump_p): Reject nonlocal goto.
4069         * langhooks-def.h (lhd_types_compatible_p,
4070         lhd_expand_decl, lhd_gimplify_expr): Declare.
4071         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4072         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4073         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4074         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4075         LANG_HOOKS_GIMPLIFY_EXPR,
4076         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4077         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4078         LANG_HOOKS_GIMPLIFY_EXPR,
4079         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4080         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4081         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4082         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4083         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4084         LANG_HOOKS_DECL_UNINIT,
4085         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4086         * langhooks.c: Include tree-simple.h.
4087         (lhd_expand_decl): New.
4088         (lhd_types_compatible_p): New.
4089         (lhd_decl_uninit): Remove.
4090         (lhd_gimplify_expr): New.
4091         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4092         Remove.
4093         (struct lang_hooks_for_functions): Add field
4094         missing_noreturn_ok_p.
4095         (struct lang_hooks): Add field expand_decl,
4096         types_compatible_p, gimplify_expr and
4097         gimple_before_inlining.
4098         Remove fields decl_uninit and rtl_expand
4099         * opts.c (decode_options): Set flag_tree_ccp,
4100         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4101         flag_tree_pre, flag_tree_ter,
4102         flag_tree_live_range_split, flag_tree_sra,
4103         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4104         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4105         OPT_fmudflapth, OPT_fmudflapir,
4106         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4107         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4108         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4109         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4110         OPT_ftree_points_to_ and OPT_ftree_pre.
4111         * output.h (regno_uninitialized, find_basic_blocks,
4112         cleanup_cfg, delete_unreachable_blocks,
4113         check_function_return_warnings): Remove.
4114         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4115         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4116         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4117         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4118         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4119         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4120         Define.
4121         * passes.c (rest_of_decl_compilation):
4122         (rest_of_handle_sibling_calls): Remove.
4123         (rest_of_handle_inlining): Remove.
4124         (rest_of_handle_gcse): Do not run
4125         purge_builtin_constant_p.
4126         (rest_of_compilation): Update.
4127         Do not call copy_loop_headers.
4128         Do rtl-based profiling only when
4129         !flag_tree_based_profiling.  Register rtl-based profiling
4130         hooks.
4131         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4132         (predicted_by_p): Rename to ...
4133         (rtl_predicted_by_p): .. this one; make global
4134         (tree_predicted_by_p): New.
4135         (dump_prediction): Add FILE argument.
4136         (predict_edge): Rename to ...
4137         (rtl_predict_edge): .. this one.
4138         (tree_predict_edge): New.
4139         (combine_predictions_for_insn): Update calls of predict_edge.
4140         (predict_loops): Break out from ...
4141         (estimate_probability): ... here; update comments; move updating
4142         of unknown probabilities from ...
4143         (estimate_bb_frequencies): ... here.
4144         (combine_predictions_for_bb): New.
4145         (tree_predict_by_opcode): New.
4146         (tree_estimate_probability): New.
4147         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4148         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4149         * predict.h: Add include guard.
4150         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4151         * pretty-print.c (pp_write_text_to_stream): Make extern.
4152         * pretty-print.h (pp_write_text_to_stream): Declare.
4153         * print-rtl.c (print_rtx): Don't print the integrated flag.
4154         Print the return_val flag.
4155         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4156         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4157         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4158         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4159         * profile.c: Include cfghooks.h, tree-flow.h.
4160         (profile_hooks): New.
4161         (profile_dump_file): New.
4162         (instrument_edges): Use hooks instead of RTL-specific code.
4163         (instrument_values): Ditto.
4164         (get_exec_counts): Ditto.
4165         (compute_branch_probabilities): Ditto.
4166         (compute_value_histograms): Ditto.
4167         (branch_prob): Ditto.
4168         (find_spanning_tree): Ditto.
4169         (end_branch_prob): Ditto.
4170         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4171         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4172         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4173         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4174         (tree_register_profile_hooks): New.
4175         (rtl_register_profile_hooks): New.
4176         * ra-rewrite.c (rewrite_program): Clear variable info.
4177         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4178         * regs.h: Add include guards.
4179         * reload.c (decompose): Clear val using memset.
4180         * rtl.def (CONSTANT_P_RTX): Remove.
4181         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4182         (copy_loop_headers): Remove.
4183         (struct rtx_def): Replace the integrated flag with the
4184         return_val flag.
4185         (maybe_set_first_label_num): Declare.
4186         (init_branch_prob): Move declaration to value-prof.h.
4187         (end_branch_prob): Ditto.
4188         (branch_prob): Ditto.
4189         (never_reached_warning): Don't declare it.
4190         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4191         (hoist_insn_to_edge): Update to match field insns in
4192         struct edge_def.
4193         * sbitmap.c (sbitmap_realloc): New.
4194         * sbitmap.h (sbitmap_realloc): Declare.
4195         * sibcall.c: Remove file.
4196         * simplify-rtx.c (simplify_rtx): Do not handle
4197         CONSTANT_P_RTX.
4198         * stmt.c (parse_output_constraint): Don't warn for read-write
4199         memory operand.
4200         (tail_recursion_args): Use types_compatible_p langhook.
4201         (force_label_rtx): Don't look at inline_function_decl.
4202         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4203         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4204         (declare_nonlocal_label): Remove.
4205         (expand_goto): Don't handle nonlocal gotos.
4206         (expand_nl_handler_label): Remove.
4207         (expand_nl_goto_receivers): Remove.
4208         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4209         update_nonlocal_goto_save_area.
4210         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4211         (warn_if_unused_value): Likewise.
4212         (expand_start_loop, expand_loop_continue_here,
4213         expand_end_loop): Don't create loop notes.
4214         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4215         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4216         (expand_end_case_type): Don't do warn_switch handling.
4217         (pushcase, pushcase_range) Update add_case_node calls.
4218         (add_case_node): Add dont_expand_label argument.
4219         (same_case_target_p): Don't search rtl.
4220         (expand_start_bindings_and_block, expand_end_bindings):
4221         Don't emit block notes when dont_emit_block_notes.
4222         (using_eh_for_cleanups_p): Export.
4223         (expand_return): Allow any typed rhs.
4224         (expand_stack_alloc): New.
4225         (expand_stack_save, expand_stack_restore): New.
4226         (containing_blocks_have_cleanups_or_stack_level): New
4227         function.
4228         (asm_op_is_mem_input): New fn.
4229         (expand_asm_expr): New fn.
4230         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4231         nodes.
4232         * stor-layout.c (layout_type): Just return if type is
4233         error_mark_node.
4234         (update_alignment_for_field): Export.
4235         (variable_size): We don't care about global_bindings_p if
4236         the frontend doesn't want a list of the expressions.
4237         * system.h: Poison INTEGRATE_THRESHOLD.
4238         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4239         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4240         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4241         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4242         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4243         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4244         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4245         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4246         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4247         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4248         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4249         TV_CONTROL_DEPENDENCES): Define.
4250         * toplev.c: Include tree-alias-common.h
4251         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4252         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4253         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4254         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4255         flag_tree_combine_temps, flag_tree_ter,
4256         flag_tree_live_range_split, flag_tree_dom,
4257         flag_tree_copyrename, flag_tree_dse): Declare.
4258         (f_options): Add tree-based-profiling, tree-gvn,
4259         tree-pre, tree-ccp, tree-dce,
4260         tree-dominator-opts, tree-copyrename, tree-dse,
4261         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4262         (wrapup_global_declarations): Don't output nested inlined functions.
4263         (general_init): Call init_tree_optimization_passes.
4264         (process_options): Sorry for -ftree-based-profiling plus
4265         -ftest-coverage or -fprofile-values.
4266         * toplev.h (init_tree_optimization_passes,
4267         flag_tree_based_profiling): Declare.
4268         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4269         * tree-alias-ander.c: New file.
4270         * tree-alias-ander.h: New file.
4271         * tree-alias-common.c: New file.
4272         * tree-alias-common.h: New file.
4273         * tree-alias-type.c: New file.
4274         * tree-alias-type.h: New file.
4275         * tree-browser.c: New file.
4276         * tree-browser.def: New file.
4277         * tree-cfg.c: New file.
4278         * tree-complex.c: New file.
4279         * tree-dfa.c: New file.
4280         * tree-dump.c (dump_enable_all): New.
4281         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4282         (dump_node): Remove const from field suffix and swtch.
4283         (dump_files): Add null entry, .generic, .nested, .vcg,
4284         .xml and a match-all entry.
4285         (extra_dump_files, extra_dump_files_in_use,
4286         extra_dump_files_alloced): Declare
4287         (dump_option_value_info): Add raw, details, stats,
4288         blocks, vops, lineno, uid and all.
4289         (dump_register): New.
4290         (get_dump_file_info): New.
4291         (dump_begin): Call it.
4292         Do nothing for TDI_none.
4293         (dump_begin): Include phase number in dump filename.
4294         (dump_enable_all): New.
4295         (dump_switch_p_1): Split out from dump_switch_p.
4296         (dump_switch_p): Handle extra_dump_files.
4297         Start our scan at TDI_none + 1.
4298         If -fdump-tree-all was given, call dump_enable_all.
4299         * tree-dump.h: Include splay-tree.h.
4300         (dump_function, dump_function_to_file, dump_register):
4301         Declare.
4302         * tree-eh.c: New file.
4303         * tree-flow-inline.h: New file.
4304         * tree-flow.h: New file.
4305         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4306         * tree-inline.h (walk_tree,
4307         walk_tree_without_duplicates): Move to tree.h.
4308         (estimate_num_insns): Declare.
4309         * tree-into-ssa.c: New file.
4310         * tree-iterator.c: New file.
4311         * tree-iterator.h: New file.
4312         * tree-mudflap.c: New file.
4313         * tree-mudflap.h: New file.
4314         * tree-nested.c: New file.
4315         * tree-nomudflap.c: New file.
4316         * tree-nrv.c: New file.
4317         * tree-optimize.c (dump_flags, vars_to_rename,
4318         in_gimple_form, all_passes, pass_gimple,
4319         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4320         (execute_gimple, execute_rebuild_bind,
4321         gate_all_optimizations, execute_del_cfg,
4322         register_one_dump_file, register_dump_files, dup_pass_1,
4323         init_tree_optimization_passes, execute_todo,
4324         execute_one_pass, execute_pass_list): New.
4325         (clear_decl_rtl): Remove.
4326         (tree_rest_of_compilation): Update to use tree
4327         optimizers.
4328         * tree-outof-ssa.c: New file.
4329         * tree-pass.h: New file.
4330         * tree-phinodes.c: New file.
4331         * tree-pretty-print.c: New file.
4332         * tree-profile.c: New file.
4333         * tree-simple.c: New file.
4334         * tree-simple.h: New file.
4335         * tree-sra.c: New file.
4336         * tree-ssa-alias.c: New file.
4337         * tree-ssa-ccp.c: New file.
4338         * tree-ssa-copy.c: New file.
4339         * tree-ssa-copyrename.c: New file.
4340         * tree-ssa-dce.c: New file.
4341         * tree-ssa-dom.c: New file.
4342         * tree-ssa-dse.c: New file.
4343         * tree-ssa-forwprop.c: New file.
4344         * tree-ssa-live.c: New file.
4345         * tree-ssa-live.h: New file.
4346         * tree-ssa-loop.c: New file.
4347         * tree-ssa-operands.c: New file.
4348         * tree-ssa-operands.h: New file.
4349         * tree-ssa-phiopt.c: New file.
4350         * tree-ssa-pre.c: New file.
4351         * tree-ssa.c: New file.
4352         * tree-ssanames.c: New file.
4353         * tree-tailcall.c: New file.
4354         * tree.c: Include tree-iterator.h, basic-block.h and
4355         tree-flow.h.
4356         (tree_node_kind): Add phi_nodes and ssa names.
4357         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4358         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4359         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4360         <'c'> Set TREE_INVARIANT.
4361         (copy_node_stat): Abort if trying to copy a
4362         STATEMENT_LIST.
4363         Clear TREE_VISITED.
4364         Clear annotation field.
4365         (build_constructor): Copy TREE_INVARIANT from vals.
4366         Don't clear TREE_CONSTANT.
4367         (expr_first, expr_last, expr_length): Remove.
4368         (staticp): Pass unknown component references to the language.
4369         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4370         (skip_simple_arithmetic): Likewise.
4371         (stabilize_reference_1): Likewise.
4372         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4373         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4374         STATEMENT_LIST.
4375         (lhd_unsave_expr_now): Remove.
4376         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4377         (recompute_tree_invarant_for_addr_expr): New.
4378         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4379         Call recompute_tree_invarant_for_addr_expr.
4380         Set TREE_INVARIANT accordingly.
4381         (build2_stat): Don't handle CALL_EXPR.
4382         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4383         (build_expr_wfl): Remove.
4384         (annotate_with_file_line, annotate_with_locus): New.
4385         (simple_cst_equal): Call simple_cst_list_equal to compare
4386         CONSTRUCTOR_ELTS pointers.
4387         (iterative_hash_expr): Don't hash types associated
4388         with conversions.  Instead hash on the signedness of the
4389         toplevel object and the operand of the conversion.
4390         (dump_tree_statistics): Call ssanames_print_statistics
4391         and phinodes_print_statistics.
4392         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4393         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4394         needs_to_live_in_memory): New.
4395         (initializer_zerop): Handle VECTOR_CST.  Don't check
4396         AGGREGATE_TYPE_P for CONSTRUCTOR.
4397         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4398         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4399         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4400         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4401         (CALL_EXPR): Add another operand.
4402         (EXPR_WITH_FILE_LOCATION): Remove.
4403         (SWITCH_EXPR): Add another operand.
4404         * tree.h: Update various comments.
4405         (union tree_ann_d): Forward declare.
4406         (struct tree_common): Add fields nowarning_flag,
4407         invariant_flag and visited.
4408         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4409         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4410         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4411         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4412         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4413         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4414         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4415         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4416         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4417         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4418         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4419         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4420         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4421         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4422         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4423         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4424         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4425         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4426         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4427         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4428         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4429         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4430         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4431         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4432         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4433         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4434         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4435         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4436         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4437         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4438         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4439         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4440         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4441         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4442         TDF_UID,): Define.
4443         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4444         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4445         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4446         EXPR_WFL_SET_LINECOL): Remove.
4447         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4448         make_phi_node, init_phinodes, fini_phinodes,
4449         release_phi_node, phinodes_print_statistics,
4450         init_ssanames, fini_ssanames, make_ssa_name,
4451         release_ssa_name, ssanames_print_statistics,
4452         annotate_with_file_line, build_empty_stmt,
4453         annotate_with_locus, expr_only, categorize_ctor_elements,
4454         count_type_elements, add_var_to_bind_expr, is_essa_node,
4455         expand_stack_alloc, expand_stack_save,
4456         expand_stack_restore, add_case_node, operand_equal_p,
4457         nondestructive_fold_unary_to_constant,
4458         nondestructive_fold_binary_to_constant,
4459         fold_read_from_constant_string, int_const_binop,
4460         strip_float_extensions, simplify_builtin, c_strlen,
4461         recompute_tree_invarant_for_addr_expr,
4462         needs_to_live_in_memory, make_vector,
4463         setjmp_vars_warning, update_alignment_for_field,
4464         expand_asm_expr, asm_op_is_mem_input,
4465         containing_blocks_have_cleanups_or_stack_level,
4466         create_artificial_label, gimplify_function_tree,
4467         get_name, unshare_expr, walk_tree,
4468         walk_tree_without_duplicates, in_gimple_form): Declare.
4469         (struct tree_exp): Add fields locus and block.
4470         (struct tree_ssa_name, struct edge_def, struct
4471         tree_phi_node, struct tree_eref_common, struct
4472         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4473         union alias_var_def, struct tree_statement_list_node,
4474         struct tree_statement_list, enum operand_equal_flag): Declare.
4475         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4476         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4477         TS_STATEMENT_LIST.
4478         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4479         euse and stmt_list.
4480         (function_cannot_inline_p, uninitialized_vars_warning,
4481         save_for_inline, output_inline_function, all_cases_count,
4482         check_for_full_enumeration_handling,
4483         declare_nonlocal_label): Remove.
4484         (enum tree_dump_index): Add TDI_none, TDI_tu,
4485         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4486         * unroll.c (unroll_loop): Don't clear map->inline_target.
4487         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4488         function.
4489         * value-prof.c (value_prof_hooks): New.
4490         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4491         Move rtl-specific bits in from branch_prob.
4492         (value_profile_transformations): Rename to
4493         rtl_value_profile_transformations.
4494         (struct value_prof_hooks): New.
4495         (rtl_value_prof_hooks): New.
4496         (rtl_register_value_prof_hooks): New.
4497         (tree_find_values_to_profile): New stub.
4498         (tree_value_profile_transformations): New stub.
4499         (tree_value_prof_hooks): New stub.
4500         (tree_register_value_prof_hooks): New stub.
4501         (find_values_to_profile): New.
4502         (value_profile_transformations): New.
4503         * value-prof.h: Add multiple inclusion guard.
4504         (struct histogram_value): Change rtx fields to void *.
4505         (rtl_register_value_prof_hooks): New declaration.
4506         (tree_register_value_prof_hooks): New declaration.
4507         (find_values_to_profile): New declaration.
4508         (free_profiled_values): New declaration.
4509         (value_profile_transformations): New declaration.
4510         (struct profile_hooks): New declaration.
4511         (init_branch_prob): Declaration moved from rtl.h.
4512         (branch_prob): Declaration moved from rtl.h.
4513         (end_branch_prob): Declaration mooved from rtl.h.
4514         (tree_register_profile_hooks): New declaration.
4515         (rtl_register_profile_hooks): New declaration.
4516         (tree_profile_hooks): New declaration.
4517         (rtl_profile_hooks): New declaration.
4518         * varasm.c: Include tree-mudflap.h.
4519         (TRAMPOLINE_ALIGNMENT): Remove.
4520         (make_decl_rtl): Call mudflap_enqueue_decl.
4521         (assemble_static_space):
4522         (assemble_trampoline_template): Set and return
4523         TRAMPOLINE_ALIGNMENT.
4524         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4525         Add entry for 'tree *'.
4526         Add entry for struct edge_def *.
4527         (varray_copy): New.
4528         * varray.h (enum varray_data_enum): Add
4529         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4530         VARRAY_DATA_TREE_PTR.
4531         (union varray_data_tag): Corresponding changes.
4532         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4533         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4534         VARRAY_EDGE, VARRAY_TREE_PTR,
4535         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4536         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4537         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4538
4539         * config/*/*: Various updates for changed macros, tree
4540         codes, etc.  Check ChangeLog.tree-ssa.
4541
4542         * doc/cfg.texi: New file.
4543         * doc/tree-ssa.texi: New file.
4544         * doc/c-tree.texi: Document new codes.
4545         * doc/gccint.texi: Include new files.
4546         * doc/install.texi: Document new features.
4547         * doc/invoke.texi: Document new switches.
4548         * doc/passes.texi: Document new passes.
4549         * doc/rtl.texi: Update changed RTL codes.
4550         * doc/sourcebuild.texi: Update build instructions.
4551         * doc/standards.texi: Document Fortran changes.
4552         * doc/tm.texi: Update.
4553
4554 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4555
4556         Replace several arrays with a struct of arrays.
4557         * combine.c (struct reg_stat): New.
4558         (init_reg_last_arrays): Renamed to...
4559         (init_reg_last): ...this.  Callers adjusted.
4560         (reg_stat): New.
4561         (combine_instructions): Allocate it and use it.
4562         (reg_last_death, reg_last_set, reg_last_set_value,
4563         reg_last_set_label, reg_last_set_table_tick,
4564         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4565         reg_last_set_mode, reg_last_set_nonzero_bits,
4566         reg_last_set_sign_bit_copies): Replace throughout
4567         with items of reg_stat.
4568
4569 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4570
4571         PR optimization/15100
4572         * combine.c (distribute_notes): Don't create a dangling
4573         REG_LIBCALL/REG_RETVAL note.
4574
4575 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4576
4577         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4578
4579         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4580         negv2si2.
4581
4582 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4583
4584         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4585
4586 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4587
4588         * doc/gty.texi (GTY Options): Clarify example.
4589
4590 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4591
4592         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4593         Add const qualifier to altivec vector type if one is needed.
4594
4595 2004-05-11  Paul Brook  <paul@codesourcery.com>
4596
4597         * flags.h (flag_short_enums): Update comment.
4598         * opts.c (decode_options): Set flag_short_enums to 2.
4599         * toplev.c (flag_short_enums): Update comment.
4600         (process_options): Call default_short_enums target hook.
4601
4602 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4603
4604         PR target/14063
4605         * config/rs6000/altivec.md (altivec_dssall):
4606         Change to unspec_volatile.
4607         (altivec_dss): Likewise.
4608
4609 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4610
4611         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4612         vnor.
4613         ("one_cmplv8hi2"): Same.
4614         ("one_cmplv4si2"): Same.
4615
4616 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4617
4618         PR target/15130
4619         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4620         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4621         into account.  Compute the correct number of general registers
4622         for the return value.  Generate a special push/pop sequence when
4623         failing to get a temporary register for non SHmedia epilogue.
4624         (sh_expand_epilogue): Add an argument to show whether it's for
4625         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4626         -1 if needed.
4627         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4628         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4629         with 1.
4630         (epilogue): Call sh_expand_epilogue with 0.
4631
4632 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4633
4634         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4635         goto a cleanup label.  After the cleanup, free the allocated memory.
4636
4637 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4638
4639         * config/rs6000/altivec.h (vec_sld): Add overloads for
4640         argument/return types of 'vector bool int', 'vector bool short'
4641         and 'vector bool char'.
4642
4643 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4644
4645         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4646         nested function.
4647
4648 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4649
4650         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4651         treating missing ones as "".
4652         * config/mips/mips.md: Remove constraints from match_operands and
4653         match_scratches if they appear in define_expands (except reload*),
4654         define_peephole2s, define_splits or attribute specifications.
4655         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4656         constraint strings.
4657
4658 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4659
4660         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4661         AltiVec vectors.
4662         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4663         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4664         byte boundary.  Remove useless code.  Add function comment.
4665         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4666         call to where it belongs.
4667         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4668         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4669         (rs6000_va_arg): Adjust for AltiVec change.
4670
4671 2004-05-10  Paul Brook  <paul@codesourcery.com>
4672
4673         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4674         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4675         (TARGET_DOUBLEWORD_ALIGN): Use it.
4676         (WCHAR_TYPE): Define.
4677         (WCHAR_SIZE_TYPE): Define.
4678         (SIZE_TYPE): Define.
4679
4680 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4681
4682         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4683         when size is 8 bytes.
4684         (function_arg_advance): Account for stack space used by AltiVec
4685         args when -mabi=altivec.  Simplify alignment calculations.  For
4686         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4687         (function_arg): Similarly.
4688         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4689         not AltiVec ABI.
4690         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4691         Correct alignment, and align before testing reg count.  Remove
4692         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4693         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4694         TARGET_FPRS here..
4695         (rs6000_function_value): .. not here before call.
4696
4697 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4698
4699         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4700
4701 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4702
4703         PR 15007
4704         * c-decl.c (current_file_decl): Rename to all_translation_units,
4705         adjust comment.
4706         (pop_scope): If popping file_scope, construct a
4707         TRANSLATION_UNIT_DECL and make it the context of all the
4708         symbols in the scope.
4709         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4710         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4711         anything to current_file_decl.
4712         (pushdecl_top_level): Likewise.
4713         (store_parm_decls_newstyle): Adjust check for nested function.
4714         (c_write_global_declarations): Update for renamed variable.
4715
4716 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4717
4718         * config/rs6000/rs6000-protos.h
4719         (rs6000_conditional_register_usage): Protoize.
4720
4721         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4722
4723         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4724         function.
4725
4726 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4727
4728         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4729         where op is a comparison operator and C1 and C2 are integer constants
4730         into a range check.
4731         (fold): Call fold_div_compare.
4732
4733 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4734
4735         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4736         problems with earlier versions of the GNU compiler.
4737
4738 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4739
4740         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4741         Declare.
4742
4743         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4744         (rs6000_hard_regno_mode_ok): New.
4745         (rs6000_init_hard_regno_mode_ok): New.
4746         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4747
4748         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4749         result.
4750
4751 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4752
4753         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4754         define as macros #ifdef __APPLE_ALTIVEC__.
4755
4756 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4757
4758         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4759         Generate appropriate parallels for vector arguments
4760         passed to vararg functions. (function_arg): make the call
4761         to rs6000_mixed_function_arg for vector args as needed.
4762
4763 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4764
4765         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4766         EABI_FLOAT_VARARGS_P.
4767
4768 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4769
4770         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4771         * config/mips/mips.c (override_options): Disable branch likely
4772         instructions if TUNE_MIPS5500.
4773
4774 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4775
4776         * config/mips/mips.c (override_options): Allow the hi and lo registers
4777         to store any integral mode, not just MODE_INTs.
4778
4779 2004-05-07  Paul Brook  <paul@codesourcery.com>
4780
4781         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4782         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4783         (TARGET_DOUBLEWORD_ALIGN): Use it.
4784         (WCHAR_TYPE): Define.
4785         (WCHAR_SIZE_TYPE): Define.
4786         (SIZE_TYPE): Define.
4787
4788 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4789
4790         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4791         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4792
4793 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4794
4795         * loop-doloop.c (doloop_valid_p): Make sure that body
4796         gets freed.
4797
4798 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4799
4800         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4801         declaration.
4802         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4803         (sparc_skip_caller_unimp): New global variable.
4804         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4805         Use it instead of SKIP_CALLERS_UNIMP_P.
4806         * config/sparc/sparc.md (call expander): Add sanity check.
4807         (call_address_struct_value_sp32): Re-sync with expander.
4808         (call_symbolic_struct_value_sp32): Likewise.
4809         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4810         of custom predicate.
4811
4812 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4813
4814         PR c++/14962
4815         * c-pragma.c (handle_pragma_redefine_extname): Only change
4816         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4817
4818 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4819
4820         * optabs.h (enum optab_index): Add new OTI_log1p.
4821         (log1p_optab): Define corresponding macro.
4822         * optabs.c (init_optabs): Initialize log1p_optab.
4823         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4824         patterns.
4825         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4826         using log1p_optab.
4827         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4828         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4829
4830         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4831
4832         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4833         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4834         Prototype here.
4835         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4836         x87's fyl2xp1 instruction.
4837         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4838         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4839         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4840         log1p  and log1pl built-ins as inline x87 intrinsics.
4841
4842 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4843
4844         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4845         * config/arm/freebsd.h: Likewise.
4846         * config/ia64/freebsd.h: Likewise.
4847         * config/sparc/freebsd.h: Likewise.
4848
4849 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4850
4851         PR optimization/15296
4852         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4853         getting last consecutive label at a branch.
4854         (relax_delay_slots): Similar, near top of loop.
4855
4856 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4857
4858         PR target/15202
4859         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4860         register to general register.
4861
4862 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4863
4864         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4865         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4866         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4867         (STACK_BOUNDARY): Delete.
4868
4869 2004-05-06  Stuart Hastings  <stuart@apple.com>
4870
4871         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4872         mistakenly clobbered by 1.423.
4873
4874 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4875
4876         * doc/invoke.texi: Document -mvr4130-align.
4877         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4878         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4879         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4880         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4881         * config/mips/mips.md: Include sched-int.h.
4882         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4883         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4884         (override_options): Enable -mvr4130-align at -O3 and above.
4885         (mips_sim_insn): New variable.
4886         (mips_sim): New structure.
4887         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4888         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4889         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4890         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4891         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4892         (mips_reorg): Call vr4130_align_insns.
4893         (vr4130_last_insn): New variable.
4894         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4895         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4896         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4897         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4898         (mips_use_dfa_pipeline_interface): Return true for the same.
4899         * config/mips/4130.md: New file.
4900         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4901         "mult;mflo" into "mtlo;macc".
4902         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4903         target of maccs.
4904         (*msac_using_macc): New pattern.
4905
4906 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4907
4908         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4909         (ir_vr55_hilo): Split into...
4910         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4911         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4912         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4913         Add various multiplication bypasses.
4914         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4915         multiplication.
4916
4917 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4918
4919         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4920         attribute to "XF".
4921
4922 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4923
4924         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4925         (fmod_optab, drem_optab): Define corresponding macros.
4926         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4927         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4928         using fmod?f3 and drem?f3 patterns.
4929         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4930         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4931         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4932         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4933         flag_unsafe_math_optimizations is set.
4934
4935         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4936         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4937
4938         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4939         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4940         Prototype here.
4941         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4942         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4943         fprem and fprem1 instructions.
4944         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4945         Rename insn definition to x86_fnstsw_1.
4946         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4947         x87 instructions.
4948         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4949         and fmodl built-ins as inline x87 intrinsics.
4950         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4951         and dreml built-ins as inline x87 intrinsics.
4952
4953 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4954
4955         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4956
4957 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4958
4959         PR driver/9822
4960         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4961
4962 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4963
4964         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4965         representation.
4966
4967 2004-05-06  Paul Brook  <paul@codesourcery.com>
4968
4969         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4970         (arm_coproc_mem_operand): ... To this.
4971         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4972         (arm_legitimate_index_p): Ditto.
4973         (vfp_mem_operand): Rename ...
4974         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4975         (vfp_secondary_reload_class): Use it.
4976         (output_move_double): Use doubleword load/store instructions.
4977         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4978         * config/arm/arm.h (TARGET_LDRD): Define.
4979         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4980         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4981         New splitter for invalid doubleword loads.
4982         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4983         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4984         * doc/md.texi: Document Uy constraint.
4985
4986 2004-05-05  Jan Hubicka  <jh@suse.cz>
4987
4988         PR opt/14980
4989         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4990         inline clones.
4991
4992 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4993
4994         PR target/15290
4995         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4996         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4997
4998 2004-05-05  Mike Stump  <mrs@apple.com>
4999
5000         * config/darwin-c.c (add_framework): Copy the directory name as it
5001         can be freed later.  Also, ensure we always allocate enough room
5002         for the cached framework information.
5003         (find_subframework_header): Keep track of the directory where the
5004         subframework header was found.
5005         (framework_construct_pathname): Speed up by not trying to re-add a
5006         framework.
5007         * cppfiles.c (search_path_exhausted): Arrange for the missing
5008         header callback to be able to set the directory where the header
5009         was found.
5010         (cpp_get_dir): Add.
5011         * cpplib.h (missing_header_cb): Add a parameter.
5012         (cpp_get_dir): Add.
5013
5014 2004-05-03  Mike Stump  <mrs@apple.com>
5015
5016         * doc/invoke.texi (Directory Options): Document -iquote.
5017         * doc/cpp.texi: Likewise.
5018         * doc/cppopts.texi: Likewise.
5019         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5020         (c_common_handle_option): Likewise.
5021         * c.opt (iquote): Add.
5022         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5023         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5024
5025         * c-opts.c (case OPT_I): Deprecate -I- support.
5026         * doc/invoke.texi: Likewise.
5027         * doc/cpp.texi: Likewise.
5028         * doc/cppopts.texi: Likewise.
5029
5030 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5031
5032         * basic-block.h (free_basic_block_vars): Update prototype.
5033         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5034         argument.
5035         (life_analysis): Update call.
5036         * ifcvt.c (if_convert): Likewise.
5037         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5038         * passes.c (rest_of_handle_final): Likewise.
5039         (rest_of_compilation): Likewise.
5040         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5041
5042         * emit-rtl.c (next_real_insn): Use INSN_P.
5043         (prev_real_insn): Likewise.
5044
5045 2004-05-05  Eric Christopher  <echristo@redhat.com>
5046
5047         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5048         representation.
5049
5050 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5051
5052         * config/rs6000/rs6000.c (build_opaque_vector_type):
5053         New function.
5054         (rs6000_init_builtins): Use it.
5055
5056 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5057
5058         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5059         (func_table): Change type from char ** to vms_func_ref.
5060         (write_rtnbeg):  Update to reflect func_table change.  Use
5061         fde->funcdef_number instead of rtnnum in output.
5062         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5063
5064 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5065             Richard Henderson  <rth@redhat.com>
5066
5067         PR target/14899
5068
5069         * c-common.c (vector_types_convertible_p): New function.
5070         * c-typeck.c (comptypes): Recurse on vector types.
5071         (convert_for_assignment): Use vector_types_convertible_p.
5072         (digest_init): Use vector_types_convertible_p to check
5073         validness of constant vector initializers; otherwise treat
5074         them as scalars.
5075         * tree.c (make_or_reuse_type): New.
5076         (build_common_tree_nodes): Use it.
5077         * cp/call.c (standard_conversion): Likewise.
5078         * cp/typeck.c (comptypes): Recurse on vector types.
5079         (convert_for_assignment): Use vector_types_convertible_p.
5080
5081 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5082
5083         * config/mips/mips.c (override_options): Default to no
5084         generation of branch-likely operations when tuning for
5085         CPUs where they tend to have a negative performance impact
5086         (e.g., SB-1).
5087
5088 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5089
5090         * expr.c (store_constructor_field): Don't call store_constructor
5091         if bitsize is not a multiple of a byte.
5092
5093 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5094
5095         * reload1.c (inherit_piecemeal_p): New function.
5096         (emit_reload_insns): When reloading a group of hard registers, use
5097         inherit_piecemeal_p to decide whether the values of individual hard
5098         registers can be inherited.
5099
5100 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5101
5102         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5103         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5104         * config/t-linux (LIB2ADDEHDEP): Likewise.
5105
5106 2004-05-04  Paul Brook  <paul@codesourcery.com>
5107
5108         * config/arm/crti.asm: Push an even number of registers.
5109         * config/arm/crtn.asm: And restore them.  Load via sp.
5110
5111 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5112
5113         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5114         Collect overhead information.
5115         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5116         parameter and pass it through.
5117         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5118         MEM_STAT_DECL parameter and pass it through.
5119         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5120         MEM_STAT_DECL parameter and pass it through.
5121
5122 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5123
5124         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5125
5126         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5127
5128         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5129         rs6000_hard_regno_nregs.
5130
5131 2004-05-03  Eric Christopher  <echristo@redhat.com>
5132
5133         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5134         prologue insn instead of setting up call.
5135         (s390_emit_epilogue): Ditto.
5136         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5137         (define_constants): Add numbers for above patterns.
5138
5139 2004-05-03  Eric Christopher  <echristo@redhat.com>
5140
5141         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5142         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5143         * config/s390/s390-protos.h: Prototype.
5144
5145 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5146
5147         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5148         assignment.
5149
5150 2004-05-03  Eric Christopher  <echristo@redhat.com>
5151
5152         * config/mips/mips.md: Fix branch length attribute definition.
5153
5154 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5155
5156         * config.gcc: Remove --enable-altivec support.
5157
5158         * config/rs6000/altivec-defs.h: Remove.
5159
5160 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5161
5162         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5163         * fixinc/fixincl.x: Regenerate.
5164
5165 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5166
5167         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5168         definition.
5169         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5170         float_truncate insn.
5171         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5172         (logb?f2): Reimplement expanders with float_truncate insn.
5173
5174 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5175
5176         PR 14718
5177         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5178         force_type_die for CONST_DECL.
5179
5180 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5181             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5182
5183         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5184         tm-dwarf2.h to tm_file.
5185         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5186         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5187         (ASM_DEBUG_SPEC): Delete.
5188
5189 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5190
5191         * optabs.h (enum optab_index): Add new OTI_expm1.
5192         (expm1_optab): Define corresponding macro.
5193         * optabs.c (init_optabs): Initialize expm1_optab.
5194         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5195         patterns.
5196         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5197         using expm1_optab.
5198         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5199         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5200
5201         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5202         to implement expm1, expm1f and expm1l built-ins as inline x87
5203         intrinsics.
5204
5205 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5206
5207         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5208         * config/frv/frv.md (*return_true, *return_false): New patterns.
5209
5210 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5211
5212         * rtl.h (PHI_NODE_P): Remove.
5213
5214 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5215
5216         PR middle-end/14988
5217         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5218         when passed -2 as 'align'.
5219         (put_var_into_stack): Use 'bool' as the type for the three local
5220         predicates.  Adjust calls to put_reg_into_stack.
5221         When passed a CONCAT, instruct put_reg_into_stack to use
5222         a consecutive stack slot for the second part.
5223         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5224         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5225         parameters.  Retrieve the register mode from 'reg'.
5226         When consecutive_p is true, instruct assign_stack_local_1 to use
5227         BITS_PER_UNIT alignment.
5228         (put_addressof_into_stack): Use 'bool' as the type for the two
5229         local predicates. Adjust call to put_reg_into_stack.
5230
5231 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5232
5233         * fold-const.c (fold_convert_const, fold): Add missing
5234         FIX_ROUND_EXPR case.
5235
5236 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5237
5238         * configure.ac (FLEX, BISON): Only use tools from the build tree
5239         if build equals host.
5240         * configure: Rebuilt.
5241
5242         * config/frv/frv-protos.h (frv_expand_epilogue,
5243         frv_expand_fdpic_call): Add bool argument.
5244         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5245         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5246         (frv_expand_epilogue): Use new argument to decide whether to emit
5247         return instruction or copy the return address to LR.
5248         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5249         sibcalls.
5250         (sibcall_operand): New.
5251         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5252         PLUS nor LABEL_REF.  Add sibcall_operand.
5253         * config/frv/frv.md (call, call_value): Pass false to
5254         frv_expand_fdpic_call.
5255         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5256         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5257         sibcall_value_internal, sibcall_value_fdpicdi): New.
5258         (return_unsigned_true, return_unsigned_false): New.
5259         (epilogue): Adjust call to frv_expand_epilogue.
5260         (sibcall_epilogue): New.
5261
5262         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5263         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5264         before redefining them.
5265
5266 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5267
5268         * builtins.c (fold_fixed_mathfn): New function.
5269         (fold_builtin_lround, fold_builtin): Use it.
5270
5271 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5272
5273         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5274         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5275
5276 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5277
5278         * config/cris/cris.h: Revert my "fix comment typos" patch.
5279
5280 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5281
5282         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5283
5284 2004-05-01  Falk Hueffner  <falk@debian.org>
5285
5286         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5287         builtin_insll): Disallow 0 as first input operand.
5288
5289 2004-05-01  Falk Hueffner  <falk@debian.org>
5290
5291         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5292
5293 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5294
5295         PR middle-end/15054
5296         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5297         on a TARGET_EXPR temp.
5298         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5299         TARGET_EXPR temp slots.
5300
5301 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5302
5303         * simplify-rtx.c (simplify_ternary_operation): When
5304         converting an IF_THEN_ELSE to a relational op, return
5305         correct mode.
5306
5307 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5308
5309         * builtins.c (fold_builtin_round): Fix comment typo.
5310         (fold_builtin_lround): New function.
5311         (fold_builtin): Use it.
5312
5313 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5314
5315         PR target/11608
5316         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5317         more like the one in config/dbxelf.h.
5318
5319 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5320
5321         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5322         and adjust definition accordingly.
5323         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5324         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5325         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5326         VECTOR_TYPE.
5327
5328 2004-04-30  Jason Merrill  <jason@redhat.com>
5329
5330         PR c++/14587
5331         * config/i386/winnt.c (associated_type): Look for attributes on
5332         the TYPE_MAIN_VARIANT of *this.
5333         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5334         apply the attributes to the variants.
5335
5336 2004-04-30  Paul Brook  <paul@codesourcery.com>
5337
5338         * config.gcc: Simplify arm --with-{cpu,tune} test.
5339         * config/arm/arm-cores.def: Document whitespace restrictions.
5340
5341 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5342
5343         PR other/1963
5344         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5345
5346 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5347             DJ Delorie  <dj@redhat.com>
5348
5349         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5350         (DWARF2_DEBUGGING_INFO): Define to enable.
5351         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5352         DWARF2.
5353         * configure.ac (Target-specific assembler checks)
5354         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5355         relocs.
5356         * configure: Regenerate.
5357         * config.in: Likewise.
5358
5359         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5360         (ASM_OUPUT_DWARF_OFFSET): Define.
5361
5362 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5363
5364         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5365         (s390_emit_call): New function prototype added.
5366         (s390_tls_get_offset): Function removed.
5367         * config/s390/s390.c (s390_function_ok_for_sibcall,
5368         s390_call_saved_register_used_p): New functions.
5369         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5370         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5371         (s390_emit_tls_call_insn): New function.
5372         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5373         emit_call_insn.
5374         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5375         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5376         added.
5377         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5378         register number used to hold the target address for sibcalls.
5379         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5380         New expanders.
5381         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5382         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5383         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5384         Expanders removed.
5385         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5386         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5387         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5388         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5389         new parameter.
5390
5391 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5392
5393         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5394         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5395         reg-stack.c, varasm.c, config/alpha/ev4.md,
5396         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5397         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5398         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5399         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5400         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5401         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5402         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5403         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5404         comment typos.
5405
5406 2004-04-30  Paul Brook  <paul@codesourcery.com>
5407
5408         * config.gcc: Default ep9312 to hard-float.
5409         * config/arm/arm-cores.def: Add ARCH field.
5410         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5411         (arm_arch_cirrus): New variable.
5412         (all_cores): Set and use arch.
5413         (all_architectures): Ditto.
5414         (arm_arch_name): New variable.
5415         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5416         Set and use arm_arch_cirrus.
5417         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5418         (enum processor_type): Update ARM_CORE define.
5419         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5420         (CPP_SPEC): Remove %(cpp_cpu_arch).
5421         (CPP_ARCH_DEFAULT_SPEC): Remove.
5422         (CPP_CPU_ARCH_SPEC): Remove.
5423         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5424         (FPUTYPE_DEFAULT): Don't define here.
5425
5426 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5427
5428         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5429         updates too.
5430
5431 2004-04-30  Paul Brook  <paul@codesourcery.com>
5432
5433         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5434
5435 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5436
5437         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5438         vec_sububs.
5439         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5440         duplicates.
5441
5442 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5443
5444         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5445         atan2?f3 expanders.
5446
5447 2004-04-29  Nick Clifton  <nickc@redhat.com>
5448
5449         Bug 14093
5450         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5451         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5452         Delete static from definition.
5453         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5454
5455 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5456
5457         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5458         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5459         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5460         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5461
5462 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5463
5464         * commom.opt (Wfatal-errors): Add it.
5465         * diagnostic.c (flag_fatal_errors): Define it.
5466         (diagnostic_action_after_output): Check for flag_fatal_errors.
5467         * flags.h (flag_fatal_errors): Declare it.
5468         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5469         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5470
5471 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5472
5473         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5474         blocks which have kill flag set.
5475
5476 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5477
5478         * configure.ac (--with-as): Abort if user-supplied assembler
5479         cannot be executed.
5480         (--with-ld): Likewise for the linker.
5481         * configure: Regenerate.
5482
5483 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5484
5485         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5486         isn't NULL before using it.
5487
5488 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5489
5490         PR target/15189
5491         * config/mips/mips.md (load_df_low): Use default length.
5492         (load_df_high, store_df_high): Likewise.
5493
5494 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5495
5496         * config/mips/mips.md, config/mips/sb1.md,
5497         config/rs6000/rs6000.c: Fix comment typos.
5498
5499 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5500
5501         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5502         Fix comment typos.
5503
5504 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5505
5506         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5507         (delete_if_ordinary): Use above macro.
5508         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5509         Update copyright.
5510         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5511
5512 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5513
5514         * c-decl.c (get_parm_info): Use the correct tag keywords when
5515         warning about type declarations in prototypes.
5516
5517 2004-04-29  Paul Brook  <paul@codesourcery.com>
5518
5519         * config.gcc: Pull list of cores from arm-cores.def.
5520
5521 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5522
5523         * combine.c (combine_simplify_rtx): Adjust call to use
5524         simplify_relational_operation.  Do not use SELECT_CC_MODE
5525         when a comparison already has a MODE_CC mode.
5526
5527 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5528
5529         (simplify_set): simplify_relational_operation may now
5530         return another relational expression.
5531         * cse.c (fold_rtx): simplify_relational_operation now
5532         takes of computing the comparison mode.
5533         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5534         remove dead code.
5535         (do_compare_rtx_and_jump): Likewise.
5536         * integrate.c (subst_constants): simplify_relational_operation
5537         may now return another relational expression.
5538         * simplify-rtx.c (simplify_gen_relational): Move most code to
5539         the new simplify_relational_operation and
5540         simplify_relational_operation_1 functions.
5541         (simplify_relational_operation): Rewritten.
5542         (simplify_relational_operation_1): New function.
5543         (simplify_ternary_operation): simplify_relational_operation
5544         may now return another relational expression.
5545         (simplify_rtx): Remove unnecessary temp variable.
5546
5547 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5548
5549         * reg-stack.c (swap_to_top): New function.
5550         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5551         swap_to_top().
5552         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5553         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5554         UNSPEC_FSCALE_EXP.
5555
5556         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5557         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5558         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5559         x87's fscale insn.
5560         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5561         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5562         patterns.
5563
5564 2004-04-28  Serge Belyshev  <1319@bot.ru>
5565
5566         PR 14944
5567         * coverage.c (read_counts_file): Fix usage of warning () call.
5568         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5569
5570 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5571
5572         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5573         options with "-" in the option index.
5574         (SPARC Options): Likewise.
5575         (M32R/D Options): Likewise.
5576
5577 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5578
5579         * convert.c (convert_to_integer): Convert (long)round -> lround,
5580         etc.
5581
5582 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5583
5584         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5585         Return false if we do not have fp register.
5586         (addrs_ok_for_quad_peep): Rename to ...
5587         (mems_ok_for_quad_peep): this.
5588         Add check for volatile memory.
5589         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5590         Rename to ...
5591         (mems_ok_for_quad_peep): this.
5592         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5593         to peephole2's.
5594         (lfq_power2): New instruction.
5595         (stfq_power2): Likewise.
5596
5597 2004-04-28  Jan Hubicka  <jh@suse.cz>
5598
5599         PR c/15004
5600         * function.c (do_warn_unused_parameter): Break out form ...
5601         (expand_function_end): ... here; warn only when not using cgraphunit.
5602         * function.h (do_warn_unused_parameter): Declare.
5603         * cgraphunit.c: Include function.h.
5604         (cgraph_finalize_function): Do unused parameter warning.
5605         * Makefile.in (cgraphunit.o): Depend on function.h
5606
5607 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5608
5609         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5610         calling install-info on $(DESTDIR)$(infodir)/dir already being
5611         present.
5612
5613 2004-04-28  Paul Brook  <paul@codesourcery.com>
5614
5615         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5616
5617 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5618
5619         * gcse.c (find_moveable_store): Do not accept store insns with
5620         REG_EH_REGION note.
5621
5622 2004-04-28  Paul Brook  <paul@codesourcery.com>
5623
5624         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5625         * function.c (assign_temp): Ditto.
5626         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5627
5628 2004-04-28  Paul Brook  <paul@codesourcery.com>
5629
5630         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5631
5632 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5633
5634         * var-tracking.c (variable_different_p): Add a parameter
5635         compare_current_location, compare current location of variable parts
5636         if it is true.
5637         (dataflow_set_different_1): Pass compare_current_location == false.
5638         (dataflow_set_different_2): Pass compare_current_location == false.
5639         (emit_notes_for_differences_1): Pass compare_current_location == true.
5640
5641 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5642
5643         * config/s390/s390.md ("casesi"): Mark jump table access as
5644         non-trapping and unchanging.
5645
5646 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5647
5648         PR debug/14829
5649         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5650         callers.
5651         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5652         number for indexing hard_regno_nregs array.
5653
5654 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5655
5656         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5657         * config/darwin-crt2.c: Only have contents on __ppc__.
5658
5659 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5660
5661         * config/xtensa/xtensa.c (call_insn_operand): Check
5662         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5663         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5664         * config/xtensa/xtensa.md (call, call_value): Likewise.
5665
5666 2004-04-27  Wu Yongwei  <adah@sh163.net>
5667
5668         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5669         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5670         (__gthread_mutex_init_function): Replace CreateMutex with
5671         initialization of custom mutex using CreateSemaphore.
5672         (__gthread_mutex_lock): Use InterlockedIncrement.
5673         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5674         (__gthread_mutex_unlock): Use InterlockedDecrement and
5675         ReleaseSemaphore to unlock
5676         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5677         __gthread_mutex_lock, __gthread_mutex_trylock,
5678         __gthread_mutex_unlock): Adjust to match inline versions in
5679         gthr-win32.h.
5680
5681 2004-04-27  Paul Brook  <paul@codesourcery.com>
5682
5683         * config/arm/arm.c (arm_promote_prototypes): New function.
5684         (TARGET_PROMOTE_PROTOTYPES): Use it.
5685
5686 2004-04-27  Paul Brook  <paul@codesourcery.com>
5687
5688         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5689
5690 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5691
5692         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5693         correctly output .pdesc directive before .end.
5694
5695 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5696
5697         Bug 14927
5698         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5699         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5700
5701 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5702
5703         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5704         * config/pa/pa-hpux10.h: Likewise.
5705         * config/pa/pa-hpux11.h: Likewise.
5706
5707 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5708
5709         * doc/invoke.texi (Overall Options): Document default for -o
5710         for PCH files.
5711
5712 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5713
5714         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5715         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5716         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5717
5718 2004-04-26  Paul Brook  <paul@codesourcery.com>
5719
5720         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5721
5722 2004-04-26  Paul Brook  <paul@codesourcery.com>
5723
5724         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5725
5726 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5727
5728         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5729         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5730         X % -1 as 0.
5731
5732 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5733
5734         PR bootstrap/15141
5735         * except.c (connect_post_landing_pads): Delete insns after the
5736         barrier when generating a unwind_resume_libfunc call.
5737
5738 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5739
5740         PR/c++ 15119
5741         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5742         for TARGET_EXPR.
5743
5744 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5745
5746         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5747         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5748         inhibit_libc is defined.
5749
5750 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5751
5752         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5753         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5754         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5755         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5756         (mips_adjust_cost): Move later in file, next to other sched hooks.
5757         (mips_macc_chains_last_hilo): New variable.
5758         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5759         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5760         * config/mips/mips.md (may_clobber_hilo): New attribute.
5761
5762 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5763             Bruce Korb  <bkorb@gnu.org>
5764
5765         * fixinc/inclhack.def (aix_syswait_2): New fix.
5766         * fixinc/fixincl.x: Regenerate.
5767         * fixinc/tests/base/sys/wait.h: Update for new test.
5768
5769 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5770
5771         PR target/14960
5772         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5773         to non_fixed_size, and leave out fixed_size from the sum.
5774         (generate_set_vrsave): Correct clobbers.
5775         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5776         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5777         (rs6000_libcall_value): Likewise.
5778         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5779         (FUNCTION_ARG_REGNO_P): Likewise.
5780
5781 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5782
5783         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5784         is a CONST_INT.
5785         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5786         with NARROW_OP1 instead of OP1.
5787
5788 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5789
5790         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5791         and __s390x__ hosts.
5792
5793 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5794
5795         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5796         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5797         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5798         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5799         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5800         * builtins.c (expand_builtin_fork_or_exec): New.
5801         (expand_builtin): Call it.
5802         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5803         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5804         * c-common.c (PID_TYPE): New macro.
5805         (c_common_nodes_and_builtins): Initialize pid_type_node.
5806         * calls.c (special_function_p): Do not handle fork and exec.
5807         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5808         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5809         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5810         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5811         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5812         * tree.h (enum tree_index): Add TI_PID_TYPE.
5813         (pid_type_node): New macro.
5814         (ECF_FORK_OR_EXEC): Removed.
5815
5816 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5817
5818         PR optimization/13985
5819         * cfgloopmanip.c (fix_loop_placements): New prototype.
5820         Call fix_bb_placements on the preheader of loops that have
5821         been reparented.
5822         (remove_path): Adjust call to fix_loop_placements.
5823
5824 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5825
5826         * config/darwin7.h: New file.
5827         * config.gcc (*-*-darwin*): Add darwin7.h if the
5828         version is greater than 6.
5829         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5830         (MATH_LIBRARY): Wrap in ifdefs.
5831
5832 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5833
5834         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5835         loading iWMMXt registers with a frame pointer.  Use post-increment
5836         without a frame pointer.
5837         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5838
5839 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5840
5841         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5842         mode" rather than "-funit-at-a-time" since -O2 enables it
5843         without requiring -f* options.  Refer to -fprofile-generate and
5844         -fprofile-use correctly.  Move -funit-at-a-time among options
5845         enabled by -O.  Add information about unit-at-a-time caveats.
5846
5847 2004-04-22  Per Bothner  <per@bothner.com>
5848
5849         * line-map.h (struct line_maps):  New field highest_line.
5850         (linemap_position_for_column):  Make non-inline function.
5851         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5852         * line-map.c (linemap_init):  Clear highest_line field.
5853         (linemap_add):  Set highest_line field.
5854         (linemap_line_start):  Minor optimization - use highest_line field.
5855         Reduce maximum column hint to 10000.  Update highest_line field.
5856         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5857         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5858         line_table->highest_line.
5859         (saved_line):  Remove unused field.
5860         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5861         Use  line_table's highest_line field instead of cpp_reader's line.
5862         * cpplib.c (start_directive):  Likewise use highest_line field.
5863         (do_line, do_linemarker):  Likewise just use newest map.
5864         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5865         * cpperror.c (cpp_error):  Likewise use highest_line field.
5866         * cppfiles.c (open_file_failed:  Likewise.
5867         (cpp_make_system_header):  Likewise use newest map and highest_line.
5868         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5869         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5870         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5871         _cpp_lex_direct):  Likewise use highest_line.
5872         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5873         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5874         and use newest map.
5875         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5876         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5877         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5878
5879 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5880
5881         PR bootstrap/14992
5882         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5883         * config/linux.h (USE_LD_AS_NEEDED): Define.
5884         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5885         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5886         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5887         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5888         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5889         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5890         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5891
5892 2004-04-22  Per Bothner  <per@bothner.com>
5893
5894         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5895         Fixes PR preprocessor/15067.
5896
5897 2004-04-23  Andreas Schwab  <schwab@suse.de>
5898
5899         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5900         avoid aliasing warning.
5901
5902 2004-04-22  Jan Hubicka  <jh@suse.cz>
5903             Mostafa Hagog <mustafa@il.ibm.com>
5904
5905       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5906       * cfgloopanal.c (expected_loop_iterations): Change the return value
5907
5908 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5909
5910         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5911         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5912         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5913         traces.
5914
5915 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5916
5917         Revert
5918         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5919
5920                 * var-tracking.c (variable_part_different_p): Variable parts
5921                 differ when the most recent locations differ.
5922
5923 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5924
5925         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5926         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5927         (embedded_pic_offset): Delete.
5928         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5929         MASK_* constants.
5930         (TARGET_EMBEDDED_PIC): Delete.
5931         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5932         (ASM_SPEC): Remove -membedded-pic.
5933         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5934         (ASM_OUTPUT_CASE_LABEL): Likewise.
5935         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5936         * config/mips/windiss.h (ASM_SPEC): Likewise.
5937         * config/mips/mips.c (struct machine_function): Remove
5938         embedded_pic_fnaddr_rtx.
5939         (TARGET_ENCODE_SECTION_INFO): Remove override.
5940         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5941         (override_options): Remove -membedded-pic handling.
5942         (print_operand): Remove handling of '%S'.
5943         (mips_select_section: Remove -membedded-pic handling.
5944         (mips_encode_section_info): Delete.
5945         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5946         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5947         -membedded-pic handling.
5948         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5949
5950 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5951
5952         * var-tracking.c (frame_base_decl): Remove useless GTY.
5953
5954 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5955
5956         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5957         user wants altivec and e500 instructions.
5958
5959 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5960
5961         PR target/14813
5962         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5963         in .init_array section to ...
5964         * config/ia64/crtbegin.asm: Here.
5965
5966         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5967         and hidden if HAVE_INITFINI_ARRAY is defined.
5968
5969 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5970
5971         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5972         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5973         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5974         (fp_register_operand, lo_operand): New.
5975         (mips_rtx_costs): Add TUNE_SB1 support.
5976         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5977         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5978         (mips_multipass_dfa_lookahead): New.
5979         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5980         TUNE_SB1): New.
5981         (TARGET_SWITCHES): Add -mfp-exceptions support.
5982         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5983         (BRANCH_COST): Fix whitespace.
5984         * config/mips/mips.md: Include sb1.md.
5985         * config/mips/sb1.md: New file.
5986         * doc/invoke.texi: Document -mfp-exceptions.
5987
5988         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5989         comment.
5990         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5991         (fixincl.o-warn): Delete.
5992
5993 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5994
5995         * config/rs6000/rs6000 (print_operand) ['z']:
5996         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5997
5998 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5999
6000         * config.gcc: Support --with-arch=iwmmxt for ARM.
6001
6002 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6003
6004         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6005         in two more places; remove unneeded force_reg
6006
6007 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6008
6009         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6010         for TARGET_MACHO.
6011         (print_operand): For TARGET_MACHO check to see if we need a stub
6012         and output one if we need it.
6013
6014         PR debug/15033
6015         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6016         rtl.
6017
6018 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6019
6020         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6021         (vall_value_gp): Likewise.
6022
6023 2004-04-20  DJ Delorie  <dj@redhat.com>
6024
6025         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6026         variables stored in word registers, then in memory.
6027
6028 2004-04-20  Eric Christopher  <echristo@redhat.com>
6029
6030         * cp/parser.c (cp_parser_declaration): Move translate
6031         up before tokens are lexed.
6032
6033 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6034
6035         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6036         (asin_optab, acos_optab): Define corresponding macros.
6037         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6038         * genopinit.c (optabs): Implement asin_optab and acos_optab
6039         using asin?f2 and acos?f2 patterns.
6040         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6041         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6042         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6043         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6044
6045         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6046         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6047         acos, acosf and acosl built-ins as inline x87 intrinsics.
6048
6049 2004-04-20  Paul Brook  <paul@codesourcery.com>
6050
6051         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6052
6053 2004-04-20  Paul Brook  <paul@codesourcery.com>
6054
6055         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6056
6057 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6058
6059         Revert part of 2004-04-17 change that moved -frename-registers
6060         to -O1.  -frename-registers is buggy.
6061
6062         * toplev.c (flag_rename_registers): Initialize to 0.
6063         * doc/invoke.texi (Optimize options): Move -frename-registers
6064         to "Not triggered by any -O level" section.  Adjust commentary
6065         accordingly.
6066
6067 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6068
6069         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6070
6071 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6072
6073         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6074         for mflo and mfhi instructions.
6075         (mips_output_move): Remove mflo and mfhi handling.
6076         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6077         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6078         Likewise various define_peephole2s.
6079         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6080         alternatives.
6081         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6082         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6083         (mfhilo_di, mfhilo_si): New patterns.
6084
6085 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6086
6087         * function.c (assign_parms): Force
6088         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6089
6090 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6091
6092         * var-tracking.c (variable_part_different_p): Variable parts differ
6093         when the most recent locations differ.
6094
6095 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6096
6097         * rtl.h (reg_set_last): Delete declaration.
6098         * rtlanal.c (reg_set_last): Delete.
6099
6100 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6101
6102         * fold-const.c (fold_convert): Make function extern/public.
6103         * tree.h (fold_convert): Prototype here.
6104         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6105         expand_builtin_strrchr, expand_builtin_strpbrk,
6106         expand_builtin_mempcpy, expand_builtin_bcopy,
6107         expand_builtin_bzero, expand_builtin_memcmp,
6108         expand_builtin_strcmp, expand_builtin_strncmp,
6109         stabilize_va_list, expand_builtin_sprintf,
6110         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6111         fold_builtin_exponent, fold_builtin_mempcpy,
6112         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6113         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6114         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6115
6116 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6117
6118         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6119         (move_from_CR_gt_bit): New.
6120         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6121         E500.
6122         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6123         E500.
6124
6125         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6126         (tstsfeq_gpr): Same.
6127         (cmpsfgt_gpr): Same.
6128         (tstsfgt_gpr): Same.
6129         (cmpsflt_gpr): Same.
6130         (tstsflt_gpr): Same.
6131         (e500_cceq_ior_compare): New.
6132         (e500_flip_gt_bit): New.
6133
6134         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6135         (print_operand): Add 'c' and 'D'.
6136         (rs6000_generate_compare): Rewrite to generate correct rtl.
6137         (rs6000_emit_sCOND): Handle E500.
6138         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6139         (output_e500_flip_gt_bit): New.
6140
6141         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6142         Protoize.
6143
6144 2004-04-19  Eric Christopher  <echristo@redhat.com>
6145
6146         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6147
6148 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6149
6150         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6151         fix information.
6152
6153 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6154
6155         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6156         download URL.
6157
6158 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6159
6160         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6161         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6162
6163 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6164
6165         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6166         (fold_builtin): Update caller to match.
6167
6168         PR bootstrap/15009
6169         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6170
6171         PR bootstrap/14999
6172         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6173
6174 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6175
6176         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6177
6178         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6179         (expand_mult_highpart_optab): Likewise.
6180         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6181
6182 2004-04-19  Paul Brook  <paul@codesourcery.com>
6183
6184         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6185         floatunssisf2, floatunssidf2): New patterns.
6186
6187 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6188
6189         PR other/14918
6190         * doc/invoke.texi (-fprofile-generate): Document requirement to
6191         use -fprofile-generate when linking.
6192
6193         * doc/extend.texi (Strong Using): Warn users against using this
6194         feature.
6195
6196 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6197
6198         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6199         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6200         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6201         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6202         constant.  Propogate change throughout file.
6203         (struct machine_function): Remove insns_len.
6204         (mips_string_length, mips16_strings, string_constants): Delete.
6205         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6206         when generating mips16 code.  Remove special mips16 treatment of
6207         string constants.
6208         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6209         to have the form LABEL+CONSTANT.
6210         (mips_symbolic_address_p): Fix comment.
6211         (m16_usym8_4, m16_usym5_4): Delete.
6212         (mips_output_function_epilogue): Remove mips16 string handling.
6213         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6214         (mips_select_section, mips_encode_section_info): Remove mips16
6215         string handling.
6216         (struct mips16_constant_pool): New.
6217         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6218         sorted into order of ascending mode size.  Keep track of the highest
6219         possible start address, taking padding and the masking of the base PC
6220         value into account.
6221         (dump_constants_1): New function, split out from dump_constants.
6222         Handle vector constants.  Use gen_consttable_{int,float} rather than
6223         separate functions for each mode.
6224         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6225         rather than separate functions for each alignment.
6226         (mips_find_symbol): Delete.
6227         (mips16_insn_length): New function, split out from
6228         mips16_lay_out_constants.
6229         (mips16_rewrite_pool_refs): New function.
6230         (mips16_lay_out_constants): Rework. Remove string handling.
6231         Always create an inline constant pool.
6232         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6233         (UNSPEC_ALIGN): New constants.
6234         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6235         (UNSPEC_ALIGN_[248]): Delete.
6236         (consttable_int, consttable_float, align): New patterns.
6237         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6238
6239 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6240
6241         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6242         __unn_args_eq.
6243
6244 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6245
6246         PR target/14715
6247         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6248         with STARTING_FRAME_OFFSET.
6249
6250 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6251
6252         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6253         * config/mips/mips.c (macc_msac_operand): New function.
6254         * config/mips/mips.md (*msac): Move after *macc.
6255         (*msac2): New.  Generalize macc-related peepholes so that they apply
6256         to msac too.
6257
6258 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6259
6260         * opts.c (decode_options): Do not enable flag_rename_registers
6261         and flag_web at -O3.
6262         * toplev.c (flag_rename_registers): Initialize
6263         flag_rename_registers and flag_web to
6264         AUTODETECT_FLAG_VAR_TRACKING.
6265         (default_debug_hooks): New global.
6266         (process_options): Initialize default_debug_hooks.  Warn if
6267         -fvar-tracking specified but not supported by the current
6268         debug format.  Do not run var tracking at -O0 or if not
6269         supported by the current debug format, even if
6270         -fvar-tracking was given.  If -fno-rename-registers
6271         is not specified, always run register renaming if var
6272         tracking is supported by the default debugging information
6273         format for the target, and we are at -O1 or higher; similarly
6274         for -fweb, but only at -O2 or higher.
6275         * doc/invoke.texi (Optimize Options): Document this.
6276
6277 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6278
6279         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6280         * configure: Regenerate.
6281
6282 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6283
6284         * gcc.c (used_arg): Check whether an option has been removed.
6285
6286 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6287
6288         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6289         debugging on Solaris 7 and up.
6290
6291 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6292
6293         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6294         IRIX 5 port.
6295         Remove -save-temps workaround, handled automatically.
6296         Require GNU binutils 2.15 for debugging.
6297         Remove SGI make warnings since GNU make is now required.
6298         (Specific, mips-sgi-irix6): Some markup fixes.
6299         Describe MIPSpro C problems and workarounds.
6300         Mention working O32 ABI support.
6301         Recommend GNU as 2.15 for O32 with debugging.
6302         Remove description of fixed structure pass/return bug.
6303
6304 2004-04-16  DJ Delorie  <dj@redhat.com>
6305
6306         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6307         TYPE_FIELDS.
6308         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6309
6310 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6311
6312         * pa.md: Remove unnecessary declarations for asm_out_file.
6313
6314         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6315         SAR register.  Fix comment.
6316         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6317         (%cr11).
6318
6319         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6320
6321 2004-04-16  Nick Clifton  <nickc@redhat.com>
6322
6323         * config/arm/arm.c (arm_override_options): Revert previous patch.
6324         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6325         be safely built.
6326
6327 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6328
6329         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6330         bug.
6331         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6332         TARGET_DEFAULT): Changed. Ditto.
6333         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6334         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6335         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6336         (TARGET_ENDIAN_DEFAULT): Added.
6337
6338 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6339
6340         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6341         ATTR_CONST_NOTHROW_LIST.
6342
6343 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6344
6345         PR/middle-end 14915
6346         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6347         BITS_BIG_ENDIAN.
6348
6349 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6350
6351         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6352
6353 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6354
6355         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6356
6357 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6358
6359         * libada-mk.in: New file.
6360         * configure.ac: Create libada-mk from libada-mk.in.
6361         * configure: Regenerate.
6362
6363 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6364
6365         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6366         (logb_optab, ilogb_optab): Define corresponding macros.
6367         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6368         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6369         using logb?f2 and ilogb?i2 patterns.
6370         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6371         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6372         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6373         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6374
6375         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6376         and UNSPEC_XTRACT_EXP.
6377
6378         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6379         patterns to implement fxtract x87 instruction.
6380         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6381         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6382         intrinsics.
6383         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6384         x87's fxtract insn.
6385
6386 2004-04-14  Eric Christopher  <echristo@redhat.com>
6387
6388         * config/mips/t-elf: Enable multilibs by default.
6389
6390 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6391
6392         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6393         previous fix to check HAVE_return at runtime too.
6394
6395 2004-04-14  Nick Clifton  <nickc@redhat.com>
6396
6397         * config/arm/arm.c (arm_override_options): If the user has not
6398         specified an ABI, then default to AAPCS for the iWMMXt processor.
6399         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6400         * config/arm/t-xscale-coff: Likewise.
6401
6402 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6403
6404         * builtins.c (fold_builtin_isdigit): New.
6405         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6406         * defaults.h: Add TARGET_DIGIT0 and sort.
6407         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6408
6409 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6410
6411         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6412         `mathfn_built_in' to determine the new builtin.
6413         * fold-const.c (fold): Likewise.
6414
6415 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6416
6417         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6418         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6419         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6420         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6421         (ASM_SPEC): Update accordingly.
6422         * config/mips/mips.c: Update after above renaming.
6423         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6424         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6425
6426 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6427
6428         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6429         increment errorcount and return false instead of true.
6430
6431 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6432
6433         * optabs.c (expand_twoval_unop): Reorder function arguments.
6434         * builtins.c (expand_builtin_mathfn_3): Update calls to
6435         expand_twoval_unop.
6436
6437         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6438         and UNSPEC_TAN_TAN. Add missing comment.
6439
6440         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6441         patterns to implement fptan x87 instruction.
6442         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6443         and tanl built-ins as inline x87 intrinsics. Define corresponding
6444         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6445         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6446         x87's fptan insn.
6447
6448 2004-03-13  Richard Henderson  <rth@redhat.com>
6449
6450         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6451         for LABEL_REFs.
6452
6453         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6454         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6455         * doc/invoke.texi: Update to match.
6456
6457         * varasm.c (unlikely_text_section): Use assemble_align instead of
6458         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6459         correct alignment argument.
6460
6461 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6462
6463         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6464         after setting reg_last_reload_reg for optional output reloads.
6465
6466 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6467
6468         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6469         Definition of these two macros are corrected by adding
6470         matchine right paren.
6471
6472 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6473
6474         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6475
6476 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6477
6478         * config/i386/i386.c (output_387_reg_move): New function.
6479         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6480         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6481         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6482         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6483         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6484
6485 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6486
6487         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6488         TYPE_DECL.
6489         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6490         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6491         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6492         Use skip_simple_arithmetic to find SAVE_EXPR.
6493         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6494         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6495         Properly chain multiple pointers.
6496         (copy_tree_r): Copy a TYPE_DECL.
6497         * tree.c (variably_modified_type_p): Add some missing tests and
6498         make some other minor changes.
6499         * tree.h (force_type_save_exprs): New declaration.
6500
6501 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6502
6503         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6504         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6505         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6506         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6507         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6508         x%-1 into 0 (or x&0 if x has side-effects).
6509
6510 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6511
6512         * config/rs6000/rs6000.md: Document why a pattern is not
6513         available.
6514
6515         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6516         of floats on the E500.
6517         (branch_positive_comparison_operator): Do not allow NE even on the
6518         E500.
6519
6520 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6521
6522         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6523         in_text_unlikely_section to in_unlikely_text_section.
6524
6525 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6526
6527         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6528         calling convention to allow a NULL_TREE to be returned.  Factor
6529         sanity checks from callers, return NULL_TREE when appropriate.
6530         (fold): Handle COMPOUND_EXPR operands of binary expressions
6531         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6532         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6533         calls to fold_binary_op_with_conditional_arg.
6534
6535 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6536
6537         * config/mips/iris5.h (current_section_flags):  Add
6538         in_unlikely_executed_text and default case.
6539
6540 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6541
6542         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6543         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6544         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6545         HAVE_return and place it around the place where it is needed.
6546
6547 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6548
6549         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6550         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6551         and NORMAL_TEXT_SECTION_NAME.
6552         (unlikely_text_section): Check targetm.have_named_sections
6553         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6554         instead of SECTION_FORMAT_STRING.
6555         * config/mips/iris5.h (current_section_name): Add
6556         in_unlikely_executed_text case and move the abort into the switch.
6557         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6558         (NORMAL_TEXT_SECTION_NAME): Remove.
6559         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6560         (SECTION_FORMAT_STRING): Remove.
6561         * defaults.h (SECTION_FORMAT_STRING): Remove.
6562         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6563         (SECTION_FORMAT_STRING): Remove.
6564
6565 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6566
6567         * c-typeck.c (common_type): Prefer long long to long when same
6568         precision.
6569
6570 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6571
6572         PR 14887
6573         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6574         mode argument.
6575         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6576         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6577
6578 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6579
6580         * simplify-rtx.c (mode_signbit_p): New function to check whether
6581         an RTX is an immediate constant that represents the most significant
6582         bit of a given machine mode.
6583         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6584         C is the sign bit.
6585         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6586         when C2 is the sign bit.
6587         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6588         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6589         sign bit.
6590
6591 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6592
6593         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6594         TYPE_MODE.
6595
6596 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6597
6598         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6599         of TREE_READONLY for types.
6600
6601 2004-04-09  Caroline Tice  <ctice@apple.com>
6602
6603         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6604         (struct basic_block_def):  Add new field, partition.
6605         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6606         definitions.
6607         (partition_hot_cold_basic_blocks): Add extern function
6608         declaration.
6609         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6610         include statements.
6611         (N_ROUNDS): Increase the maximum number of rounds by 1.
6612         (branch_threshold): Add array value for new round.
6613         (exec_threshold): Add array value for new round.
6614         (push_to_next_round_p): New function.
6615         (add_unlikely_executed_notes): New function.
6616         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6617         (mark_bb_for_unlikely_executed_section): New function.
6618         (add_labels_and_missing_jumps): New function.
6619         (add_reg_crossing_jump_notes): New function.
6620         (fix_up_fall_thru_edges): New function.
6621         (find_jump_block): New function.
6622         (fix_crossing_conditional_branches): New function.
6623         (fix_crossing_unconditional_branches): New function.
6624         (fix_edges_for_rarely_executed_code): New function.
6625         (partition_hot_cold_basic_blocks): New function.
6626         (find_traces):  Add an extra round for partitioning hot/cold
6627         basic blocks.
6628         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6629         and only cold blocks, into the last (extra) round of collecting traces.
6630         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6631         over crossing edges.
6632         (bb_to_key):  Add code to correctly identify cold blocks when
6633         doing partitioning.
6634         (connect_traces): Modify to connect all the non-cold traces first, then
6635         go back and connect up all the cold traces.
6636         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6637         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6638         entry and exit blocks.
6639         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6640         if we are doing hot/cold partitioning.
6641         * cfgcleanup.c (cfglayout.h): Add new include statement.
6642         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6643         that cross section boundaries.
6644         (try_forward_edges): Likewise.
6645         (merge_blocks_move_predecessor_nojumps): Likewise.
6646         (merge_blocks_move_successor_nojumps): Likewise.
6647         (merge_blocks_move): Likewise.
6648         (try_crossjump_to_edge): Modify to not attempt after we have done
6649         the block partitioning.
6650         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6651         cross section boundaries.
6652         (try_optimize_cfg): Likewise.
6653         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6654         jumps that cross section boundaries.
6655         * cfglayout.c (flags.h): Add new include statement.
6656         (update_unlikely_executed_notes):  New function.
6657         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6658         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6659         updated appropriately.
6660         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6661         introduced by this optimization.
6662         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6663         extern function declaration.
6664         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6665         list of notes that can be deleted.
6666         (create_basic_block_structure):  Add initialization for partition field.
6667         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6668         section boundaries.
6669         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6670         cross section boundaries.
6671         (commit_one_edge_insertion): Add code so newly created basic block
6672         ends up in correct (hot or cold) section.  Modify to disallow
6673         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6674         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6675         crosses section boundaries.
6676         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6677         cross section boundaries.
6678         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6679         ends up in correct section, with correct notes attached.
6680         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6681         optimization.
6682         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6683         the end of functions are written into the correct (hot or cold)
6684         section.
6685         (dbx_source_file): Add code so writing debug file information
6686         doesn't incorrectly change sections.
6687         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6688         in partitioning hot/cold basic blocks into separate sections.
6689         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6690         section partitioning.
6691         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6692         conditional branches can span all of memory.
6693         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6694         unconditional branches can span all of memory.
6695         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6696         (final_scan_insn):  Add code to check for NOTE instruction indicating
6697         whether basic block belongs in hot or cold section, and to make sure
6698         the current basic block is being written to the appropriate section.
6699         Also added code to ensure that jump table basic blocks end up in the
6700         correct section.
6701         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6702         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6703         one of the branches has a jump that crosses between sections.
6704         (find_if_case_2): Likewise.
6705         (ifcvt): Modify to not attempt to mark loop exit edges after
6706         hot/cold partitioning has occurred.
6707         * opts.c (decode_options): Code to handle new flag,
6708         flag_reorder_blocks_and_partition; also to turn it off if
6709         flag_exceptions is on.
6710         (common_handle_option): Code to handle new flag,
6711         flag_reorder_blocks_and_partition.
6712         * output.h (unlikely_text_section): New extern function declaration.
6713         (in_unlikely_text_section): New extern function declaration.
6714         * passes.c (rest_of_handle_stack_regs):  Add
6715         flag_reorder_blocks_and_partition as an 'or' condition for calling
6716         reorder_basic_blocks.
6717         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6718         as an 'or' condition for calling reorder_basic_blocks.
6719         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6720         * print-rtl.c (print_rtx): Add code for handling new note,
6721         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6722         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6723         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6724         cross between section boundaries.
6725         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6726         indicating the basic block containing it belongs in the cold section.
6727         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6728         between hot and cold sections.
6729         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6730         initialize this flag, and to tie it to the command-line option
6731         freorder-blocks-and-partition.
6732         * varasm.c (cfglayout.h):  Add new include statement.
6733         (unlikely_section_label_printed):  New global variable, used for
6734         determining when to output section name labels for cold sections.
6735         (in_section):  Add in_unlikely_executed_text to enum data structure.
6736         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6737         NORMAL_TEXT_SECTION_NAME macros.
6738         (unlikely_text_section):  New function.
6739         (in_unlikely_text_section):  New function.
6740         (function_section):  Add code to make sure beginning of function is
6741         written into correct section (hot or cold).
6742         (assemble_start_function):  Add code to make sure stuff is written to
6743         the correct section.
6744         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6745         to an if statement that was checking 'in_text_section'.
6746         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6747         condition to an if statement that was checking 'in_text_section'.
6748         (default_section_type_flags_1):  Add check: if in cold section
6749         flags = SECTION_CODE.
6750         * config/darwin.c (darwin_asm_named_section):  Modify to use
6751         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6752         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6753         specifically for the i386.
6754         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6755         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6756         text string to something more informative.
6757         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6758         (SECTION_FORMAT_STRING):  Add new definition.
6759         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6760         '!in_unlikely_text_section' as an 'and' condition to an if statement
6761         that was already checking '!in_text_section'.
6762         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6763         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6764         sure these are properly defined for linux on ppc.
6765         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6766         for this new flag.
6767         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6768         reg_note.
6769         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6770         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6771         these new macros.
6772
6773 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6774
6775         * function.c (gen_mem_addressof): When changing the RTX from a REG
6776         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6777
6778 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6779
6780         PR target/14888
6781         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6782         truncxfdf2_noop): Provide dummy "fmov" implementations.
6783
6784 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6785
6786         * gcc.c (default_compilers): Add missing initializers.
6787
6788         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6789         Return 1 if file was successfully mapped.
6790
6791 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6792
6793         PR pch/13419
6794         PR pch/14137
6795         Radar #: 3315288
6796         * doc/invoke.texi (Precompiled Headers): Suggest -o
6797         to put an output file in a particular place.  Be more detailed
6798         about which options affect PCH validity and which options
6799         might not work.
6800         * c-pch.c (pch_matching): New.
6801         (MATCH_SIZE): New.
6802         (struct c_pch_validity): New field 'match'.
6803         (pch_init): Handle pch_matching.
6804         (c_common_valid_pch): Check pch_matching.
6805
6806         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6807
6808 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6809
6810         * doc/invoke.texi (Precompiled Headers): Warn about known
6811         problems.
6812
6813 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6814
6815         PR c++/14808
6816         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6817         to 1 if ASM_OUTPUT_DEF is defined.
6818         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6819         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6820         Set to non-zero iff not a one_only decl.
6821
6822 2004-04-08  Paul Brook  <paul@codesourcery.com>
6823
6824         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6825
6826 2004-04-08  Paul Brook  <paul@codesourcery.com>
6827
6828         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6829         PROMOTE_FOR_CALL_ONLY.
6830         * config/arm/arm-protos.h (arm_function_value): Declare.
6831         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6832         (TARGET_PROMOTE_PROTOTYPES): Return false.
6833         (arm_function_value): New function.
6834         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6835         (FUNCTION_VALUE): Call arm_function_value.
6836         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6837         (PROMOTE_FUNCTION_MODE): ... to this.
6838         (PROMOTE_FOR_CALL_ONLY): Remove.
6839         * config/mmix/mmix.h: Likewise.
6840         * config/s390/s390.h: Likewise.
6841         * config/sparc/sparc.h: Likewise.
6842         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6843         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6844         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6845         (PROMOTE_FOR_CALL_ONLY): Remove.
6846
6847 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6848
6849         PR ada/14538
6850         * ada/5rosinte.adb: Remove fake mprotect() body.
6851         * ada/5rosinte.ads: Add SA_SIGINFO.
6852         * ada/5rtpopsp.adb: Rewrite to use new interface.
6853         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6854         is tested before more complex ones which mix UNIX and embedded
6855         systems in the conditional.
6856
6857 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6858
6859         PR ada/14665
6860         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6861         filenames which end in .exe or have versioning suffixes like VMS.
6862
6863 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6864
6865         PR target/10129
6866         * config/darwin.c (darwin_encode_section_info): When the decl has
6867         a DECL_INITIAL, it is only defined also when it is not a common.
6868
6869 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6870
6871         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6872         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6873
6874 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6875
6876         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6877         global register variables.
6878
6879 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6880
6881         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6882         rpc_xdr_lvalue_cast_b): New fixes.
6883         * fixinc/fixincl.x: Regenerate.
6884         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6885
6886 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6887
6888         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6889         to power4 and power5 entries.
6890
6891 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6892
6893         * c-common.h (pending_lang_change): Mark for PCH.
6894
6895 2004-04-07  Caroline Tice  <ctice@apple.com>
6896
6897         * gcc.c (main): Move 'break' in main loops (on an error)
6898         to wait until error processing has occurred.
6899
6900 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6901
6902         * config.gcc: Stop changing enable_threads midstream.
6903         Replace uses of enable_threads_flag with enable_threads.
6904         * configure.ac: Replace uses of enable_threads_flag with
6905         enable_threads.  Improve autoconf quotation in one place.
6906         * configure: Regenerate.
6907
6908 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6909
6910         * builtins.c: Implement support for sincos function.
6911         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6912         BUILT_IN_COS{,F,L}.
6913         (expand_builtin_mathfn_3): New function.
6914         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6915         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6916         flag_unsafe_math_optimization is set.
6917
6918         * optabs.h (enum optab_index): Add new OTI_sincos.
6919         (sincos_optab): Define corresponding macro.
6920
6921         * optabs.c (init_optabs): Initialize sincos_optab.
6922         (expand_twoval_unop): New function.
6923
6924         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6925         patterns.
6926
6927         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6928         and UNSPEC_SINCOS_SIN.
6929
6930         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6931         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6932         built-ins as inline x87 intrinsics. Define splits for
6933         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6934         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6935         sincos patterns.
6936         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6937         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6938
6939         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6940         x87's fsincos insn.
6941
6942 2004-04-06  Devang Patel  <dpatel@apple.com>
6943
6944         PR 14467
6945         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6946
6947 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6948
6949         * doc/install.texi: Update HP-UX 11 installation procedure.
6950
6951 2004-04-06  Paul Brook  <paul@codesourcery.com>
6952
6953         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6954
6955 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6956
6957         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6958         when the TLS address is generated by a function call.
6959         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6960         (tls_local_dynamic): Likewise.
6961
6962 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6963
6964         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6965         and TYPE_VOLATILE.
6966
6967 2004-04-05  Caroline Tice  <ctice@apple.com>
6968
6969         * gcc.c (combine_flag): New global variable, for new driver option.
6970         (struct compiler): Add two new fields, to be used when
6971         combining multiple input files in a single pass (IMA).
6972         (default_compilers):  Add values for the new fields to all
6973         compiler entries. Modify the "@c" compiler entry for doing IMA
6974         properly with "-save-temps" and the "combine" flag.
6975         (option_map):  Add new driver option, "--combine", to tell driver
6976         to pass multiple input files to compiler at one time.
6977         (have_o_argbuf_index): New global variable.
6978         (store_arg): Modify to assign value to have_o_argbuf_index.
6979         (struct infile):  Add three new fields, to help with IMA.
6980         (display_help): Add help for new "combine" option.
6981         (process_command): Remove local variable have_o; add code to check
6982         for new "combine" option; remove assignment to combine_inputs.
6983         (do_spec_1):  Modify to deal with IMA better.
6984         (main): Make variable 'lang_n_infiles' local to entire function
6985         rather than to a single block.  Use flag combine_flag to
6986         determine whether to do IMA or not; Modify loop initializing
6987         infiles to deal properly with linker files.
6988         Add code for doing preprocessing in presence of
6989         IMA with "-save-temps" flag.  Modify "main" loop to handle
6990         multiple input files, in multiple languages, with or without
6991         preprocessing,  gracefully.
6992         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6993         re-set it to same directory it's previously been set to (avoid
6994         irritating, meaningless warning messages when doing IMA with
6995         save-temps).
6996         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6997         remove documentation about IMA that is no longer accurate; Add
6998         documentation explaining what "-combine" does.
6999         * ada/lang-specs.h: Add initialization values for new fields in
7000         "struct compiler".
7001         * cp/lang-specs.h: Likewise.
7002         * f/lang-specs.h: Likewise.
7003         * java/lang-specs.h: Likewise.
7004         * objc/lang-specs.h: Likewise.
7005         * treelang/lang-specs.h: Likewise.
7006
7007 2004-04-05  David Edelsohn
7008
7009         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7010         symbol handling.
7011
7012 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7013             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7014
7015         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7016         * pa.md: Use replace_equiv_address to retain the attributes of the
7017         memory operands used in the split and peephole2 patterns for optimizing
7018         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7019
7020 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7021
7022         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7023         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7024         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7025         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7026         PARM_DECL.
7027         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7028         for a type.
7029         * print-tree.c (print_node): Properly handle side-effects, readonly,
7030         and constant flags.
7031         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7032         and TREE_CONSTANT if not a type.
7033         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7034         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7035         (NON_TYPE_CHECK): New macro.
7036         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7037
7038 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7039
7040         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7041         to DWARF2_DEBUG unconditionally.
7042         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7043
7044 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7045             Nathanael Nerode  <neroden@gcc.gnu.org>
7046
7047         PR target/14548
7048         * config.host: Set the shell variable host_can_use_collect2.
7049         Set it to yes by default, and to no for alpha*-dec-*vms*,
7050         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7051         * configure.ac: Set and substitute the shell variable collect2.
7052         Give an error if use_collect2 is yes and host_can_use_collect2 is
7053         no.
7054         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7055         uses.  Initialize to @collect2@.
7056         (STAGESTUFF): Remove $(USE_COLLECT2).
7057         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7058         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7059         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7060         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7061         * configure: Regenerate.
7062
7063 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7064
7065         * simplify-rtx.c (simplify_binary_operation): Constant fold
7066         DIV, MOD, UDIV and UMOD using div_and_round_double.
7067
7068 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7069
7070         PR c++/14804
7071         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7072         RECORD_TYPEs.
7073
7074 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7075
7076         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7077         documentation.
7078
7079 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7080
7081         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7082         updating the REG_EQUAL note on an insn's libcall_insn.
7083
7084 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7085
7086         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7087
7088 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7089
7090         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7091         with reorder_operands_p.
7092
7093 2004-04-03  Jan Hubicka  <jh@suse.cz>
7094
7095         * md.texi (vec_set, vec_extract, vec_init): Document.
7096
7097 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7098
7099        * opts.c (decode_options): Do function inlining with very small
7100        max-inline-insns-* parameters when optimizing for size.
7101
7102 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7103
7104         * config/i386/i386.h (TARGET_NOCONA): New macro.
7105         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7106         (processor_type): Add PROCESSOR_NOCONA.
7107
7108         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7109
7110         * config/i386/i386.c (nocona_cost): New variable.
7111         (m_NOCONA): New macro.
7112         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7113         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7114         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7115         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7116         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7117         x86_decompose_lea, x86_arch_always_fancy_math_387,
7118         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7119         x86_ext_80387_constants, x86_four_jump_limit):
7120         (override_options): Add nocona_cost to processor_target_table.
7121         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7122         (incdec_operand): Prevent inc/dec generation for Nocona too.
7123         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7124
7125 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7126
7127         * rtlanal.c (find_reg_note): Manually
7128         unswitch the loop.
7129
7130 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7131
7132         * genemit.c (gen_split): Change prototype of generated code.
7133         * genrecog.c (write_action): Adjust prototype for and calls to
7134         gen_split_*.
7135         * gensupport.c (struct queue_elem): Add split field.
7136         (queue_pattern): Return a value.  Clear the split field.
7137         (process_rtx): Maintain an association between an insn and the
7138         split generated from it for a define_insn_and_split.
7139         (process_one_cond_exec): Generate a new split for a
7140         define_insn_and_split.
7141         * config/arm/arm-protos.h (arm_split_constant): Add insn
7142         parameter.
7143         (emit_constant_insn): New function.
7144         (arm_gen_constant): Use it.
7145         * config/arm/arm.md: Adjust calls to arm_split_constant.
7146
7147 2004-04-02  Jan Hubicka  <jh@suse.cz>
7148
7149         * cgraph.c: Add overall comment.
7150         (cgraph_inline_hash): New global variable.
7151         (cgraph_create_node): Break out from ...
7152         (cgraph_node): ... here.
7153         (cgraph_edge): New function.
7154         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7155         (cgraph_remove_edge): Accept edge, intead of source and destination.
7156         (cgraph_redirect_edge_callee): New.
7157         (cgraph_remove_node): Update all new datastructures.
7158         (cgraph_record_call, cgraph_remove_call): Kill.
7159         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7160         (dump_cgraph): ... here.
7161         (cgraph_function_possibly_inlined_p): Use new hashtable.
7162         (cgraph_clone_edge, cgraph_clone_node): New.
7163         * cgraph.h: Include hashtab.h
7164         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7165         fields, add inlined_to pointer.
7166         (cgraph_node): Add pointer to next_clone.
7167         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7168         (cgraph_remove_call, cgraph_record_call): Kill.
7169         (cgraph_inline_hash): Declare.
7170         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7171         cgraph_redirect_edge_callee): Declare.
7172         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7173         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7174         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7175         * cgraphunit.c: Add overall comment.
7176         (cgraph_optimize_function): Kill.
7177         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7178         (cgraph_finalize_function): Update call of cgraph_remove_node
7179         (record_call_1): Record call sites.
7180         (cgraph_create_edges): Accept node instead of decl argument.
7181         (error_found): New static variable.
7182         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7183         (cgraph_analyze_function): Update for new datastructures.
7184         (cgraph_finalize_compilation_unit): Plug memory leak.
7185         (cgraph_optimize_function): Kill.
7186         (cgraph_expand_function): Do not use cgraph_optimize_function.
7187         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7188         cgraph_inlined_callees): Kill.
7189         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7190         clones.
7191         (estimate_growth): Simplify.
7192         (cgraph_clone_inlined_nodes): New function.
7193         (cgraph_mark_inline_edge): Re-implement.
7194         (cgraph_mark_inline): Likewise.
7195         (cgraph_check_inline_limits): Simplify.
7196         (cgraph_recursive_inlining_p): New.
7197         (update_callee_keys): Break out from ...
7198         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7199         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7200         Likewise.
7201         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7202         list.
7203         (cgraph_preserve_function_body_p): New predicate.
7204         (cgraph_optimize): Verify cgraph.
7205         * function.h (struct function): Add fields saved_tree/saved_args.
7206         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7207         * toplev.c (rest_of_compilation): Do not free cfun.
7208         * tree-inline.c: Include function.h
7209         (struct inline_data): Add saving_p field; replace decl/current_decl by
7210         node/current_node.
7211         (insert_decl_map): New function.
7212         (copy_body_r): Handle saving; update cgraph datastructure.
7213         (copy_body): Handle recursive inlining.
7214         (initialize_inlined_parameters): Likewise.
7215         (expand_call_inline): Propagate node attributes; update cgraph.
7216         (optimize_inline_calls): Verify that datastructure still match.
7217         (save_body): New function.
7218         * tree-inline.h (save_body): New.
7219         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7220         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7221         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7222
7223 2004-04-01  Serge Belyshev  <1319@bot.ru>
7224
7225         PR target/14702
7226         * config/i386/i386.md: fix source operand constraints in
7227         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7228
7229 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7230
7231         * fold-const.c (folda): Preserve types of comparisons.
7232
7233 2004-04-01  Richard Henderson  <rth@redhat.com>
7234
7235         * toplev.c (backend_init): Move init_optimization_passes call ...
7236         (lang_dependent_init): ... here.
7237
7238 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7239             Jakub Jelinek  <jakub@redhat.com>
7240
7241         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7242         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7243         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7244         * configure: Rebuilt.
7245         * config.in: Rebuilt.
7246         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7247         (stage2-start, stage3-start, stage4-start): Likewise.
7248         (stageprofile-start, stagefeedback-start): Likewise.
7249
7250 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7251
7252         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7253         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7254         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7255         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7256         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7257         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7258         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7259         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7260         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7261         * config/sparc/t-linux: Removed.
7262
7263 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7264
7265         PR c++/14755
7266         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7267         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7268
7269 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7270
7271         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7272         * stor-layout.c (layout_decl): Likewise.
7273         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7274         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7275         * print-tree.c (print_node): Handle various used of unsigned_flag.
7276         * tree.def (BIT_FIELD_REF): Update comment.
7277         * tree.h (TREE_UNSIGNED): Deleted.
7278         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7279
7280 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7281
7282         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7283         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7284         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7285         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7286         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7287         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7288         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7289         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7290         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7291         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7292         REAL_TYPE, not INTEGER_TYPE.
7293         (layout_type, case VECTOR_TYPE): Simplify code.
7294         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7295         * tree.h: Update comments.
7296         (STRIP_NOPS): Use TYPE_UNSIGNED.
7297         (TYPE_UNSIGNED): New macro.
7298         (TYPE_TRAP_SIGNED): Remove now redundant check.
7299         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7300
7301 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7302
7303         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7304
7305 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7306
7307         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7308         Add darwin-fpsave.asm, darwin-vecsave.asm,
7309         and darwin-world.asm.
7310         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7311         as the asm files contain altivec instructions.
7312         * config/rs6000/darwin-fpsave.asm: New file.
7313         * config/rs6000/darwin-vecsave.asm: New file.
7314         * config/rs6000/darwin-world.asm: New file.
7315
7316 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7317
7318         * gengtype-yacc.y (option, stringseq): Add missing
7319         terminating semicolon.
7320
7321 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7322
7323         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7324         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7325         tls_dtprel_ha_32, tls_dtprel_ha_64,
7326         tls_dtprel_lo_32, tls_dtprel_lo_64,
7327         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7328         tls_tprel_ha_32, tls_tprel_ha_64,
7329         tls_tprel_lo_32, tls_tprel_lo_64,
7330         tls_got_tprel_32, tls_got_tprel_64,
7331         tls_tls_32, tls_tls_64): Replace register_operand with
7332         gpc_reg_operand.
7333
7334 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7335
7336         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7337         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7338         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7339         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7340         *ctrdi_internal6): Replace register_operand with
7341         nonimmediate_operand.
7342
7343 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7344
7345         * fold-const.c (fold): Reassociate multiply expression
7346         with an adjacent non-multiply expression to use
7347         architecture's multiply-add instruction.
7348
7349 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7350
7351         * gengtype.c (create_option): New function.
7352         * gengtype.h: Prototype it.
7353         * gengtype-yacc.y (stringseq): New rule.
7354         (option): Use create_option.  Add new bare ID production.  Use
7355         stringseq, not STRING directly.
7356
7357         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7358         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7359         * varray.h, config/alpha/alpha.c:
7360         Use new shorter form of GTY markers.
7361
7362         * doc/gty.texi: Rewrite.
7363
7364 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7365
7366         * config/darwin.c (machopic_function_base_name):
7367         Remove current_name and getting the name of the
7368         current function.
7369
7370 2004-03-30  Nick Clifton  <nickc@redhat.com>
7371
7372         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7373         range, and increase the forward branch range, to allow for
7374         the fact that the PC will be off by 4.
7375
7376 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7377
7378         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7379
7380 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7381
7382         * config/rs6000/rs6000.c (output_vec_const_move):
7383         Find all cases of EASY_VECTOR_15_ADD_SELF.
7384         (easy_vector_constant_add_self): Accept
7385         all vector constant loadable by vsplt* and vadd*.
7386         (easy_vector_same): Use easy_vector_splat_const.
7387         (easy_vector_const): Use easy_vector_splat_const.
7388         (easy_vector_splat_const): New function.
7389         (gen_easy_vector_constant_add_self): New function.
7390
7391         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7392         New prototype.
7393
7394         * config/rs6000/altivec.md (movv4si splitter): Change to
7395         emit move insn with halfed vector constant.
7396         (*movv8hi splitter): Likewise.
7397         (*movv16qi splitter): Likewise.
7398
7399 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7400
7401         PR 11591
7402         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7403         Allow any offset to argument pointer in no-strict case.
7404
7405 2004-03-30  Jan Hubicka  <jh@suse.cz>
7406
7407         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7408         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7409         dump file in non-unit-at-a-time mode.
7410
7411 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7412
7413         * config/cris/cris.h: Correct #ifdef to test for
7414         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7415         HAVE_AS_MUL_BUG_ABORT_OPTION.
7416
7417 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7418
7419         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7420         the address inside the old RTL.
7421
7422 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7423
7424         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7425         (struct c_binding, struct c_scope): Add chain_next
7426         attributes to GTY markers.
7427         (struct lang_identifier, struct lang_tree_node): Define
7428         here...
7429         * c-tree.h: ... not here.  No longer need to declare struct
7430         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7431         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7432         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7433
7434         PR 14734, 11944
7435         * c-decl.c (get_parm_info): If error_mark_node is encountered
7436         in the bindings chain, unbind and discard it; don't abort.
7437
7438 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7439             Dorit Naishlos <dorit@il.ibm.com>
7440
7441         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7442         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7443
7444 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7445
7446         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7447
7448         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7449         (m68hc11_attribute_table): New attribute "page0" to mark a global
7450         variable as being allocated from within page0 section.
7451         (m68hc11_encode_label): New function.
7452         (m68hc11_strip_name_encoding): New function.
7453         (m68hc11_page0_symbol_p): New function.
7454         (m68hc11_indirect_p): Accept global variables marked in page0.
7455         (m68hc11_encode_section_info): Lookup "page0" attribute.
7456
7457         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7458         represents access to page0 variables.
7459
7460         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7461         ("*logicalsi3_silshl16_zext"): Likewise.
7462         ("*ashldi3_const32"): Likewise.
7463         (peephole2 ashift): Likewise.
7464
7465 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7466
7467         * c-tree.h (C_DECL_REGISTER): New.
7468         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7469         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7470         (build_array_ref, c_mark_addressable): Set and use it.
7471         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7472         Allow structures with volatile fields to be declared register.
7473         Don't check TREE_ADDRESSABLE before warning about taking address
7474         of register.
7475         * c-decl.c (finish_decl): Don't allow structures with volatile
7476         fields to be placed in named register.
7477         * doc/trouble.texi: Remove reference to structures with volatile
7478         fields in registers.
7479
7480 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7481
7482         * function.c (thread_prologue_and_epilogue): Move
7483         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7484         before the epilogue.
7485
7486 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7487
7488         * expr.c (store_constructor): Use gen_int_mode to correctly
7489         sign-extend CONST_INT value.
7490
7491 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7492
7493         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7494         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7495         * doc/extend.texi: Likewise.
7496
7497 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7498
7499         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7500           with TYPE_ORIG_SIZE_TYPE.
7501
7502 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7503
7504         PR 14219
7505         * c-typeck.c (build_binary_op): Do not allow comparisons of
7506         vectors.
7507
7508 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7509
7510         * config.gcc: Remove sparc-tti-*.
7511         * config/sparc/pbd.h: Delete.
7512
7513         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7514         * config/sparc/aout.h: Likewise.
7515
7516         * config/sparc/sparc.h: Remove if 0'd code.
7517         * config/sparc/sparc.md (call): Remove if 0'd code.
7518         (call_value): Likewise.
7519         (nonlocal_goto): Likewise.
7520         (unimp_insn): Delete.
7521
7522 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7523
7524         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7525         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7526
7527 2004-03-25  Richard Henderson  <rth@redhat.com>
7528
7529         PR 11527
7530         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7531         rather than later.
7532
7533 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7534
7535         * builtins.c (fold_builtin): Fix error in last change.
7536
7537 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7538
7539         * config/mips/mips.h: Formatting fix.
7540
7541 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7542
7543         * builtins.def: Add ctype builtins.
7544         * doc/extend.texi: Likewise.
7545
7546 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7547
7548         * builtins.c (fold_builtin): Add new builtin optimizations for
7549         sqrt and/or cbrt.
7550         * fold-const.c (fold): Likewise.
7551
7552 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7553
7554         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7555         (rs6000_sched_groups): New variable.
7556         (processor_target_table): Add power5.
7557         (rs6000_override_options): Set rs6000_sched_insert_nops,
7558         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7559         from rs6000_sched_groups.
7560         (output_cbranch): Use rs6000_always_hint.
7561         (rs6000_variable_issue): Use rs6000_sched_groups.
7562         (rs6000_adjust_cost): Add CPU_POWER5.
7563         (is_microcoded_insn): Use rs6000_sched_groups.
7564         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7565         Return 2 for POWER5 cracked instructions.
7566         (is_cracked_insn): Use rs6000_sched_groups.
7567         (is_branch_slot_insn): Use rs6000_sched_groups.
7568         (rs6000_issue_rate): Add CPU_POWER5.
7569         (rs6000_sched_finish): Use rs6000_sched_groups.
7570         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7571         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7572         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7573         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7574         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7575         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7576         * config/rs6000/power5.md: New file.
7577         * doc/invoke.texi: Add power5 option.
7578
7579 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7580
7581         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7582         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7583         * doc/invoke.texi: Fix a typo.
7584
7585 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7586
7587         PR optimization/9707.
7588         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7589         of recursing if both children are single-valued cases with no
7590         children.
7591
7592 2004-03-25  Paul Brook  <paul@codesourcery.com>
7593
7594         * config/arm/arm.c (vfp_print_multi): Remove.
7595         (arm_output_fldmx): New function.
7596         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7597         (arm_expand_prologue): Update to match.
7598         (arm_get_vfp_saved_size): New Function.
7599         (arm_get_frame_offsets): Use it.
7600         (arm_output_epilogue): Use new functions.
7601
7602 2004-03-24  Richard Henderson  <rth@redhat.com>
7603
7604         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7605         (reg_known_value, reg_known_value_size): Likewise; make static.
7606         (reg_known_equiv_p): Make static.
7607         (clear_reg_alias_info): Update for new indexing.
7608         (get_reg_known_value, set_reg_known_value): New.
7609         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7610         (canon_rtx): Use them.
7611         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7612         Don't play queer offsetting games with reg_known_value and
7613         reg_known_equiv_p.
7614         (end_alias_analysis): Free reg_known_value with gc.
7615         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7616         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7617         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7618         functions instead.
7619
7620 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7621
7622         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7623         config/i386/mmintrin.h: Update copyright.
7624
7625 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7626
7627         * configure.ac: Add --enable-werror-always (for top level bootstrap
7628         support).
7629         * configure: Regenerate.
7630
7631 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7632
7633         * objc/objc-act.c (objc_comptypes): Treat comparisons
7634         between 'Class' and '<class> *' as explicitly invalid.
7635
7636 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7637
7638         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7639         (-fprofile-values): Add enabled with profile-{generate,use}.
7640         (-fvpt): Same.
7641         (-ftracer): Add enabled with profile-use.
7642         (-funit-at-a-time): Add enabled at -O2,-O3.
7643         (-funroll-loops): Add enabled with profile-use.
7644         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7645         (max-gcse-passes): Mention default.
7646         (max-cse-path-length): Mention default.
7647
7648 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7649
7650         * Makefile.in (STRICT2_WARN): Reorder.
7651         * configure.ac: Check for -Wold-style-definition, and use it
7652         in strict1_warn if it's available.
7653         * configure: Regnerate.
7654
7655 2004-03-24  Paul Brook  <paul@nowt.org>
7656
7657         * config.gcc <arm>: Add --with-abi=
7658         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7659         thumb_far_jump_used): Remove prototypes.
7660         (arm_needs_doubleword_align): Add prototype.
7661         (thumb_compute_initial_elimination_offset): Ditto.
7662         * config/arm/arm.c (arm_get_frame_offsets): New function.
7663         (use_return_insn, output_return_instruction, arm_output_epilogue,
7664         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7665         arm_expand_prologue, thumb_expand_epilogue): Use it.
7666         (arm_abi, target_abi_name, all_arm_abis): New variables.
7667         (arm_override_options): Set them.  Set structure padding for AAPCS.
7668         (arm_return_in_memory): Update ABI check.
7669         (arm_init_cumulative_args): Initialize can_split.
7670         (arm_needs_doubleword_align): New function.
7671         (arm_function_arg): Don't split args after pushing to stack. Handle
7672         doubleword/even reg alignment.
7673         (arm_va_arg): Handle all doubleword aligned args.
7674         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7675         on ABI, not CPU.
7676         (arm_compute_save_reg0_reg12_mask): Fix comment.
7677         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7678         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7679         value for alignment.
7680         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7681         to match.
7682         (thumb_compute_initial_elimination_offset): New function.
7683         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7684         unneccessary rounding.
7685         * config/arm/arm.h (target_abi_name): Declare.
7686         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7687         arm_abi_type, ARM_DEFAULT_ABI): Define.
7688         (ARM_FLAG_ATPCS): Remove.
7689         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7690         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7691         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7692         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7693         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7694         Contitionalize on ABI, not CPU.
7695         (struct arm_stack_offsets): Define.
7696         (struct machine_function): Add stack_offsets.  Remove frame_size.
7697         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7698         pushed.
7699         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7700         doubleword alignment.
7701         (THUMB_INITIAL_ELIMINATION_OFFSET,
7702         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7703         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7704         * config/arm/arm.md (align_8): Enable for all targets.
7705         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7706         (ARM_DEFAULT_ABI): Define.
7707         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7708         -mstructure-size-boundary.
7709
7710 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7711
7712         * configure.ac: Check for -Wno-variadic-macros; don't use
7713         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7714         and if it's available, use it.  Also, clean up check for
7715         -Wno-long-long.
7716         * configure: Regenerate.
7717
7718 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7719
7720         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7721         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7722         (MULTILIB_DEFAULTS): Use it.
7723         (MIPS_CPU_STRING_DEFAULT): Remove.
7724         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7725         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7726         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7727         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7728         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7729         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7730         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7731         accordingly.
7732
7733 2004-03-24  DJ Delorie  <dj@redhat.com>
7734             Richard Sandiford  <rsandifo@redhat.com>
7735
7736         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7737         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7738         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7739         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7740         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7741         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7742         if TARGET_FIX_VR4122.
7743         * config/mips/mips.md (define_attr length): Account for nops inserted
7744         after macc and dmult when using -mfix-vr4122-bugs.
7745         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7746         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7747         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7748         * config/mips/vr4122-div.S: New file.
7749         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7750
7751 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7752
7753         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7754         (TARGET_MIPS4130): New macro.
7755         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7756         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7757         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7758         with PROCESSOR_R4130.
7759         * config/mips/mips.md (define_attr cpu): Add r4130.
7760         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7761
7762 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7763             Richard Sandiford  <rsandifo@redhat.com>
7764
7765         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7766
7767 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7768
7769         PR preprocessor/14438
7770         * cpplib.c (do_pragma): Remove line_change call after pragma
7771         handler.
7772
7773 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7774
7775         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7776         declarations.
7777
7778 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7779
7780         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7781         if flag_unsafe_math_optimizations.
7782         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7783         and TARGET_80387 expand using truncdfsf2_noop pattern.
7784         (truncxfsf2): Likewise using truncxfsf2_noop.
7785         (truncxfdf2): Likewise using truncxfdf2_noop.
7786         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7787
7788 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7789
7790         * hooks.c (hook_constcharptr_tree_null): New hook.
7791         * hooks.h (hook_constcharptr_tree_null): New prototype.
7792         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7793         * target.h (mangle_fundamental_type): New target hook.
7794         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7795         target hook at rs6000_mangle_fundamental_type.
7796         (rs6000_mangle_fundamental_type): New function.
7797         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7798
7799 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7800
7801         PR 12267, 12391, 12560, 13129, 14114, 14133
7802         * c-tree.h: Forward declare struct c_binding.  Declare
7803         c_override_bindings_to_false.  Update prototypes.
7804         (struct lang_identifier): Update comments.  Change fields to be
7805         struct c_binding *.
7806         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7807         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7808         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7809         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7810         * c-common.h: Update prototypes.
7811         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7812         names_last, parms, parms_last, tags, and shadowed fields.  Add
7813         bindings and depth fields.
7814         (scope_freelist): Move to more appropriate location.
7815         (c_print_identifier): Update for changes to struct lang_identifier.
7816         (objc_mark_locals_volatile): Update for new bindings structures.
7817         (global_bindings_p): Honor c_override_global_bindings_to_false.
7818         (pushlevel): Rename to push_scope; take no arguments; use the
7819         scope_freelist; initialize scope->depth and check for overflow.
7820         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7821         structures.
7822         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7823         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7824         Improve some commentary.  Adjust handling of forward parm decls.
7825         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7826         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7827         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7828         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7829         decls.  Rewrite for new bindings structures.  Improve commentary.
7830         Eliminate the copy_node call.
7831         (implicit_decl_warning): Use the "diag" idiom (as seen in
7832         locate_old_decl) to reduce code duplication; call locate_old_decl
7833         if appropriate.  Relocate to remove need for forward declaration.
7834         (implicitly_declare): Adjust for new bindings structures.  Kludge
7835         around Objective-C not-really-builtin functions.
7836         (undeclared_variable): Improve diagnostics.  If current_function_decl
7837         is nonnull but current_function_scope is null, use current_scope.
7838         Use bind.
7839         (lookup_tag): Adjust for new bindings structures.  Kludge around
7840         Objective-C's tag declarations that wind up in the external scope.
7841         (lookup_name): Adjust for new bindings structures.  Kludge around
7842         c-common.c's pseudo-typedefs that wind up in the external scope.
7843         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7844         second argument indicating the scope to examine; rewrite for
7845         new bindings structures.
7846         (c_init_decl_processing): Adjust for renamed functions.  Do not
7847         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7848         First scope pushed is the external scope, not the global scope.
7849         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7850         for new data structures.  Keep track of builtins that should be
7851         made visible automatically.
7852         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7853         expand_decl.
7854         (grokparms): Return 0 if arg_types is error_mark_node.
7855         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7856         reversed sense.  Rewrite for new bindings structures.  Do not
7857         leave any decls in the scope, to prevent pop_scope from doing
7858         contradictory things with them.
7859         (finish_struct, finish_enum): Remove redundant diagnostics.
7860         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7861         Mark location where -pedantic changes the meaning of the program.
7862         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7863         parameter decls into the function's scope structure using bind.
7864         Warn here about function definitions in the wrong style.
7865         Adjust diagnostics.
7866         (store_parm_decls): Correct the determination of whether a
7867         function was defined with a prototype.
7868         (c_write_global_declarations): Operate on all file decls and on
7869         the external scope.  Split body of the loop to...
7870         (c_write_global_declarations_1): ... this new function, to avoid
7871         code duplication.
7872         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7873         (make_scope, pop_scope, in_parm_level_p, set_block)
7874         (any_external_decl, record_external_decl, bind_label, getdecls)
7875         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7876         (c_reset_state): Delete.
7877         (visible_builtins, c_override_global_bindings_to_false)
7878         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7879         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7880         (external_scope, binding_freelist, bind, free_binding_and_advance)
7881         (push_file_scope, pop_file_scope): New.
7882         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7883         (define_label, c_make_fname_decl, finish_decl)
7884         (mark_forward_parm_decls, build_compound_literal)
7885         (grokdeclarator, start_function, check_for_loop_decls)
7886         (identifier_global_value, record_builtin_type): Minor adjustments
7887         for new bindings structures.  Improve diagnostics and commentary.
7888         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7889         pushlevel/poplevel respectively.
7890         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7891         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7892         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7893         correct loop over multiple translation units; call fatal_error if
7894         requested to compile more than one file at once.  (This disables
7895         IMA temporarily - an up-front error being preferable to a crash.)
7896         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7897         (all actions): Adjust calls to pushlevel/poplevel.
7898         (parsing_iso_function_signature): Delete.
7899         (extdef_1): Fold into extdef.
7900         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7901         warn here about function definitions in the wrong style.
7902         (after_tyle_declarator, parm_declarator_starttypename)
7903         (parm_declarator_nostarttypename, notype_declarator): Remove
7904         commented-out productions.
7905         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7906         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7907         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7908         to suppress -Wold-style-definition after this error.
7909         (c_parse_file): Don't clear the binding stack or call
7910         finish_fname_decls here.  Correct comment.
7911         * c-typeck.c (same_translation_unit_p): Export.
7912         (common_type): Use c_override_global_bindings_to_false, not
7913         pushlevel/poplevel/declare_parm_level.
7914         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7915         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7916         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7917         * objc/objc-lang.c: Likewise.
7918         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7919         get_parm_info.
7920         (OBJC_VOID_AT_END): Delete; replace all uses
7921         with void_list_node.
7922         (generate_forward_declaration_to_string_table): Delete.
7923         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7924
7925         * coverage.c (create_coverage): Don't pushdecl anything.
7926         * langhooks.c (lhd_clear_binding_stack): Call
7927         lang_hooks.decls.poplevel, not poplevel.
7928         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7929         circular list rather than going into an infinite loop.
7930
7931 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7932
7933         * optabs.c (expand_binop): When synthesizing double word rotates
7934         from single word shifts, use a new register target if the provided
7935         target is not a REG already.
7936
7937 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7938
7939         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7940         * c-common.c (handle_mode_attribute): Add extra arg to
7941         build_pointer_type_for_mode and build_reference_type_for_mode.
7942         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7943         for INTEGER_CST.
7944         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7945         Chain pointers via TYPE_NEXT_PTR_TO.
7946         (build_reference_type_for_mode): Similarly.
7947         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7948         and build_reference_type_for_mode.
7949         (tree_check4_failed): New function.
7950         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7951         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7952         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7953         Add check.
7954
7955 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7956
7957         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7958         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7959         when both A and B are nonnegative.
7960         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7961         nonzero.
7962
7963 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7964
7965         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7966         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7967
7968 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7969
7970         PR optimization/14669
7971         * fold-const.c (fold): Only unwiden integer comparisons for equality
7972         and inequality operators, or when the signedness doesn't change.
7973
7974 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7975
7976         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7977         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7978         * config/sparc/t-linux: New file.
7979
7980 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7981
7982         * gcse.c (can_assign_to_reg_p): New function, split out from...
7983         (want_to_gcse_p): ...here.
7984         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7985         the rhs of a store.
7986
7987 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7988
7989         * c-typeck.c (same_translation_unit_p): Fix pasto.
7990
7991 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7992
7993         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7994         (PARAM_MAX_SCHED_REGION_INSNS): New.
7995         * sched-rgn.c: Include params.h
7996         (MAX_RGN_BLOCKS): Delete.
7997         (MAX_RGN_INSNS): Delete.
7998         (too_large): Return bool.  Convert to PARAM_VALUE.
7999         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8000         * doc/invoke.texi (param): Document max-sched-region-blocks and
8001         max-sched-region-insns.
8002
8003 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8004
8005         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8006         for base types.
8007
8008 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8009
8010         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8011         change.
8012
8013 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8014
8015         PR c/14069
8016         * c-decl.c (finish_struct): Change type of incorrect flexible array
8017         field into error_mark_node.
8018
8019 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8020
8021         PR target/14580
8022         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8023         who are not local for Darwin PIC.
8024
8025 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8026
8027         * regrename.c (regrename_optimize): Set regs_ever_live for all
8028         registers introduced as replacement.
8029
8030 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8031
8032         PR middle-end/14470
8033         * expr.c (mark_queue): New function.
8034         (emit_insns_enqueued_after_mark): New function replacing
8035         emit_queue.  Clear the body of emitted queued insns.
8036         (emit_queue): Call emit_insns_enqueued_after_mark.
8037         (store_expr): Mark the increment queue on entry.  Emit
8038         only the incrementations queued when expanding the source.
8039
8040 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8041
8042         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8043         of top level bootstrap, and consistency).  Reindent.
8044         * configure: Regenerate.
8045
8046 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8047
8048         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8049         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8050         unnecessary casts.
8051
8052 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8053
8054         PR target/14291
8055         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8056         __MINGW32__.
8057
8058 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8059
8060         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8061         to nonimmediate_operand.
8062         ("*doloop_di"): Likewise.
8063
8064 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8065
8066         * real.h (struct real_value): Use the same type for all
8067         bitfields.  Rename exp to uexp.
8068         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8069         Adjust all uses of exp...
8070         * builtins.c: ... here, ...
8071         * emit-rtl.c: ... here, and ...
8072         * real.c: ... and here.
8073
8074 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8075
8076         * pretty-print.c (pp_base_maybe_space): New function.
8077         * pretty-print.h (pp_base_maybe_space): Declare.
8078         (pp_maybe_space): New macro.
8079
8080 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8081
8082         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8083
8084 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8085
8086         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8087         of using register multiplication cost.
8088         (expand_mult): Adapt choose_mult_variant call.
8089         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8090         of MODE; pass appropriate cost bound.  Adjust result when
8091         performing signed multiplication by a negative constant.
8092         Don't use intermediate modes larger than word_mode.
8093
8094 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8095
8096         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8097         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8098         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8099         * explow.c (expr_size): Likewise.
8100         * expr.h (placeholder_list, find_placeholder): Deleted.
8101         * expr.c (store_constructor): Likewise.
8102         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8103         (placeholder_list, find_placeholder): Deleted.
8104         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8105         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8106         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8107         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8108         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8109         Likewise.
8110         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8111         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8112         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8113         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8114         Clean up by using first_rtl_op.
8115         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8116         (substitute_placeholder_in_expr): New function.
8117         * tree.def (WITH_RECORD_EXPR): Deleted.
8118         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8119         (substitute_placeholder_in_expr): New.
8120
8121 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8122
8123         * dojump.c (prefer_and_bit_test): Fix which part of
8124         the and_test is replaced.
8125
8126 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8127
8128         * frontends.texi: Add missing line.
8129
8130 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8131             Chris Devers  <cdevers@pobox.com>
8132             Joseph S. Myers  <jsm@polyomino.org.uk>
8133
8134         * doc/frontends.texi: Rewrite.
8135         * doc/gcc.texi: Update last modification date.
8136
8137 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8138
8139         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8140         message before redirecting the edge.
8141
8142 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8143
8144         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8145         flag.
8146         * explow.c (force_not_mem): Set REG_POINTER flag according to
8147         MEM_POINTER one.
8148         * rtl.h (MEM_POINTER): New macro.
8149         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8150         for MEM_POINTER.
8151
8152 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8153
8154         PR target/13889
8155         * cse.c (fold_rtx): Avoid substituting constants into unary
8156         conversion operations.
8157
8158 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8159
8160         * fold-const.c (fold): Replace "expr" with "t".
8161
8162 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8163
8164         PR c/12373
8165         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8166         DECL_ORIGINAL_TYPE if there isn't one.
8167
8168 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8169
8170         * fold-const.c (fold): Replace "final_type" with "type".
8171         Remove variable "final_type".
8172
8173 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8174
8175         * fold-const.c (fold): Constify "type".
8176         Replace "TREE_TYPE (t)" with "type".
8177
8178 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8179
8180         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8181         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8182         via (*targetm.foo) () with targetm.foo ().
8183
8184 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8185
8186         PR other/14630
8187         * doc/install.texi: Add info directory category and entry.
8188
8189 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8190
8191         * fold-const.c (fold): Replace "t" with "tem" where it is used
8192         as a temporary variable.  Remove "orig_t" and all of its uses.
8193
8194 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8195
8196         * fold-const.c (fold): Remove variable "invert".
8197         Move the handling of relational expressions that can be folded
8198         to a constant ...
8199         (fold_relational_const): ... here.
8200         (tree_expr_nonzero_p): New.
8201
8202 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8203
8204         PR c/14635
8205         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8206         DEF_GCC_BUILTIN.
8207
8208 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8209
8210         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8211         (GTFILES): Add $(srcdir)/dojump.h.
8212         (gt-dojump.h): New dependency.
8213         * dojump.c (and_reg, and_test, shift_test): New static variables.
8214         (prefer_and_bit_test): New function.
8215         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8216
8217 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8218
8219         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8220         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8221         reorg.c, tree.h: Fix comment typos.
8222
8223 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8224
8225         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8226         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8227         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8228         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8229         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8230         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8231         targetm.foo ().
8232
8233 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8234
8235         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8236         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8237         always_inline attribute.
8238         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8239         Treat expansion as completed even if literal argument is
8240         invalid (so that other expansions are not tried in vain).
8241
8242 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8243
8244         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8245         const0_rtx.
8246
8247 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8248
8249         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8250         ...
8251         (fold_abs_const): ... here.
8252
8253 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8254
8255         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8256
8257 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8258
8259         PR target/11520
8260         * config/avr/avr.md ("call_insn"): Handle explicit integer
8261         specially.
8262         (call_value_insn): Likewise.
8263
8264 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8265
8266         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8267
8268 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8269
8270         * fold-const.c (negate_expr): Move the handling of constants
8271         ...
8272         (fold_negate_const): ... here.
8273
8274 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8275
8276         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8277         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8278         * tree.c (debug_no_type_hash): Deleted.
8279         (type_hash_canon): Abort if passed a variant.
8280         Check lang_hooks.types.hash_types.
8281         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8282         (build_array_type): Remove unnecessary allocation of pointer type.
8283         (build_complex_type): Properly qualify resulting type.
8284
8285 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8286
8287         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8288
8289 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8290
8291         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8292         (expand_mult): ...here.
8293         (extract_high_half): New, split out from expand_mult_highpart.
8294         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8295         (expand_highpart): Evaluate the cost of a shift/add sequence,
8296         then see if any of the specialized optabs are cheaper.
8297
8298 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8299
8300         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8301
8302 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8303
8304         * convert.c (convert_to_real): Add more math builtins.
8305
8306 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8307
8308         * convert.c (convert_to_real): Reformat using switch stmt.
8309
8310 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8311
8312         * c-common.c (pointer_int_sum): Do not complain about using
8313         pointers to pointers-to-members.
8314
8315 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8316
8317         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8318         have moved to the target hooks structure".
8319
8320 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8321
8322         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8323         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8324         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8325         Likewise.
8326         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8327         Likewise.
8328         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8329         rm7_fp_quick): Likewise.
8330         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8331         rm9k_fquick): Likewise.
8332         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8333         Likewise.
8334         (ir_sr70_icmp): Delete.
8335
8336 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8337
8338         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8339         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8340         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8341         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8342         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8343         Protect with proper check.
8344         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8345         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8346         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8347         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8348         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8349         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8350         not TYPE_FIELDS.
8351         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8352
8353 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8354
8355         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8356         dest is set between beginning and current insn.
8357
8358 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8359
8360         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8361         visible "static" identifiers "extern" in a local scope.
8362         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8363         post-increments/decrements.
8364
8365 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8366
8367         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8368         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8369         (xtensa_va_start): Remove assignment to current_function_arg_words.
8370
8371 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8372
8373         * alias.c (record_set): Detect the case where a register is assigned
8374         a new value that has the same base term as the old one.
8375
8376 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8377
8378         * doloop.c: Removed.
8379         * loop-doloop.c: New file.
8380         * Makefile.in (doloop.o): Remove.
8381         (loop-doloop.o): New.
8382         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8383         * cfgloopanal.c (get_loop_level): New function.
8384         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8385         is leaved immediatelly.
8386         * loop.c (strength_reduce): Do not call doloop optimization.
8387         * loop.h (LOOP_BCT): Removed.
8388         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8389         (rest_of_handle_loop2): Call doloop_optimize_loops.
8390         (rest_of_compilation): Test for optimizations moved to
8391         rest_of_handle_loop2.
8392
8393 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8394
8395         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8396         for mixed mode.
8397         (rs6000_emit_prologue): Ditto.
8398         (rs6000_emit_epilogue): Ditto.
8399         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8400         macro for mixed mode.
8401
8402 2004-03-18  Jan Hubicka  <jh@suse.cz>
8403
8404         * predict.c (propagate_freq): Compute correctly frequency of
8405         EXIT_BLOCK.
8406
8407 2004-03-17  Eric Christopher  <echristo@redhat.com>
8408
8409         * builtins.c (apply_args_size): Use reg_raw_mode.
8410         (apply_result_size): Ditto.
8411
8412 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8413
8414         PR target/14620
8415         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8416
8417 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8418
8419         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8420         32-bit builds when defaulting to 32-bit.
8421
8422 2004-03-17  Jan Hubicka  <jh@suse.cz>
8423
8424         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8425         array.
8426
8427 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8428
8429         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8430         (hazard_nop): Change type to nop.
8431         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8432         Fix all uses.  Change arith to multi if more than one insn emitted.
8433         * config/mips/5400.md (ir_vr54_arith): Likewise.
8434         * config/mips/5500.md (ir_vr55_arith): Likewise.
8435         * config/mips/7000.md (rm7_int_other): Likewise.
8436         * config/mips/9000.md (rm9k_int): Likewise.
8437         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8438
8439 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8440
8441         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8442         to hold the subtype tree instead of recomputing it several times.
8443
8444 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8445
8446         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8447         CC_INVERT.
8448         * config/mn10300/mn10300.md (cc): Remove "invert".
8449
8450 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8451
8452         * builtins.c (integer_valued_real_p): Add builtin rint.
8453         (fold_builtin): Likewise.
8454         * convert.c (convert_to_real): Likewise.
8455
8456         * convert.c (convert_to_real): Fix typos in `long double'
8457         builtins.
8458
8459 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8460
8461         PR c++/14481
8462         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8463         generated COMPOUND_EXPRs.
8464
8465 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8466
8467         * config/h8300/t-rtems (h8300-*-rtems*): New.
8468
8469 2004-03-16  Eric Christopher  <echristo@redhat.com>
8470
8471         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8472
8473 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8474
8475         * config/i386/i386-protos.h: Add a prototype for
8476         ix86_reverse_condition.
8477         * config/i386/i386.c (ix86_reverse_condition): New.
8478         * config/i386/i386.h (REVERSE_CONDITION): Use
8479         ix86_reverse_condition.
8480         * config/i386/i386.md: Use ix86_reverse_condition instead of
8481         REVERSE_CONDITION.
8482
8483 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8484
8485         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8486
8487 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8488
8489         PR bootstrap/12974
8490         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8491
8492 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8493
8494         * c-common.c (c_common_type_for_mode): Build vector types on
8495         demand.
8496         (handle_mode_attribute): Deprecate using the mode attribute
8497         to create vector types.  Fix indentation.
8498         (vector_type_node_list): Remove.
8499         (handle_vector_size_attribute): Create vector types on demand.
8500         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8501         * c-typeck.c (comptypes): Make vector types compatible if they
8502         have the same underlying mode.
8503         (convert_for_assignment): Use comptypes to convert between
8504         vector types.
8505         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8506         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8507         vector types.
8508         * tree.h: Remove vector types.
8509         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8510         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8511         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8512         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8513         * doc/extend.texi (Vector Types): Document how to use the
8514         vector_size attribute to create vectors, rather than mode.
8515
8516         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8517         * config/i386/emmintrin.h: Likewise.
8518         * config/i386/mmintrin.h: Likewise.
8519         * config/i386/xmmintrin.h: Likewise.
8520         * config/sh/ushmedia.h: Likewise.
8521
8522 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8523
8524         * config/freebsd-spec.h, config/arc/arc-protos.h,
8525         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8526         config/arm/linux-gas.h, config/arm/semi.h,
8527         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8528         config/ia64/freebsd.h, config/mips/7000.md,
8529         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8530         config/sparc/pbd.h: Update copyright.
8531
8532 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8533
8534         PR target/14577
8535         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8536
8537 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8538
8539         * combine.c (combine_simplify_rtx): Remove the "last"
8540         parameter and its documentation.  Adjust recursive calls.
8541         (simplify_logical): Always perform the only simplification
8542         controlled by "last", if the simplified expression is
8543         actually different.
8544         (try_combine): Do not pass the "last" parameter to
8545         combine_simplify_rtx.
8546
8547 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8548
8549         PR target/14599
8550         * config/mips/mips.md (UNSPEC_GP): New constant.
8551         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8552         an UNSPEC instead of (reg $gp).
8553         (mips16_gp_pseudo_reg): Change accordingly.
8554         (print_operand): Print $gp directly when handling CONST_GP_P.
8555
8556 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8557
8558         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8559         * longlong.h: Make code 68060 clean when compiling for m68060.
8560
8561 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8562
8563         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8564         * doc/md.texi: Clarify description of "i" constraint.
8565
8566 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8567
8568         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8569         Split store into store, fpstore, fpidxstore.  Fix all uses.
8570         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8571         Likewise.
8572         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8573         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8574         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8575         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8576         ir_sr70_fstore): Likewise.
8577
8578 2004-03-15  Richard Henderson  <rth@redhat.com>
8579
8580         PR middle-end/14535
8581         * except.c (collect_one_action_chain): Record action for cleanup
8582         outer of exception spec.
8583
8584 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8585
8586         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8587         Fix the check for abort and only do the mmap if we can.
8588
8589 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8590
8591         * config/sparc/sparc.h: Rework comments about the code model
8592         in 64-bit environment and the mode 'Pmode'.
8593         * doc/invoke.texi (SPARC options): Rework description of the
8594         different code models supported in 64-bit environment.
8595
8596 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8597
8598         * defaults.h (REVERSIBLE_CC_MODE): Define.
8599         * jump.c (reversed_comparison_code_parts): Don't check if
8600         REVERSIBLE_CC_MODE is defined.
8601
8602 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8603
8604         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8605         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8606         hosthooks.h, params.h, ra-colorize.c, web.c,
8607         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8608         config/avr/avr-protos.h, config/avr/avr.md,
8609         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8610         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8611         config/i386/freebsd.h, config/i386/freebsd64.h,
8612         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8613         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8614         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8615         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8616         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8617         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8618         config/sparc/aout.h, config/sparc/freebsd.h,
8619         config/sparc/litecoff.h, config/vax/vax-protos.h,
8620         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8621         copyright.
8622
8623 2004-03-15  Paul Brook  <paul@codesourcery.com>
8624
8625         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8626
8627 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8628
8629         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8630         (pp_c_cv_qualifier): Document.
8631         (pp_c_space_for_pointer_operator): Likewise.
8632         (pp_c_integer_constant): Likewise.
8633         (pp_c_identifier): Likewise.
8634         (pp_c_init_declarator): Don't print function body.
8635
8636 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8637
8638         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8639         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8640         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8641         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8642         wording and grammar.
8643
8644 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8645
8646         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8647         with lang_hooks.foo ().
8648         * builtins.c (expand_builtin_va_arg): Likewise.
8649         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8650         c_common_type_for_mode, c_common_nodes_and_builtins,
8651         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8652         * c-convert.c (convert): Likewise.
8653         * c-format.c (check_format_types): Likewise.
8654         * c-objc-common.c (c_tree_printer): Likewise.
8655         * c-typeck.c (build_unary_op, build_conditional_expr,
8656         build_binary_op): Likewise.
8657         * calls.c (try_to_integrate, expand_call,
8658         emit_library_call_value_1): Likewise.
8659         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8660         Likewise.
8661         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8662         cgraph_expand_function): Likewise.
8663         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8664         * coverage.c (build_fn_info_type, build_ctr_info_type,
8665         build_gcov_info, create_coverage): Likewise.
8666         * dbxout.c (dbxout_init): Likewise.
8667         * diagnostic.c (diagnostic_report_current_function): Likewise.
8668         * dojump.c (do_jump): Likewise.
8669         * dwarf2out.c (dwarf2_name): Likewise.
8670         * except.c (init_eh): Likewise.
8671         * explow.c (expr_size, int_expr_size): Likewise.
8672         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8673         Likewise.
8674         * expr.c (store_expr, store_constructor, safe_from_p,
8675         expand_expr_real, do_store_flag, try_casesi): Likewise.
8676         * function.c (push_function_context_to, pop_function_context_from,
8677         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8678         put_var_into_stack, allocate_struct_function, current_function_name):
8679         Likewise.
8680         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8681         Likewise.
8682         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8683         lhd_print_error_function): Likewise.
8684         * opts.c (handle_option, decode_options): Likewise.
8685         * passes.c (open_dump_file): Likewise.
8686         * print-tree.c (print_node): Likewise.
8687         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8688         expand_decl_cleanup, emit_case_nodes): Likewise.
8689         * stor-layout.c (variable_size): Likewise.
8690         * toplev.c (announce_function, wrapup_global_declarations,
8691         check_global_declarations, compile_file, default_tree_printer,
8692         process_options, lang_dependent_init, finalize): Likewise.
8693         * tree-dump.c (dequeue_and_dump): Likewise.
8694         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8695         initialize_inlined_parameters, declare_return_variable,
8696         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8697         walk_tree, copy_tree_r): Likewise.
8698         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8699         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8700         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8701         variably_modified_type_p, dump_tree_statistics): Likewise.
8702         * varasm.c (assemble_variable, compare_constant, copy_constant,
8703         force_const_mem, compute_reloc_for_constant, output_constant,
8704         output_addressed_constants, initializer_constant_valid_p): Likewise.
8705
8706 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8707
8708         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8709
8710 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8711
8712         * doc/install.texi: Reflect autoconf and automake version for
8713         libffi. Update autoconf version to 2.59.
8714
8715 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8716
8717         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8718         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8719         make_range, build_range_check, fold_range_test, unextend,
8720         constant_boolean_node, fold_binary_op_with_conditional_arg,
8721         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8722         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8723         with lang_hooks.foo ().
8724
8725 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8726
8727         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8728
8729 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8730
8731         * doc/install.texi: Note status of -fnew-ra.
8732
8733 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8734
8735         PR middle-end/14470
8736         * expr.c (store_expr): Call emit_queue before generating the move
8737         from the temporary to the original target.  Protect the temporary
8738         from emit_queue.
8739
8740 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8741
8742         PR target/14533
8743         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8744         other than UNSPEC_GOTOFF.
8745
8746 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8747
8748         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8749         to arm_legitimate_index_p.  Update all callers with SET as default
8750         value.
8751         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8752         range if OUTER is a sign-extend operation on QImode.  Correctly
8753         reject shift operations on sign-extended QImode addresses.
8754         (bad_signed_byte_operand): Delete.
8755         (arm_extendqisi_mem_op): New function.
8756         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8757         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8758         constraints.
8759         (CONSTRAINT_LEN): New.
8760         (EXTRA_CONSTRAINT): Delete.  Replace with...
8761         (EXTRA_CONSTRAINT_STR): ... this.
8762         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8763         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8764         is now always default.
8765         (define_splits for bad sign-extend loads): Delete.
8766         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8767         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8768         Rework 'U' constraint to 'Uv'.
8769         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8770         arm_extendqisi_mem_op.
8771         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8772         Add Uq constraint.
8773
8774 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8775
8776         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8777         with targetm version.
8778
8779         PR target/14567
8780         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8781         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8782         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8783         Update all users of RS6000_ARG_SIZE.
8784         (function_arg_advance): Count fregno using mode size.
8785         (function_arg): Handle long double split over regs and memory.
8786         (function_arg_partial_nregs): Likewise.
8787         (rs6000_va_arg): Repackage complex args.
8788
8789 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8790
8791         PR target/14047
8792         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8793         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8794         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8795
8796 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8797
8798         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8799         prototype.
8800         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8801         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8802
8803 2003-03-12  Andrew Pinski  <apinski@apple.com>
8804
8805         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8806         Use ret instead of result. Use addr instead of base.
8807
8808 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8809
8810         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8811         fixes required by libstdc++ and update installation instructions
8812         for libstdc++.a.
8813
8814 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8815
8816         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8817         leading '@' on fastcall symbols before stripping suffix.
8818
8819 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8820
8821         * combine.c (unmentioned_reg_p): New function to check whether an
8822         expression is a "specialization" of another, i.e. that there are
8823         no registers or memory references mentioned in the first that don't
8824         appear in the second.
8825         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8826         (combine_instructions): Also try combining instructions using the
8827         REG_EQUAL note from a preceding log-linked instruction.
8828
8829 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8830
8831         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8832
8833 2004-03-12  Matt Austern  <austern@apple.com>
8834
8835         * target.h (struct gcc_target): New target hook, unwind_label.
8836         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8837         * output.h (default_emit_unwind_label): New function.
8838         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8839         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8840         (TARGET_SUPPORTS_HIDDEN): New target macro.
8841         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8842         that corresponds to this FDE.
8843         (FRAME_BEGIN_LABEL): Allow target to override default label.
8844         (output_call_frame_info): If FDEs are linknonce, then use extra
8845         indirection for FDE encoding, output a label for each FDE, and
8846         output an empty label for each function without an FDE.
8847         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8848         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8849         decls with DECL_ONE_ONLY set, if that macro is defined.
8850         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8851         for a SUPPORTS_ONE_ONLY target.
8852         * config/darwin-protos.h (darwin_unique_section): Declare.
8853         (darwin_asm_named_section): Likewise.
8854         (darwin_section_type_flags): Likewise.
8855         (darwin_non_lazy_pcrel): Likewise.
8856         (darwin_emit_unwind_label): Likewise.
8857         (darwin_make_decl_one_only): Likewise.
8858         * config/darwin.c (machopic_finish): Get rid of tweak that
8859         eliminate stubs for symbols that are defined.
8860         (darwin_encode_section_info): Don't treat weak functions as defined.
8861         (darwin_make_decl_one_only): Define.
8862         (darwin_asm_named_section): Likewise.
8863         (darwin_section_type_flags): Likewise.
8864         (darwin_unique_section): Likewise.
8865         (darwin_emit_unwind_label): Likewise.
8866         (darwin_non_lazy_pcrel): Likewise.
8867         (darwin_asm_output_dwarf_delta): Difference between two labels is
8868         local only if both labels are local.
8869         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8870         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8871         (TARGET_SUPPORTS_HIDDEN): Likewise.
8872         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8873         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8874         (FRAME_BEGIN_LABEL): Likewise.
8875         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8876         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8877         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8878         (TARGET_ASM_UNIQUE_SECTION): Define.
8879         (EH_FRAME_SECTION_NAME): Define.
8880         (EH_FRAME_SECTION_ATTR): Likewise.
8881         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8882         (TARGET_ASM_NAMED_SECTION): Likewise.
8883         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8884         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8885         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8886         TARGET_ASM_EMIT_UNWIND_LABEL.
8887
8888 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8889
8890         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8891         existing exp10* case.
8892         (expand_builtin): Likewise.
8893
8894 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8895
8896         * doc/tm.texi (registers) <Values in Registers>: Add
8897         entry for REGMODE_NATURAL_SIZE.
8898
8899 2004-03-12  Richard Henderson  <rth@redhat.com>
8900
8901         PR target/14547
8902         * target.h (struct gcc_target): Move calls substructure before
8903         booleans.  Add split_complex_arg.
8904         * function.c (assign_parms, split_complex_args): Use it.
8905         * calls.c (expand_call): Likewise.
8906         (split_complex_values): Likewise.  Check for splittable types
8907         before allocating memory.
8908         (split_complex_types): Likewise.
8909         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8910         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8911         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8912         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8913         (TARGET_SPLIT_COMPLEX_ARG): New.
8914         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8915         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8916         (rs6000_override_options): Zap it for non-AIX.
8917         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8918         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8919         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8920         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8921         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8922         SPLIT_COMPLEX_ARGS entry.
8923
8924 2004-03-11  Richard Henderson  <rth@redhat.com>
8925
8926         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8927         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8928         (alpha_emit_xfloating_arith): Update to match.
8929         (alpha_emit_xfloating_compare): Likewise.
8930         (alpha_emit_xfloating_cvt): Likewise.
8931         (alpha_emit_xfloating_libcall): Take already built symbol,
8932         mark call const.
8933         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8934         op1 in a register.
8935
8936 2004-03-11  Richard Henderson  <rth@redhat.com>
8937
8938         PR target/14539
8939         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8940
8941         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8942
8943 2004-03-11  Richard Henderson  <rth@redhat.com>
8944
8945         PR middle-end/14477
8946         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8947
8948 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8949
8950         PR target/14262
8951         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8952         defined, pass small BLKmode values in registers in the low-order part.
8953
8954 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8955
8956         * combine.c (if_then_else_cond): Check for NULL return value of
8957         simplify_gen_subreg.
8958
8959 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8960
8961         PR target/14496
8962         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8963         TARGET_SINGLE_FLOAT.
8964
8965 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8966
8967         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8968         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8969         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8970         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8971
8972 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8973
8974         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8975         -((int)X>>C) where C is an integer constant one bit less than the
8976         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8977         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8978
8979         * simplify-rtx.c (simplify_unary_operation): Also implement the
8980         above transformations at the RTL level.
8981
8982 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8983
8984         * real.c (encode_ibm_extended): Do round low word.
8985
8986 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8987
8988         * config/arm/arm.md (is_xscale): Comment this attribute and move
8989         it a bit further up in the file, closer to related attributes.
8990
8991 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8992
8993         * config/host-solaris.c (sol_gt_pch_use_address): Add
8994         missing terminating marker to comment.
8995
8996 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8997
8998         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8999         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9000         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9001         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9002         move_operand as source predicate in all cases.
9003         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9004         Test reg_or_0_operand.  Use move_operand as source predicate.
9005         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9006         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9007         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9008         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9009         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9010         Use move_operand as source predicate.  Remove 'K' constraint.
9011         (*movqi_internal): Likewise movqi_internal.
9012         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9013         reg_or_0_operand.  Use move_operand as source predicate.
9014         (*movsf_softfloat): Likewise movsf_internal2.
9015         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9016         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9017         (*movdf_softfloat): Likewise movdf_internal2.
9018         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9019         for DImode if !TARGET_64BIT.
9020         (mips_legitimize_move): Simplify accordingly.
9021
9022 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9023
9024         PR/14362
9025         * var-tracking.c (struct variable_def): Added field refcount.
9026         (variable_htab_free): Decrease the refcount and delete variable
9027         only if there are no more references.
9028         (unshare_variable): New function.
9029         (vars_copy_1): Increase refcount instead of copying the variable.
9030         (variable_union): Share the variables where possible, unshare
9031         the variables if needed.
9032         (variable_different_p): Return false if var1 and var2 are
9033         the same structure.
9034         (variable_was_changed): Init the refcount of new variable.
9035         (set_frame_base_location): Unshare variable if needed.
9036         (set_variable_part): Init the refcount of new variable.
9037         Unshare the variables if needed.
9038         (delete_variable_part): Unshare the variables if needed.
9039         (emit_notes_for_differences_1): Init the refcount of new variable.
9040         (vt_add_function_parameters): Do not add function parameters to
9041         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9042         (vt_initialize): Do not add frame_base_decl to IN set of
9043         ENTRY_BLOCK_PTR because it is unused anyway.
9044
9045 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9046
9047         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9048         (vars_copy): Likewise.
9049         (variable_union): Likewise.
9050         (set_variable_part): Likewise.
9051         (delete_variable_part): Likewise.
9052
9053 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9054
9055         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9056         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9057         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9058         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9059         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9060         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9061         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9062         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9063         config/stormy16/stormy16.c: Fix comment typos and formatting.
9064
9065 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9066
9067         * configure: Regenerate, since I forgot to while committing Paolo's
9068         changes.
9069
9070 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9071
9072         PR ada/14131
9073         Move language detection to the top level.
9074         * configure.ac: Remove code to detect languages,
9075         it now lives exclusively in the top level.
9076         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9077         top level, renamed to ACX_PROG_GNAT.
9078
9079 2004-03-10  Richard Henderson  <rth@redhat.com>
9080
9081         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9082         extra arguments.
9083         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9084         and host_xmake_file fragments.
9085         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9086         (gt_pch_restore): Similarly for gt_pch_use_address.
9087         (default_gt_pch_get_address): New.
9088         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9089         (default_gt_pch_use_address): Split out of gt_pch_restore.
9090         (mmap_gt_pch_use_address): Likewise.
9091         * hooks.c (hook_voidp_size_t_null): Remove.
9092         (hook_bool_voidp_size_t_false): Remove.
9093         * hooks.h: Likewise.
9094         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9095         default_ or mmap_ definitions.
9096         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9097         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9098         and gt_pch_use_address.
9099         * config/host-linux.c, config/host-solaris.c: New files.
9100         * config/x-linux, config/x-solaris: New files.
9101         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9102         Update for changed definition.
9103         (darwin_rs6000_gt_pch_use_address): Likewise.
9104         * doc/hostconfig.texi: Update docs.
9105
9106 2004-03-10  Richard Henderson  <rth@redhat.com>
9107
9108         PR c/14517
9109         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9110         except for pedantic c90 mode.
9111
9112 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9113
9114         * configure.ac: Bump AC_PREREQ to 2.59.
9115         * configure: Regenerate.
9116
9117 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9118
9119         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9120         (exp10_optab, exp2_optab): Define corresponding macros.
9121         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9122         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9123         using exp10?f2 and exp2?f2 patterns.
9124         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9125         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9126         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9127         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9128
9129         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9130         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9131         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9132
9133 2004-03-10  Anthony Green  <green@redhat.com>
9134
9135         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9136
9137 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9138
9139         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9140         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9141         __LONGDOUBLE128.
9142         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9143         TARGET_OS_AIX_CPP_BUILTINS.
9144         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9145         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9146         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9147         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9148         previous change.
9149
9150 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9151
9152         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9153
9154 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9155
9156         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9157         __LONGDOUBLE128 on AIX.
9158
9159 2004-03-10  Andrew Haley  <aph@redhat.com>
9160
9161         PR optimization/14381
9162         * function.c (expand_function_end): Emit a blockage insn before
9163         the epilogue when -fnon-call-exceptions is used.
9164
9165         * except.c (expand_start_all_catch): Make comment more accurate.
9166
9167 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9168
9169         PR target/14480
9170         * config/rs6000/t-rtems: Add missing file on branch.
9171
9172 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9173
9174         * dbxout.c (dbxout_symbol_location): Do not output references
9175         to optimized-out constant pool symbols.
9176
9177 2004-03-10  Andreas Schwab  <schwab@suse.de>
9178
9179         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9180         twon34_r.
9181
9182 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9183
9184         * alias.c (alias_sets_might_conflict_p): New.
9185         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9186         * common.opt (Wstrict-aliasing=): New.
9187         * flags.h (warn_strict_aliasing): Change type to int.
9188         * opts.c (warn_strict_aliasing): Change type to int.
9189         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9190         * tree.h (alias_sets_might_conflict_p): Declare it.
9191         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9192
9193 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9194
9195         PR bootstrap/12371
9196         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9197         (CALL_USED_REGISTERS): Likewise.
9198         (REG_CLASS_CONTENTS): Likewise.
9199         (REG_ALLOC_ORDER): New.
9200         (REGNO_REG_CLASS): Use regno_reg_class.
9201         * config/m68k/m68k.c: Add regno_reg_class array.
9202
9203 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9204
9205         * config/ia64/ia64.md (divsi3): Fix algorithm.
9206           (udivsi3): Ditto.
9207           (setf_exp_xf): Remove '*' from name.
9208         * testsuite/gcc.dg/20040309-1.c: New test.
9209
9210 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9211
9212         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9213         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9214         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9215         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9216         (sparc_aout_select_rtx_section): Don't check
9217         SUNOS4_SHARED_LIBRARIES.
9218         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9219
9220 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9221
9222         PR other/14474
9223         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9224         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9225         INTERNALS".
9226
9227 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9228
9229         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9230         (LIBGCC_SPEC): Update to match.
9231
9232 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9233
9234         * c-decl.c (last_function_parms, last_function_parm_tags)
9235         (last_function_parm_others, current_function_parms)
9236         (current_function_parm_tags, current_function_parm_others):
9237         Delete.
9238         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9239         New macros.
9240         (grokdeclarator): For function definitions, save the arg-info
9241         block from the declarator in DECL_ARGUMENTS.
9242         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9243         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9244         contains only PARM_DECLs.  Improve diagnostics.
9245         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9246         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9247         (store_parm_decls_newstyle): Take the function to operate on,
9248         and an arg-info block, as arguments; don't get anything from
9249         current_function_* globals.
9250         (store_parm_decls_oldstyle): Likewise.
9251         (store_parm_decls): Pass fndecl and its arg-info block down to
9252         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9253         argument lists through store_parm_decls_newstyle to reduce
9254         overhead.
9255         (pushdecl): Comment on the problems with the call to copy_node.
9256         Clear DECL_ARGUMENTS of the old node after copying it, if it
9257         is an arg-info block instead of a chain of decls.
9258         (start_function): Do not manipulate current_function_parm* or
9259         last_function_parm*.
9260
9261 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9262             Andrew Pinski  <pinskia@physics.uc.edu>
9263
9264         * ifcvt.c (noce_try_sign_mask): New function to transform
9265         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9266         (noce_process_if_block): Call noce_try_sign_mask.
9267
9268 2004-03-09  Andrew Pinski  <apinski@apple.com>
9269
9270         * c-typeck.c (tagged_types_tu_compatible_p):
9271         Fix typo.
9272
9273 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9274
9275         * simplify-rtx.c (simplify_const_relational_operation): New function
9276         renamed from simplify_relational_operation.
9277         (simplify_relational_operation): Change prototype to accept an
9278         additional mode argument.  Call simplify_const_relational_operation.
9279         (simplify_gen_relational): Update simplify_relational_operation call.
9280         (simplify_ternary_operation): Update simplify_relational_operation
9281         subroutine call to use simplify_const_relational_operation instead.
9282
9283         * rtl.h (simplify_const_relational_operation): Prototype here.
9284         (simplify_relational_operation): Add addtional mode argument.
9285
9286         * combine.c (combine_simplify_rtx): Update calls to
9287         simplify_relational_operation.
9288         (simplify_set): Likewise.
9289         (gen_binary): Likewise.
9290         * cse.c (fold_rtx): Likewise.
9291         * dojump.c (compare_from_rtx): Likewise.
9292         (do_compare_rtx_and_jump): Likewise.
9293         * integrate.c (subst_constants): Likewise.
9294         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9295
9296 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9297
9298         * config/m32r/m32r.md: Remove all define_peephole's.
9299
9300 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9301
9302         * config/rs6000/rs6000.md: Remove trailing whitespace.
9303
9304 2004-03-08  Eric Christopher  <echristo@redhat.com>
9305
9306         * Makefile.in (site.exp): Add libiconv variable definition.
9307
9308 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9309
9310         * configure: Regenerate for config/accross.m4 correction.
9311
9312 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9313
9314         PR target/14480
9315         * config/rs6000/t-rtems: Add missing file on branch.
9316
9317 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9318
9319         PR middle-end/14289
9320         * c-typeck.c (c_mark_addressable): A register variable should
9321         be considered global if its not automatic, i.e. TREE_PUBLIC,
9322         TREE_STATIC or DECL_EXTERNAL.
9323         * function.c (put_var_into_stack): Call abort when placing a
9324         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9325
9326 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9327
9328         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9329         ("*extendqisi2_short_displ"): Likewise.
9330
9331 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9332
9333         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9334         (comp_operator): Likewise.
9335         * config/pdp11/pdp11-protos.h: Remove corresponding
9336         prototypes.
9337
9338 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9339
9340         * expr.c (highest_pow2_factor_for_type): Rename into
9341         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9342         TYPE_ALIGN when the target is a COMPONENT_REF.
9343         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9344
9345 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9346
9347         * config/rs6000/rs6000.c: Formatting fix.
9348         (legitimate_offset_address_p): Correct offset range check.
9349
9350         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9351         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9352         and MASK_STRING.
9353
9354 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9355
9356         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9357         for little endian.
9358         ("ashrdi3_no_power"): Disable for little endian.
9359         (ashrdi3): Same.
9360
9361 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9362
9363         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9364         builtins.
9365
9366 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9367
9368         PR target/14471
9369         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9370         case, checking for -no-mul-bug-abort option.
9371         * configure, config.in: Regenerate.
9372         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9373         and -mno-mul-bug-workaround.
9374         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9375         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9376         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9377         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9378         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9379         sure mulu.d is not last on cache-line.
9380         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9381         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9382         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9383         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9384         -mno-mul-bug-workaround.
9385         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9386         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9387         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9388         relation to MULT in head comment.
9389         (cris_op_str): Abort for MULT.
9390         (cris_print_operand) <case '!'>: New case.
9391
9392 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9393
9394         PR debug/11983
9395         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9396         dw_val_class_vec.  Replace use throughout file.
9397         (dw_float_const): Delete.
9398         (dw_vec_const): New.
9399         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9400         throughout file.
9401         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9402         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9403         (size_of_die): Adjust dw_val_class_vec sizing.
9404         (output_die): Output dw_val_class_vec.
9405         (insert_int, extract_int, insert_float): New functions.
9406         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9407         Handle CONST_VECTOR.
9408         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9409
9410 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9411
9412         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9413         AltiVec abi cannot co-exist.
9414
9415         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9416
9417 2004-03-07  Jan Hubicka  <jh@suse.cz>
9418
9419         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9420
9421 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9422
9423         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9424         ("*lshrsi3"): Also accept an immediate for 68HC12.
9425         ("*ashrsi3_const"): Likewise.
9426         ("*ashrsi3"): Likewise.
9427         ("*ashlsi3_const"): Likewise.
9428         ("*ashlsi3"): Likewise.
9429         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9430         comparing with a pop; don't use a split for that.
9431         ("cmphi split"): Disable compare split for 68HC12.
9432
9433         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9434         the status operands if they have side effects.
9435
9436 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9437
9438         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9439         definition.
9440         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9441         config/h8300/h8300.h, config/ia64/ia64.h,
9442         config/mcore/mcore.h, config/mmix/mmix.h,
9443         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9444         config/stormy16/stormy16.h, config/v850/v850.h,
9445         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9446         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9447         definition.
9448
9449 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9450
9451         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9452         <XOR_EXPR>: Fold x ^ x as zero.
9453         <AND_EXPR>: Fold x & x as x.
9454
9455 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9456
9457         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9458         "foo++ == const" into "++foo == const+incr".
9459
9460 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9461
9462         * config/mips/mips.c (mips_in_small_data_p): Return false if
9463         TARGET_ABICALLS.
9464
9465 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9466
9467         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9468         the stack register.
9469         (expand_prologue): Don't make an interrupt or a trap handler a far
9470         symbol.
9471         (m68hc11_initial_elimination_offset): Likewise.
9472
9473 2004-03-06  Richard Henderson  <rth@redhat.com>
9474
9475         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9476
9477 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9478
9479         * config/ns32k/ns32k-protos.h: Add a prototype for
9480         ns32k_notice_update_cc.
9481         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9482         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9483         ns32k_notice_update_cc.
9484
9485 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9486
9487         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9488         "*load_multiple_si"): Allow only if reload_completed.
9489         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9490         Likewise.
9491
9492 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9493
9494         * config/vax/vax-protos.h: Add a prototype for
9495         vax_notice_update_cc.
9496         * config/vax/vax.c (vax_notice_update_cc): New.
9497         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9498         vax_notice_update_cc.
9499
9500 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9501
9502         * collect2.c (main): Only export initfunc and finifunc if
9503         LD_INIT_SWITCH not defined.
9504         (scan_prog_file): Only export constructors and destructors if
9505         LD_INIT_SWITCH not defined.  Only export symbols not found in
9506         shared objects.
9507
9508 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9509
9510         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9511         last.
9512         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9513         from calls to gen_icacheflush.
9514
9515 2004-03-06  Richard Henderson  <rth@redhat.com>
9516
9517         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9518         (TARGET_LONG_DOUBLE_128): New.
9519         (TARGET_SWITCHES): Add long-double-{128,64}.
9520         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9521         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9522         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9523         (WIDEST_HARDWARE_FP_SIZE): New.
9524         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9525         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9526         if TARGET_VAX_FLOAT.
9527         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9528         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9529
9530 2004-03-06  Richard Henderson  <rth@redhat.com>
9531
9532         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9533         botched rtx class conversion.
9534
9535 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9536
9537         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9538         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9539
9540         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9541         macros.
9542         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9543
9544 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9545
9546         PR target/14343
9547         * config/i386/i386.md (movv2di_internal): Conditionalize on
9548         TARGET_SSE, not TARGET_SSE2.
9549
9550 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9551
9552         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9553         duplicated line.
9554
9555 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9556
9557         * builtins.c: Consistently use logN not log* in comments.
9558
9559 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9560
9561         * rtl.h (mem_expr_equal_p): Function prototype added.
9562         * cfgcleanup.c (merge_memattrs): New function.
9563         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9564         * emit-rtl.c (mem_expr_equal_p): New function.
9565
9566 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9567
9568         * objc/objc-act.c (synth_module_prologue): Const-qualify
9569         objc_selector type if using the GNU runtime; fix generated
9570         signatures for objc_msg_lookup and objc_msg_lookup_super
9571         to match what GNU ObjC headers provide; reformat and clean up.
9572         (synth_self_and_ucmd_args): Use previously constructed (and
9573         hence possibly const-qualified) objc_selector type.
9574
9575 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9576
9577         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9578
9579 2004-03-05  Jason Merrill  <jason@redhat.com>
9580
9581         * tree.h (TYPE_HASH): Use TYPE_UID.
9582         (TREE_HASH): New macro with old definition of TYPE_HASH.
9583         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9584         (build_array_type, build_function_type): Likewise.
9585         (build_method_type_directly): Likewise.
9586         (build_offset_type, build_complex_type): Likewise.
9587         (type_hash_list, attribute_hash_list): Likewise. Now static.
9588         * except.c: s/TYPE_HASH/TREE_HASH/.
9589
9590 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9591
9592         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9593         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9594         __va_ndx by 2 words when referencing an argument on the stack.
9595         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9596         words when an arg on the stack is first seen.
9597
9598 2004-03-05  Paul Brook  <paul@codesourcery.com>
9599
9600         * arm.h (ARM_FLAG_VFP): Remove.
9601         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9602         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9603
9604 2004-03-05  Paul Brook  <paul@codesourcery.com>
9605
9606         * function.c (assign_parms): Include pretend alignment offset.
9607
9608 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9609
9610         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9611         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9612
9613 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9614
9615         * configure.ac: When passing --enable-languages to subdir
9616         configure when host != build, make sure we don't pass an empty
9617         value.
9618         * configure: Regenerate.
9619
9620 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9621
9622         PR 13577
9623         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9624         options.
9625
9626 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9627
9628         * simplify-rtx.c (simplify_relational_operation): If
9629         flag_wrapv is set, do not move terms between the two
9630         side of a relational operator.
9631
9632 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9633
9634         * rtlanal.c: Include target.h and output.h
9635         (rtx_cost, address_cost, default_address_cost): Move from...
9636         * cse.c (rtx_cost, address_cost, default_address_cost):
9637         ... this file.
9638         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9639         * Makefile.in: Adjust dependencies.
9640
9641 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9642
9643         * cse.c (cse_end_of_basic_block): Make static.
9644         * local-alloc.c (function_invariant_p): Move to
9645         reload1.c.
9646         * loop.c (libcall_other_reg, record_excess_regs):
9647         Make static.
9648         * reload1.c (function_invariant_p): Moved here
9649         from local-alloc.c, made static.
9650         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9651         libcall_other_reg, record_excess_regs): Remove
9652         declarations.
9653
9654 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9655
9656         * config/m32r/m32r.c (signed_comparison_operator): Add a
9657         missing parenthesis.
9658
9659 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9660
9661         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9662         going to call mmap again.  Read the file into the right place.
9663         Give a fatal error if we have to relocate.
9664
9665 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9666
9667         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9668         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9669
9670 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9671
9672         PR other/14354
9673         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9674         round the same.  When rounding, clear bits that would cause a
9675         second rounding in pack_d.
9676         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9677
9678 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9679
9680         PR c++/14425, c++/14426
9681         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9682         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9683         Change C++ definitions to accept a 'const int' argument;
9684         the prototypes already do.
9685         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9686         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9687         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9688         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9689         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9690         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9691         end in ..._int; change them to accept an int instead of a char
9692         as the last parameter.
9693
9694 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9695
9696         * genmultilib:  Change '=' to '-' when translating option names
9697         to directory names.
9698
9699 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9700
9701         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9702         stack slot for temp used for result of BLKmode but in integral mode.
9703
9704 2004-03-04  Jan Hubicka  <jh@suse.cz>
9705
9706         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9707
9708         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9709         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9710
9711 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9712
9713         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9714         * testsuite/gcc.dg/20040303-1.c: New test.
9715
9716 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9717
9718         * ppro.md: Rewrite as a DFA pipeline description.
9719         * i386.md: Remove all uses of the ppro_uops attribute.
9720         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9721         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9722         ix86_sched_reorder, ix86_variable_issue,
9723         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9724         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9725         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9726         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9727         * athlon.md (athlon_ssecmp_load): Fix comment
9728
9729 2004-03-04  Stuart Hastings  <stuart@apple.com>
9730
9731         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9732
9733 2004-03-04  Stuart Hastings  <stuart@apple.com>
9734
9735         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9736         686, tell Darwin assembler to allow prefetch insns, non-empty def
9737         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9738
9739 2004-03-04  DJ Delorie  <dj@redhat.com>
9740
9741         PR optimization/14282
9742         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9743         between a call and the assignment of its return value.
9744
9745 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9746
9747         * config/h8300/h8300.c: Put a comment for every function.
9748
9749 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9750
9751         * config/h8300/h8300.md: Add comments about peephole2's.
9752
9753 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9754
9755         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9756
9757 2004-03-04  Jan Hubicka  <jh@suse.cz>
9758
9759         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9760         * cselib.c (cselib_record_memory): New static variable.
9761         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9762         Give up on memories when asked for.
9763         (cselib_init): Accept new argument.
9764         * cselib.h (cselib_init): Update prototype.
9765         * gcse.c (local_cprop_pass): Update call of cselib_init.
9766         * loop.c (load_mems): Update call of cselib_init.
9767         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9768         * sched-deps.c (sched_analyze): Update call of cselib_init.
9769
9770 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9771             GP <gp@qnx.com>
9772
9773         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9774         when compiling PIC.
9775
9776 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9777
9778         PR/14362
9779         * var-tracking.c (track_expr_p): Do not track variables which
9780         should be ignored for debugging purposes.
9781
9782 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9783
9784         * real.c (encode_ibm_extended): Don't bother rounding low double.
9785         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9786         when fmt->pnan < fmt->p.
9787
9788 2004-03-04  Eric Christopher  <echristo@redhat.com>
9789
9790         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9791         only range of valid arg registers and fixed_regs.
9792
9793 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9794
9795         PR target/14406
9796         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9797         (abstf2, abstf2_internal): New define_expand.
9798
9799 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9800
9801         PR optimization/14235
9802         * expr.c (convert_move): Copy the source to a new pseudo
9803         when converting from a sub-word source to a larger-than-word
9804         register which conflicts with the source.
9805
9806 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9807
9808         PR 13728
9809         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9810         parameters with the same name, unless one is a forward decl.
9811         Do not issue a redundant-redeclaration warning for forward
9812         decls of parameters.
9813
9814 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9815
9816         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9817         configuration.
9818
9819 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9820
9821         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9822
9823 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9824
9825         * target-def.h (TARGET_OPTF): Delete.
9826         * c-opts.c (TARGET_OPTF): Define.
9827
9828 2004-03-04  Jan Hubicka  <jh@suse.cz>
9829
9830         * cselib.c (cselib_finish): Fix another miss-application of my previous
9831         patch.
9832
9833 2004-03-03  Mike Stump  <mrs@apple.com>
9834
9835         Add framework support for darwin.
9836
9837         * c-incpath.c: Include target.h and machmode.h.
9838         (add_path): Use a consistent style for cpp_dir.  Initialize
9839         p->construct to 0.
9840         (add_cpp_dir_path): New.
9841         (register_include_chains): Add use of extra_includes callback.
9842         (hook_void_int): Add.
9843         (target_c_incpath): Add.
9844         * c-incpath.h (add_cpp_dir_path): New.
9845         (target_c_incpath_s): Add.
9846         (target_c_incpath): Add.
9847         (C_INCPATH_INIT): Add.
9848         * c-opts.c (c_common_missing_argument,
9849         c_common_handle_option): Add -F argument processing.
9850         * c.opt: Add -F argument processing.
9851         * gcc.c (trad_capable_cpp): Add -F argument processing.
9852         * cppfiles.c (find_file_in_dir): Update to use construct
9853         callback.
9854         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9855         cpp_get_prev): New.
9856         (_cpp_find_file): Use search_path_exhausted.
9857         (make_cpp_dir): Initialize construct to 0.
9858         * cpplib.h (missing_header_cb
9859         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9860         (cpp_callbacks): Add missing_header
9861         (cpp_dir): Add construct.
9862         * target-def.h: (TARGET_OPTF): New.
9863         * hooks.c (hook_void_int, hook_void_charptr): Add.
9864         * hooks.h (hook_void_int, hook_void_charptr): Add.
9865         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9866         $(MACHMODE_H) dependencies.
9867         * doc/invoke.texi (Darwin Options): Document -F.
9868         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9869         (TARGET_OPTF): Add.
9870         * fix-header.c (target_c_incpath): Add.
9871
9872         * config/darwin-c.c: Add c-incpath.h include.
9873         (using_frameworks, find_subframework_file,
9874         find_subframework_header, add_system_framework_path,
9875         frameworks_in_use, num_frameworks, max_frameworks,
9876         add_framework, find_framework, struct framework_header,
9877         framework_header_dirs, framework_construct_pathname,
9878         find_subframework_file, add_system_framework_path,
9879         add_framework_path, framework_defaults,
9880         darwin_register_frameworks, find_subframework_header): Add.
9881         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9882         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9883         (CPP_SPEC): Add __APPLE_CC__ support.
9884         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9885
9886 2004-03-04  Jan Hubicka  <jh@suse.cz>
9887
9888         * cselib.c (cselib_finish): Fix miss-application of my previous
9889         patch.
9890
9891 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9892
9893         * hooks.c (hook_tree_tree_identity): New.
9894         * hooks.h: Add a prototype for hook_tree_tree_identity.
9895         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9896         instead of MD_ASM_CLOBBERS.
9897         * system.h (MD_ASM_CLOBBERS): Poison.
9898         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9899         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9900         * target.h (gcc_target): Add md_asm_clobbers.
9901         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9902         (ix86_md_asm_clobbers): New.
9903         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9904         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9905         TARGET_MD_ASM_CLOBBERS.
9906
9907 2004-03-03  Stuart Hastings  <stuart@apple.com>
9908
9909         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9910
9911 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9912
9913         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9914
9915         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9916         (ASM_DOUBLE): Likewise.
9917         (ASM_LONGDOUBLE): Likewise.
9918         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9919
9920 2003-03-03  Richard Henderson  <rth@redhat.com>
9921
9922         PR opt/13862
9923         * cselib.c (cselib_record_sets): Don't record multiple sets in
9924         asm insns.
9925
9926 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9927
9928         * common.opt: Add description of the new -fgcse-after-reload flag.
9929
9930         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9931
9932         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9933         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9934         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9935         get_bb_avail_insn, hash_scan_set_after_reload,
9936         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9937         gcse_after_reload, get_bb_avail_insn): New functions to implement
9938         gcse-after-reload.
9939         (gcse_after_reload_main): New function, the main entry point to
9940         gcse-after-reload.
9941
9942         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9943
9944         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9945
9946         * toplev.c (flag_gcse_after_reload): Initialization.
9947
9948         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9949
9950         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9951         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9952         the gcse after reload optimization.
9953
9954         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9955         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9956         parameters.
9957
9958         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9959
9960 2004-03-03  Nicolas Pitre <nico@cam.org>
9961
9962         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9963         small negative values.
9964
9965 2004-03-03  Jan Hubicka  <jh@suse.cz>
9966
9967         * cselib.c (hash_table):  Remove GTY marker.
9968         (reg_values): Turn into array.
9969         (used_regs): Likewise.
9970         (n_used_regs): New static variable.
9971         (reg_values_old): Kill.
9972         (clear_table): Update uses of arrays.
9973         (cselib_lookup): Likewise.
9974         (cselib_record_set): Likewise.
9975         (cselib_init): Likewise.
9976         (cselib_finish): Likewise.
9977         (cselib_udpate_varray_sizes): Kill.
9978         * cselib.h (cselib_update_varray_sizes): Kill.
9979
9980 2004-03-03  Paul Brook  <paul@codesourcery.com>
9981
9982         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9983
9984 2004-03-03  Jan Hubicka  <jh@suse.cz>
9985
9986         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9987         Rename from ...; make statistics transparent.
9988         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9989         (loc_descriptor): New structure.
9990         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9991         add_statistics):
9992         New static function.
9993         (ggc_record_overhead, dump_statistics): New global function.
9994         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9995         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9996         from ...; accept locations
9997         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9998         ggc_realloc, ggc_alloc_typed):  ... this one.
9999         from ...; accept locations
10000         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10001         ggc_alloc_stat): Rename from ... ; pass locations
10002         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10003         ... this one.
10004         (ggc_alloc_stat): Record overehead.
10005         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10006         ggc_realloc, ggc_alloc_typed):  Turn to macros
10007         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10008         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10009         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10010         * langhooks.h (lhd_make_node): Declare.
10011         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10012         * langhooks.c (lhd_make_node): New.
10013         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10014         locations.
10015         (rtx_alloc, swallow_copy_rtx): ... this one.
10016         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10017         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10018         * toplpev.c (finalize): Dump stats.
10019         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10020         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10021         Rename from ... ; pass locators.
10022         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10023         build?,  build_decl): Declare.
10024         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10025         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10026         Declare.
10027         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10028         build?,  build_decl): New macros.
10029         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10030         * statistics.h: New file.
10031
10032 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10033             Richard Sandiford  <rsandifo@redhat.com>
10034
10035         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10036         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10037         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10038         * config/mips/mips.c (mips_output_division): Fill the branch delay
10039         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10040         TARGET_FIX_R4400.
10041         (mips_output_division): Adjust accordingly.
10042         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10043         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10044
10045 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10046
10047         * alias.c (rtx_equal_for_memref_p): Use predicates
10048         to test rtx classes and new rtx class codes, possibly
10049         splitting conditionals that tested against '<' and 'o'.
10050         * caller-save.c (save_call_clobbered_regs): Likewise.
10051         * combine.c (contains_muldiv, find_split_point, subst,
10052         combine_simplify_rtx, simplify_if_then_else,
10053         simplify_set, simplify_logical, expand_compound_operation,
10054         make_compound_operation, if_then_else_cond, known_cond,
10055         apply_distributive_law, cached_nonzero_bits,
10056         cached_num_sign_bit_copies, simplify_shift_const,
10057         gen_binary, simplify_comparison, update_table_tick,
10058         record_value_for_reg, get_lsat_value_validate): Likewise.
10059         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10060         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10061         Likewise.
10062         * emit-rtl.c (copy_insn_1): Likewise.
10063         * expr.c (force_operand): Likewise.
10064         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10065         * flow.c (notice_stack_pointer_modification_1,
10066         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10067         and_reg_cond, elim_reg_cond): Likewise.
10068         * function.c (update_epilogue_consts): Likewise.
10069         * genattrtab.c (attr_rtx_1): Likewise.
10070         * genopinit.c (gen_insn): Likewise.
10071         * integrate.c (subst_constants): Likewise.
10072         * jump.c (reversed_comparison_code_parts,
10073         reversed_comparison_code, delete_related_insns,
10074         rtx_renumbered_equal_p): Likewise.
10075         * local-alloc.c (block_alloc): Likewise.
10076         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10077         canonicalize_condition): Likewise.
10078         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10079         Likewise.
10080         * optabs.c (add_equal_node, expand_binop): Likewise.
10081         * predict.c (estimate_probability): Likewise.
10082         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10083         * recog.c (validate_replace_rtx_1, comparison_operator,
10084         offsettable_address_p, constrain_operands): Likewise.
10085         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10086         Likewise.
10087         * regclass.c (scan_one_insn): Likewise.
10088         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10089         * regrename.c (kill_autoinc_value): Likewise.
10090         * reload.c (find_reusable_reload, find_reloads,
10091         reg_overlap_mentioned_for_reload_p): Likewise.
10092         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10093         * rtl.c (copy_rtx): Likewise.
10094         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10095         * rtlanal.c (commutative_operand_precedence): Likewise.
10096         * sched-deps.c (conditions_mutex_p): Likewise.
10097         * sched-rgn.c (is_cfg_nonregular): Likewise.
10098         * simplify-rtx.c (simplify_gen_binary,
10099         simplify_gen_relational, simplify_replace_rtx,
10100         simplify_unary_operation, simplify_binary_operation,
10101         simplify_ternary_operation, simplify_rtx): Likewise.
10102         * unroll.c (reg_dead_after_loop): Likewise.
10103         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10104         print_operand): Likewise.
10105         * config/arc/arc.c (proper_comparison_operator): Likewise.
10106         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10107         Likewise.
10108         * config/avr/avr.c (_reg_unused_after): Likewise.
10109         * config/frv/frv.c (frv_ifcvt_modify_tests,
10110         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10111         * config/i386/i386.c (ix86_comparison_operator,
10112         ix86_carry_flag_operator, fcmov_comparison_operator,
10113         arith_or_logical_operator, print_operand,
10114         ix86_expand_binary_operator, ix86_binary_operator_ok):
10115         Likewise.
10116         * config/i386/i386.md: Likewise.
10117         * config/ia64/ia64.c (not_postinc_memory_operand,
10118         ia64_print_operand, update_set_flags, errata_emit_nops):
10119         Likewise.
10120         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10121         CONSTRAINT_OK_FOR_S): Likewise.
10122         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10123         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10124         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10125         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10126         Likewise.
10127         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10128         eqne_comparison_operator, signed_comparison_operator):
10129         Likewise.
10130         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10131         Likewise.
10132         * config/mmix/mmix (mmix_foldable_comparison_operator,
10133         mmix_comparison_operator): Likewise.
10134         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10135         * config/rs6000/rs6000.c (stmw_operation,
10136         branch_comparison_operator, trap_comparison_operator,
10137         ccr_bit): Likewise.
10138         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10139         * config/s390/s390.c (s390_alc_comparison,
10140         s390_slb_comparison):L Likewise.
10141         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10142         Likewise.
10143         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10144         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10145         emit_hard_tfmode_operation, reg_unused_after)
10146         * doc/md.texi, doc/rtl.texi: Likewise.
10147
10148         * ra-debug.c: Add 2004 to list of copyright years.
10149         * unroll.c: Likewise.
10150
10151         * combine.c (simplify_logical): Remove dummy test,
10152         (apply_distributive_law): Fix typo in comment.
10153         GET_CODE (x) == AND so x is a commutative binary op.
10154         * jump.c (delete_related_insns): simplify loop
10155         condition, move testing of RTX codes inside the loop.
10156         (rtx_renumbered_equal_p): do not use RTX_CODE.
10157         * rtl.c (rtx_class): Declare as enum rtx_class.
10158         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10159         Move to RTX_COMM_COMPARE class.
10160         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10161         Move to RTX_CONST_OBJ class.
10162         * rtl.h (enum rtx_class): New declaration,
10163         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10164         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10165         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10166         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10167         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10168         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10169         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10170         OBJECT_P): New macros.
10171         * config/sparc/sparc.c (noov_compare_op): Remove register
10172         from parameter.
10173
10174 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10175
10176         * target.h: Remove texi jargons in comments.
10177
10178 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10179
10180         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10181         threshold to 0x4f.
10182
10183         Revert:
10184         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10185         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10186         as well.
10187         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10188         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10189
10190 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10191
10192         * doc/md.texi (cbranchmode4): New.
10193
10194 2004-03-02  Eric Christopher  <echristo@redhat.com>
10195
10196         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10197         fix_trunc.
10198         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10199         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10200         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10201         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10202
10203 2004-03-02  Richard Henderson  <rth@redhat.com>
10204
10205         PR middle-end/11767
10206         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10207         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10208         before the compare, if flag_non_call_exceptions.
10209
10210 2004-03-02  Richard Henderson  <rth@redhat.com>
10211
10212         PR middle-end/14327
10213         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10214         emitting the label, not after.
10215
10216 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10217
10218         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10219         (m68hc11_mov_addr_mode): Likewise.
10220         (m68hc11_override_options): Initialize them based on target.
10221         (register_indirect_p): Allow a MEM for indirect addressing modes and
10222         use flags to control what is allowed.
10223         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10224         supported addressing modes.
10225         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10226         (go_if_legitimate_address_internal): Likewise.
10227         (m68hc11_indirect_p): Likewise and check the mode.
10228         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10229
10230 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10231
10232         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10233         (expand_builtin_setjmp_setup): Use
10234         targetm.builtin_setjmp_frame_value instead of
10235         BUILTIN_SETJMP_FRAME_VALUE.
10236         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10237         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10238         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10239         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10240         * targhooks.c (default_builtin_setjmp_frame_value): New.
10241         * targhooks.h: Add a prototype for
10242         default_builtin_setjmp_frame_value.
10243         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10244         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10245
10246 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10247
10248         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10249         sequences of moves.
10250         (add peepholes): New peepholes to optimize sequences adding small
10251         constants.
10252         (bset peepholes): New peepholes to transform an OR in a bset form
10253         (bclr peepholes): Likewise for bclr form.
10254         (cmp peepholes): New peepholes to avoid register copies when comparing.
10255
10256 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10257
10258         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10259         to separate push from moves.
10260         ("*pushdf_internal"): Likewise.
10261         ("*pushsf_internal"): Likewise.
10262         ("*pushsi_internal"): Likewise.
10263         ("movdi_internal"): Use define_insn_and_split; non push operand.
10264         ("movdf_internal"): Likewise.
10265         ("movsf_internal"): Likewise.
10266         ("movsi_internal"): Likewise.
10267         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10268         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10269         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10270
10271 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10272
10273         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10274         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10275         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10276         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10277         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10278         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10279         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10280         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10281         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10282         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10283         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10284
10285 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10286
10287         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10288         (SOFT_XY_REGNUM): Define.
10289         (cmp split): Use the above instead of hard coded numbers.
10290         (8-bit op split): No need to check the mode; allow Q_REG.
10291         (ashift split): Adjust the first operand if it uses the SP and we
10292         are pushing the shifted value.
10293         (plus shift split): Fix when a source is in register D+X.
10294         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10295
10296 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10297
10298         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10299         comparing with Z register.
10300
10301 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10302
10303         * cfgloop.h (struct loop_desc): Removed.
10304         (struct loop): Fields simple, desc and has_desc removed.
10305         (simple_loop_p, count_loop_iterations): Declaration removed.
10306         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10307         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10308         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10309         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10310         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10311         simple_condition_p, simple_increment, count_strange_loop_iterations,
10312         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10313         Removed.
10314         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10315
10316 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10317
10318         * genattrtab.c: Don't handle MATCH_INSN.
10319         * genrecog.c: Likewise.
10320         * gensupport.c: Likewise.
10321         * rtl.def (match_insn): Remove.
10322         * doc/md.texi (match_insn, match_insn2): Remove.
10323
10324 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10325
10326         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10327         macro results in memory allocation.
10328
10329 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10330
10331         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10332         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10333         %(fbsd_dynamic_linker),
10334         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10335         config/i386/freebsd.h
10336         * config/arm/freebsd.h: Ditto.
10337         * config/i386/freebsd.h: Ditto.
10338         * config/i386/freebsd64.h: Ditto.
10339         * config/ia64/freebsd.h: Ditto.
10340         * config/rs6000/sysv4.h: Ditto.
10341         * config/sparc/freebsd.h: Ditto.
10342
10343 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10344
10345         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10346
10347 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10348
10349         * rtl.def (define_combine): Remove.
10350
10351 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10352
10353         * config/h8300/h8300.md: Tweak formatting.
10354
10355 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10356
10357         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10358         *cmphi_h8300_znvc.
10359         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10360
10361 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10362
10363         PR bootstrap/14356
10364         * gcc.c (process_command): Remove const-qualification from argv.
10365         (main): Likewise.
10366
10367 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10368
10369         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10370         pushqi1_h8300hs_advanced.  Adjust its caller.
10371         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10372         Adjust its caller.
10373
10374 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10375
10376         * Makefile.in (install-libgcc, install-multilib): Pass
10377         mkinstalldirs var to libgcc.mk.
10378
10379 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10380
10381         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10382         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10383
10384 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10385
10386         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10387         * config/h8300/h8300.md: Split several peephole2's, each into
10388         two.
10389
10390 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10391
10392         * dominance.c (recount_dominator): Handle postdominators.
10393
10394 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10395
10396         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10397         (NUM_SYMBOL_TYPES): Likewise.
10398         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10399         (mips_unspec_address): Declare.
10400         (mips_gotoff_page, mips_gotoff_global): Delete.
10401         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10402         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10403         (mips_symbolic_constant_p, mips_symbolic_address_p)
10404         (mips_symbol_insns): Handle new symbol types.
10405         (general_symbolic_operand): New predicate.
10406         (mips_unspec_address): Make extern.
10407         (mips_gotoff_page, mips_gotoff_global): Delete.
10408         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10409         Handle new symbol types.
10410         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10411         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10412         mips_unspec_address directly.
10413         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10414         the documentation of -mexplicit-relocs.
10415
10416 2004-03-01  Jeff Law  <law@redhat.com>
10417
10418         * fold-const.c (fold): An equality comparison of a non-weak object
10419         against zero has a known result.  Similarly an equality comparison
10420         of the address of two non-weak, unaliased symbols has a known result.
10421
10422         * ggc-page.c (struct page_entry): New field PREV.
10423         (ggc_alloc): Update PREV field appropriately.
10424         (sweep_pages): Likewise.
10425         (ggc_free): Likewise.  Use PREV field rather than loop to
10426         improve ggc_free performance.
10427
10428 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10429
10430         * config/mips/mips.c (mips_output_division): Use the division
10431         instruction to fill the delay slot of a zero check.
10432         (mips_idiv_insns): Adjust accordingly.
10433
10434 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10435
10436         * config.gcc: Create a default tmake_file for linux, and use
10437         it in all but two linux clauses.  Comment those two.
10438
10439 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10440
10441         * combine.c (try_combine):  Do not refer to is_replaced.
10442         (gen_lowpart_for_combine):  Perverse subregs now have a
10443         more politically correct name.
10444         * cse.c (cse_insn): Likewise.
10445         * jump.c: Fix bogus reference to delete_insn.
10446
10447 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10448
10449         PR debug/14328
10450         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10451         constants as signed values.
10452
10453         PR middle-end/13448
10454         * c-tree.h (readonly_warning): Rename to ...
10455         (readonly_error): ... this.
10456         * c-typeck.c (build_unary_op): Adjust accordingly.
10457         (readonly_warning): Rename to ...
10458         (readonly_error): ... this and issue errors, not warnings.
10459         (build_modify_expr): Call readonly_error, not readonly_warning.
10460         (c_expand_asm_operands): Likewise.
10461         * tree-inline.c (optimize_inline_calls): Do not inline functions
10462         after errors have occurred.
10463
10464 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10465
10466         * configure.ac: Rearrange some threading code for clarity;
10467         add section comment.
10468         * configure: Regenerate.
10469
10470 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10471
10472         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10473         typos.
10474         * doc/cppopts.texi: Fix a typo.
10475
10476 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10477
10478         * config/i386/i386.md: Fix formatting.
10479
10480 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10481
10482         * configure.ac: Add some comments delineating sections of code.
10483
10484         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10485
10486         * doc/install.texi: Fix idiot typo in previous commit.
10487
10488         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10489
10490 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10491
10492         * config/h8300/h8300.md: Add comments about peephole2's.
10493
10494 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10495
10496         * config/h8300/h8300.md: Tweak operand numbers of some
10497         peephole2's.
10498
10499 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10500
10501         * config/h8300/h8300.md: Tweak comments about peephole2's.
10502
10503 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10504
10505         PR middle-end/14203
10506         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10507         instead of testing whether DECL_RTL is not NULL.
10508
10509 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10510
10511         * config/sh/sh.c: Fix formatting.
10512
10513 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10514
10515         * config/sh/sh.c: Convert to ISO-C.
10516
10517 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10518
10519         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10520         my previous patch.
10521
10522         * config/darwin.h (machopic_finish): Output stub even if the
10523         symbol is already defined.
10524
10525 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10526
10527         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10528
10529 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10530
10531         * genattr.c (main): Don't define
10532         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10533         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10534         (DFA_PIPELINE_INTERFACE): Likewise.
10535         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10536         (DFA_PIPELINE_INTERFACE): Likewise.
10537
10538 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10539
10540         * config/mips/mips.md (tstsi, tstdi): Delete.
10541
10542 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10543
10544         * config/mips/mips.c (override_options): Remove an obsolete
10545         duplicate definition of the "e" constraint.
10546         * config/mips/mips.h: Update a comment accordingly.
10547
10548 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10549
10550         * config/mips/mips.md: Complete the unfinished R4000
10551         multiply/shift errata workaround.  Improve documentation.
10552         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10553         has a hilo hazard.
10554         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10555         (muldi3, muldi3_internal): Likewise.
10556         (muldi3_internal2): Remove, replacing with...
10557         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10558         (mulsidi3): Take the errata into account.
10559         (mulsidi3_32bit): Remove, replacing with...
10560         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10561         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10562         (umulsidi3): Take the errata into account.
10563         (umulsidi3_32bit): Remove, replacing with..
10564         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10565         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10566         TARGET_FIX_R4000.
10567         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10568         (smuldi3_highpart, umuldi3_highpart): Likewise.
10569         * doc/invoke.texi: Document the errata workaround.
10570
10571 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10572
10573         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10574         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10575         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10576         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10577         * config/mips/mips.c (mips_idiv_insns): New function.
10578         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10579         (mips_output_division): Add a workaround for the R4000 divide/shift
10580         errata.
10581         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10582         the length of an "idiv" instruction.
10583         * doc/invoke.texi: Document the new switches.
10584
10585 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10586
10587         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10588         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10589
10590 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10591
10592         PR optimization/14229
10593         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10594
10595 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10596
10597         * fold-const.c (fold): Strip NOPs that change the signedness
10598         for RSHIFT too.  Expand comment.
10599
10600 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10601
10602         PR optimization/7871
10603         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10604         from or to call insns.
10605
10606 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10607
10608         PR optimization/7871
10609         * flow.c (propagate_one_insn): Interpret calls as setting global
10610         registers, not merely clobbering them.
10611
10612 2004-02-27  Dale Johannesen  <dalej@apple.com>
10613
10614         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10615         config/darwin-protos.h:  Ditto.
10616         config/darwin.h:  Remove call to it.
10617         * combine.c (distribute_notes): Do not place a REG_DEAD note
10618         when value is both set and used.
10619
10620 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10621
10622         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10623         as well.
10624         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10625         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10626
10627 2004-02-27  Andrew Pinski  <apinski@apple.com>
10628
10629         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10630         Speedup common case of the type values being in the same order.
10631
10632 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10633
10634         * config/ia64/ia64.h (no-inline-float-divide): New option.
10635         * config/ia64/ia64.h (no-inline-int-divide): New option.
10636         * config/ia64/ia64.h (no-inline-sqrt): New option.
10637         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10638         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10639         * config/ia64/ia64.c (ia64_override_options): Modify error
10640         checking for inlined division/sqrt.
10641
10642 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10643
10644         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10645         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10646         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10647         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10648         copyright.
10649
10650 2004-02-27  Paul Brook  <paul@codesourcery.com>
10651
10652         * function.c (assign_parms): Don't count pretend args for alignment.
10653
10654 2004-02-27  Richard Henderson  <rth@redhat.com>
10655
10656         * passes.c: New file.
10657         * Makefile.in (OBJS-common): Add it.
10658         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10659         * flags.h (rtl_dump_and_exit): ... here.
10660         * output.h (size_directive_output, last_assemble_variable_decl):
10661         Move from toplev.c.
10662         * rtl.h (reg_alloc): Move from toplev.c.
10663         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10664         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10665         open_dump_file, close_dump_file, rest_of_decl_compilation,
10666         rest_of_type_compilation, rest_of_handle_final,
10667         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10668         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10669         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10670         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10671         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10672         rest_of_handle_tracer, rest_of_handle_if_conversion,
10673         rest_of_handle_if_after_combine, rest_of_handle_web,
10674         rest_of_handle_branch_prob,
10675         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10676         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10677         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10678         rest_of_handle_null_pointer, rest_of_handle_combine,
10679         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10680         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10681         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10682         (decode_d_option): Use enable_rtl_dump_file.
10683         (compile_file, finalize, do_compile): Move profile+combine+graph
10684         cleanup to finish_optimization_passes.
10685         * toplev.h (init_optimization_passes, finish_optimization_passes,
10686         enable_rtl_dump_file): Declare.
10687
10688 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10689             Roger Sayle  <roger@eyesopen.com>
10690
10691         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10692         operands to build a tree with swapped operands.
10693         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10694         'unsignedp' predicate to specify the signedness.
10695
10696 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10697
10698         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10699         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10700         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10701         comment typos and formatting.  Follow spelling conventions.
10702
10703 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10704
10705         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10706         fix_truncsfsi2.
10707
10708         * config/rs6000/spe.md: Delete spe_efsctuiz.
10709         Add spe_fixuns_truncsfsi2.
10710         Add spe_fix_truncsfsi2.
10711
10712 2004-02-26  Eric Christopher  <echristo@redhat.com>
10713
10714         * c-lex.c (c_lex_string_translate): New variable.
10715         (lex_string): Use to determine string translation.
10716         * c-pragma.h: Prototype.
10717         * c-parse.in (start_string_translation): New. Set above.
10718         (stop_string_translation): Ditto.
10719         (attribute, attribute_list, asm_def, asm_stmt,
10720         asm_operand): Use above functions.
10721         * cp/parser.c (cp_parser_declaration): Translate strings
10722         unless token is RID_EXTERN. Set c_lex_string_translate
10723         for recursive use.
10724         (cp_parser_asm_definition): Only translate argument strings
10725         to asms.
10726         (cp_parser_asm_operand_list): Ditto.
10727         (cp_parser_attribute_list): Do not translate attribute strings.
10728
10729 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10730
10731         * stmt.c (expand_start_case_dummy): Remove.
10732         * tree.h: Remove the corresponding prototype.
10733
10734 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10735
10736         * builtins.c (apply_args_register_offset): Remove.
10737         * tree.h: Remove the corresponding prototype.
10738
10739 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10740
10741         * stor-layout.c (is_pending_size): Remove.
10742         * tree.h: Remove the corresponding prototype.
10743
10744 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10745
10746         * recog.c (validate_replace_src): Remove.
10747         * recog.h: Remove the corresponding prototype.
10748
10749 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10750
10751         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10752         MAYBE_REG_PARM_STACK_SPACE.
10753         * function.c: Likewise.
10754         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10755         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10756         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10757         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10758
10759 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10760
10761         * c-decl.c (c_expand_deferred_function): Remove.
10762         * c-tree.h: Remove the corresponding prototype.
10763
10764 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10765
10766         * postreload.c (reload_cse_move2add): Generate just a PLUS
10767         instead of an entire SET.
10768
10769 2004-02-26  Jan Hubicka  <jh@suse.cz>
10770
10771         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10772         /pentium4m.
10773         * i386.c (override_options): Add support for new CPUs.
10774         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10775         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10776         constants.
10777         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10778
10779 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10780
10781         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10782
10783 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10784
10785         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10786         (sparc_emit_fixunsdi): New prototype.
10787         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10788         (sparc_emit_fixunsdi): New function.
10789         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10790         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10791         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10792         to sparc_emit_floatunsdi.
10793         (fixuns_truncsfdi2): New expander.
10794         (fixuns_truncdfdi2): Likewise.
10795
10796 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10797
10798         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10799         unless HAVE_cc0.
10800
10801 2004-02-25  Richard Henderson  <rth@redhat.com>
10802
10803         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10804         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10805         use (op0-op1) == 0 if op0 is a pointer.
10806         * config/alpha/alpha.md (cmpdi): Use some_operand.
10807         (three comparison combine splits): Remove.
10808
10809 2004-02-25  Richard Henderson  <rth@redhat.com>
10810
10811         PR c/12794
10812         * c-common.c (handle_alias_attribute): Reject the attribute if
10813         current_function_decl is set.
10814
10815 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10816
10817         * config.gcc: Add comment describing extra_gcc_objs.
10818         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10819         * configure.ac (extra_gcc_objs): New substitution variable.
10820         (host_extra_gcc_objs): Don't substitute.
10821         * configure: Regenerate.
10822         * Makefile.in: Use extra_gcc_objs.
10823
10824 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10825
10826         * doc/contrib.texi: Add an entry for myself.
10827
10828 2004-02-25  Jan Hubicka  <jh@suse.cz>
10829
10830         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10831         * cfgbuild.c (make_eh_edge):  Make global.
10832         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10833         * except.c (build_post_landing_pads, connect_post_landing_pads,
10834         dw2_build_landing_pads, sjlj_emit_function_enter,
10835         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10836         sjlj_build_landing_pads): Update CFG.
10837         (emit_to_new_bb_before): New function.
10838         (finish_eh_generation): Do not rebuild the CFG.
10839
10840 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10841
10842         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10843         target_cpu_default defines.
10844         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10845         * pa.h (TARGET_DEFAULT): Likewise.
10846
10847 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10848
10849         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10850         comparisons with regard to signedness.
10851
10852 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10853
10854         * arm.c (thumb_legitimize_address): New function.
10855         * arm-protos.h: Prototype it.
10856         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10857         (LEGITIMIZE_ADDRESS): Use it.
10858
10859 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10860
10861         * reload1.c (reload): Only spill eliminable register with multiple
10862         adjacent elimination alternatives if all alternatives fail.
10863
10864 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10865
10866         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10867         is -4095...+4095 inclusive.
10868
10869 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10870
10871         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10872         the bootstrap failure with Sun CC 5.4 and 5.5.
10873
10874 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10875
10876         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10877         which modifies NEWREG.
10878         (cse_condition_code_reg): Update the mode of CC_REG in
10879         CC_SRC_INSN on our own.
10880
10881 2004-02-24  Michael Matz  <matz@suse.de>
10882
10883         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10884         regparm attributes.
10885
10886 2004-02-24  Richard Henderson  <rth@redhat.com>
10887
10888         * toplev.c (dump_file_tbl): Rename from dump_file.
10889         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10890         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10891         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10892         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10893         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10894         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10895         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10896         s/rtl_dump_file/dump_file/g.
10897
10898 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10899
10900         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10901         (spe_fixuns_truncsfsi2): Delete.
10902
10903         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10904         (fixuns_truncsfsi2): Delete.
10905
10906 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10907
10908         PR/14240
10909         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10910
10911 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10912
10913         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10914
10915 2004-02-24  Jason Merrill  <jason@redhat.com>
10916
10917         * tree.c (check_qualified_type): New fn.
10918         (get_qualified_type): Use it.  If type already has the desired
10919         quals, just return it.
10920         * tree.h: Declare it.
10921
10922 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10923
10924         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10925         TARGET_SCHED_FINISH_GLOBAL): New macros.
10926
10927         * target.h (md_init_global, md_finish_global): Function
10928         declarations corresponding to new target macros.
10929
10930         * haifa-sched.c (sched_init, sched_finish): Allow target to
10931         call the new schedular hooks.
10932
10933         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10934         call to update_life_info.
10935
10936         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10937         flag_schedule_insns for SH4.
10938
10939         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10940         find_set_regmode_weight, find_insn_regmode_weight,
10941         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10942         sh_variable_issue, high_pressure, ready_reorder,
10943         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10944         functions used to throttle the insn movement in first
10945         scheduling pass for SH.
10946
10947         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10948         TARGET_SCHED_FINISH_GLOBAL.
10949
10950 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10951
10952         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10953         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10954         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10955         symbols in sections named by the user.
10956         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10957         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10958         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10959         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10960         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10961         the above.
10962         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10963         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10964         one more pseudo to further improve code generation.
10965         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10966         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10967         inside UNSPEC.
10968         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10969         * config/frv/frv.c (frv_legitimate_address_p): Added
10970         allow_double_reg_p argument.  Adjust all callers.  Use it to
10971         decide whether to enable double-register indirect addressing.
10972         (frv_funcdesc_alias_set): Remove.
10973         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10974         register.  Emit movdi_ldd.
10975         (ldd_address_operand): New.
10976         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10977         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10978         (PREDICATE_CODES): Add ldd_address_operand.
10979         * config/frv/frv.md (movdi_ldd): New.
10980         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10981         intermediate computations if possible.
10982         (symGOTOFF2reg_i): Fix harmless typo.
10983         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10984         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10985         relocated p_vaddr to vaddr type.
10986         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10987         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10988         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10989         MEM, or use a funcdesc alias set.  Use regular move instead of
10990         ldd.
10991         (dbl_memory_one_insn_operand): Recognize function descriptors by
10992         type or by alias set, and don't split them.
10993         * config/frv/frv.md (call, call_value): Never use call_internal
10994         for fdpic.
10995         (call_internal, call_value_internal): Never match for FDPIC.
10996         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10997         call_value_fdpicsi): Require FDPIC.
10998         (ldd): Removed.
10999         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11000         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11001         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11002         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11003         FDPIC.  Compute data base address.
11004         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11005         before the other self-specs are processed.
11006         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11007         Build with -fPIC.
11008         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11009         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11010         inhibit_libc is defined.
11011         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11012         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11013         __FRV_FDPIC__.
11014         (__RELOC_POINTER): Define.
11015         (_Unwind_IteratePhdrCallback): Use it.
11016         * config/frv/frv.h (Twrite): Define.
11017         (TRANSFER_FROM_TRAMPOLINE): Use it.
11018         * config/frv/linux.h (INVOKE__main): Undefine.
11019         (Twrite): Override.
11020         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11021         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11022         (-mlibrary-pic): Emphasize that this option generates EABI code.
11023         (-mcpu): Add fr550.
11024         (-mpack): Remove.
11025         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11026         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11027         and CONSTs in FDPIC mode.
11028         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11029         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11030         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11031         constants.
11032         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11033         rather than 'i' constraint for the 2-instruction alternative.
11034         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11035         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11036         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11037         EXTRA_CONSTRAINT_FOR_Y.
11038         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11039         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11040         (addsi3): Change 'Y' constraint to 'Q'.
11041         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11042         * reload.c (CONST_POOL_OK_P): New macro.
11043         (find_reloads): Use it to decide whether a constant can be forced
11044         into memory.
11045         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11046         constant satisfies got12_operand.
11047         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11048         (frv_legitimate_address_p): Check for valid unspec offsets using
11049         got12_operand rather than frv_legitimate_fdpic_operand_p.
11050         (frv_legitimate_fdpic_operand_p): Delete.
11051         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11052         or after reload.
11053         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11054         TARGET_FDPIC.
11055         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11056         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11057         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11058         (frv_fdpic_fptr_operand): Don't declare here.
11059         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11060         rather than fdpic_got12_operand.
11061         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11062         got12_operand and const_unspec_operand.
11063         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11064         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11065         (symbolic_operand): Remove.
11066         (const_unspec_operand): New predicate.
11067         * config/frv/frv.md (*movsi_got): Use got12_operand.
11068         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11069         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11070         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11071         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11072         * config/frv/frv.c (frv_unspec): New structure.
11073         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11074         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11075         validate CONST indices.  Use frv_output_const_unspec to print them.
11076         (frv_print_operand): Update call to unspec_got_name.  Use
11077         frv_output_const_unspec to print constant unspecs.
11078         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11079         Reject UNSPECs otherwise.
11080         (unspec_got_name): Take the relocation number as argument, not an
11081         rtx containing it.
11082         (frv_output_addr_const_extra): Remove, replacing with...
11083         (frv_output_const_unspec): ...this new function.
11084         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11085         (gpr_or_int12_operand): Use fdpic_got12_operand.
11086         (dbl_memory_one_insn_operand): Likewise.
11087         (fdpic_got12_operand): Use frv_const_unspec_p.
11088         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11089         are already legitimate.  Use frv_small_data_reloc_p when deciding
11090         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11091         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11092         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11093         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11094         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11095         label, for real this time.
11096         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11097         representation of visibility.
11098         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11099         such.
11100         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11101         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11102         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11103         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11104         it was explicitly disabled.
11105         (frv_stack_info): There is no need to save the link register in every
11106         frame unless TARGET_LINKED_FP is true.
11107         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11108         frame pointer if the stack pointer might change value.
11109         (frv_return_addr_rtx): Check and process "count" argument.
11110         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11111         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11112         (frv_find_base_term): Declare.
11113         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11114         (FIND_BASE_TERM): Define.
11115         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11116         small_data_register_operand, small_data_symbolic_operand.  Add
11117         symbolic_operand.
11118         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11119         (frv_print_operand_memory_reference, output_move_single): Remove
11120         special handling for unlegitimized sdata addresses.
11121         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11122         and symbolic addresses.
11123         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11124         (frv_find_base_term): New function.
11125         (int_2word_operand): Check specifically for symbolic address constants.
11126         (pic_register_operand, pic_symbolic_operand): Delete.
11127         (small_data_register_operand, small_data_symbolic_operand): Delete.
11128         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11129         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11130         (move_source_operand): Only accept CONSTs if they're a two-insn
11131         symbolic constant.
11132         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11133         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11134         using gen_symGOTOFF2reg*.
11135         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11136         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11137         themselves a cost of 3 insns.
11138         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11139         Change predicate to symbolic_operand.
11140         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11141         (*movsi_lda_sdata): Delete.
11142         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11143         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11144         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11145         frv-*-*linux*.
11146         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11147         label.
11148         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11149         -multilib-library-pic.
11150         (LINK_SPEC): Add -z text for -mfdpic.
11151         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11152         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11153         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11154         Override.
11155         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11156         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11157         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11158         crtstuff-generated files.
11159         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11160         * config.gcc: Add frv-*-*linux*.
11161         * config/frv/linux.h, config/frv/t-linux: New.
11162         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11163         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11164         when -mfdpic even if a linker script is explicitly listed.
11165         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11166         * config/frv/frv.c (frv_override_options): Clear asm_out
11167         unaligned_op for SImode on FDPIC.
11168         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11169         argument passed to decl_readonly_section.
11170         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11171         whole block run with FDPIC even with -fno-PIC.
11172         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11173         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11174         symbol or label plus offset to memory.
11175         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11176         GOTOFF and GPREL for LABEL_REF.
11177         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11178         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11179         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11180         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11181         * doc/invoke.texi: Document them.
11182         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11183         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11184         (frv_splittable_got_operand): Removed.
11185         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11186         LO_SUM.  Add comments.
11187         (frv_override_options): Moved enabling of FDPIC to
11188         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11189         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11190         (frv_legitimize_fdpic_address): Don't duplicate logic in
11191         frv_emit_movsi.
11192         (frv_gen_GPsym2reg): New.
11193         (unspec_got_name): Added gprel.
11194         (frv_expand_fdpic_call): Add support for inlining PLTs.
11195         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11196         (gpr_or_int12_operand): Added GPREL12.
11197         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11198         (small_data_symbolic_operand): Fail if FDPIC.
11199         (fdpic_splittable_got_operand): Removed.
11200         (fdpic_got12_operand): Added GPREL12.
11201         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11202         when appropriate.  Fix sdata GOTOFF.
11203         (frv_legitimate_constant_p): Require legitimate PIC operand for
11204         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11205         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11206         flag_pic case.
11207         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11208         frv_assemble_integer fails.
11209         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11210         (SUBTARGET_DRIVER_SELF_SPECS): New.
11211         (ASM_SPEC): Don't pass -mno-fdpic.
11212         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11213         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11214         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11215         -multilib-library-pic.
11216         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11217         condexec_si_media_operator, condexec_sf_add_operator and
11218         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11219         and condexec_sf_unary_operator.
11220         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11221         New.
11222         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11223         movsi_internal.  Give them internal names.  movsi_got has type
11224         int.
11225         (fdpic got splitters): Remove.
11226         (symGPREL2reg, symGPREL2reg_hilo): New.
11227         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11228         to -mlibrary-pic.  Map -multilib-library-pic to it.
11229         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11230         Document.
11231         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11232         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11233         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11234         (frv_cannot_force_const_mem): New function.
11235         (const_small_data_p, plus_small_data_p): Update comments on sdata
11236         on FDPIC.
11237         (frv_override_options): Set flag_pie for FDPIC too.
11238         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11239         call-saved registers on FDPIC.
11240         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11241         don't force LR to be preserved.
11242         (frv_expand_prologue): Likewise.
11243         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11244         (frv_frame_pointer_required): Don't force it just because the
11245         FDPIC register is used.
11246         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11247         operand only if !condexec_p.
11248         (frv_legitimize_address): Return the FDPIC-legitimized address.
11249         Don't match small data here on FDPIC.
11250         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11251         symbols.  Use TRUE/FALSE instead of 1/0.
11252         (frv_local_funcdesc_p): New.
11253         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11254         immediates when possible.
11255         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11256         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11257         an UNSPEC_GOT.
11258         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11259         12-bit immediates when possible.
11260         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11261         are not legitimate pic operands.
11262         (frv_in_small_data_p): Re-enable for FDPIC.
11263         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11264         (FRV_GLOBAL_P): Removed.
11265         * config/frv/frv.md: Add modes to CONSTs.
11266         (movsi_got): New.
11267         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11268         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11269         (fdpic splittable operations): Match on flag_pic != 1.
11270         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11271         * config/frv/frv.c (frv_asm_out_constructor,
11272         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11273         bytes, not bits.
11274         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11275         * config/frv/frv.c (frv_assemble_integer): Reject complex
11276         expressions referencing function SYMBOL_REFs.
11277         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11278         (move_source_operand): Reject CONSTs that reference function
11279         SYMBOL_REFs on FDPIC.
11280         (frv_emit_movsi): If we get such a CONST, break it up.
11281         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11282         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11283         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11284         MEM.
11285         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11286         (frv_trampoline_size): Increase for FDPIC.
11287         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11288         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11289         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11290         Disable use of GOTOFF for now.
11291         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11292         Disable use of small data in FDPIC for now.
11293         (frv_asm_output_mi_thunk): Implement for FDPIC.
11294         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11295         * config/frv/frv.c (frv_asm_out_constructor): Use
11296         frv_assemble_integer for FDPIC pointers.
11297         (frv_asm_out_destructor): Likewise.
11298         * config/frv/frv.md (ldd): Fix order of operands.  Use
11299         address_operand for input.
11300         2003-09-18  DJ Delorie  <dj@redhat.com>
11301         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11302         (unspec_got_name): Correct typo.
11303         (frv_emit_movsi): Pre-expand splittable GOTs.
11304         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11305         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11306         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11307         * config/frv/t-frv: Add -mfdpic multilibs.
11308         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11309         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11310         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11311         flag_pic, default to 32-bit pics, require DWORD ops.
11312         (frv_override_options): Add W and Z constraints.
11313         (frv_expand_prologue): No pic prologue for -mfdpic.
11314         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11315         (frv_print_operand_memory_reference): Handle GOT constants.
11316         (frv_legitimate_address_p): Allow GOT constants.
11317         (frv_legitimize_address): Handle GOT addresses too.
11318         (frv_legitimate_fdpic_operand_p): New.
11319         (frv_legitimize_fdpic_address): New.
11320         (unspec_got_name): New.
11321         (frv_output_addr_const_extra): New.
11322         (frv_expand_fdpic_call): New.
11323         (frv_fdpic_fptr_operand): New.
11324         (gpr_or_int12_operand): Handle GOT operands.
11325         (int_2word_operand): Handle GOT operands.
11326         (fdpic_operand): New.
11327         (fdpic_splittable_got_operand): New.
11328         (fdpic_got12_operand): New.
11329         (frv_emit_movsi): Handle GOT operands.
11330         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11331         (frv_print_operand): Support 'g' code for GOT operands.
11332         * config/frv/frv-protos.h: Add prototypes as needed.
11333         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11334         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11335         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11336         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11337         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11338         R_FRV_GOTOFFLO): New.
11339         (movsi_high_got, movsi_lo_sum_got): New.
11340         (*movsi_pic): Don't use this splitter for -mfdpic.
11341         (addsi3): Allow GOT references also.
11342         (call, call_value): Handle -mfdpic separately.
11343         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11344         call_value_fdpicsi): New.
11345         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11346         symGOTOFF2reg_i): New.
11347         * config/frv/frv.h (MASK_FDPIC): New.
11348         (TARGET_FDPIC): New.
11349         (TARGET_SWITCHES): Add -mfdpic.
11350         (FDPIC_FPTR_REGNO): New.
11351         (FDPIC_REGNO): New.
11352         (OUR_FDPIC_REG): New.
11353         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11354         FDPIC_CALL_REGS.
11355         (REG_CLASS_NAMES): Likewise.
11356         (REG_CLASS_CONTENTS): Likewise.
11357         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11358         (EXTRA_CONSTRAINT): Add it here.
11359         (FRV_GLOBAL_P): New.
11360         (OUTPUT_ADDR_CONST_EXTRA): New.
11361
11362 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11363
11364         * config/sparc/sparc.h: Remove commented-out definitions of
11365         TARGET_EDOM and GEN_ERRNO_RTX.
11366
11367 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11368
11369         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11370         df_analyse with df_analyze.
11371
11372 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11373
11374         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11375         beginning of block.
11376
11377 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11378
11379         * calls.c (precompute_arguments): Update comment.
11380
11381 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11382
11383         * et-forest.c: Replace et_occurences with et_occurrences.
11384
11385 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11386
11387         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11388         with iv_analyze.
11389
11390 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11391
11392         * config/i386/i386.c: Rename pni to sse3.
11393         * config/i386/i386.h: Likewise.
11394         * config/i386/i386.md: Likewise.
11395         * config/i386/pmmintrin.h: Likewise.
11396         * doc/extend.texi: Likewise.
11397         * doc/invoke.texi: Likewise.
11398
11399 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11400             Kazu Hirata  <kazu@cs.umass.edu>
11401
11402         Remove -fwritable-strings.
11403         * c-common.c (fix_string_type): Don't check
11404         flag_writable_strings.
11405         (fix_string_type): Likewise.
11406         * c-opts.c (set_std_c89): Don't initialize
11407         flag_writable_strings.
11408         (set_std_c99): Likewise.
11409         * common.opt (fwritable-strings): Remove.
11410         * flags.h: Remove the external declaration of
11411         flag_writable_strings.
11412         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11413         Remove.
11414         * toplev.c (flag_writable_strings): Remove.
11415         (f_options): Remove an entry for writable-strings.
11416         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11417         flag_writable_strings.
11418         (compare_constant) <STRING_CST>: Likewise.
11419         (build_constant_desc): Likewise.
11420         * config/darwin.c (machopic_select_section): Likewise.
11421         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11422         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11423         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11424         * config/mips/mips.c (mips_select_section): Likewise.
11425         (mips_encode_section_info): Likewise.
11426         * config/pa/pa.c (pa_select_section): Likewise.
11427         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11428         * config/v850/v850.c (v850_select_section): Likewise.
11429         * doc/invoke.texi (-fwritable-strings): Remove.
11430         (-fno-const-strings): Don't mention -fwritable-strings.
11431         * doc/trouble.texi: Don't mention -fwritable-strings.
11432
11433 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11434
11435         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11436
11437 2004-02-23  Dale Johannesen  <dalej@apple.com>
11438
11439         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11440         (movdf_hardfloat64):  Ditto.
11441         (movdf_softfloat64):  Ditto.
11442
11443 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11444         * config/rs6000/rs6000.c (function_arg): call to
11445         rs6000_mixed_function_arg for DFmode moved to allow
11446         normal DFmode incoming register assignment.
11447
11448 2004-02-23  Dale Johannesen  <dalej@apple.com>
11449
11450         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11451         (movdf_hardfloat64):  Ditto.
11452
11453 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11454
11455         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11456         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11457         copyright.
11458
11459 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11460
11461         PR c/14156
11462         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11463         to use DECL_P instead.
11464
11465         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11466         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11467
11468 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11469
11470         * Makefile.in (opts.o): Depend on target.h.
11471         * opts.c (decode_options): Use targetm.default_short_enums
11472         instead of DEFAULT_SHORT_ENUMS.
11473         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11474         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11475         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11476         * target.h (gcc_target): Add default_short_enums.
11477         * config/cris/cris.h: Remove a comment about
11478         DEFAULT_SHORT_ENUMS.
11479         * config/ip2k/ip2k.h: Likewise.
11480         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11481         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11482
11483 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11484             Falk Hueffner  <falk@debian.org>
11485
11486         PR c/14188
11487         * builtins.c (expand_builtin_va_arg): Emit an informative message
11488         if a trap is generated.
11489         * c-typeck.c (build_function_call): Likewise.
11490
11491 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11492
11493         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11494         fopen.
11495         * libgcov.c: Include sys/stat.h.
11496         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11497         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11498         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11499         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11500
11501 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11502
11503         * reorg.c: Remove comments about dead ports.
11504
11505 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11506
11507         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11508         extra host object file when targetting cygwin rather than generic
11509         object files.
11510
11511 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11512
11513         Merge from tree-ssa:
11514         2003-11-20  Richard Henderson  <rth@redhat.com>
11515
11516                 * tree-inline.c (insert_decl_map): New.
11517                 (remap_decl, remap_type, remap_block, copy_body_r,
11518                 initialize_inlined_parameters, declare_return_variable,
11519                 remap_save_expr): Use it.
11520
11521         * function.c (copy_body_r): Add mapping from id->ret_label to
11522         id->ret_label.  Revert test for ret_label.
11523
11524 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11525
11526         * genoutput.c (process_template): Strip trailing whitespace in @
11527         templates and issue a warning if there was any.
11528
11529 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11530
11531         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11532         object file when targetting cygwin.
11533         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11534         overridden by top-level Makefile.
11535
11536 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11537
11538         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11539         the x87's load constant instructions when optimizing for size.
11540
11541 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11542
11543         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11544         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11545         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11546         * fold-const.c: Likewise.
11547         * simplify-rtx.c: Likewise.
11548
11549 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11550
11551         * combine.c (can_combine_p): Don't ignore SETs marked with
11552         REG_EH_REGION notes.
11553         (try_combine): When attemting to fix unrecognized insns, don't
11554         split a PARALLEL that contains the original i2.
11555
11556 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11557
11558         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11559         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11560         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11561         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11562         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11563         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11564         portion of header.
11565         (__altivec_link_error_invalid_argument): Remove prototype; will use
11566         __builtin_altivec_compiletime_error("vec_*") instead.
11567         (vec_*): Fix/complete set of available operation overloads given the
11568         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11569         cv-correctness of pointer arguments; in C, always check for correct
11570         argument types before macro expansion.
11571         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11572         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11573         '-W[no-]altivec-long-deprecated' switches.
11574         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11575         '__vector', '__pixel' and '__bool' macros using
11576         '__attribute__((altivec(...)))' types.
11577         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11578         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11579         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11580         New type nodes.
11581         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11582         handling '-W[no-]altivec-long-deprecated'.
11583         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11584         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11585         altivec_expand_dst_builtin): Remove casts from integer literals.
11586         (altivec_expand_builtin): Likewise; handle expansion of new
11587         '__builtin_altivec_compiletime_error' function.
11588         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11589         types, and make them distinct from other vector types; register
11590         '__builtin_altivec_compiletime_error' function.
11591         (print_operand): For 'P', print a full target register name instead of
11592         merely its number.
11593         (rs6000_attribute_table): Add "altivec" attribute.
11594         (rs6000_handle_altivec_attribute): New function.
11595         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11596         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11597         maps to).
11598         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11599         declare.
11600         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11601
11602 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11603
11604         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11605         check.
11606         (shift_mix4left+2): Delete redundant pattern.
11607
11608 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11609
11610         * alias.c (OUTGOING_REGNO): Don't define the default.
11611         * builtins.c (OUTGOING_REGNO): Likewise.
11612         (INCOMING_REGNO): Likewise.
11613         (apply_args_register_offset): Always use OUTGOING_REGNO.
11614         * combine.c (OUTGOING_REGNO): Likewise.
11615         * sibcall.c (OUTGOING_REGNO): Likewise.
11616         * defaults.h (INCOMING_REGNO): Provide the default.
11617         (OUTGOING_REGNO): Likewise.
11618
11619 2004-02-21  Jan Hubicka  <jh@suse.cz>
11620
11621         * params.def (max-peeled-insns, max-completely-peeled-insns,
11622         max-once-peeled-insns): Set to 400.
11623
11624 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11625
11626         PR c++/12007
11627         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11628         are set for parameters before outputing debugging information.
11629
11630 2004-02-20  Falk Hueffner  <falk@debian.org>
11631
11632         PR target/14201
11633         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11634         numbers.
11635
11636 2004-02-20  Per Bothner  <per@bothner.com>
11637
11638         * input.h:  Don't #include line-map.h.  It may cause link problems
11639         with undefined linemap_line_start when line-map.h is included but
11640         line-map.o is not linked, as currently happens with gengtype on
11641         compilers that don't support inline.
11642         * toplev.c:  So we do have to explicitly #include line-map.h here.
11643
11644 2004-02-20  Richard Henderson  <rth@redhat.com>
11645
11646         * doc/invoke.texi: Add -Wvariadic-macros.
11647
11648 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11649
11650         * haifa-sched.c (sched_emit_insn): Remove.
11651         * sched-int.h: Remove the corresponding prototype.
11652
11653 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11654
11655         Revert:
11656         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11657         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11658         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11659         * config/cris/cris.h: Remove a comment about
11660         DEFAULT_SHORT_ENUMS.
11661         * config/ip2k/ip2k.h: Likewise.
11662         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11663
11664 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11665             Tom Tromey  <tromey@redhat.com>
11666
11667         * doc/install.texi: Moved --disable-libgcj and
11668         --with-system-zlib documentation to new section for
11669         Java-specific options.
11670         Added explicit Cross-Compiler-Specific Options subheading.
11671         Added section for Java-specific options.
11672
11673 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11674
11675         * doc/install.texi (Building the Ada compiler): Remove
11676         example.
11677
11678 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11679
11680         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11681
11682 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11683
11684         * gcc.c (process_command): Allow translation of the copyright
11685         symbol but not the rest of the copyright message.
11686         * gcov.c (print_version): Likewise.  Allow translation of the
11687         message about warranty.
11688
11689 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11690
11691         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11692         predicate.
11693         ("*andsi_clear"): Tweak constraints to not match postincrement.
11694         Adjust the predicate to exclude a volatile memory reference.
11695         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11696         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11697
11698 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11699
11700         * move-if-change: Remove.
11701         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11702         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11703         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11704         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11705         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11706         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11707
11708 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11709
11710         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11711         for operand2.  Add condition that requires register_operand operand2
11712         before reload.
11713
11714 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11715             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11716
11717         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11718         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11719
11720 2004-02-19  Richard Henderson  <rth@redhat.com>
11721
11722         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11723         * tree.c (build0, build1, build2, build3, build4): Split out from...
11724         (build): ... here.  Call them.
11725         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11726
11727         * convert.c (convert_to_integer): Remove extra build argument.
11728         * tree-inline.c (expand_call_inline): Likewise.
11729
11730 2004-02-19  Richard Henderson  <rth@redhat.com>
11731
11732         * c-opts.c (warn_variadic_macros): New.
11733         (c_common_handle_option): Set it.
11734         (sanitize_cpp_opts): Copy it to cpp_opts.
11735         * c.opt (Wvariadic-macros): New.
11736         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11737         * cppinit.c (cpp_create_reader): Initialize it.
11738         * cppmacro.c (parse_params): Check it.
11739
11740 2004-02-19  David Daney <ddaney@avtrex.com>
11741
11742         PR preprocessor/14198
11743         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11744         builtin_assert ("machine=mips")
11745
11746 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11747
11748         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11749         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11750         * config/cris/cris.h: Remove a comment about
11751         DEFAULT_SHORT_ENUMS.
11752         * config/ip2k/ip2k.h: Likewise.
11753         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11754
11755 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11756
11757         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11758         when passing single SFmode quantities in general registers,
11759         put them in the high half.
11760
11761 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11762
11763         * doc/md.texi (Standard Names): Document additional dependency on
11764         fix pattern.
11765
11766         * optabs.c (ftruncify): Remove.
11767         (expand_fix): Manually inline ftruncify above.
11768         (can_fix_p): Add FIXME note.
11769
11770 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11771
11772         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11773         spe_fixuns_truncsfsi2.
11774
11775         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11776         fixuns_truncsfsi2.
11777
11778 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11779
11780         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11781         * testsuite/gcc.dg/20040219-1.c: New test.
11782
11783 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11784
11785         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11786         "*subsf3_cconly"): Subtraction is not commutative.
11787
11788 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11789
11790         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11791         (sdbout_symbol): If called before sdbout_init, queue DECL for
11792         later and return.
11793         (sdbout_init): Set sdbout_initialized true, process decls
11794         queued earlier by sdbout_symbol.
11795         (sdbout_finish): Use size_t for index variable.
11796
11797 2004-02-19  Jeff Law  <law@redhat.com>
11798
11799         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11800         for unordered comparison codes.
11801
11802 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11803
11804         * reload1.c (reload): Correct comment.
11805         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11806         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11807         register variables are not used by reload.
11808
11809 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11810
11811         PR target/14209
11812         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11813         constraints to not match postincrement.  Adjust the predicate to
11814         exclude a volatile memory reference.
11815
11816 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11817
11818         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11819
11820 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11821
11822         * hooks.c (hook_void_tree_int): Remove.
11823         (hook_void_constcharptr): Likewise.
11824         (hook_int_void_0): Likewise.
11825         * hooks.h: Remove the prototypes for the above three
11826         functions.
11827         * targhooks.c (hook_bool_machine_mode_true): Remove.
11828         * targhooks.h: Remove the prototype for
11829         hook_bool_machine_mode_true.
11830
11831 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11832
11833         * emit-rtl.c (subreg_realpart_p): Remove.
11834         (reorder_insns_with_line_notes): Likewise.
11835         (end_full_sequence): Likewise.
11836         * rtl.h: Remove the prototype for the above functions.
11837
11838 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11839
11840         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11841         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11842         config/iq2000/iq2000.h, config/m32r/m32r.h,
11843         config/pdp11/pdp11.h, config/sparc/sparc.h,
11844         config/xtensa/xtensa.h: Remove commented-out or useless
11845         definitions of CASE_VECTOR_PC_RELATIVE.
11846
11847 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11848
11849         * loop.c (all_sets_invariant_p): Remove.
11850
11851 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11852
11853         PR target/12916
11854         * config/sparc/sparc.h (NPARM_REGS): Delete.
11855         (BASE_RETURN_VALUE_REG): Likewise.
11856         (BASE_OUTGOING_VALUE_REG): Likewise.
11857         (BASE_PASSING_ARG_REG): Likewise.
11858         (BASE_INCOMING_ARG_REG): Likewise.
11859         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11860         TARGET_ARCH64, not TARGET_V9.
11861         (function_arg_slotno): Dispatch based on the mode class.
11862         Handle vector modes like floating-point modes.
11863         (function_arg_record_value_1): Handle vector types like
11864         floating-point types.
11865         (function_arg_record_value_2): Likewise.
11866         Calculate regno after mode transformation.
11867         (function_arg): Handle vector modes like floating-point modes.
11868         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11869         If ARCH64, do not recheck alignment.
11870         (function_arg_pass_by_reference): Reorder the conditions.
11871         (sparc_return_in_memory): Move after function_arg_padding.
11872         Implement calling conventions for vector modes.
11873         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11874         (function_value): Move scope of 'regbase'.
11875         Implement calling conventions for vector modes.
11876         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11877         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11878         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11879         the argument is passed by reference.
11880         (sparc_type_code): Handle vector types.
11881
11882 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11883
11884         * function.c (assign_parms): When building decl_rtl for
11885         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11886
11887 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11888
11889         * expr.c (is_aligning_offset): Check if we are aligning the
11890         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11891         in bits.
11892
11893 2003-02-18  Matt Austern  <austern@apple.com>
11894
11895         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11896         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11897         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11898         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11899         spec string.
11900         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11901
11902 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11903
11904         * dwarf2out.c (loclabel_num): Move outside #ifdef
11905         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11906         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11907         Mark with GTY(()).
11908         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11909         Allocate memory with ggc_alloc.  No need to copy anything.
11910         (ia64_hpux_file_end): Update to match.
11911
11912 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11913
11914         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11915         by default.
11916
11917 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11918
11919         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11920         ("divmodtisi3"): Likewise.
11921         ("udivmoddi4", "udivmodtidi3"): Likewise.
11922         ("divmodsi4", "divmoddisi3"): Likewise.
11923         ("udivmodsi4", "udivmoddisi3"): Likewise.
11924         ("udivsi3", "umodsi3"): Likewise.
11925
11926 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11927
11928         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11929         placeholder insn when chunkifying the pool.
11930
11931 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11932
11933         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11934         generating PIC code.
11935
11936 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11937
11938         * config/h8300/h8300-protos.h: Add a prototype for
11939         h8300_expand_branch.
11940         * config/h8300/h8300.c (h8300_expand_branch): New.
11941         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11942         bgtu, beq, bne): Call h8300_expand_branch().
11943
11944 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11945
11946         * config/h8300/h8300-protos.h: Add prototypes for
11947         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11948         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11949         (h8300_hard_regno_mode_ok): Likewise.
11950         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11951         h8300_hard_regno_nregs().
11952         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11953
11954 2004-02-18  Per Bothner  <per@bothner.com>
11955
11956         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11957         partly reverts my 2003-10-01 change, because we're back to logically
11958         including <command line> inside the main line.
11959         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11960         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11961         Fixes PR preprocessor/14103.
11962
11963         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11964         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11965         (cpp_push_include):  Don't need to increment pfile's line field.
11966         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11967
11968         * c-ppoutput.c (print struct):  New first_time field.
11969         (init_pp_output):  Set print.first_time.
11970         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11971         which is set also for (say) <command line>.  Clear print.first_time.
11972
11973         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11974         does not match the code, so fix both.
11975         (should_stack_file):  Inline include_pch_p function.
11976         (include_pch_p):  Remove pointless function.
11977
11978         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11979
11980 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11981
11982         * config/h8300/h8300.md (four define_peephole2's): Use
11983         h8300_regs_ok_for_stm().
11984
11985 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11986
11987         * config/h8300/h8300-protos.h: Update the prototype for
11988         expand_a_rotate().
11989         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11990         argument.
11991         * config/h8300/h8300.md: Update all callers.
11992
11993 2004-02-18  Jan Hubicka  <jh@suse.cz>
11994
11995         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11996         floats.
11997         (simplify_binary_operation): Deal with logicals on floats.
11998
11999         * i386.md (SSE fabs splitters): Emit new patterns.
12000         (SSE cmov splitters): Likewise.
12001         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12002         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12003         subregs.
12004         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12005         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12006
12007 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12008
12009         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12010         by hand.
12011         (output_a_rotate): Tweak a comment.
12012         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12013         (*rotlhi3_1): Change to rotlhi3_1.
12014         (*rotlsi3_1): Change to rotlsi3_1.
12015
12016 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12017
12018         PR target/13866
12019         * arm.c (load_multiple_operation): Don't insist that the source reg
12020         of a post-increment component is the same as the destination.
12021         (store_multiple_operation): Likewise.
12022
12023 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12024
12025         * config/h8300/h8300.md: Move movsf patterns into one section
12026         of the file.
12027
12028 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12029
12030         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12031         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12032         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12033         config/mips/linux64.h, config/pa/pa-64.h,
12034         config/rs6000/aix51.h, config/rs6000/aix52.h,
12035         config/rs6000/spe.md, config/sparc/linux.h,
12036         config/sparc/linux64.h: Update copyright.
12037
12038 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12039
12040         * config/h8300/h8300.md: Move push patterns into one
12041         section of the file.
12042
12043 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12044
12045         PR c++/11326
12046         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12047         fntype.
12048
12049 2004-02-18  Paul Brook  <paul@codesourcery.com>
12050
12051         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12052
12053 2004-02-18  Paul Brook  <paul@codesourcery.com>
12054
12055         PR debug/12934
12056         * dwarf2out.c (loc_descriptor_from_tree): Handle
12057         EXPR_WITH_FILE_LOCATION.
12058
12059 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12060
12061         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12062         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12063         trailing whitespace from instructions.
12064
12065 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12066
12067         * configure.ac: When generating auto-build.h, pass
12068         --enable-languages to the sub-configure.
12069         Put quotes around ${program_transform_name} when generating
12070         name of as, ld, nm, objdump.
12071         * configure: Regenerate.
12072
12073 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12074
12075         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12076         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12077         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12078         (s-preds, s-iov): Do not depend on move-if-change.
12079
12080 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12081
12082         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12083         (insert_save): Likewise.
12084
12085 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12086
12087         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12088         warning.
12089
12090 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12091
12092         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12093         *one_cmplsi2_h8300.
12094         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12095
12096 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12097
12098         * config/h8300/h8300-protos.h: Update the prototype of
12099         fix_bit_operand().
12100         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12101         argument "what".
12102         * config/h8300/h8300.md: Update all callers.
12103
12104 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12105
12106         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12107         the last argument to "code" from "type".
12108
12109 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12110
12111         * config/h8300/h8300.c: Remove an extern declaration of
12112         rtx_equal_function_value_matters.
12113
12114 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12115
12116         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12117         by hand.
12118         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12119         (*iorqi3_1): Change to iorqi3_1.
12120         (*xorqi3_1): Change to xorqi3_1.
12121
12122 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12123
12124         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12125         typos.
12126
12127 2004-02-17  Jan Hubicka  <jh@suse.cz>
12128
12129         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12130
12131 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12132
12133         PR optimization/14119
12134         * combine.c (try_combine): When attemting to fix unrecognized insns,
12135         don't delete SETs marked with REG_EH_REGION notes.
12136
12137 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12138
12139         * combine.c (simplify_if_then_else): Do not replace
12140         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12141         modes differ.
12142
12143 2004-02017  Steven Bosscher  <stevenb@suse.de>
12144
12145         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12146         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12147         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12148         * ada/utils.c: Likewise.
12149         * cp/decl.c: Likewise.
12150         * f/com.c: Likewise.
12151         * java/class.c: Likewise.
12152
12153 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12154
12155         * config/h8300/h8300.md: Fix comment typos.
12156
12157 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12158
12159         * config/mips/t-iris6gld: Renamed to ...
12160         * config/mips/t-irix-gld: ... this.
12161         * config.gcc (mips-sgi-irix6*): Reflect this
12162         (mips-sgi-irix5*): Use it with GNU ld.
12163
12164         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12165         to ...
12166         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12167         * config/mips/t-irix-gld: Reflect this.
12168         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12169
12170         * config/mips/iris5gld.h: New file.
12171         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12172         Only use collect2 without gas.
12173
12174         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12175         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12176         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12177         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12178
12179         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12180         * config/mips/iris5.h: ... here.
12181
12182         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12183         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12184         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12185
12186         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12187         using irix_startfile_spec, irix_endfile_spec.
12188
12189 2004-02-16  Gunther Nikl  <gni@gecko.de>
12190
12191         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12192
12193 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12194
12195         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12196         insns by hand.
12197
12198 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12199
12200         * cfghooks.c (split_edge): Speed up updating of dominators.
12201
12202 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12203
12204         PR c++/11326
12205         * c-common.c (flag_abi_version): Remove.
12206         * c-common.h (flag_abi_version): Likewise.
12207         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12208         * c.opt (fabi-version): Remove.
12209         * calls.c (expand_call): Always pass a function type to
12210         struct_value_rtx.  Use convert_memory_address.
12211         * common.opt (fabi-version): Add it.
12212         * flags.h (flag_abi_version): Likewise.
12213         (abi_version_at_least): New macro.
12214         * opts.c (common_handle_option): Add OPT_fabi_version.
12215         * toplev.c (flag_abi_version): Define it.
12216         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12217         New function.
12218         (ia64_output_mi_thunk): Use it.
12219         (ia64_struct_value_rtx): Likewise.
12220
12221 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12222
12223         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12224         Don't generate insns by hand.
12225
12226 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12227
12228         PR c++/14178
12229         * doc/invoke.texi (fabi-version): The default is 2 now.
12230
12231 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12232
12233         * loop-iv.c: New file.
12234         * Makefile.in (loop-iv.o): New.
12235         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12236         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12237         num_loop_branches): New functions.
12238         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12239         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12240         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12241         get_simple_loop_desc, free_simple_loop_desc): Declare.
12242         (simple_loop_desc): New inline function.
12243         (struct rtx_iv, struct niter_desc): New.
12244         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12245         * expr.c (force_operand): Handle subregs of expressions created by
12246         loop unroller.
12247         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12248         parts of the initialization to toplev.c
12249         * loop-unroll.c (loop_exit_at_end_p): New.
12250         (unroll_and_peel_loops): Call iv_analysis_done.
12251         (decide_peel_once_rolling, decide_peel_completely,
12252         decide_unroll_stupid, decide_unroll_constant_iterations,
12253         decide_unroll_runtime_iterations, decide_peel_simple,
12254         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12255         unroll_loop_runtime_iterations): Use new simple loop analysis.
12256         * loop-unswitch.c (compare_and_jump_seq): New.
12257         (may_unswitch_on_p): Renamed to ...
12258         (may_unswitch_on): Use new iv analysis.
12259         (reversed_condition): Export.
12260         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12261         * predict.c (estimate_probability): Use new simple loop analysis.
12262         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12263         canon_condition, simplify_using_condition): Declare.
12264         * stor-layout.c (get_mode_bounds): New.
12265         * toplev.c (rest_of_handle_loop2): Some parts of
12266         initialization/finalization moved here from loop-init.c.
12267
12268 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12269
12270         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12271         pointer.
12272         (CALL_USED_REGISTERS): Likewise.
12273         (REG_ALLOC_ORDER): Likewise.
12274         (REG_CLASS) <GENERAL_REGS>: Likewise.
12275
12276 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12277
12278         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12279         in associative operators.
12280         * rtlanal.c (commutative_operand_precedence): Create some new
12281         variables.  Prefer a commutative operand on the left, then
12282         binary expressions, then NEG and NOT.
12283
12284 2004-02-16  Matthias Klose  <doko@debian.org>
12285
12286         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12287         in terms of SHLIB_SOVERSION.
12288         * config/m68k/t-slibgcc-elf-ver: New file.
12289         * config/pa/t-slibgcc-elf-ver: New file.
12290         * config.gcc (m68k-linux, parisc-linux): Use them when not
12291         sjlj exceptions are not configured.
12292
12293 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12294
12295         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12296
12297 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12298
12299         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12300
12301 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12302
12303         * doc/sourcebuild.texi: Mention backends.html.
12304
12305 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12306
12307         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12308         line-map.c, line-map.h, var-tracking.c: Fix comment
12309         formatting.
12310
12311 2004-02-16  Richard Henderson  <rth@redhat.com>
12312
12313         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12314
12315         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12316
12317 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12318
12319         * config/h8300/h8300.md: Remove unnecessary parallels from
12320         all define_insn and define_split patterns.
12321
12322 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12323
12324         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12325         "clobber").
12326
12327 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12328
12329         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12330         '%#'.
12331
12332 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12333
12334         * config/ia64/ia64.c, config/mips/mips.c,
12335         config/mmix/mmix-modes.def: Fix comment typos.
12336
12337 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12338
12339         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12340         (get_directive_line): Remove unused function prototype.
12341
12342 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12343
12344         * tree-inline.c (copy_body_r): Do not replace ret_label.
12345
12346 2004-02-14  Jan Hubicka  <jh@suse.cz>
12347
12348         * i386.c (x86_four_jump_limit): New variable.
12349         (k8_avoid_jump_misspredicts): Rename to ...
12350         (ix86_avoid_jump_misspredicts): .. this one.
12351         (ix86_pad_returns): Break out from ...
12352         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12353         to.
12354         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12355
12356 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12357
12358         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12359         PARALLEL is NULL.
12360
12361 2004-02-14  Per Bothner  <per@bothner.com>
12362
12363         * fix-header.c (line_table):  Move local variable in main to global.
12364         * scan.h (line_table):  Use it.
12365         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12366         line (recently renamed to src_loc) before calling recognized_function.
12367
12368 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12369
12370         * Makefile.in: Fix comment typos.
12371
12372 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12373
12374         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12375         for start_value when it is directly moved into reg, and factorize
12376         the retrieval of GET_MODE (reg).
12377
12378 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12379
12380         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12381         (mips_load_got_global): Delete.
12382         (mips_gotoff_page): Declare.
12383         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12384         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12385         UNSPEC_LOAD_GOT pattern rather than a MEM.
12386         (*load_got[sd]i): New patterns.
12387         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12388         (mips_load_got_page, mips_load_got_global): Delete.
12389         (mips_gotoff_page): New function.
12390         (override_options): Don't initialize mips_got_alias_set.
12391
12392 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12393
12394         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12395         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12396         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12397         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12398         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12399         * config/mips/mips.c: Fix some overly-long lines.
12400         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12401         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12402
12403 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12404
12405         * configure.ac: Search for as, ld below libexec/gcc.
12406         * configure: Regenerate.
12407
12408 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12409
12410         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12411         __builtin_arm_setwcx ().
12412         * config/arm/arm.c (arm_expand_builtin): Generate operands
12413         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12414
12415 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12416
12417         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12418         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12419         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12420         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12421         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12422         (_mm_mulhi_pu16): Likewise.
12423
12424 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12425
12426         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12427         DECL_NAME != 0 before dereferencing.
12428
12429 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12430
12431         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12432         (s390_output_addr_const_extra): Declare.
12433         (s390_output_pool_entry): Remove FILE * argument.
12434         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12435         (s390_output_addr_const_extra): New function.
12436         (print_operand_address): Call output_addr_const instead of
12437         s390_output_symbolic_const.
12438         (print_operand): Likewise.
12439         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12440         Remove FILE * argument.
12441         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12442         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12443         call.
12444
12445 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12446
12447         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12448         (struct edge, struct vertex, struct graph): New.
12449         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12450         free_graph): New functions.
12451
12452 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12453
12454         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12455         Use ".set macro" to avoid warnings about multi-instruction
12456         macros, since they're intentional.
12457
12458 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12459
12460         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12461         comment about STANDARD_EXEC_PREFIX.
12462
12463         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12464         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12465         for installing .1 manpages.  Add rules for installing cpp
12466         and gcov manpages under their installed names.
12467
12468 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12469
12470         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12471         host, but try LD_FOR_TARGET first.
12472         * configure: Rebuilt.
12473
12474 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12475
12476         * dbxout.c: Move declaration of dbxout_type_decl outside
12477         #ifdef DBX_DEBUGGING_INFO.
12478         * c-parse.in: Don't give the asmdef production a type.
12479
12480 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12481
12482         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12483         (debug_nothing_tree_int): Prototype.
12484         (dwarf_debug_hooks): Delete, unused.
12485         * debug.c (do_nothing_debug_hooks): Update.
12486         (debug_nothing_tree_int): New function.
12487         * langhooks.h (struct lang_hooks_for_decls):
12488         Remove builtin_type_decls field.
12489         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12490         (LANG_HOOKS_DECLS): Update.
12491         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12492         Use debug_hooks->type_decl.
12493         * dbxout.c (preinit_symbols): New static.
12494         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12495         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12496         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12497         for symbols to output.
12498         (dbxout_type_decl): New function.
12499         (dbxout_symbol): If called before dbxout_init has run, queue
12500         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12501         to TYPE_DECLs before emitting them.
12502         * xcoffout.c (assign_type_number): Delete.
12503         (xcoff_type_numbers): New static table.
12504         (xcoff_assign_fundamental_type_number): New function.
12505         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12506         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12507         * sdbout.c: Include varray.h.
12508         (deferred_global_decls): New static.
12509         (sdb_debug_hooks): Update.
12510         (sdbout_global_decl): If we can't emit something right now,
12511         remember it in deferred_global_decls.
12512         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12513         (sdbout_init): Initialize deferred_global_decls.
12514         * Makefile.in: Update dependencies of sdbout.o.
12515         * dwarf2out.c (dwarf2out_type_decl): New function.
12516         (dwarf2_debug_hooks): Update.
12517         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12518         * c-decl.c (getdecls): Just return 0.
12519         (check_for_loop_decls): Don't use getdecls.
12520         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12521         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12522
12523 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12524
12525         * config/s390/s390.c (s390_sched_reorder2): Remove.
12526         (TARGET_SCHED_REORDER2): Do not redefine.
12527
12528 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12529
12530         * c-parse.in (maybe_type_qual): Delete.
12531         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12532         (asm_argument): New grammar rules.
12533         (extdef_1): Use asmdef.
12534         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12535         (xexpr): Move up with other expression rules.
12536         (stmt): Use asm_stmt.
12537
12538         * c-typeck.c (build_asm_expr): New function - body mostly
12539         pulled from build_asm_stmt.
12540         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12541         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12542
12543 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12544
12545         PR bootstrap/13617
12546         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12547         (mips_declare_object): Make variadic.
12548         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12549         mips_output_aligned_decl_common.
12550         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12551         (mips_declare_object): Make variadic.
12552
12553 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12554
12555         * function.c (update_epilogue_consts): Teach about binary operations.
12556
12557         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12558         previous MEM_VOLATILE in REF.
12559         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12560         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12561
12562 2004-02-12  Gunther Nikl  <gni@gecko.de>
12563
12564         * config.gcc: Restore support for m68k-openbsd.
12565
12566 2004-02-12  Jan Hubicka  <jh@suse.cz>
12567
12568         * tree-optimize.c (tree_rest_of_compilation): Do not release
12569         DECL_ARGUMENTS.
12570
12571 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12572
12573         * doc/install.texi: Fix the spelling of "explicitly".
12574
12575 2004-02-11  Eric Christopher  <echristo@redhat.com>
12576
12577         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12578         duplicate argument structure of cpp_interpret_string.
12579         * cpphash.h: Move prototype...
12580         * cpplib.h: Here.
12581         * cpplib.c: Fix calls to match new function signature.
12582
12583 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12584
12585         PR c/456
12586         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12587         constant expressions at all outside C99 mode if pedantic.
12588
12589 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12590
12591         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12592         (log10_optab, log2_optab): Define corresponding macros.
12593         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12594         * genopinit.c (optabs): Implement log10_optab and log2_optab
12595         using log10?f2 and log2?f2 patterns.
12596         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12597         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12598         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12599         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12600
12601         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12602         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12603         log2, log2f and log2l built-ins as inline x87 intrinsics.
12604
12605 2004-02-11  Richard Henderson  <rth@redhat.com>
12606
12607         PR target/1532
12608         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12609         dead insn after reload.
12610
12611 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12612
12613         * tree.h (frame_base_decl): Add GTY marker.
12614         * var-tracking.c (frame_base_decl): Likewise.
12615
12616 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12617
12618         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12619         incorrect, hunk.
12620         (add_location_or_const_value_attribute): Use text_section_label,
12621         not TEXT_SECTION_NAME.
12622
12623 2004-02-11  Per Bothner  <per@bothner.com>
12624
12625         Represent column numbers using line-map's source_location.
12626         The "next available source_location" is now managed internally by
12627         line-maps.c rather than by clients.
12628         * line-map.h (struct line_map):  New field column_bits.
12629         <from_line>:  Rename field to start_location.
12630         (struct line_maps):  New fields highest_location and max_column_hint.
12631         (linemap_check_files_exited):  New declaration.
12632         (linemap_line_start):  New declaration.
12633         (linemap_add):  Remove from_line parameter; use highest_location field.
12634         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12635         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12636         (CURRENT_LINE_MAP):  Remove macro.
12637         (linemap_position_for_column):  New inline function.
12638         * line-map.c (linemap_init):  Clear new fields.
12639         (linemap_check_files_exited):  New function, extracted from ...
12640         (linemap_free):  Use linemap_check_files_exited.
12641         (linemap_add):  Remove from_line parameter.  Various updates.
12642         (linemap_line_start):  New function.
12643         (linemap_lookeup):  Update for new field names.
12644         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12645         linemap_position_for_column may unpredictably change the current map,
12646         it is cleaner and simpler for us to not cache it in cpp_reader.
12647         (struct cpp_buffer):  New sysp field.
12648         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12649         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12650         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12651         current map using linemap_lookup.
12652         (do_linemarker):  Also set buffer's sysp field.
12653         (destringize_and_run):  No longer need to decrement current line.
12654         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12655         (search_path_head, open_file_failed):  Use buffer's sysp.
12656         (cpp_make_system_header):  Get current map using linemap_lookup.
12657         Also set buffer's sysp flag.
12658         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12659         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12660         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12661         (struct cpp_reader):  ... and adding saved_line_base field.
12662         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12663         Update accordingly.  Don't adjust line.
12664         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12665         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12666         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12667         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12668         * cpplex.c (_cpp_lex_direct):  Likewise.
12669         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12670         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12671         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12672         Remove col field as it is now subsumed by src_loc.
12673         * cpperror.c:  Update various field, parameter, and macro names.
12674         (print_location):  If col==0, try SOURCE_COLUMN of line.
12675         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12676         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12677         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12678         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12679         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12680         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12681         (_cpp_lex_direct):  Use linemap_position_for_column.
12682         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12683         parameter.  Instead get it from the line_table global.  Adjust callers.
12684         (print):  Remove map field.  Replace line field to src_line.
12685         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12686         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12687         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12688         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12689         * cpptrad.c (copy_comment):  Rename variable.
12690         * c-lex.c (map):  Remove static variable, for same reason we removed
12691         cpp_reader's map field.
12692         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12693         to call linemap_lookup.
12694         (cb_line_change):  Token's line field replaced by src_loc.
12695         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12696         Don't save new_map.
12697
12698         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12699         source_location.
12700
12701 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12702
12703         * config/rs6000/altivec.md (*movv4si_internal): At least one
12704         operand must be register_operand.
12705         (*movv8hi_internal1): Likewise.
12706         (*movv16qi_internal1): Likewise.
12707         (*movv4sf_internal1): Likewise.
12708
12709 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12710
12711         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12712         operand.
12713         (movv4hi_internal): Same.
12714         (movv2sf_internal): Same.
12715         (movv1di_internal): Same.
12716
12717 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12718
12719         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12720         TARGET_OLDABI consistently.
12721         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12722         mips_va_arg,override_options,compute_frame_size,
12723         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12724         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12725         and TARGET_OLDABI consistently.
12726         * config/mips/mips.md (exception_receiver): Likewise.
12727         * config/mips/linux64.h: Likewise.
12728
12729 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12730
12731         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12732         Set AltiVec ABI and vrsave as default for ppc64 linux.
12733         (init_cumulative_args): Post error, if try to return
12734         value in AltiVec register without enable AltiVec.
12735         (function_arg_advance): Ditto for passing arguments.
12736
12737 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12738
12739         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12740         a label before updating its usage count.
12741
12742 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12743
12744         * doc/install.texi: Remove extra cd.
12745
12746 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12747
12748         * c-common.c (vector_size_helper): Remove; call
12749         reconstruct_complex_type() instead.
12750         * tree.c (reconstruct_complex_type): New function
12751         (formerly vector_size_helper() in c-common.c).
12752         (make_vector): Make externally visible.
12753         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12754
12755 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12756
12757         * config/h8300/h8300-protos.h: Add a prototype for
12758         h8300_regs_ok_for_stm.
12759         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12760         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12761         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12762         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12763         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12764         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12765         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12766         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12767         h8300_regs_ok_for_stm().
12768
12769 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12770
12771         PR c/14088
12772         * real.c (real_from_string): Look for 'X' as well as 'x' in
12773         hexfloat strings.
12774
12775 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12776
12777         * config/h8300/h8300.md: Remove an incorrect comment about
12778         peephole2.  Add comments.
12779
12780 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12781
12782         PR/14058
12783         * emit-rtl.c (set_decl_incoming_rtl): New.
12784         * tree.h (set_decl_incoming_rtl): New.
12785         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12786         DECL_INCOMING_RTL.
12787         * ada/misc.c (adjust_decl_rtl): Likewise.
12788
12789 2004-02-10  Per Bothner  <per@bothner.com>
12790
12791         * c-opts.c (c_common_post_options):   Don't emit working directory
12792         in cpp output if -P was specified.
12793
12794 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12795
12796         PR c/14092
12797         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12798         negate_expr back to the original type.
12799
12800 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12801
12802         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12803         bump retaddr here.
12804
12805 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12806
12807         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12808         gen_lowpart_SUBREG): Move under the file in which they
12809         are actually declared.
12810
12811 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12812
12813         * doc/sourcebuild.texi: Add libada documentation.
12814
12815         * doc/install.texi: Update documentation on Ada build, now
12816         that the GNAT lib and tools are built automatically.
12817
12818 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12819
12820         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12821         && TARGET_IRIX.
12822
12823 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12824
12825         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12826         boundaries outside build_component_ref() call (a macro in ObjC++).
12827
12828 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12829
12830         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12831         (init_cumulative_args): Likewise.
12832         (a7_overlap_mentioned_p): Delete prototype.
12833         * config/xtensa/xtensa.c (struct machine_function): Replace
12834         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12835         Add set_frame_ptr_insn field.
12836         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12837         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12838         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12839         at the function entry and replace the operand with the pseudo.
12840         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12841         argument and record this flag in CUMULATIVE_ARGS.
12842         (function_arg): Remove result_mode and special-case code to handle
12843         arguments in a7.  Instead, set need_a7_copy flag when there is an
12844         incoming argument in a7.
12845         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12846         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12847         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12848         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12849         special-case code.
12850         (a7_overlap_mentioned_p): Delete.
12851         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12852         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12853         arguments to init_cumulative_args and pass "incoming" flag instead.
12854         (BLOCK_REG_PADDING): Delete.
12855         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12856         checks for reload_in_progress and reload_completed.  Update calls to
12857         xtensa_copy_incoming_a7.
12858         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12859         to call xtensa_copy_incoming_a7.
12860
12861 2004-02-09  DJ Delorie  <dj@redhat.com>
12862
12863         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12864         longer modify standard_exec_prefix, standard_bindir_prefix, or
12865         standard_startfile_prefix.
12866
12867 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12868
12869         PR c++/11295
12870         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12871         to expand_expr_real call, and pass in alt_rtl as last argument.
12872
12873         PR libstdc++/5625
12874         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12875         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12876         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12877         * except.c (expand_builtin_extend_pointer): New.
12878         * except.h (expand_builtin_extend_pointer): Declare.
12879
12880 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12881
12882         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12883         unaligned loads and stores.
12884
12885 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12886
12887         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12888         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12889
12890         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12891         * config/mips/iris5.h: ... here.
12892         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12893
12894         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12895         * config/mips/iris5.h: ... here.
12896
12897 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12898
12899         * configure.ac: Remove default executable files before AC_PROG_CC.
12900         * configure: Regenerate.
12901
12902 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12903
12904         PR target/13721
12905         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12906         print a operand other than a register.
12907
12908 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12909
12910         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12911         tree code rather than call fold_convert, which doesn't specify a
12912         default floating point to integer conversion.
12913
12914 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12915
12916         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12917         code to support SGS assembler.  Reformat adjacent code where possible.
12918         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12919         definition.
12920         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12921         for '%#'.
12922         * config/m68k/linux.h, config/m68k/m68k.c,
12923         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12924         macros and asm_printf() format strings.
12925         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12926         * config/m68k/linux.h: Update copyright.
12927         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12928
12929 2004-02-08  Andreas Schwab  <schwab@suse.de>
12930             Bernardo Innocenti  <bernie@develer.com>
12931
12932         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12933         REGISTER_PREFIX.
12934         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12935         frame pointer register, overridable by OS targets.
12936         * (M68K_REGNAME): Macro to obtain register name for asm output,
12937         eventually replacing %a6 with M68K_FP_REG_NAME.
12938         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12939         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12940         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12941         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12942         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12943
12944 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12945
12946         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12947         hook_rtx_tree_int_null.
12948         * targhooks.c (default_struct_value_rtx): Remove.
12949         * targhooks.h: Remove the prototype for
12950         default_struct_value_rtx.
12951         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12952         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12953         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12954         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12955         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12956         config/rs6000/rs6000.c, config/s390/s390.c,
12957         config/stormy16/stormy16.c, config/v850/v850.c,
12958         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12959         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12960
12961 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12962
12963         * README.Portability: Change "ISO C89" to "ISO C90".
12964         * c-parse.in (primary, initelt): Likewise.
12965
12966 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12967
12968         * real.c (encode_ibm_extended): Normalize the input value before
12969         converting it to a double.  Handle the case where a normal value
12970         rounds to infinity.
12971
12972 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12973
12974         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12975         warning.
12976         * cse.c (preferrable): Change to preferable. Update all of its
12977         callers.
12978         * genautomata.c (ainsn): Change
12979         first_ainsn_with_given_equialence_num to
12980         first_ainsn_with_given_equivalence_num.  Update all of its
12981         references.
12982
12983 2004-02-08  Jan Hubicka  <jh@suse.cz>
12984
12985         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12986
12987 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12988
12989         * function.c (assign_parms): Fix formatting.
12990
12991 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12992
12993         * default.h (PROMOTE_PROTOTYPES): Remove.
12994         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12995         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12996         EXPAND_BUILTIN_SAVEREGS): Poison.
12997         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12998         hook_bool_tree_false.
12999         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13000         * target.h: Replace SETUP_INCOMING_VARARGS with
13001         targetm.calls.setup_incoming_varargs().
13002         * targhooks.c (default_promote_function_return): Remove.
13003         (default_promote_prototypes): Likewise.
13004         (default_struct_value_rtx): Always abort().
13005         (default_expand_builtin_saveregs): Always print an error
13006         message.
13007         (default_setup_incoming_varargs): Do nothing.
13008         (default_pretend_outgoing_varargs_named): Don't depend on
13009         SETUP_INCOMING_VARARGS.
13010         * targhooks.h: Remove the prototype for
13011         default_promote_function_return and
13012         default_promote_prototypes.
13013
13014 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13015
13016         * system.h (SHARED_SECTION_ASM_OP): Poison.
13017         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13018         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13019
13020 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13021
13022         Bug 13856
13023         * c-decl.c (diagnose_mismatched_decls): Only give special
13024         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13025         is also true.
13026         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13027         DECL_FUNCTION_CODE when defining a built-in function.
13028         Don't update DECL_ESTIMATED_INSNS.
13029         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13030         FUNCTION_DECLs.
13031         * tree.h: Delete DECL_ESTIMATED_INSNS.
13032         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13033         (expand_call_inline, optimize_inline_calls): Don't update
13034         DECL_ESTIMATED_INSNS nor inlined_insns.
13035         * cgraphunit.c (cgraph_analyze_function): Don't update
13036         DECL_ESTIMATED_INSNS.
13037
13038 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13039
13040         * c-common.c (shadow_warning): Delete.
13041         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13042         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13043         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13044         * c-parse.in (free_parser_stacks): Delete.
13045
13046 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13047
13048         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13049         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13050         Use the top level mkinstalldirs, not the one in the gcc subdir.
13051         * mkinstalldirs: Remove (from the gcc subdir).
13052
13053 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13054
13055         PR middle-end/13696
13056         * fold-const.c (fold_convert): New function to provide type
13057         conversion to the middle-end without using convert.
13058         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13059         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13060         invert_truthvalue, optimize_bit_field_compare, range_binop,
13061         decode_field_reference, make_range, build_range_check, unextend,
13062         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13063         fold_binary_op_with_conditional_arg, fold_inf_compare,
13064         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13065         convert with calls to fold_convert.
13066
13067 2004-02-07  Jan Hubicka  <jh@suse.cz>
13068
13069         * genrecog.c (find_operand): add extra argument stop.
13070         (validate_pattern): Verify that mach_dup is duplicating operand
13071         defined lexically earlier.
13072
13073 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13074
13075         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13076         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13077         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13078         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13079         config/ia64/ia64.h, config/ip2k/ip2k.h,
13080         config/iq2000/iq2000.h, config/mips/iris5.h,
13081         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13082         config/rs6000/aix51.h, config/rs6000/aix52.h,
13083         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13084         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13085         config/sparc/linux.h, config/sparc/linux64.h,
13086         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13087         config/xtensa/xtensa.h: Remove the definitions of
13088         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13089         MAX_WCHAR_TYPE_SIZE.
13090         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13091         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13092
13093 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13094
13095         PR bootstrap/13990
13096         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13097         gen_rtx_NE.
13098
13099 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13100
13101         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13102         #ifdef ENABLE_CHECKING and #endif.
13103
13104 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13105
13106         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13107         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13108         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13109         integer types and floating point with unsafe_math_optimizations.
13110         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13111         Optimize A - B as A + (-B), if B is easily negated.
13112
13113 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13114
13115         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13116         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13117         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13118         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13119         Update copyright.
13120
13121 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13122
13123         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13124
13125 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13126
13127         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13128         glibc 2.3 or better.
13129
13130 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13131
13132         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13133         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13134
13135 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13136
13137         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13138         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13139         (SHLIB_MKMAP_OPTS): Delete.
13140         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13141         (bispecs): Add rule.
13142         * config/rs6000/libgcc-ppc64.ver: New file.
13143         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13144         (__floatdidf, __floatdisf): Optimize multiply.
13145         (__fixunstfdi): New function.
13146         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13147         real and imag parts larger than one register.
13148         (function_arg): Correct type of reg used when fp arg split partially
13149         to stack.
13150         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13151         and __MACH__ or __powerpc64__.
13152
13153 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13154             Ulrich Weigand  <uweigand@de.ibm.com>
13155
13156         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13157         of gen_highpart or gen_lowpart when the floating point format is
13158         wider than the result mode.
13159
13160 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13161
13162         * dwarf2out.c (loclabel_num): Move into #ifdef
13163         DWARF2_DEBUGGING_INFO.
13164
13165 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13166
13167         * objc/objc-act.c (build_super_template) the 'class' field of
13168         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13169         (get_super_receiver): Likewise.
13170
13171 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13172
13173         * reload1.c (check_eliminable_occurrences): Optimize the reset
13174         of can_eliminate.
13175         (eliminate_regs_in_insn): Likewise.
13176
13177 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13178             Josef Zlomek  <zlomekj@suse.cz>
13179
13180         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13181         at the beginning of function, call dwarf2out_var_location for
13182         NOTE_INSN_VAR_LOCATION note.
13183         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13184         decl_loc_table): New.
13185         (lookup_decl_loc): New function.
13186         (add_var_loc_to_decl): New function.
13187         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13188         only if can_use_fbreg.
13189         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13190         functions.
13191         (loc_descriptor): Likewise. Process VAR_LOCATION.
13192         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13193         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13194         can_use_fbreg == true.
13195         (add_location_or_const_value_attribute): Added parameter enum
13196         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13197         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13198         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13199         with attr == DW_AT_location.
13200         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13201         if frame_base_decl is defined and has a location list.
13202         (gen_variable_die): Call add_location_or_const_value_attribute with
13203         attr == DW_AT_location.
13204         (dwarf2out_var_location): New function.
13205         (dwarf2out_begin_function): New function.
13206         (dwarf2out_init): Create decl_loc_table.
13207
13208 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13209
13210         * loop.c (force_movables): Transitively increase the priorities of
13211         all insns forces by an insn, not just the first one.
13212
13213 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13214             Daniel Berlin <dberlin@dberlin.org>
13215
13216         Josef Zlomek  <zlomekj@suse.cz>
13217         * Makefile.in (var-tracking.o): New.
13218         * common.opt (fvar-tracking): New.
13219         * flags.h (flag_var_tracking): New.
13220         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13221         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13222         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13223         * rtl.c (note_insn_name): Likewise.
13224         * rtl.def (VAR_LOCATION): New.
13225         * rtl.h (NOTE_VAR_LOCATION): New.
13226         (NOTE_VAR_LOCATION_DECL): New.
13227         (NOTE_VAR_LOCATION_LOC): New.
13228         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13229         (variable_tracking_main): New exported function.
13230         * timevar.def (TV_VAR_TRACKING): New.
13231         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13232         (dump_file): "vartrack" was added (-dV).
13233         (flag_var_tracking): New.
13234         (f_options): "var-tracking" was added.
13235         (rest_of_handle_variable_tracking): New function.
13236         (rest_of_compilation): Run variable tracking.
13237         (process_options): If user has not specified flag_var_tracking set it
13238         according to optimize, debug_info_level and debug_hooks.
13239         * tree.h (frame_base_decl): New.
13240         * var-tracking.c: New file.
13241         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13242         (ia64_override_options): Set flags to run variable tracking in machine
13243         dependent reorg instead of toplev.c.
13244         (ia64_reorg): Run variable tracking if wanted.
13245         * doc/invoke.texi: Mention variable tracking in -dV,
13246         add and -fvar-tracking.
13247         * doc/passes.texi: Added variable tracking pass.
13248
13249         Daniel Berlin <dberlin@dberlin.org>
13250         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13251         * dbxout.c (dbx_debug_hooks): Likewise.
13252         (xcoff_debug): Likewise.
13253         * debug.c (do_nothing_debug_hooks): Likewise.
13254         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13255         * dwarfout.c (dwarf_debug_hooks): Likewise.
13256         * sdbout.c (sdb_debug_hooks): Likewise.
13257         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13258         * final.c (final_scan_insn): Call var_location debug hook for each
13259         NOTE_INSN_VAR_LOCATION.
13260
13261 2004-02-06  Jan Hubicka  <jh@suse.cz>
13262
13263         * flow.c (update_life_info): Allocate reg_deaths when called from
13264         scheudler.
13265         (attempt_auto_inc):  Update life ranges accordingly.
13266
13267 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13268
13269         PR debug/11816
13270         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13271
13272 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13273
13274         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13275
13276 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13277
13278         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13279         a separate line info table in use.
13280         Use the correct size for terminators.
13281         (output_die): Use offset, not delta.
13282
13283 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13284
13285         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13286
13287 2004-02-06  Jan Hubicka  <jh@suse.cz>
13288
13289         * recog.c (split_all_insns): Do not update reg info.
13290         * regrename.c (regrename_optimize): Likewise.
13291         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13292         * flow.c (struct propagate_block_info): Add insn_num field.
13293         (reg_deaths): New array.
13294         (life_analysis): Free reg_deaths info.
13295         (allocate_reg_life_data): Allocate reg_deaths array.
13296         (propagate_one_insn): Use new array.
13297         (init_propagate_block): Initialize it.
13298         (free_propagate_block_info): Finish compuation of
13299         REG_LIVE_LENGTH
13300         (attempt_auto_inc): Sanity check that REG_INFO is not
13301         computed at same time.
13302         (mark_used_regs): Update new array.
13303
13304         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13305         substitution.
13306
13307 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13308
13309         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13310         *extendqisi2_short_displ.
13311
13312 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13313
13314         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13315         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13316         (emit_library_call_value_1): Likewise pass nargs.
13317         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13318         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13319         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13320         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13321         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13322         prototype.
13323         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13324         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13325         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13326         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13327         INIT_CUMULATIVE_ARGS.
13328         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13329         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13330         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13331         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13332         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13333         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13334         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13335         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13336         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13337         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13338         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13339         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13340
13341 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13342
13343         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13344         possible.
13345
13346 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13347
13348         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13349         note containing (plus (reg) (const_int)), where reg is an
13350         eliminable reg, then perform the register elimination without
13351         depending on eliminate_regs().
13352
13353 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13354
13355         * config/arc/arc.c (arc_return_in_memory): Check the return
13356         value of int_size_in_bytes against -1.  Don't check
13357         TREE_ADDRESSABLE.
13358         * config/avr/avr.c (avr_return_in_memory): Check the return
13359         value of int_size_in_bytes against -1.
13360         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13361         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13362         Likewise.
13363         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13364         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13365         Likewise.
13366
13367 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13368
13369         * config/frv/frv-protos.h: Remove the prototype for
13370         frv_setup_incoming_varargs.
13371         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13372         (frv_setup_incoming_varargs): Make it static.
13373         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13374
13375 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13376
13377         * config/fr30/fr30-protos.h: Remove the prototype for
13378         fr30_setup_incoming_varargs.
13379         Update the prototypes for fr30_num_arg_regs and
13380         fr30_function_arg_partial_nregs.
13381         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13382         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13383         (fr30_setup_incoming_varargs): Make it static.
13384         Add argument second_time.  Don't do anything when second_time
13385         is nonzero.
13386         (fr30_num_arg_regs): Change the type of the first argument to
13387         enum machine_mode.
13388         (fr30_function_arg_partial_nregs): Change the type of the
13389         second argument to enum machine_mode.
13390         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13391         (SETUP_INCOMING_VARARGS): Remove.
13392
13393 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13394
13395         * config/arc/arc-protos.h: Remove the prototype for
13396         arc_setup_incoming_varargs.
13397         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13398         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13399         (arc_setup_incoming_varargs): Make it static.
13400         (arc_external_libcall): Likewise.
13401         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13402         Remove the commented-out definition of
13403         ASM_OUTPUT_EXTERNAL_LIBCALL.
13404
13405 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13406
13407         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13408         to $$(slibdir) in the installation commands.
13409
13410 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13411
13412         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13413         with inner_regno, not regno.
13414         * rtlanal.c (refers_to_regno_p): Same.
13415
13416 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13417
13418         * config.gcc: Remove i370 support.
13419
13420 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13421
13422         * doc/install.texi:  Update automake and autoconf version
13423         requirements.  Note where to find gcj automake version.
13424
13425 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13426
13427         * Makefile.in (generate-manpages): Move dependencies to ...
13428         (man): here.
13429         * doc/makefile.texi: Document new targets.
13430         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13431
13432 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13433
13434         PR/13485
13435         Makefile.in (srcextra):  Add a level of indirection to ...
13436         (gcc.srcextra): ... here.
13437         (po-generated): Delete.
13438         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13439         options.c.
13440         (start.encap): Remove superfluous lang.srcextra dependency.
13441         objc/Make-lang.in (po-generated):  Delete.
13442
13443 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13444
13445         * config/ia64/ia64.c (REG_GP): Remove.
13446
13447 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13448
13449         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13450
13451 2004-02-05  Devang Patel  <dpatel@apple.com>
13452
13453         * dwarf2out.c (force_type_die): Look up input type itself
13454         instead of root_type() of type.
13455
13456 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13457
13458         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13459         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13460         pre-reload splitters are transformed to post-reload
13461         define_insn_and_split patterns.
13462         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13463
13464 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13465
13466         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13467         TARGET_PROMOTE_PROTOTYPES.
13468
13469 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13470
13471         PR middle-end/13750
13472         Revert:
13473         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13474         PR pch/13361
13475         * c-typeck.c (constructor_asmspec): Delete.
13476         (struct initializer_stack): Delete field 'asmspec'.
13477         (start_init): Delete saving of asmspec.
13478         (finish_init): Don't update constructor_asmspec.
13479         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13480         * stmt.c (expand_asm): Duplicate strings from tree.
13481         (expand_asm_operands): Likewise.
13482         * tree.c (tree_size): Update computation of size of STRING_CST.
13483         (make_node): Don't make STRING_CST nodes.
13484         (build_string): Allocate string with tree node.
13485         * tree.def (STRING_CST): Update comment.
13486         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13487         (tree_string): Place contents of string in tree node.
13488         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13489         from tree.
13490
13491 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13492
13493         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13494         msgid.
13495
13496 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13497
13498         * config/rs6000/altivec.md (*movv4si_internal): At least one
13499         operand must be altivec_register_operand.
13500         (*movv8hi_internal1): Likewise.
13501         (*movv16qi_internal1): Likewise.
13502         (*movv4sf_internal1): Likewise.
13503
13504 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13505
13506         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13507         * configure: Regenerate.
13508
13509 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13510
13511         * doc/install.texi: Update description of --gxx-include-dir to
13512         give correct default value.
13513
13514 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13515
13516         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13517         8 with MAC_REG.
13518
13519 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13520
13521         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13522         gen_rtx_PARALLEL.
13523
13524 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13525
13526         * emit-rtl.c: Update the comment about the file.
13527
13528 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13529
13530         * sourcebuild.texi (Test Idioms): Update testcase naming
13531         conventions.
13532
13533 2004-02-04  Per Bothner  <per@bothner.com>
13534
13535         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13536         * c-ppoutput.c (pp_dir_change):  New function.
13537         * c-common.h (pp_dir_change):  New declaration.
13538         * cpplib.h (struct cpp_options):  Remove working_directory field.
13539         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13540         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13541         Don't handle -fworking_directory here, but in c_common_post_options.
13542         (read_original_directory): Don't back up when done.
13543         Don't clear no-longer used working_directory flag.
13544         * cpplib.h:  Update declarations to match.
13545         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13546         (init_c_lex):  Don't set dir_change callback here, since we want
13547         to set it even if flag_preprocess_only.
13548         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13549         (c_common_post_options):  Set dir_change callback.
13550         Call pp_dir_change if approporiate.
13551         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13552         unneeded parameter and result. Do LC_RENAME for <built-in>.
13553         (c_common_post_options):  Call cpp_read_main_file here instead.
13554         (c_common_init):  Update accordingly.
13555         (push_command_line_include):  Don't cpp_push_main_file.
13556         Do LC_RENAME rather than LC_LEASE to get back to main file.
13557         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13558         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13559         files, but call finish_options for all files.
13560         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13561         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13562         cpp_find_main_file + cpp_push_main_file.
13563         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13564         * opts.c (handle_options):  Only set main_input_filename first time.
13565
13566 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13567
13568         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13569
13570 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13571
13572         * reload.c (find_equiv_reg): When checking for register overlap,
13573         don't index hard_regno_nregs with a pseudo-reg.
13574
13575 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13576
13577         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13578
13579 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13580
13581         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13582         against FIRST_PSEUDO_REGISTER.
13583
13584 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13585
13586         * Makefile.in: Move target, host overrides after per-language
13587         fragments.
13588
13589         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13590         (GNATLIBCFLAGS): Remove -g.
13591
13592 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13593
13594         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13595         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13596         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13597         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13598         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13599         config/sparc/sparc.c, config/vax/vax.c: Revert the
13600         replacements of "FALLTHRU" with "Fall through" done in the
13601         previous patch.
13602
13603 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13604
13605         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13606         config/arm/arm.c, config/arm/arm.md,
13607         config/cris/cris-protos.h, config/fr30/fr30.c,
13608         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13609         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13610         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13611         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13612         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13613         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13614         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13615         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13616         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13617         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13618         config/s390/s390.md, config/sparc/netbsd-elf.h,
13619         config/sparc/openbsd.h, config/sparc/sparc.c,
13620         config/xtensa/lib2funcs.S: Fix comment formatting.
13621
13622 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13623
13624         * config/alpha/alpha.c, config/arc/arc.c,
13625         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13626         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13627         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13628         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13629         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13630         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13631         config/iq2000/iq2000.c, config/m32r/m32r.c,
13632         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13633         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13634         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13635         config/rs6000/rs6000.h, config/sparc/sparc.c,
13636         config/vax/vax.c: Fix comment typos.  Follow spelling
13637         conventions.
13638
13639 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13640
13641         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13642         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13643         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13644         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13645         config/arm/fpa.md, config/arm/iwmmxt.md,
13646         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13647         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13648         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13649         config/sparc/netbsd-elf.h: Update copyright.
13650
13651 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13652
13653         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13654         for all modes whose size is greater than 8 bytes if ARCH32.
13655         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13656         by reference if ARCH32.
13657
13658 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13659
13660         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13661
13662 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13663
13664         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13665         to before adddi3 insn patterns.
13666         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13667         "reload_insi"): Move to before addsi3 insn patterns.
13668
13669 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13670
13671         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13672         parameter.  Use it instead of current_function_is_thunk.
13673         * function.h (struct function): Update documentation for is_thunk.
13674         * tree.h (CALL_FROM_THUNK_P): New macro.
13675         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13676         no_new_pseudos when testing current_function_is_thunk.
13677         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13678
13679 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13680
13681         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13682         TARGET_SETUP_INCOMING_VARARGS.
13683
13684 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13685
13686         * emit-rtl.c (gen_rtx): Remove.
13687         * genattrtab.c: Don't mention gen_rtx in a comment.
13688         * rtl.h: Remove the prototype for gen_rtx.
13689         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13690
13691 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13692
13693         * config/arc/arc.h, config/fr30/fr30.h
13694         (SETUP_INCOMING_VARARGS): Remove the target-independent
13695         comments.
13696         * doc/tm.texi: Don't mention deprecated target macros.
13697
13698 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13699
13700         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13701         target-independent comment.
13702
13703 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13704
13705         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13706         mention deprecated target macros.
13707
13708 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13709
13710         * config.gcc: Remove obsolete ports and configurations.
13711         * config/linux-aout.h, config/netware.h,
13712         config/t-linux-gnulibc1, config/d30v/abi,
13713         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13714         config/d30v/d30v.h, config/d30v/d30v.md,
13715         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13716         config/dsp16xx/dsp16xx-modes.def,
13717         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13718         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13719         config/i370/README, config/i370/i370-c.c,
13720         config/i370/i370-protos.h, config/i370/i370.c,
13721         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13722         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13723         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13724         config/i386/moss.h, config/i386/netware.h,
13725         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13726         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13727         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13728         config/i960/i960-c.c, config/i960/i960-coff.h,
13729         config/i960/i960-modes.def, config/i960/i960-protos.h,
13730         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13731         config/i960/rtems.h, config/i960/t-960bare,
13732         config/m68k/hp310.h, config/m68k/hp320.h,
13733         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13734         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13735         Remove.
13736         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13737         doc/md.texi: Remove mentions of obsolete ports.
13738
13739 2004-02-04  Jan Hubicka  <jh@suse.cz>
13740
13741         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13742         pointer when all VALUE's locations has been invalidated.
13743         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13744
13745 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13746
13747         * doc/invoke.texi (x86 options): Fix spelling/wording.
13748
13749 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13750
13751         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13752         put the original string in a comment.
13753         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13754         * config/mips/mips.c (mips_output_ascii): Likewise.
13755         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13756
13757 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13758
13759         * system.h (GIV_SORT_CRITERION): Poison.
13760         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13761         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13762
13763 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13764
13765         PR target/9348
13766         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13767         multiplies with a multiplication of the wrong signedness, its the
13768         signedness of the multiplication that we've performed that needs to
13769         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13770         if expand_mult_highpart_adjust places the result in target.
13771
13772 2004-02-03  Richard Henderson  <rth@redhat.com>
13773
13774         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13775
13776 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13777
13778         * config.gcc (sh[234]l): Use little endian fragments.
13779
13780 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13781
13782         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13783         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13784         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13785         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13786         floating point format.
13787         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13788         the above functions.
13789         (output_move_quad): Output float values in correct target format.
13790         (legitimate_const_double_p): New function.
13791         * config/pdp11/pdp11.h: Fix typos.
13792         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13793         (TARGET_FLOAT_FORMAT): Ditto.
13794         (pdp11_f_format, pdp11_d_format): Add external declarations.
13795         (MAX_REGS_PER_ADDRESS): Corrected.
13796         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13797         (PRINT_OPERAND): Output float literals in target format.
13798
13799 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13800
13801         PR c++/13975
13802         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13803         TI_PRIVATE.
13804         (access_public_node): Redefine.
13805         (access_protected_node): Likewise.
13806         (access_private_node): Likewise.
13807         * tree.c (build_common_tree_nodes): Create access_public_node,
13808         access_protected_node, and access_private_node.
13809
13810 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13811
13812         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13813         (MASK_INLINE_INT_DIV_THR): Ditto.
13814         (MASK_INLINE_SQRT_LAT): Ditto.
13815         (MASK_INLINE_SQRT_THR): Ditto.
13816         (MASK_DWARF2_ASM): Ditto.
13817         (MASK_EARLY_STOP_BITS): Ditto.
13818
13819 2004-02-02  Paul Brook  <paul@codesourcery.com>
13820
13821         Merge from csl-arm-branch.
13822
13823         2004-01-30  Paul Brook  <paul@codesourcery.com>
13824
13825         * aof.h (REGISTER_NAMES): Add vfp reg names
13826         (ADDITIONAL_REGISTER_NAMES): Ditto.
13827         * aout.h (REGISTER_NAMES): Ditto.
13828         (ADDITIONAL_REGISTER_NAMES): Ditto.
13829         * arm-protos.h: Update/Add Prototypes.
13830         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13831         Only allow 0.0 for VFP.
13832         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13833         (values_fp): Rename from values_fpa.  Update Users.
13834         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13835         Update users.  Only check valid constants for this hardware.
13836         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13837         Only allow consts for FPA.
13838         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13839         Only allow consts for FPA.
13840         (use_return_insn): Check for saved VFP regs.
13841         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13842         (arm_legitimize_address): Ditto.
13843         (arm_general_register_operand): New function.
13844         (vfp_mem_operand): New function.
13845         (vfp_compare_operand): New function.
13846         (vfp_secondary_reload_class): New function.
13847         (arm_float_compare_operand): New function.
13848         (vfp_print_multi): New function.
13849         (vfp_output_fstmx): New function.
13850         (vfp_emit_fstm): New function.
13851         (arm_output_epilogue): Output VPF reg restore code.
13852         (arm_expand_prologue): Output VFP reg save code.
13853         (arm_print_operand): Add 'P'.
13854         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13855         (arm_regno_class): Return classes for VFP regs.
13856         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13857         (arm_get_frame_size): Ditto.
13858         * arm.h (FIXED_REGISTERS): Add VFP regs.
13859         (CALL_USED_REGISTERS): Ditto.
13860         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13861         (FIRST_VFP_REGNUM): Define.
13862         (LAST_VFP_REGNUM): Define.
13863         (IS_VFP_REGNUM): Define.
13864         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13865         (HARD_REGNO_NREGS): Handle VFP regs.
13866         (REG_ALLOC_ORDER): Add VFP regs.
13867         (enum reg_class): Add VFP_REGS.
13868         (REG_CLASS_NAMES): Ditto.
13869         (REG_CLASS_CONTENTS): Ditto.
13870         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13871         (REG_CLASS_FROM_LETTER): Add 'w'.
13872         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13873         (EXTRA_MEMORY_CONSTRAINT): Define.
13874         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13875         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13876         (REGISTER_MOVE_COST): Ditto.
13877         (PREDICATE_CODES): Add arm_general_register_operand,
13878         arm_float_compare_operand and vfp_compare_operand.
13879         * arm.md (various): Rename as above.
13880         (divsf3): Enable when TARGET_VFP.
13881         (divdf3): Ditto.
13882         (movdfcc): Ditto.
13883         (sqrtsf2): Ditto.
13884         (sqrtdf2): Ditto.
13885         (arm_movdi): Disable when TARGET_VFP.
13886         (arm_movsi_insn): Ditto.
13887         (movsi): Only split with general regs.
13888         (cmpsf): Use arm_float_compare_operand.
13889         (push_fp_multi): Restrict to TARGET_FPA.
13890         (vfp.md): Include.
13891         * vfp.md: New file.
13892         * fpa.md (various): Rename as above.
13893         * doc/md.texi: Document ARM w and U constraints.
13894
13895         2004-01-15  Paul Brook  <paul@codesourcery.com>
13896
13897         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13898         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13899         Break out of loop when we find a float-abi.  Fix typo.
13900         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13901         Set -mfloat-abi=.
13902         * doc/install.texi: Document --with-fpu.
13903
13904         2003-01-14  Paul Brook  <paul@codesourcery.com>
13905
13906         * config.gcc (with_arch): Add armv6.
13907         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13908         * config/arm/arm.c (arm_overrride_options): Ditto.
13909
13910         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13911
13912         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13913         (FL_ARCH6): Renamed from FL_ARCH6J.
13914         (arm_arch3m): Renamed from arm_fast_multiply.
13915         (arm_arch6): Renamed from arm_arch6j.
13916         * arm.h: Update all uses of above.
13917         * arm-cores.def: Likewise.
13918         * arm.md: Likewise.
13919
13920         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13921         not arm6j.  Add entry for arch armv6.
13922
13923         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13924
13925         * arm.c (arm_emit_extendsi): Delete.
13926         * arm-protos.h (arm_emit_extendsi): Delete.
13927         * arm.md (zero_extendhisi2): Also handle zero-extension of
13928         non-subregs.
13929         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13930         (thumb_zero_extendhisi2): Only match if not v6.
13931         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13932         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13933         (thumb_extendqisi2): Likewise.
13934         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13935         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13936         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13937         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13938         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13939         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13940         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13941         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13942         (arm_extendqisi2addsi): Likewise.
13943
13944         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13945
13946         Revert this change:
13947         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13948         + REG addressing modes.
13949
13950         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13951         + REG addressing modes.
13952
13953         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13954
13955         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13956         CONSTANT_P_RTX.
13957
13958         2003-30-12  Paul Brook  <paul@codesourcery.com>
13959
13960         * longlong.h: protect arm inlines with !defined (__thumb__)
13961
13962         2003-30-12  Paul Brook  <paul@codesourcery.com>
13963
13964         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13965
13966         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13967
13968         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13969         change.
13970
13971         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13972
13973         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13974         to the virtual incoming args pointer for downward stacks.
13975
13976         2003-12-29  Paul Brook  <paul@codesourcery.com>
13977
13978         * config/arm/arm-cores.def: Add cost function.
13979         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13980         (arm_rtx_costs): Remove
13981         (struct processors): Add rtx_costs field.
13982         (all_cores, all_architectures): Ditto.
13983         (arm_override_options): Set targetm.rtx_costs.
13984         (thumb_rtx_costs): New function.
13985         (arm_rtx_costs_1): Remove cases handled elsewhere.
13986         * config/arm/arm.h (processor_type): Add COSTS parameter.
13987
13988         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13989
13990         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13991         (arm926ejs.md): Include it.
13992         * config/arm/arm926ejs.md: New pipeline description.
13993
13994         2003-12-24  Paul Brook  <paul@codesourcery.com>
13995
13996         * config/arm/arm.c (arm_arch6j): New variable.
13997         (arm_override_options): Set it.
13998         (arm_emit_extendsi): New function.
13999         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14000         * config/arm/arm.h (arm_arch6j): Declare.
14001         * config/arm/arm.md: Add sign/zero extend insns.
14002
14003         2003-12-23  Paul Brook  <paul@codesourcery.com>
14004
14005         * config/arm/arm.c (all_architectures): Add armv6.
14006         * doc/invoke.texi: Document it.
14007
14008         2003-12-19  Paul Brook  <paul@codesourcery.com>
14009
14010         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14011         insn patterns to match.
14012         * config/arm/arm-generic.md: Ditto.
14013         * config/arm/cirrus.md: Ditto.
14014         * config/arm/fpa.md: Ditto.
14015         * config/amm/iwmmxt.md: Ditto.
14016         * config/arm/arm1026ejs.md: Ditto.
14017         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14018         for 11_loadb.
14019
14020         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14021
14022         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14023         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14024         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14025         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14026         arm_no_early_mul_dep): Correctly deal with conditional execution,
14027         parallels and single shift operations.
14028         (arm_no_early_alu_shift_value_dep): Define.
14029         * arm.md (attr type): Replace 'normal' with 'alu',
14030         'alu_shift' and 'alu_shift_reg'.
14031         (attr core_cycles): Adjust.
14032         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14033         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14034         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14035         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14036         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14037         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14038         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14039         attribute appropriately.
14040         * config/arm/arm1026ejs.md (alu_op): Adjust.
14041         (alu_shift_op, alu_shift_reg_op): New.
14042         * config/arm/arm1136.md: Add better bypasses for early
14043         registers. Remove load[234] and store[234] bypasses.
14044         (11_alu_op): Adjust.
14045         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14046
14047         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14048
14049         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14050         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14051         * config/arm/arm.c (arm_no_early_store_addr_dep,
14052         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14053         * config/arm/arm1026ejs.md: Add load-store bypass.
14054         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14055         Add bypasses between instructions.
14056
14057         2003-12-10  Paul Brook  <paul@codesourcery.com>
14058
14059         * config/arm/arm.c (arm_fpu_model): New variable.
14060         (arm_fload_abi): New variable.
14061         (target_fpe_name): Rename from target_fp_name.
14062         (target_fpu_name): New variable.
14063         (arm_is_cirrus): Remove.
14064         (fpu_desc): New struct.
14065         (all_fpus): Define.
14066         (pf_model_for_fpu): Define.
14067         (all_loat_abis): Define.
14068         (arm_override_options): Set fp arch flags based on -mfpu=
14069         and -float-abi=.
14070         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14071         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14072         (*): Use new TARGET_* flags.
14073         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14074         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14075         (TARGET_SOFT_FLOAT): Ditto.
14076         (TARGET_SOFT_FLOAT_ABI): New.
14077         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14078         TARGET_HARD_FLOAT.
14079         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14080         (TARGET_OPTIONS): Add -mfpu=.
14081         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14082         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14083         (arm_pf_model): Define.
14084         (arm_float_abi_type): Define.
14085         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14086         * config/arm/arm.md: Use new TARGET_* flags.
14087         * config/arm/cirrus.md: Ditto.
14088         * config/arm/fpa.md: Ditto.
14089         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14090         * config/arm/semi.h (ASM_SPEC): Ditto.
14091         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14092         (FPUTYPE_DEFAULT): Set to VFP.
14093         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14094
14095         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14096
14097         PR target/12476
14098         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14099         'bx' instead of 'b' to avoid branch range restrictions.  Output
14100         the thunk immediately before the thunked-to function.
14101         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14102         .thumb_func if a thunk is being generated.  Emit .code 16 along
14103         with .thumb_func if a thunk is not being generated.
14104
14105         2003-11-15  Nicolas Pitre <nico@cam.org>
14106
14107         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14108         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14109         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14110         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14111         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14112
14113         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14114             Ian Lance Taylor  <ian@wasabisystems.com>
14115
14116         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14117         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14118
14119         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14120
14121         * config/arm/arm.md (insn):  Add new V6 instruction names.
14122         (generic_sched):  New attr.
14123         * config/arm/arm-generic.md:  Use generic_sched here.
14124         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14125         stages of pipeline.  Adjust latency counts accordingly.
14126         * config/arm/arm1136jfs.md:  New file.
14127
14128         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14129
14130         * config/arm/arm.h (processor_type): New enumeration type.
14131         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14132         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14133         (CPP_CPU_ARCH_SPEC): Likewise.
14134         * config/arm/arm.c (arm_tune): New variable.
14135         (all_cores): Use cores.def.
14136         (all_architectures): Add representative processor.
14137         (arm_override_options): Restructure way in which tuning
14138         information is deduced.
14139         * arm.md: Update "insn" and "type" attributes throughout.
14140         (insn): New attribute.
14141         (type): Compute "mult" from "insn" attribute.  Add load2,
14142         load3, load4 alternatives.
14143         (arm automaton): Move to arm-generic.md.
14144         * config/arm/arm-cores.def: New file.
14145         * config/arm/arm-generic.md: Likewise.
14146         * config/arm/arm1026ejs.md: Likewise.
14147
14148 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14149
14150         * doc/invoke.texi (SPARC options): Remove -mflat and
14151         all -mxxx (xxx:chip) options.
14152         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14153         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14154         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14155         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14156         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14157         * config/sparc/sparc.c: Likewise.
14158         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14159         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14160         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14161         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14162         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14163         (sparc_flat_must_save_register_p): Likewise.
14164         (sparc_flat_compute_frame_size): Likewise.
14165         (sparc_flat_save_restore): Likewise.
14166         (sparc_flat_function_prologue): Likewise.
14167         (sparc_flat_function_epilogue): Likewise.
14168         (sparc_flat_epilogue_delay_slots): Likewise.
14169         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14170         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14171         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14172         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14173         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14174         (CONDITIONAL_REGISTER_USAGE): Likewise.
14175         (FRAME_POINTER_REQUIRED): Likewise.
14176         (INITIAL_ELIMINATION_OFFSET): Likewise.
14177         (BASE_RETURN_VALUE_REG): Likewise.
14178         (BASE_OUTGOING_VALUE_REG): Likewise.
14179         (BASE_PASSING_ARG_REG): Likewise.
14180         (BASE_INCOMING_ARG_REG): Likewise.
14181         (INCOMING_REGNO): Likewise.
14182         (OUTGOING_REGNO): Likewise.
14183         (LOCAL_REGNO): Likewise.
14184         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14185         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14186         (EPILOGUE_USES): Likewise.
14187         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14188         ("flat" attribute): Delete.
14189         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14190         handling.
14191         (call followed by jump define_peephole's): Delete.
14192         (exception_receiver): Likewise.
14193         (builtin_setjmp_receiver): Likewise.
14194         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14195
14196 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14197
14198         PR c/11658
14199         PR c/13994
14200         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14201         on langhooks.h.
14202         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14203         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14204         Include langhooks.h.  Replace c_common_truthvalue_conversion
14205         with the truthvalue_conversion language hook throughout.
14206         (expr_no_commas): Call default_conversion before save_expr
14207         for the first term of the production 'x ? : y'.
14208         * c-common.c (c_common_truthvalue_conversion): Remove
14209         obsolete block.  Invoke recursively the hook instead
14210         of this function.
14211         * c-convert.c (convert): handle ERROR_MARK_NODE.
14212         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14213         returned by the truthvalue_conversion language hook.
14214         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14215         c_objc_common_truthvalue_conversion.
14216         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14217         New function.
14218         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14219         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14220         c_objc_common_truthvalue_conversion.
14221
14222 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14223
14224         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14225         of gen_rtx.
14226         (LIBCALL_VALUE): Likewise.
14227         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14228         gen_rtx_CC0 instead of gen_rtx.
14229         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14230         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14231         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14232         gen_rtx.
14233         (m68hc11_emit_logical): Likewise.
14234
14235 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14236
14237         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14238         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14239         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14240         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14241         config/mips/mips.md, config/mmix/mmix.c,
14242         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14243         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14244         config/rs6000/altivec.md, config/s390/s390.c,
14245         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14246         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14247         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14248         constants that are readily available.
14249
14250 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14251
14252         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14253         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14254         instead of GEN_INT (0).  Do the same for other constants that
14255         are readily available.
14256
14257 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14258
14259         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14260         gen_rtx.
14261         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14262         instead of gen_rtx.
14263         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14264         gen_rtx.
14265         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14266         gen_rtx_ASHIFT instead of gen_rtx.
14267         (udivmodqi4): Likewise.
14268
14269 2004-02-02  Richard Henderson  <rth@redhat.com>
14270
14271         PR target/13789
14272         * expr.c (store_expr): Use force_operand before emit_move_insn.
14273
14274 2004-02-02  Jeff Law  <law@redhat.com>
14275             Roger Sayle  <roger@eyesopen.com>
14276
14277         * tree.c (commutative_tree_code, associative_tree_code): New
14278         functions.
14279         (iterative_hash_expr): Use commutative_tree_code.
14280         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14281         * fold-const.c (operand_equal_p): Use commutative_tree_code
14282         rather than inlining the commutativity check.
14283         (fold): Likewise.
14284
14285 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14286
14287         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14288         * config/frv/frv-protos.h: Remove the prototype for
14289         frv_function_arg_keep_as_reference.
14290         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14291         Remove.
14292         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14293         * config/stormy16/stormy16.h: Remove the commented-out
14294         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14295
14296 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14297
14298         PR target/13914
14299         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14300         for retaddr_column.
14301
14302 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14303
14304         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14305         gen_rtx.
14306
14307 2004-02-02  Eric Christopher  <echristo@redhat.com>
14308             Zack Weinberg  <zack@codesourcery.com>
14309
14310         * c-opts.c (c_common_handle_option): Add -finput-charset.
14311         * c.opt: Ditto.
14312         * cppcharset.c (one_iso88591_to_utf8): Remove.
14313         (convert_iso88591_utf8): Ditto.
14314         (conversion_tab): Remove 8859-1 converter.
14315         (_cpp_input_to_utf8): Remove.
14316         (_cpp_init_iconv_buffer): Ditto.
14317         (_cpp_close_iconv_buffer): Ditto.
14318         (_cpp_convert_input): New function.
14319         (_cpp_default_encoding): Ditto.
14320         * cpphash.h: Add/remove prototypes for above.
14321         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14322         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14323         for narrow execution and input character sets.
14324         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14325         * doc/cppopts.texi: Document -finput-charset.
14326
14327 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14328
14329         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14330         against FIRST_PSEUDO_REGISTER.
14331
14332 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14333
14334         * doc/invoke.texi (SPARC options): Further improve.
14335
14336 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14337
14338         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14339         config/h8300/h8300.c, config/ip2k/ip2k.md,
14340         config/iq2000/iq2000.c, config/mips/mips.c,
14341         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14342         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14343         config/v850/v850.md: Fix indentation.
14344
14345 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14346
14347         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14348         arguments on a 16-byte boundary in the parameter array if ARCH64.
14349         Split handling of TFmode.
14350
14351 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14352
14353         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14354         Don't test CONSTANT_P (x).
14355         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14356         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14357         Fix misindentation.
14358
14359 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14360
14361         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14362
14363 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14364
14365         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14366         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14367         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14368         config/iq2000/iq2000.c, config/m32r/m32r.c,
14369         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14370         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14371         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14372         config/stormy16/stormy16.c, config/v850/v850.md,
14373         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14374
14375 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14376
14377         * config/mcore/mcore.c (block_move_sequence): Replace
14378         gen_rtx_CONST_INT with GEN_INT.
14379
14380 2004-02-02  Jan Hubicka  <jh@suse.cz>
14381
14382         * alias.c (record_set): Use hard_regno_nregs.
14383         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14384         * builtins.c (apply_args_size): Likewise.
14385         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14386         mark_set_regs, add_stored_regs, mark_referenced_regs,
14387         insert_restore, insert_save, insert_one_insn): Likewise.
14388         * cfgcleanup.c: Include regs.h
14389         (mark_effect, mentions_nonequal_regs): Likewise.
14390         * cfgrtl.c (mark_killed_regs): Likewise
14391         * combine.c (update_table_tick, record_value_for_reg,
14392         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14393         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14394         reg_bitfield_target_p, distribute_notes): Likewise.
14395         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14396         exp_equiv_p, cse_insn): Likewise.
14397         * cselib.c (cselib_lookup): Likewise.
14398         (cselib_invalidate_regno, cselib_record_set): Likewise.
14399         * df.c (df_ref_record): Likewise.
14400         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14401         Likewise.
14402         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14403         count_or_remove_death_notes_bb): Likewise.
14404         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14405         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14406         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14407         * integrate.c (mark_stores): Likewise.
14408         * jump.c (delete_prior_computation): Likewise.
14409         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14410         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14411         * loop.c (LOOP_REGNO_NREGS): Likewise.
14412         * postreload.c (reload_combine, reload_combine_note_store,
14413         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14414         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14415         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14416         try_recolor_web, insert_coalesced_conflicts, check_colors,
14417         break_precolored_alias): Likewise.
14418         * ra-debug.c: Include regs.h
14419         (ra_print_rtx_object): Likewise.
14420         * ra-rewrite (choose_spill_colors): Likewise.
14421         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14422         * ra.c (init_ra): Likewise.
14423         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14424         peep2_find_free_register): Likewise.
14425         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14426         * regclass.c (hard_regno_nregs): New array.
14427         (init_reg_modes_once): Initialize it.
14428         (choose_hard_reg_mode): Use it.
14429         (record_reg_classes): Likewise.
14430         * regmove.c (mark_flags_life_zones): Likewise.
14431         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14432         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14433         copy_value, maybe_mode_change, find_oldest_value_reg,
14434         copyprop_hardreg_forward_1):
14435         * regs.h (hard_regno_nregs): Declare.
14436         * realod.c (reload_inner_reg_of_subreg): Use it.
14437         (push_reload, combine_reloads, find_dummy_reload,
14438         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14439         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14440         reload_adjust_reg_for_mode): Likewise.
14441         * reload1.c (compute_use_by_pseudos, count_pseudo,
14442         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14443         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14444         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14445         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14446         delete_output_reload): Likewise.
14447         * resource.c (update_live_status, mark_referenced_resources,
14448         mark_set_resources, mark_target_live_regs): Likewise.
14449         * rtlanal.c:  Include regs.h
14450         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14451         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14452         subreg_regno_offset, subreg_offset_representable_p,
14453         hoist_test_store): Likewise.
14454         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14455         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14456         * stmt.c: Include regs.h
14457         (decl_conflicts_with_clobbers_p): Likewise.
14458         * varasm.c (make_decl_rtl): Likewise.
14459         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14460
14461 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14462
14463         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14464         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14465         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14466         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14467         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14468         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14469         config/iq2000/iq2000.h, config/m32r/m32r.c,
14470         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14471         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14472         config/mcore/mcore.c, config/mcore/mcore.h,
14473         config/mcore/mcore.md, config/mips/mips.c,
14474         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14475         config/rs6000/rs6000.c, config/s390/s390.c,
14476         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14477         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14478         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14479
14480 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14481
14482         * config/h8300/h8300.md (two peephole2's): New.
14483
14484 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14485
14486         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14487         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14488         (ASM_CPU_SPEC): Likewise
14489         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14490         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14491
14492 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14493
14494         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14495         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14496         (expand_builtin): Always call expand_builtin_pow.
14497
14498 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14499
14500         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14501         BUILT_IN_SIGNBITL): New GCC builtins.
14502         * builtins.c (expand_builtin_signbit): New function to RTL expand
14503         calls to signbit, signbitf and signbitl as inline intrinsics.
14504         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14505         (fold_builtin_signbit): New function to perform constant folding
14506         of signbit, signbitf and signbitl.
14507         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14508
14509         * doc/extend.texi: Document new signbit{,f,l} builtins.
14510
14511 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14512
14513         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14514
14515 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14516
14517         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14518         "mips_const_double_ok" and "simple_memory_operand", which were
14519         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14520         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14521         for removal of simple_memory_operand.
14522
14523 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14524
14525         * config/c4x/c4x.md: Use GEN_INT instead of
14526         gen_rtx (CONST_INT, ...).
14527
14528 2004-01-31  Richard Henderson  <rth@redhat.com>
14529
14530         * varasm.c (output_constant_pool): Don't zap the pool.
14531
14532 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14533
14534         * genrecog.c (decision_type): Add DT_const_int.
14535         (write_cond) [DT_const_int]: Print a comparison against small
14536         constant.
14537         (write_node): Simplify comparisons against small constants
14538         before printing tests.
14539
14540 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14541
14542         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14543         instead of gen_rtx_CONST_INT.
14544
14545 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14546
14547         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14548         instead of gen_rtx_CONST_INT.
14549
14550 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14551
14552         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14553         hook_bool_CUMULATIVE_ARGS_false.
14554         * targhooks.c (default_strict_argument_naming): Rename to
14555         hook_bool_CUMULATIVE_ARGS_false.
14556         * targhooks.h: Update the prototype for
14557         default_strict_argument_naming.
14558
14559 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14560
14561         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14562         * config/sh/sh.h: Likewise.
14563         * config/sh/sh.md: Likewise.
14564
14565 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14566
14567         * doc/invoke.texi (SPARC options): Restructure and update.
14568
14569 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14570
14571         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14572         STRICT_ARGUMENT_NAMING): Poison.
14573         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14574         hook_bool_tree_false.
14575         * targhooks.c (default_promote_function_args): Remove.
14576         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14577         Don't check incoming.
14578         (default_strict_argument_naming): Don't use
14579         STRICT_ARGUMENT_NAMING.
14580         * targhooks.h: Remove the prototype for
14581         default_promote_function_args.
14582
14583 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14584
14585         * config/i386/i386-protos.h: Remove the prototype for
14586         ix86_setup_incoming_varargs.
14587         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14588         (ix86_setup_incoming_varargs): Make it static.
14589         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14590
14591 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14592
14593         * alloc-pool.c: Fix comment typos.
14594         * builtin-types.def: Likewise.
14595         * builtins.def: Likewise.
14596         * c-pretty-print.c: Likewise.
14597         * df.h: Likewise.
14598         * reload1.c: Likewise.
14599
14600 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14601
14602         * doc/invoke.texi: Follow spelling conventions.
14603         * doc/tm.texi: Likewise.
14604
14605 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14606
14607         * doc/install.texi: Fix typos.
14608         * doc/invoke.texi: Likewise.
14609
14610 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14611
14612         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14613         registers as pointers.
14614         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14615
14616 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14617
14618         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14619         and restore it to gen_lowpart_general on exit.
14620         (gen_lowpart_for_combine): Adjust all callers to go through
14621         gen_lowpart.
14622         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14623         and restore it to gen_lowpart_general on exit.
14624         (gen_lowpart_if_possible): Adjust all callers to go through
14625         gen_lowpart.
14626         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14627         (gen_lowpart): Declare as pointer to function, initialized to
14628         gen_lowpart_general.
14629         * rtl.h (gen_lowpart): Declare as pointer to function.
14630
14631 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14632
14633         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14634         * calls.c: Likewise.
14635         * emit-rtl.c: Likewise.
14636         * function.c: Likewise.
14637         * reload1.c: Likewise.
14638         * config/i386/cygming.h: Likewise.
14639         * config/i386/i386.c: Likewise.
14640         * config/i386/winnt.c: Likewise.
14641
14642 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14643
14644         PR bootstrap/9249
14645         * doc/install.texi: document --enable-__cxa_atexit option.
14646         * configure.ac: Disable __cxa_atexit if not supported.
14647         * configure: Regenerate.
14648
14649 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14650
14651         * ggc-zone.c (ggc_free): New function.
14652
14653 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14654
14655         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14656         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14657         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14658         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14659         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14660         config/alpha/alpha.c, config/alpha/alpha.h,
14661         config/alpha/alpha.md, config/alpha/unicosmk.h,
14662         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14663         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14664         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14665         config/frv/frvend.c, config/i386/cygming.h,
14666         config/i386/djgpp.h, config/i386/emmintrin.h,
14667         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14668         config/i386/i386-protos.h, config/i386/openbsd.h,
14669         config/i386/winnt.c, config/i386/xm-mingw32.h,
14670         config/i386/xmmintrin.h, config/ia64/ia64.md,
14671         config/iq2000/iq2000.md, config/m32r/m32r.md,
14672         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14673         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14674         config/mips/iris5gas.h, config/mips/iris6.h,
14675         config/mips/iris6gas.h, config/mips/linux.h,
14676         config/mips/mips.md, config/mips/netbsd.h,
14677         config/mips/openbsd.h, config/mips/windiss.h,
14678         config/pa/fptr.c, config/rs6000/aix.h,
14679         config/rs6000/altivec.h, config/rs6000/darwin.h,
14680         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14681         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14682         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14683         config/sparc/sol2.h: Update copyright.
14684
14685 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14686
14687         * Makefile.in (abs_docdir, abs_srcdir): Define.
14688         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14689
14690 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14691
14692         * genconfig.c (main): Have CC0_P check its operand even on a
14693         target without cc0.
14694
14695 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14696
14697         * config/alpha/alpha.c: Remove mentions of deprecates macros
14698         in comments, remove some target-independent comments about target
14699         macros, and/or add minimal function comments for target hook
14700         implementations.
14701         * config/avr/avr.c: Likewise.
14702         * config/ia64/ia64.h: Likewise.
14703         * config/ip2k/ip2k.c: Likewise.
14704         * config/iq2000/iq2000.c: Likewise.
14705         * config/m32r/m32r.h: Likewise.
14706         * config/m68hc11/m68hc11.c: Likewise.
14707         * config/mcore/mcore.c: Likewise.
14708         * config/mmix/mmix.c: Likewise.
14709         * config/mn10300/mn10300.c: Likewise.
14710         * config/pa/pa.c: Likewise.
14711         * config/pdp11/pdp11.c: Likewise.
14712         * config/rs6000/rs6000.h: Likewise.
14713         * config/sh/sh.c: Likewise.
14714         * config/sh/sh.h: Likewise.
14715         * config/sparc/sparc.c: Likewise.
14716         * config/sparc/sparc.h: Likewise.
14717         * config/stormy16/stormy16.c: Likewise.
14718         * config/xtensa/xtensa.c: Likewise.
14719
14720 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14721
14722         PR optimization/12147
14723         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14724         RELOAD_FOR_OPADDR_ADDR.
14725         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14726         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14727
14728 2004-01-30  Jan Hubicka  <jh@suse.cz>
14729
14730         * reload.c (get_secondary_mem): Fix updating of
14731         secondary_memlocs_elim_used.
14732
14733 2004-01-30  Richard Henderson  <rth@redhat.com>
14734
14735         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14736         (MAX_RTX_HASH_TABLE): Remove.
14737         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14738         (first_pool, last_pool, pool_offset): Remove.
14739         (struct rtx_constant_pool): Split out from ...
14740         (struct varasm_status): ... here.  Reference one via pointer.
14741         (struct constant_descriptor_rtx): Merge struct pool_constant.
14742         (SYMHASH): Remove.
14743         (decode_rtx_const): Remove.
14744         (const_hash_rtx, compare_constant_rtx): Remove.
14745         (record_constant_rtx): Remove.
14746         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14747         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14748         (const_rtx_hash_1, const_rtx_hash): New.
14749         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14750         (simplify_subtraction): Use simplify_rtx.
14751         (force_const_mem): Rewrite to use new data structures.
14752         (find_pool_constant): Likewise.
14753         (get_pool_constant, get_pool_constant_mark,
14754         get_pool_constant_for_function, get_pool_mode,
14755         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14756         (output_constant_pool_2): Split out from output_constant_pool.
14757         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14758         (output_constant_pool): Zap entire pool datastructure.
14759         (mark_constant): Use new pool datastructures.
14760         (mark_constants): Use for_each_rtx.
14761         (mark_constant_pool): Use new pool datastructures.
14762
14763 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14764
14765         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14766         Copy operands[1] to pseudo for simplify_gen_subreg.
14767
14768 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14769
14770         * gcse.c (bypass_block): Fix a typo in the previous check-in
14771         to the file.
14772
14773 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14774
14775         * toplev.c: Include alloc-pool.h.
14776         * Makefile.in (toplev.c): Update dependencies.
14777
14778 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14779
14780         * combine.c (simplify_shift_const, case XOR): Be careful when
14781         commuting XOR with ASHIFTRT.
14782
14783 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14784             Eric Botcazou  <ebotcazou@libertysurf.fr>
14785
14786         * config/sparc/sparc-protos.h: Remove the prototype for
14787         sparc_builtin_saveregs.
14788         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14789         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14790         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14791         (TARGET_STRUCT_VALUE_RTX): Likewise.
14792         (TARGET_RETURN_IN_MEMORY): Likewise.
14793         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14794         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14795         (sparc_builtin_saveregs): Make it static.
14796         (sparc_promote_prototypes): New.
14797         (sparc_struct_value_rtx): Likewise.
14798         (sparc_return_in_memory): Likewise.
14799         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14800         (PROMOTE_FUNCTION_RETURN): Likewise.
14801         (RETURN_IN_MEMORY): Likewise.
14802         (STRUCT_VALUE): Likewise.
14803         (STRUCT_VALUE_INCOMING): Likewise.
14804         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14805         (STRICT_ARGUMENT_NAMING): Likewise.
14806         (PROMOTE_PROTOTYPES): Likewise.
14807
14808         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14809
14810 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14811
14812         PR c/12818
14813         * varasm.c (const_hash_1) <STRING_CST>: Use the
14814         address to compute the hash value if flag_writable_strings.
14815         (compare_constant) <STRING_CST>: Compare the addresses
14816         if flag_writable_strings.
14817         (build_constant_desc): Do not copy the expression for a
14818         STRING_CST if flag_writable_strings.
14819
14820 2004-01-30  Jan Hubicka  <jh@suse.cz>
14821
14822         * alloc-pool.c: Include hashtab.h
14823         (alloc_pool_descriptor): New structure
14824         (alloc_pool_hash): New global variable.
14825         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14826         (create_alloc_pool): Update statistics.
14827         (free_alloc_pool): Likewise.
14828         (pool_alloc): Likewise.
14829         (output_info): New structure
14830         (print_statistics, dump_alloc_pool_statistics): New function.
14831         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14832         (dump_alloc_pool_statistics): Declare.
14833         * toplev.c (finalize):  Dump statistics.
14834
14835         * reload.c (secondary_memlocs_elim_used): New static variable.
14836         (get_secondary_mem): Update it.
14837         (find_reloads): Use it.
14838
14839 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14840
14841         * toplev.c: Fix broken checkin of 2003-12-30, again.
14842
14843 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14844
14845         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14846         s390*-*-* targets by specifying a 'nop' insn.
14847         * configure: Regenerate.
14848
14849 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14850
14851         PR target/11475
14852         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14853
14854 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14855
14856         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14857         of addr when creating MEM copy.
14858
14859 2004-01-29  Devang Patel  <dpatel@apple.com>
14860
14861         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14862
14863 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14864
14865         PR inline-asm/6162
14866         * reload.c (find_reloads): Only support one pair of commutative
14867         operands.
14868
14869 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14870
14871         PR java/13824
14872         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14873         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14874         recursion.
14875
14876 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14877
14878         * config/frv/frv.c: Don't mention deprecated macros in
14879         comments.  Remove some target-independent comments about
14880         target macros.
14881         * config/frv/frv.h: Likewise.
14882
14883 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14884
14885         * cfghooks.c (split_block): Set probability and count of the
14886         new edge.
14887
14888 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14889
14890         * dwarf2out.c (struct die_struct): Added field decl_id.
14891         (decl_die_table): Changed to hash table.
14892         (decl_die_table_allocated): Deleted.
14893         (decl_die_table_in_use): Deleted.
14894         (DECL_DIE_TABLE_INCREMENT): Deleted.
14895         (decl_die_table_hash): New function.
14896         (decl_die_table_eq): New function.
14897         (lookup_decl_die): Lookup in a hash table.
14898         (equate_decl_number_to_die): Insert into a hash table.
14899         (dwarf2out_init): Init hash table decl_die_table.
14900
14901 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14902
14903         PR optimization/13424
14904         * expr.c (store_constructor): Revert 2003-12-03 change.
14905
14906         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14907         expected before returning early.  Avoid sharing RTL if they
14908         need to be changed.
14909
14910         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14911         handling so that memory attributes are preserved.  Don't call
14912         ix86_set_move_mem_attrs.
14913         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14914         (ix86_expand_clrstr): Rename src argument to
14915         dst.  Rework rep_stos and strset handling so that memory attributes
14916         are preserved.
14917         (ix86_expand_strlen): Pass src argument to
14918         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14919         memory attributes are preserved.
14920         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14921         change_address instead of gen_rtx_MEM.
14922         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14923         expanders.
14924         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14925         strmovqi, strmovqi_rex64): Remove.
14926         (rep_mov*, strmov*): Prefix insn names with *.
14927         (strset, strset_singleop, rep_stos): New expanders.
14928         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14929         strsetqi, strsetqi_rex64): Remove.
14930         (rep_stos*, strset*): Prefix insn names with *.
14931         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14932         to SImode.
14933         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14934         are preserved.
14935         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14936         Prefix insn names with *.
14937         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14938         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14939         (strlenqi_1): New expander.
14940         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14941
14942 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14943
14944         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14945         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14946         verify_flow_info): Declaration removed.
14947         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14948         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14949         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14950         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14951         instead of delete_block.
14952         * cfghooks.c: Include timevar.h and toplev.h.
14953         (cfg_hooks): Define here.
14954         (verify_flow_info, dump_bb): Moved from cfg.c.
14955         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14956         split_block, split_block_after_labels, move_block_after,
14957         delete_basic_block, split_edge, create_basic_block,
14958         create_empty_bb, can_merge_blocks_p, merge_blocks,
14959         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14960         New functions.
14961         * cfghooks.h (struct cfg_hooks): Added fields name,
14962         make_forwarder_block, tidy_fallthru_edge and
14963         move_block_after. Changed type of verify_flow_info, dump_bb,
14964         split_block fields. Renamed cfgh_split_edge and delete_block
14965         fields.
14966         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14967         split_block, delete_block, split_edge, create_basic_block,
14968         can_merge_blocks_p, merge_blocks): Macros removed.
14969         (cfg_hooks): Do not export.
14970         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14971         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14972         move_block_after, delete_basic_block, split_edge, create_basic_block,
14973         create_empty_bb, can_merge_blocks_p, merge_blocks,
14974         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14975         Declare.
14976         (cfg_layout_rtl_cfg_hooks): Declare.
14977         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14978         New functions.
14979         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14980         (redirect_edge_with_latch_update): Removed.
14981         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14982         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14983         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14984         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14985         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14986         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14987         cfghooks.c.
14988         (rtl_create_basic_block): Coding style fix.
14989         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14990         rtl_make_forwarder_block): New functions.
14991         (update_cfg_after_block_merging): Removed.
14992         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14993         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14994         to dump_bb.
14995         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14996         find_if_case_2): Don't update dominators.
14997         * timevar.def (TV_CFG_VERIFY): New.
14998         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14999         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15000         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15001         (remove_bbs): Don't call remove_bbs.
15002         (create_preheader): Use make_forwarder_block.
15003         (mfb_keep_just, mfb_update_loops): New static functions.
15004
15005 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15006
15007         * config/avr/avr.h: Remove target-independent comments about
15008         target macros.
15009
15010 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15011
15012         * timevar.c (timevar_print): Mention when checking is enabled.
15013
15014 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15015
15016         * c-lex.c (c_lex): Rename to...
15017         (c_lex_with_flags): Add new parameter to get CPP flags.
15018         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15019         * c-pragma.h (c_lex_with_flags): Declare.
15020
15021 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15022
15023         * config/mcore/mcore.c (mcore_external_libcall): Add a
15024         comment.
15025         (mcore_return_in_memory): Likewise.
15026
15027 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15028
15029         * config/mcore/mcore-protos.h: Remove the prototype for
15030         mcore_setup_incoming_varargs.
15031         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15032         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15033         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15034         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15035         (TARGET_STRUCT_VALUE_RTX): Likewise.
15036         (TARGET_RETURN_IN_MEMORY): Likewise.
15037         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15038         (mcore_setup_incoming_varargs): Make it static.  Receive the
15039         first argument by reference.  Add argument second_time.
15040         (mcore_external_libcall): New.
15041         (mcore_return_in_memory): Likewise.
15042         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15043         (PROMOTE_FUNCTION_RETURN): Likewise.
15044         (STRUCT_VALUE): Likewise.
15045         (RETURN_IN_MEMORY): Likewise.
15046         (SETUP_INCOMING_VARARGS): Likewise.
15047         (PROMOTE_PROTOTYPES): Likewise.
15048         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15049
15050 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15051
15052         * config/m32r/m32r-protos.h: Remove the prototype for
15053         m32r_setup_incoming_varargs.
15054         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15055         (TARGET_STRUCT_VALUE_RTX): Likewise.
15056         (TARGET_RETURN_IN_MEMORY): Likewise.
15057         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15058         (m32r_return_in_memory): New.
15059         (m32r_setup_incoming_varargs): Make it static.
15060         * config/m32r/m32r.h: Remove #undef of
15061         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15062         definitions of PROMOTE_FUNCTION_ARGS and
15063         PROMOTE_FUNCTION_RETURN.
15064         (PROMOTE_PROTOTYPES): Remove.
15065         (RETURN_IN_MEMORY): Likewise.
15066         (STRUCT_VALUE): Likewise.
15067
15068 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15069
15070         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15071         (TARGET_STRUCT_VALUE_RTX): Likewise.
15072         (m68k_struct_value_rtx): Likewise.
15073         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15074         STRUCT_VALUE_REGNUM.
15075         (PROMOTE_PROTOTYPES): Remove.
15076         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15077         STRUCT_VALUE_REGNUM.
15078         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15079         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15080
15081 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15082
15083         * config/stormy16/stormy16.c
15084         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15085         TARGET_BUILD_BUILTIN_VA_LIST.
15086
15087 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15088
15089         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15090         (TARGET_STRUCT_VALUE_RTX): Likewise.
15091         (TARGET_RETURN_IN_MEMORY): Likewise.
15092         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15093         (v850_return_in_memory): Likewise.
15094         (v850_setup_incoming_varargs): Likewise.
15095         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15096         (SETUP_INCOMING_VARARGS): Likewise.
15097         (RETURN_IN_MEMORY): Likewise.
15098         (STRUCT_VALUE): Likewise.
15099
15100 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15101
15102         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15103         (fr30_setup_incoming_varargs): Don't use
15104         STRICT_ARGUMENT_NAMING.
15105         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15106         (STRICT_ARGUMENT_NAMING): Likewise.
15107
15108 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15109
15110         * config/frv/frv-protos.h: Remove the prototype for
15111         frv_expand_builtin_saveregs.
15112         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15113         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15114         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15115         STRUCT_VALUE_REGNUM.
15116         (frv_expand_builtin_saveregs): Make it static.
15117         (frv_struct_value_rtx): New.
15118         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15119
15120 2004-01-29  Jan Hubicka  <jh@suse.cz>
15121
15122         PR c++/12850
15123         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15124         initial pointers.
15125         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15126         for functions that will be only inlined.
15127         (cgraph_mark_function_to_output): Likewise.
15128         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15129         do not clear function body.
15130         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15131         (tree_rest_of_compilation): Reorganize the logic releasing function
15132         body to use callgraph datastructure.
15133
15134 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15135
15136         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15137         to register_operand.
15138
15139 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15140
15141         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15142         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15143         match_operand expressions so that all match_dups appear
15144         lexically after their corresponding match_operands.
15145
15146 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15147
15148         * config/h8300/h8300.c (WORD_REG_USED): Use
15149         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15150         (compute_saved_regs): Likewise.
15151         (h8300_expand_prologue): Likewise.  Allocate locals after
15152         saving registers.
15153         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15154         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15155         registers.
15156         (h8300_initial_elimination_offset): Adjust for the new frame
15157         layout, which swaps flips the order of locals and saved
15158         registers.
15159         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15160         (HARD_FRAME_POINTER_REGNUM): New.
15161         (ELIMINABLE_REGS): Add an elimination rule from
15162         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15163         (REGISTER_NAMES): Add fp.
15164         * config/h8300/h8300.md (FP_REG): Change to 11.
15165         (HFP_REG): New.
15166
15167 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15168
15169         * genrecog.c (write_node): Remove a useless local variable.
15170
15171 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15172
15173         * Makefile.in (options.c options.h): Use stamp file s-options to
15174         avoid unnecessary rebuilds.
15175         (options.o): New target listing dependencies.
15176         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15177         (STAGESTUFF): Add s-gtyp-gen.
15178
15179 2004-01-28  Richard Henderson  <rth@redhat.com>
15180
15181         * ggc.h (ggc_free): Declare.
15182         * ggc-common.c (ggc_realloc): Use it.
15183         * ggc-page.c: Remove lots of inline markers.
15184         (globals): Add free_object_list.
15185         (ggc_alloc): Tidy.
15186         (ggc_free, validate_free_objects): New.
15187         (poison_pages): Provide default.
15188         (ggc_collect): Call validate_free_objects; emit markers to
15189         the debug file.
15190
15191 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15192             Jim Wilson  <wilson@specifixinc.com>
15193
15194         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15195         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15196         scratch pointer.
15197         (ia64_secondary_reload_class): Delete case GR_REGS.
15198         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15199         Do not allocate a scratch register.
15200         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15201
15202 2004-01-28  Jan Hubicka  <jh@suse.cz>
15203
15204         * gcse.c (bypass_block): Prevent edges to be unified when we are
15205         about to emit compenstation code.
15206
15207 2004-01-28  Nick Clifton  <nickc@redhat.com>
15208
15209         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15210         the setcwx insn into a register.
15211
15212 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15213
15214         * config/fp-bit.c (pack_d): When using paired doubles to implement
15215         a long double, round the high part separately.
15216         (unpack_d): Fix the case in which the high part is a power of two
15217         and the low part is a nonzero value of the opposite sign.
15218
15219 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15220
15221         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15222         (TARGET_STRUCT_VALUE_RTX): Likewise.
15223         (c4x_external_libcall): Likewise.
15224         (c4x_struct_value_rtx): Likewise.
15225         * config/c4x/c4x.h: Remove.
15226         (STRUCT_VALUE_REGNUM): Likewise.
15227         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15228
15229 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15230
15231         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15232         (TARGET_STRUCT_VALUE_RTX): Likewise.
15233         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15234         (STRUCT_VALUE): Likewise.
15235         (PROMOTE_PROTOTYPES): Likewise.
15236
15237 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15238
15239         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15240         CONST_INT before using INTVAL.
15241
15242 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15243
15244         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15245         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15246         frame if !TARGET_BACKCHAIN.
15247         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15248         TARGET_BACKCHAIN.
15249         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15250
15251 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15252
15253         * ia64.c (ia64_function_arg): When placing HFAs in integer
15254         registers, do not special case the mode used for complex
15255         types.  Do not advance int_regs until the current register
15256         is full.
15257
15258 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15259
15260         PR target/7297
15261         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15262
15263 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15264
15265         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15266         slow, unaligned loads and stores while debugging.  Fix formatting.
15267
15268 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15269
15270         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15271         of computing wmode.
15272         (restore_stack_nonlocal): Same.
15273
15274 2004-01-27  Devang Patel <dpatel@apple.com>
15275
15276         * Makefile.in (dwarf2out.o): Depend on input.h
15277         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15278         imported_module_or_decl.
15279         (xcoff_debug_hooks): Same.
15280         * sdbout.c (sdb_debug_hooks): Same.
15281         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15282         * debug.c (do_nothing_debug_hooks): Same.
15283         (debug_nothing_tree_tree): New function.
15284         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15285         * dwarf2out.c: Include input.h.
15286         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15287         (remove_child_TAG): New function.
15288         (dwarf_tag_name): Handle DW_TAG_imported_module.
15289         (gen_subprogram_die): Equate decl number to declaration die. Do not
15290         remove all children dies while reusing declaration die for definition.
15291         Instead, selectively remove only formal parameters.
15292         (gen_variable_die): Equate variable decl to declaration die.
15293         (gen_field_die): Equate field decl to line number.
15294         (force_namespace_die): Replace it with ...
15295         (force_decl_die): ... this.
15296         (force_type_die): New function.
15297         (setup_namespace_context): Replace use of force_namespace_die() with
15298         force_decl_die().
15299         (gen_namespace_die): Same.
15300         (dwarf2out_imported_module_or_decl): New function.
15301
15302 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15303
15304         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15305         on CQImode and CHImode incoming arguments in register a7.
15306         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15307         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15308         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15309         xtensa_copy_incoming_a7 before reload.
15310
15311 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15312
15313         * coverage.c (get_coverage_counts): Give a different message
15314         if flag_guess_branch_prob is set.
15315         * predict.c (counts_to_freqs): Return an int.
15316         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15317         calculate estimates.
15318
15319 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15320
15321         * config/iq2000/iq2000-protos.h: Remove the prototype for
15322         iq2000_setup_incoming_varargs.
15323         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15324         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15325         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15326         (TARGET_STRUCT_VALUE_RTX): Likewise.
15327         (TARGET_RETURN_IN_MEMORY): Likewise.
15328         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15329         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15330         (iq2000_return_in_memory): Likewise.
15331         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15332         first argument by reference.
15333         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15334         (PROMOTE_FUNCTION_RETURN): Likewise.
15335         (PROMOTE_PROTOTYPES): Likewise.
15336         (RETURN_IN_MEMORY): Likewise.
15337         (STRUCT_VALUE): Likewise.
15338         (SETUP_INCOMING_VARARGS): Likewise.
15339         (STRICT_ARGUMENT_NAMING): Likewise.
15340
15341 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15342
15343         * fixinc/fixinc.c (test_test): Initialize res.
15344         (start_flexer): Initialize pz_cmd_save.
15345
15346 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15347
15348         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15349         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15350
15351 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15352
15353         PR 7198
15354         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15355         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15356         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15357         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15358         Possibly rename pattern for consistency.
15359         Remove ??? comments suggesting that this be done.
15360         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15361         New patterns.
15362         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15363         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15364         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15365         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15366         Update to match.
15367
15368 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15369
15370         * config/arm/arm.c (output_return_instruction): Only restore IP
15371         into SP if frame_pointer_needed.
15372
15373 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15374
15375         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15376         for SCmode and DCmode if ARCH32.
15377         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15378         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15379         if ARCH32.
15380         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15381         if ARCH32.
15382         (BASE_OUTGOING_VALUE_REG): Likewise.
15383
15384 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15385
15386         PR target/10904
15387         PR target/13058
15388         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15389         Forbid mode changes from SImode for lower FP regs if ARCH64.
15390
15391 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15392
15393         * Makefile.in (bt-load.o): Depend on except.h.
15394         * bt-load.c (except.h): #include.
15395         (compute_defs_uses_and_gen): If insn at end of BB can throw
15396         within this function, consider registers used by it unavailable for
15397         btr migration.
15398         (move_btr_def): If insn at end of BB can throw, insert before rather
15399         than after.
15400
15401         * flags.h (flag_btr_bb_exclusive): Declare.
15402         * toplev.c (flag_btr_bb_exclusive): New variable.
15403         (f_options): Add btr-bb-exclusive.
15404         * bt-load.c (augment_live_range): Restore old behaviour if
15405         flag_btr_bb_exclusive is set.
15406         * common.opt: Add entry for -fbtr-bb-exclusive.
15407         * opts.c (common_handle_options): Same.
15408         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15409
15410         * bt-load.c (btrs_live_at_end): New variable.
15411         (compute_defs_uses_and_gen): Compute its pointed-to array.
15412         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15413         (augment_live_range): When augmenting with a new dominator,
15414         use only its btrs_live_at_end set, but also add in the full set
15415         of the old dominator.
15416         (btr_def_live_range): Use btrs_live_at_end.
15417         (move_btr_def): Set other_btr_uses_before_def, and move new set
15418         to the end of the basic block, if appropriate.
15419         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15420
15421         * bt-load.c (basic_block_freq): Remove outdated comment.
15422
15423 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15424
15425         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15426         (PREDICATE_CODES): Remove duplicate.
15427         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15428         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15429         (MASK_PROFILE_KERNEL): Adjust define.
15430
15431 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15432
15433         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15434         of long string literals from 32 bytes to sizeof (void *) when !-Os
15435         and to 1 with -Os.
15436
15437 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15438
15439         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15440         constant addresses in the normal mode.
15441
15442 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15443
15444         * system.h (CHAR_BITFIELD): Delete.
15445         (BOOL_BITFIELD): New.
15446         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15447         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15448
15449 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15450
15451         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15452         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15453         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15454         (TARGET_STRUCT_VALUE_RTX): Likewise.
15455         (TARGET_RETURN_IN_MEMORY): Likewise.
15456         (arc_return_in_memory): Likewise.
15457         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15458         (PROMOTE_FUNCTION_RETURN): Likewise.
15459         (RETURN_IN_MEMORY): Likewise.
15460         (STRUCT_VALUE): Likewise.
15461
15462 2004-01-26  Richard Henderson  <rth@redhat.com>
15463
15464         * c-parse.in (extension): Use itype.
15465         (SAVE_EXT_FLAGS): Don't allocate a tree.
15466         (RESTORE_EXT_FLAGS): Don't read a tree.
15467
15468 2004-01-26  Jan Hubicka  <jh@suse.cz>
15469
15470         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15471         to datastructure to be recycled.
15472
15473 2004-01-25  Jan Hubicka  <jh@suse.cz>
15474
15475         * genextract.c (main): Do not output the memset when not checking.
15476
15477 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15478
15479         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15480         switch statement instead of a chain of if statements.
15481
15482 2004-01-26  Jeff Law  <law@redhat.com>
15483
15484         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15485         acute accents for Petur Runolfsson's entry.
15486
15487 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15488
15489         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15490         (TARGET_RETURN_IN_MEMORY): Likewise.
15491         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15492         (RETURN_IN_MEMORY): Likewise.
15493
15494 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15495
15496          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15497          unaligned load/store into smaller loads and stores.
15498
15499 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15500
15501         * function.c (assign_parms): Do not assign
15502         long long argument to memory in prologue if
15503         is it loaded into register.
15504
15505 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15506
15507          PR middle-end/13779
15508          * expr.c (emit_group_load): split constant
15509          correctly into register components of PARALLEL insn.
15510
15511 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15512
15513         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15514         Use adjust_address_nv directly with appropriate mode.
15515         (restore_stack_nonlocal): Ditto.
15516
15517 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15518
15519         * config/xtensa/xtensa-protos.h: Remove the prototype for
15520         xtensa_builtin_saveregs.
15521         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15522         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15523         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15524         (TARGET_STRUCT_VALUE_RTX): Likewise.
15525         (TARGET_RETURN_IN_MEMORY): Likewise.
15526         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15527         (xtensa_builtin_saveregs): Make it static.
15528         (xtensa_return_in_memory): New.
15529         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15530         (PROMOTE_FUNCTION_RETURN): Likewise.
15531         (PROMOTE_PROTOTYPES): Likewise.
15532         (STRUCT_VALUE): Likewise.
15533         (RETURN_IN_MEMORY): Likewise.
15534         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15535
15536 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15537
15538         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15539         (arm_setup_incoming_varargs): Likewise.
15540         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15541
15542 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15543
15544         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15545         (cris_setup_incoming_varargs): Likewise.
15546         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15547
15548 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15549
15550         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15551         (ns32k_struct_value_rtx): Likewise.
15552         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15553         NS32K_STRUCT_VALUE_REGNUM.
15554
15555 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15556
15557         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15558         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15559         (TARGET_STRUCT_VALUE_RTX): Likewise.
15560         (arm_struct_value_rtx): Likewise.
15561         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15562         (STRUCT_VALUE): Likewise.
15563         (STRUCT_VALUE_REGNUM): Likewise.
15564         (PROMOTE_PROTOTYPES): Likewise.
15565
15566 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15567
15568         * config/ia64/ia64-protos.h: Remove the prototype for
15569         ia64_setup_incoming_varargs and ia64_return_in_memory.
15570         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15571         (TARGET_RETURN_IN_MEMORY): Likewise.
15572         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15573         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15574         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15575         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15576         (ia64_return_in_memory): Make it static.  Change the return
15577         type to bool from int.  Add an argument.
15578         (ia64_struct_value_rtx): New.
15579         * config/ia64/ia64.h: Remove commented-out definitions of
15580         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15581         PROMOTE_PROTOTYPES.
15582         (RETURN_IN_MEMORY): Remove.
15583         (STRUCT_VALUE_REGNUM): Likewise.
15584         (STRICT_ARGUMENT_NAMING): Likewise.
15585
15586 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15587
15588         PR target/13666
15589         * config/sparc/sparc.c (function_arg_union_value): New function.
15590         (function_arg): Use it to deal with unions.
15591         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15592         Replace a conditional statement by a simpler one.
15593
15594 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15595
15596         * config/mips/mips.c (mips16_optimize_gp): Delete.
15597         (mips_reorg): Don't call it.
15598
15599 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15600
15601         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15602         (floatunsqihf2): Remove operand 6.
15603         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15604         fix patterns.
15605         (ldi_conditional, ldf_conditional): Validate operands.
15606
15607 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15608
15609         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15610         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15611
15612 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15613
15614         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15615         memory references if TARGET_EXPOSE_LDP nonzero.
15616
15617 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15618
15619         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15620
15621 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15622
15623         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15624         invalid operand combinations.
15625
15626 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15627
15628         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15629         c4x_legitimate_address_p.  Fix post_modify check.
15630
15631         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15632         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15633
15634 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15635
15636         * config/pa/pa-protos.h: Remove the prototype for
15637         hppa_builtin_saveregs.  Add a prototype for
15638         pa_return_in_memory.
15639         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15640         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15641         (TARGET_STRUCT_VALUE_RTX): Likewise.
15642         (TARGET_RETURN_IN_MEMORY): Likewise.
15643         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15644         (pa_struct_value_rtx): Likewise.
15645         (pa_return_in_memory): Likewise.
15646         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15647         PA_STRUCT_VALUE_REGNUM.
15648         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15649         (EXPAND_BUILTIN_SAVEREGS): Remove.
15650         (PROMOTE_PROTOTYPES): Likewise.
15651         (PROMOTE_FUNCTION_RETURN): Likewise.
15652
15653 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15654
15655         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15656         (TARGET_STRUCT_VALUE_RTX): Likewise.
15657         (vax_struct_value_rtx): Likewise.
15658         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15659         VAX_STRUCT_VALUE_REGNUM.
15660         (PROMOTE_PROTOTYPES): Remove.
15661
15662 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15663
15664         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15665
15666 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15667
15668         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15669         and MIPS64 have HI/LO interlocks.  Update comment.
15670
15671 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15672
15673         * config/stormy16/stormy16-protos.h: Remove the prototype for
15674         xstormy16_setup_incoming_varargs.
15675         * config/stormy16/stormy16.c
15676         (xstormy16_setup_incoming_varargs): Remove.
15677         (xstormy16_return_in_memory): New.
15678         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15679         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15680         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15681         (TARGET_STRUCT_VALUE_RTX): Likewise.
15682         (TARGET_RETURN_IN_MEMORY): Likewise.
15683         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15684         (PROMOTE_FUNCTION_RETURN): Likewise
15685         (PROMOTE_PROTOTYPES): Likewise
15686         (RETURN_IN_MEMORY): Likewise
15687         (STRUCT_VALUE): Likewise
15688         (SETUP_INCOMING_VARARGS): Likewise
15689
15690 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15691
15692         * config/mips/mips.c (mips_offset_within_object_p): New function.
15693         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15694         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15695         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15696
15697 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15698
15699         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15700         (PROMOTE_FUNCTION_RETURN): Likewise.
15701
15702 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15703
15704         * config/mn10300/mn10300-protos.h: Remove the prototype for
15705         mn10300_builtin_saveregs.
15706         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15707         (TARGET_STRUCT_VALUE_RTX): Likewise.
15708         (TARGET_RETURN_IN_MEMORY): Likewise.
15709         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15710         (mn10300_return_in_memory): Likewise.
15711         (mn10300_builtin_saveregs): Make it static.
15712         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15713         (RETURN_IN_MEMORY): Likewise.
15714         (STRUCT_VALUE): Likewise.
15715         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15716
15717 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15718
15719         PR bootstrap/13853
15720         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15721
15722 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15723
15724         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15725         using ccr.
15726
15727 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15728
15729         * config/i860/i860-protos.h: Remove the prototype for
15730         i860_saveregs.
15731         * config/i860/i860.c (i860_saveregs): Make it static.
15732         (i860_struct_value_rtx): New.
15733         (TARGET_STRUCT_VALUE_RTX): Likewise.
15734         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15735         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15736         I860_STRUCT_VALUE_REGNUM.
15737         (EXPAND_BUILTIN_SAVEREGS): Remove.
15738
15739 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15740
15741         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15742         (TARGET_RETURN_IN_MEMORY): Likewise.
15743         (m68hc11_struct_value_rtx): Likewise.
15744         (m68hc11_return_in_memory): Likewise.
15745         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15746         of PROMOTE_PROTOTYPES.
15747         (RETURN_IN_MEMORY): Remove.
15748         (STRUCT_VALUE_REGNUM): Likewise.
15749
15750 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15751
15752         * config/mmix/mmix-protos.h: Remove the prototype for
15753         mmix_setup_incoming_varargs.
15754         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15755         (TARGET_STRUCT_VALUE_RTX): Likewise.
15756         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15757         (mmix_setup_incoming_varargs): Make it static.
15758         (mmix_struct_value_rtx): New.
15759         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15760         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15761         (STRUCT_VALUE_REGNUM): Remove.
15762         (SETUP_INCOMING_VARARGS): Likewise.
15763
15764 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15765
15766         * config/mips/mips-protos.h: Remove the prototypes for
15767         mips_setup_incoming_varargs and mips_return_in_memory.
15768         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15769         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15770         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15771         (TARGET_STRUCT_VALUE_RTX): Likewise.
15772         (TARGET_RETURN_IN_MEMORY): Likewise.
15773         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15774         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15775         (mips_setup_incoming_varargs): Match the prototype for
15776         TARGET_SETUP_INCOMING_VARARGS.
15777         (mips_return_in_memory): Make it static.  Add argument fntype.
15778         (mips_strict_argument_naming): New.
15779         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15780         (PROMOTE_FUNCTION_ARGS): Likewise.
15781         (PROMOTE_FUNCTION_RETURN): Likewise.
15782         (STRUCT_VALUE): Likewise.
15783         (RETURN_IN_MEMORY): Likewise.
15784         (SETUP_INCOMING_VARARGS): Likewise.
15785         (STRICT_ARGUMENT_NAMING): Likewise.
15786
15787 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15788
15789         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15790         (TARGET_RETURN_IN_MEMORY): Likewise.
15791         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15792         (ip2k_return_in_memory): Likewise.
15793         (ip2k_setup_incoming_varargs): Likewise.
15794         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15795         (STRUCT_VALUE): Likewise.
15796         (STRUCT_VALUE_INCOMING): Likewise.
15797         (SETUP_INCOMING_VARARGS): Likewise.
15798
15799 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15800
15801         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15802         (TARGET_RETURN_IN_MEMORY): Likewise.
15803         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15804         (avr_return_in_memory): Remove.
15805         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15806         (STRUCT_VALUE): Likewise.
15807         (STRUCT_VALUE_INCOMING): Likewise.
15808         (STRICT_ARGUMENT_NAMING): Likewise.
15809
15810 2004-01-25  Jan Hubicka  <jh@suse.cz>
15811
15812         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15813
15814 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15815
15816         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15817         (mips_regno_mode_ok_for_base_p): Declare.
15818         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15819         (FRAME_POINTER_REGNUM): Renumber to 78.
15820         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15821         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15822         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15823         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15824         (REG_MODE_OK_FOR_BASE_P): Likewise.
15825         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15826         entry for 77 to "$arg" and entry for 78 to "$frame".
15827         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15828         (mips_reg_mode_ok_for_base_p): Remove.
15829         (mips_regno_mode_ok_for_base_p): New function, derived from old
15830         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15831         restrictions unless we're being strict.
15832         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15833
15834 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15835
15836         * c-common.h: Fix comment typos.
15837         * c-decl.c: Likewise.
15838         * cgraphunit.c: Likewise.
15839         * combine.c: Likewise.
15840         * et-forest.c: Likewise.
15841         * flow.c: Likewise.
15842         * function.c: Likewise.
15843         * ifcvt.c: Likewise.
15844         * integrate.c: Likewise.
15845         * jump.c: Likewise.
15846         * postreload.c: Likewise.
15847         * varray.c: Likewise.
15848
15849 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15850
15851         * doc/frontends.texi: Update copyright.
15852         * doc/gcov.texi: Likewise.
15853         * doc/gty.texi: Likewise.
15854         * doc/sourcebuild.texi: Likewise.
15855         * doc/standards.texi: Likewise.
15856
15857 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15858
15859         PR target/12978
15860         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15861         Remove movstrqi_small because it conflicts with movstrqi_large.
15862
15863 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15864
15865         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15866         (TARGET_STRUCT_VALUE_RTX): Likewise.
15867         (cris_struct_value_rtx): Likewise.
15868         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15869         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15870         STRUCT_VALUE_REGNUM.
15871         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15872
15873 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15874
15875         PR bootstrap/13848
15876         * cse.c (cse_cc_succs): Change the mode of the source expression
15877         as soon as decide we need a new mode.  Don't permit changing modes
15878         if we found a match in a successor block.
15879         (cse_condition_code_reg): Save original mode of source expression
15880         so that we know whether we have to change the mode in other
15881         insns.
15882
15883 2004-01-24  Jan Hubicka  <jh@suse.cz>
15884
15885         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15886         widen_memory_access):  Return early when there is nothing to change.
15887
15888 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15889
15890         * simplify-rtx.c (simplify_relational_operation): Don't
15891         simplify address == constant into address + -constant == 0.
15892
15893 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15894
15895         * gcc.c (process_command): Don't internationalize the
15896         Copyright message.
15897         * mips-tfile.c (main): Likewise.
15898
15899 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15900
15901         * cse.c: (cse_cc_succs) Fix comparison warning.
15902
15903 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15904
15905         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15906
15907 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15908
15909         * config/h8300/h8300-protos.h: Provide prototypes for
15910         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15911         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15912         (h8300_rtx_ok_for_base_p): Likewise.
15913         (h8300_legitimate_address_p): Likewise.
15914         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15915         h8300_legitimate_constant_p.
15916         (RTX_OK_FOR_BASE_P): Remove.
15917         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15918
15919 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15920
15921         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15922         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15923         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15924         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15925         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15926         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15927         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15928         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15929
15930 2004-01-24  Jan Hubicka  <jh@suse.cz>
15931
15932         * cselib.c (remove_useless_values):  Do not access discarded values.
15933
15934 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15935
15936         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15937         arrays.
15938
15939 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15940
15941         * recog.c: Fix a typo in copyright.
15942
15943 2004-01-23  Andrew Pinski  <apinski@apple.com>
15944
15945         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15946         (call_value): Likewise.
15947
15948 2004-01-23  Richard Henderson  <rth@redhat.com>
15949
15950         PR opt/12941
15951         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15952         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15953         if SHIFT_COUNT_TRUNCATED is set.
15954
15955 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15956
15957         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15958         separate real and imaginary parts.
15959         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15960
15961 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15962
15963         PR target/13674
15964         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15965         loading into GPR.
15966
15967 2004-01-23  Jan Hubicka  <jh@suse.cz>
15968
15969         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15970         change.
15971
15972         * alloc-pool.c (align_four): Kill.
15973         (create_alloc_pool): Align size to eight.
15974         (free_alloc_pool, free_pool): Invalidate deallocated data.
15975
15976 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15977
15978         PR gcc/1532
15979         * cse.c (cse_change_cc_mode): New static function.
15980         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15981         (cse_condition_code_reg): New function.
15982         * rtl.h (cse_condition_code_reg): Declare.
15983         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15984         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15985         cc_modes_compatible.
15986         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15987         (TARGET_CC_MODES_COMPATIBLE): Define.
15988         (TARGET_INITIALIZER): Add new initializers.
15989         * targhooks.c (default_cc_modes_compatible): New function.
15990         * targhooks.c (default_cc_modes_compatible): Declare.
15991         * hooks.c (hook_bool_intp_intp_false): New function.
15992         * hooks.h (hook_bool_intp_intp_false): Declare.
15993         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15994         (TARGET_CC_MODES_COMPATIBLE): Define.
15995         (ix86_fixed_condition_code_regs): New static function.
15996         (ix86_cc_modes_compatible): Likewise.
15997         * doc/tm.texi (Condition Code): Document new hooks.
15998
15999 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16000
16001         * fixinc/inclhack.def (bad_lval): Renamed to ...
16002         (alpha_bad_lval): ... this.
16003         Removed file list.
16004         Restrict to alpha*-dec-osf*.
16005         * fixinc/fixincl.x: Regenerate.
16006         * fixinc/tests/base/dirent.h: Remove, moving test ...
16007         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16008
16009 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16010
16011         PR c/13814
16012         * c-decl.c (diagnose_mismatched_decls): Also discard a
16013         built-in if we encounter an old-style definition with the
16014         same name.
16015
16016 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16017
16018         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16019         set to default{32,64}.
16020
16021 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16022
16023         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16024         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16025
16026 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16027             Olivier Hainque  <hainque@act-europe.fr>
16028
16029         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16030         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16031
16032 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16033
16034         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16035         size for minipool references.
16036
16037 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16038
16039         * real.c (real_floor, real_ceil): Tweak to allow input and output
16040         arguments to overlap.
16041         (real_round): New function to implement round(3m) semantics.
16042         * real.h (real_round): Prototype here.
16043         * builtins.c (fold_builtin_round): New function to constant fold
16044         round, roundf and roundl.
16045         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16046
16047 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16048
16049         PR optimization/13819
16050         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16051         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16052         (sh_handle_sp_switch_attribute): Remove warning.
16053
16054 2003-11-30  Jan Hubicka  <jh@suse.cz>
16055
16056         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16057
16058 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16059
16060         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16061         may or may not return non-NIL.
16062         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16063         check CANNOT_CHANGE_MODE_CLASS
16064
16065 2004-01-23  Jan Hubicka  <jh@suse.cz>
16066
16067         * basic-block.h (PROP_POSTRELOAD): New macro.
16068         (CLEANUP_LOG_LINKS): New.
16069         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16070         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16071
16072         * cselib.c (value_pool): New.
16073         (new_cselib_val): Use pool.
16074         (cselib_init): Initialize value_pool
16075         (cselib_finish): Free pool.
16076
16077 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16078
16079         * config/sparc/sparc.c (scan_record_type): New function.
16080         (function_arg_slotno): Use it to determine which kinds of
16081         registers the record can be passed in.
16082
16083 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16084
16085         * config/pa/fptr.c: Fix old-style definition.
16086
16087 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16088
16089         PR optimization/13724
16090         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16091         represents the zero bits produced by a ZERO_EXTEND operation.
16092
16093 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16094
16095         PR optimization/13821
16096         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16097         correctly calculate the lowpart offset of the contracted subreg.
16098
16099 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16100
16101         * doc/invoke.texi (Optimize Options): Note that --param arguments
16102         are subject to change without notice.
16103
16104 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16105
16106         * config.gcc (mips-sgi-irix6*o32): Removed.
16107         * config/mips/iris6-o32-as.h: Likewise.
16108         * config/mips/iris6-o32-gas.h: Likewise.
16109         * config/mips/iris6-o32.h: Likewise.
16110
16111 2004-01-22  Jan Hubicka  <jh@suse.cz>
16112
16113         * cfgcleanup.c (first_pass): New static variable.
16114         (try_forward_edges):  Add work limiting check for threading.
16115         (try_crossjump_bb):  Add work limiting check for crossjumping.
16116         (try_optimize_cfg):  Maintain first pass variable.
16117
16118 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16119
16120         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16121         handles complex and vector modes.
16122
16123 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16124
16125         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16126         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16127         (STRICT): Likewise.
16128
16129 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16130
16131         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16132         (genrtl_for_stmt): Remove emit_nop calls.
16133
16134 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16135
16136         PR target/13713
16137         PR target/13324
16138         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16139         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16140         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16141
16142 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16143
16144         * config/arm/arm.c: Include "debug.h".
16145         (thumb_pushpop): Take two new arguments.  Add some commentary.
16146         Output frame information when pushing.
16147         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16148         thumb_pushpop.
16149         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16150         offset, and pass it to thumb_pushpop.  Output CFI information.
16151         (thumb_expand_prologue): Add some frame-related markers and notes.
16152
16153 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16154
16155         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16156         for TARGET_64BIT.
16157         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16158         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16159
16160 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16161             Paolo Bonzini  <bonzini@gnu.org>
16162
16163         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16164         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16165         * rtl.h (subreg_lsb_1): Prototype here.
16166         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16167         sign extensions.
16168
16169 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16170
16171         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16172         macro need not be defined if jump-tables should contain
16173         relative addresses only when -fPIC or -fPIC is in effect.
16174
16175 2004-01-22  Jan Hubicka  <jh@suse.cz>
16176
16177         * alias.c (reg_base_value): Turn into varray.
16178         (reg_base_value_size): Kill.
16179         (old_reg_base_value): New deletable varray.
16180         (alias_invariant_size): New variable.
16181         (REG_BASE_VALUE): Update to use varray.
16182         (find_base_value): Likewise.
16183         (record_set): Likewise.
16184         (record_base_value): Likewise.
16185         (memrefs_conflict_p): Likewise.
16186         (record_set): Likewise
16187         (record_base_value): Likewise.
16188         (memrefs_conflict_p): Use alias_invariant_size.
16189         (init_alias_analysis): Use varray; set alias_invariant_size;
16190         rescale other arrays to be sized by maxreg.
16191         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16192
16193 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16194
16195         * config/sparc/sparc.c (function_arg_slotno): Use
16196         FLOAT_TYPE_P to detect FP fields in structures.
16197         (function_arg_record_value_1): Likewise.
16198         (function_arg_record_value_2): Likewise.
16199
16200 2004-01-22  Jan Hubicka  <jh@suse.cz>
16201
16202         * function.c (allocate_struct_function): Do not initialize expr, emit
16203         and varasm.
16204         (prepare_function_start): Do it here.
16205         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16206
16207 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16208
16209         PR target/13559
16210         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16211         to 'word_mode' once the first slot has been filled.
16212
16213 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16214
16215         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16216         computation of the number of integer registers required.
16217
16218 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16219
16220         * config/i386/i386.md: Simplify certain comparisons of
16221         const_int.
16222
16223 2004-01-21  Andrew Pinski  <apinski@apple.com>
16224
16225         PR target/13785
16226         * config/rs6000/rs6000.md (call_value): Force operand
16227         1 not operand 0 into a register.
16228
16229 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16230
16231         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16232         unwind-dw2-fde.h: Update copyright.
16233
16234 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16235
16236         * pa-protos.h: Update copyright.
16237         * pa.h: Likewise.
16238         * pa.md: Likewise.
16239
16240 2004-01-21  Caroline Tice  <ctice@apple.com>
16241
16242         PR target/12308
16243         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16244         flags register.
16245         (fix_truncdfdi2): Likewise.
16246         (fix_truncsfdi2): Likewise.
16247         (*fix_truncdi_1): Likewise.
16248         (fix_truncxfsi2): Likewise.
16249         (fix_truncdfsi2): Likewise.
16250         (fix_truncsfsi2): Likewise.
16251         (*fix_truncsi_1): Likewise.
16252         (fix_truncxfhi2): Likewise.
16253         (fix_truncdfhi2): Likewise.
16254         (fix_truncsfhi2): Likewise.
16255         (*fix_trunchi_1): Likewise.
16256
16257 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16258
16259         * alias.c, basic-block.h, c-common.c, c-common.h,
16260         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16261         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16262         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16263         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16264         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16265         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16266         genautomata.c, genconditions.c, genemit.c, genflags.c,
16267         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16268         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16269         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16270         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16271         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16272         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16273         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16274         unwind.h, varray.c, varray.h: Update copyright.
16275
16276 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16277
16278         * config/h8300/coff.h: Update copyright.
16279         * config/h8300/elf.h: Likewise.
16280         * config/h8300/h8300-protos.h: Likewise.
16281         * config/h8300/h8300.c: Likewise.
16282         * config/h8300/h8300.h: Likewise.
16283         * config/h8300/h8300.md: Likewise.
16284
16285 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16286
16287         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16288         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16289         ultrix_unistd): New hacks.
16290         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16291         ULTRIX_CONST2_CHECK): Add checks.
16292         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16293         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16294         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16295         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16296         * fixinc/tests/base/locale.h: New file.
16297         * fixinc/fixincl.x: Rebuilt.
16298
16299 2004-01-21  Andreas Jaeger  <aj@suse.de>
16300             Michael Matz  <matz@suse.de>
16301
16302         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16303
16304 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16305
16306         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16307         _Jv_RegisterClasses through a function pointer.
16308
16309 2004-01-21  Falk Hueffner  <falk@debian.org>
16310
16311         PR target/12898
16312         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16313         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16314         which need multiple instructions to emit.
16315
16316 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16317
16318         * config/m32r/m32r.h (CPP_SPEC): Define.
16319
16320 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16321
16322         * c-decl.c (merge_decls): Kill different_binding_level and
16323         different_tu arguments; simplify throughout.
16324         (duplicate_decls): Likewise.
16325         (pushdecl, merge_translation_unit_decls): Update calls to
16326         duplicate_decls.
16327
16328 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16329
16330         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16331         $(SYSTEM_H).
16332         (print-rtl1.o): Depend on $(SYSTEM_H).
16333
16334 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16335
16336         PR bootstrap/12730
16337         * configure.ac: Delete definition and subsitution of docdir.
16338         Add info, man, srcman and srcinfo to target hooks. Create doc/
16339         directory.
16340         * configure: Regenerate.
16341         * Makefile.in: Don't substitute docdir and delete all references
16342         throughout.
16343         (MAKEINFOFLAGS): Define.
16344         (stmp-docobjdir): Delete.
16345         (INFOFILES, MANFILES): Define.
16346         (info): Call lang.info, srcinfo and lang.srcinfo.
16347         (generated-manpages): Call lang.man, srcman and lang.srcman.
16348         (srcinfo, srcman): New rules to copy back files to source directory.
16349         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16350         (install-man): Revamp rule.
16351         (clean): Update dvi directory.
16352         (distclean): Delete TAGS from front end directorys.
16353         (maintainer-clean): Delete all document files in source directory.
16354
16355         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16356         (objc.srcman, objc.srcinfo): Likewise.
16357
16358 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16359
16360         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16361         (matherr_decl): rename & relocate as exception_structure.
16362         This fix must precede the math_exception fix.
16363
16364 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16365
16366         * fold-const.c (fold_convert): Rename to fold_convert_const.
16367         (fold_convert_const): Change arguments to take a tree_code,
16368         a type and the operand/expression to be converted.  Return
16369         NULL_TREE if no simplification is possible.  Add support for
16370         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16371         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16372         Adjust call to fold_convert to match new fold_convert_const.
16373         Avoid modifying the tree passed to fold in-place.
16374
16375 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16376
16377         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16378         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16379         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16380
16381 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16382
16383         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16384         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16385         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16386         (emit_move_sequence): Check scratch_reg first in various if statements.
16387         Extend source simplification to handle all 64-bit CONST_INTs.
16388         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16389         frame size.
16390         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16391         frame offset calculations.
16392         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16393         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16394         LEGITIMATE_64BIT_CONST_INT_P): Define.
16395         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16396         any CONST_INT as legitimate during and after reload.
16397         (VAL_32_BITS_P, INT_32_BITS): Define.
16398         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16399
16400 2004-01-20  Jan Hubicka  <jh@suse.cz>
16401
16402         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16403         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16404         containing hard regs are shared.
16405         (gen_hard_reg_clobber): New function.
16406         (hard_reg_clobbers): New array.
16407         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16408         (copy_rtx): Do not copy clobbers containing hard regs.
16409         * rtl.h (gen_hard_reg_clobber): Declare.
16410
16411 2004-01-20  Jan Hubicka  <jh@suse.cz>
16412
16413         * varray.c:  Include hashtab.h
16414         (varray_descriptor): New structure.
16415         (hash_descriptor, eq_descriptor, varray_descriptor,
16416         print_statistics): New static functions
16417         (varray_init, varray_grow): Update statistics
16418         (dump_varray_statistics): New function.
16419         * varray.h (dump_varray_statistics): Declare.
16420         * toplev.c (finalize): Call it.
16421         * Makefile.in (varray.o): Add dependency.
16422
16423 2004-01-20  Jan Hubicka  <jh@suse.cz>
16424
16425         * cselib.c: Include alloc-pool.h
16426         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16427         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16428         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16429         unchain_one_elt_loc_list_pool, unchain_one_value,
16430         new_cselib_val): Simplify using allocpool.
16431         (cselib_init): Initialize allocpools.
16432         (cselib_finish): Finish allocpools.
16433         * Makefile.in (cselib.o): Depend on alloc-pool.h
16434
16435 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16436
16437         * config/mips/mips.c (mips_load_call_address): Make the call insn
16438         use $gp if it could be calling a lazy binding stub.
16439
16440 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16441
16442         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16443         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16444         (TARGET_STRUCT_VALUE_RTX): Likewise.
16445         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16446         (PROMOTE_FUNCTION_RETURN): Remove.
16447         (STRUCT_VALUE): Remove.
16448
16449 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16450
16451         PR bootstrap/13735
16452         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16453         register as pointer after reload.
16454
16455 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16456
16457         PR optimization/12440
16458         * loop.c: Include ggc.h.
16459         (loop_optimize): Run garbage collector between optimization of loops.
16460         * Makefile.in (loop.o): Add GGC_H dependency.
16461
16462 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16463
16464         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16465         vector register special in function without prototype.
16466         (function_arg_advance): Vector parameters get always
16467         GPRs allocated for the linux64 target.
16468
16469 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16470
16471         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16472         not TARGET_M32RX_MASK.
16473
16474 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16475
16476         PR target/13557
16477         * config/sparc/sparc.c (function_arg): Reorder the cases.
16478
16479 2004-01-19  Per Bothner  <per@bothner.com>
16480
16481         Move cpp_reader's line_maps field to a shared global.
16482         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16483         and change the type to a pointer rather than a struct.
16484         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16485         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16486         Likewise.
16487         * cppfiles.c (validate_pch):  Likewise.
16488         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16489         Likewise.
16490         * cpperror.c (print_location):  Likewise.
16491         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16492         * cppinit.c (cpp_create_reader):  Handle new parameter.
16493         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16494         * input.h (line_table):  New variable.
16495         * toplev.c (line_table):  Declare variable.
16496         (general_init):  Initialize line_table.
16497         * c-opts.c (c_common_init_options):  Pass line_table to
16498         cpp_create_reader.
16499         * fix-header.c (read_scan_file):  New local variable line_table.
16500         Initialize, and pass it to cpp_create_reader.
16501         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16502         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16503
16504 2004-01-19  Per Bothner  <per@bothner.com>
16505
16506         Implement a cache for linemap_lookup.
16507         * line-map.h (struct_line_maps):  Add cache field.
16508         * line-map.c (linemap_init):  Zero cache field.
16509         (linemap_add):  Set cache field to offset of newly allocated map.
16510         (linemap_lookup):  Use and set cache field.
16511
16512 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16513
16514         PR optimization/13567
16515         * cse.c (cse_basic_block): Call cse_insn with a non-null
16516         libcall_insn for the last SET insn of a no-confilict block.
16517
16518 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16519
16520         * Makefile.in (target_noncanonical, program_transform_name): Use
16521         immediate define instead of deferred.
16522         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16523         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16524         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16525         deferred backquote.
16526
16527 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16528
16529         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16530         true unconditionally.
16531         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16532         Remove.
16533         (build_unary_op, build_modify_expr): Don't handle extended
16534         lvalues.
16535         (build_component_ref, build_conditional_expr): Call non_lvalue
16536         instead of pedantic_non_lvalue.
16537         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16538         * fold-const.c (fold): Don't check pedantic directly for
16539         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16540         passed to pedantic_non_lvalue.
16541         * doc/extend.texi: Remove documentation of extended lvalues.
16542
16543 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16544
16545         PR optimization/5263
16546         * simplify-rtx.c (associative_constant_p): Delete.
16547         (simplify_associative_operation): Rewrite to linearize terms, and
16548         attempt to simplify new term against both left and right subterms.
16549         (simplify_binary_operation): Call swap_commutative_operands_p on
16550         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16551         trueop0 and trueop1 down to where first needed.
16552         (simplify_relational_operation): Likewise.
16553         * rtlanal.c (commutative_operand_precedence): Also order constant
16554         operands using avoid_constant_pool_reference.
16555
16556 2004-01-19  Richard Henderson  <rth@redhat.com>
16557
16558         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16559         don't check memory mode.
16560         (unaligned_memory_operand): Likewise.
16561         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16562         abort for op0 not MEM.
16563
16564         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16565         is not a reg, copy to a scratch first.
16566         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16567         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16568         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16569         (reload_inqi, reload_inhi): Fix mode of op0.
16570         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16571         reload_outhi_help): Likewise.  Use define_insn_and_split.
16572
16573         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16574         as well as $29 dead.
16575
16576 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16577
16578         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16579         "tls_object" for thread-local objects.
16580         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16581         "#tls" for thread-local sections.
16582         * configure.ac (thread-local checks): Specify --fatal-warnings in
16583         every binutils-specific checks.  For sparc*-*-*, test whether the
16584         OS is Solaris and the tools are native and act accordingly.
16585         * configure: Rebuild.
16586
16587 2004-01-19  Jeff Law  <law@redhat.com>
16588
16589         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16590         Jerry Quinn and Petur Runolfsson.
16591
16592 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16593
16594         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16595         size, don't use the larger zero-extending loads.
16596
16597 2004-01-19  Richard Henderson  <rth@redhat.com>
16598
16599         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16600         * alpha.md (UNSPEC_NT_LDA): Remove.
16601         (UNSPEC_CVTLQ, cvtlq): New.
16602         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16603         (extendsidi2_fix): Remove.
16604         (extendsidi2 splitter): Use cvtlq.
16605         (extendsidi2 fp peepholes): Remove.
16606         (cvtql): Use SFmode instead of SImode.
16607         (fix_trunc?fsi): Update to match.
16608         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16609         (movsi): Rename from movsi_nofix, remove f alternatives.
16610         (movsi_nt_vms): Similarly.
16611         (movsi_fix, movsi_nt_vms_fix): Remove.
16612         (nt_lda): Remove.
16613         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16614
16615 2004-01-19  Jan Hubicka  <jh@suse.cz>
16616
16617         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16618         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16619         list.
16620         (cgraph_remove_unreachable_nodes): New function
16621         (cgraph_decide_inlining_of_small_function): Fix pasto.
16622         (cgraph_decide_inlining_incrementally): Fix pasto.
16623         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16624
16625 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16626
16627         * gengtype.c (header_file): Make it static.
16628         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16629         * gengtype.h (header_file): No longer extern.
16630
16631 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16632
16633         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16634         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16635         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16636
16637 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16638
16639         * stmt.c (HAVE_casesi): Define it not already defined.
16640         (HAVE_tablejump): Likewise.
16641         (expand_end_case_type): Resort to the binary tree method if
16642         neither casesi or tablejump is available.
16643
16644 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16645
16646         * final.c (final_scan_insn): Make non-static again.
16647         * output.h (final_scan_insn): Re-add prototype.
16648         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16649         to final_scan_insn call.
16650         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16651         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16652         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16653         * config/sh/sh.c (print_slot): Likewise.
16654         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16655         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16656
16657 2004-01-18  Jan Hubicka  <jh@suse.cz>
16658
16659         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16660         * cfgcleanup.c (try_optimize_cfg): Use it.
16661         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16662         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16663         Kill hack.
16664         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16665
16666         Revert:
16667         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16668
16669                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16670                 even after reload, just don't remove the actual jump tables.
16671
16672 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16673
16674         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16675
16676 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16677
16678         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16679         the size of a pointer in bytes.
16680
16681 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16682
16683         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16684         live "next" variable, which could lead to an infinite loop.
16685
16686 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16687
16688         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16689         block.
16690
16691         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16692         Check for NULL in the chain and remove repeated code.
16693
16694 2004-01-18  Jan Hubicka  <jh@suse.cz>
16695
16696         * coverage.c (checksum_string): Rename to ...
16697         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16698         names containing random number and zero the number out in order to get
16699         match.
16700
16701 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16702
16703         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16704
16705 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16706
16707         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16708         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16709         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16710         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16711         doc/trouble.texi: Remove trailing whitespace.
16712
16713 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16714
16715         PR target/7618
16716         * config/mips/mips.c: Include cfglayout.h.
16717         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16718         (mips_unspec_offset_high): Add temporary register argument.
16719         (mips_load_call_address): New function, split out from...
16720         (mips_expand_call): ...here.
16721         (mips_output_cplocal): New function.
16722         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16723         (mips_emit_loadgp): New function, split out from...
16724         (mips_expand_prologue): ...here.
16725         (mips_output_mi_thunk): New function.
16726
16727 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16728
16729         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16730         mcpu32): Remove redundant checks for implied target predefines.
16731
16732 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16733
16734         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16735         Return type is unsigned int not int.
16736         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16737         Likewise.
16738
16739 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16740
16741         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16742         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16743         "GNU/Linux" and "Microsoft Windows" terminology.
16744
16745 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16746
16747         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16748         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16749         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16750         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16751         @smallexample instead of @example.
16752
16753 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16754
16755         * objc/objc-act.c (build_objc_method_call): Use target
16756         hooks instead of macros to determine if ..._stret
16757         dispatchers should be used (NeXT runtime only).
16758
16759 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16760
16761         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16762         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16763
16764 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16765
16766         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16767         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16768         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16769         macros.
16770         * reload1.c (emit_reload_insns): Use them.
16771         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16772         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16773         for NULL PATTERN.
16774
16775 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16776
16777         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16778         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16779         a line note after the prologue.  Make static.
16780         (line_note_exists): Remove.
16781         (final): Don't initialize line_note_exists.  Update call to
16782         final_scan_insn.
16783         * output.h (final_scan_insn): Remove prologue.
16784         * function.c (set_insn_locators): Update comment.
16785         (thread_prologue_and_epilogue_insns): Add a comment.
16786
16787 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16788
16789         PR target/10781
16790         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16791         Prototype.
16792         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16793         New function.
16794         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16795         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16796         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16797
16798 2004-01-17  Jan Hubicka  <jh@suse.cz>
16799
16800         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16801         commit.
16802
16803         * toplev.c (HAVE_conditional_execution): Provide default.
16804         (rest_of_handle_reorder_blocks): For conditional_execution target
16805         update liveness once after all transformations
16806         (rest_of_compilation): Do crossjumping before ce3.
16807
16808 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16809
16810         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16811         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16812         for PCH.
16813         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16814         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16815         (get_TOC_alias_set): Mark 'set' for PCH.
16816
16817 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16818
16819         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16820         even after reload, just don't remove the actual jump tables.
16821
16822 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16823
16824         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16825         Remove checks for is_ada() and TREE_UNSIGNED.
16826         (subrange_type_die): Emit a byte_size attribute if the subrange
16827         type size is different from the base type size.
16828         (modified_type_die): Replace call to is_ada_subrange_type() by
16829         call to is_subrange_type().
16830
16831 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16832
16833         * config/sh/sh.c: Include ggc.h.
16834
16835 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16836
16837         * Makefile.in (MD5_H): New.
16838         (fold-const.o): Depend on md5.h.
16839         (dwarf2out.o): Likewise.
16840         (cppfiles.o): Likewise.
16841         * cppfiles.c: Include md5.h.
16842         (should_stack_file): Check against list read from PCH file.
16843         (struct pchf_data): New.
16844         (pchf): New variable.
16845         (struct pchf_adder_info): New.
16846         (pchf_adder): New.
16847         (pchf_save_compare): New.
16848         (_cpp_save_file_entries): New.
16849         (_cpp_read_file_entries): New.
16850         (struct pchf_compare_data): New.
16851         (pchf_compare): New.
16852         (check_file_against_entries): New.
16853         * cpphash.h (_cpp_save_file_entries): Prototype.
16854         (_cpp_read_file_entries): Prototype.
16855         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16856         (cpp_read_state): Read the list of headers.
16857
16858 2004-01-17  Jan Hubicka  <jh@suse.cz>
16859
16860         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16861         builtin_expect specially.
16862         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16863         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16864         * invoke.texi (max-inline-insns-single): Set to 100.
16865         (large-function-insns): Set to 3000.
16866
16867 2004-01-16  Eric Christopher  <echristo@redhat.com>
16868             Chandrakala Chavva <cchavva@redhat.com>
16869
16870         * cppcharset.c (one_iso88591_to_utf8): New function.
16871         (convert_iso88591_utf8): Ditto. Use.
16872         (conversion_tab): Use.
16873         (_cpp_input_to_utf8): New function.
16874         (_cpp_init_iconv_buffer): Ditto.
16875         (_cpp_close_iconv_buffer): Ditto.
16876         * cpphash.h: Prototype new functions.
16877         (cpp_buffer): Add input_cset_desc.
16878         * cppinit.c: Add input_charset default.
16879         * cpplib.c (cpp_push_buffer): Support init and
16880         close of iconv.
16881         * cpplib.h (cpp_options): Add input_charset.
16882
16883 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16884
16885         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16886         * config/alpha/unicosmk.h: Remove a commented-out definition
16887         of ASM_OUTPUT_SECTION_NAME.
16888         * config/stormy16/stormy16.h: Likewise.
16889
16890 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16891
16892         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16893         (alpha___extern_prefix_sys_stat): ... this.
16894         Apply to <sys/mount.h>, too.
16895         Tweak to match more variations.
16896         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16897
16898         * fixinc/inclhack.def (alpha___extern_prefix,
16899         alpha___extern_prefix_standards): New hacks to obey
16900         __PRAGMA_EXTERN_PREFIX.
16901         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16902         test.
16903         * fixinc/tests/base/standards.h: Likewise.
16904
16905         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16906         variations.
16907         New testcase.
16908         * fixinc/tests/base/pthread.h: Handle it.
16909
16910         * fixincl/inclhack.def (bad_lval): Sort file list.
16911         Add many missing files up to Tru64 UNIX V5.1B.
16912         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16913         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16914         order.
16915
16916         * fixinc/fixincl.x: Regenerate.
16917
16918 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16919
16920         * version.c (version_string): Change to 3.5.0.
16921         * doc/include/gcc-common.texi (version-GCC): Likewise.
16922
16923 2004-01-16  Jan Hubicka  <jh@suse.cz>
16924
16925         * i386.md (load_tp_di): Fix pasto.
16926
16927         PR opt/13608
16928         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16929
16930         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16931         pp_c_character_constant, pp_c_floating_constant,
16932         pp_c_additive_expression, pp_c_shift_expression,
16933         pp_c_equality_expression, pp_c_and_expression,
16934         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16935         pp_c_logical_and_expression): Remove inline modifier.
16936         * dwarf2out.c (get_AT): Likewise.
16937         * et-forest.c (et_splay): Likewise.
16938         * ra.h (ra_alloc, ra_calloc): Likewise
16939
16940 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16941
16942         * config/frv/frv-protos.h: Fix comment formatting.
16943         * config/frv/frv.c: Likewise.
16944         * config/frv/frv.h: Likewise.
16945         * config/frv/frv.md: Likewise.
16946         * config/frv/frvbegin.c: Likewise.
16947         * config/frv/frvend.c: Likewise.
16948
16949 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16950
16951         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16952         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16953         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16954         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16955
16956 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16957
16958         PR 11864
16959         * postreload.c (reload_cse_simplify_operands): Don't remove
16960         implicit extension from LOAD_EXTEND_OP.
16961
16962 2004-01-16  Jan Hubicka  <jh@suse.cz>
16963
16964         PR opt/11350
16965         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16966         after reload.
16967         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16968         rtl_try_redirect_by_replacing_branch): Likewise.
16969
16970 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16971
16972         PR pch/13689
16973         * alias.c (struct alias_set_entry): Mark for GC.
16974         (alias_sets): Make static, mark for GC.
16975         (record_alias_subset): Use GC to allocate alias structures.
16976         * varray.c (element): Make generic varrays GCed.
16977
16978         PR pch/13361
16979         * c-typeck.c (constructor_asmspec): Delete.
16980         (struct initializer_stack): Delete field 'asmspec'.
16981         (start_init): Delete saving of asmspec.
16982         (finish_init): Don't update constructor_asmspec.
16983         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16984         * stmt.c (expand_asm): Duplicate strings from tree.
16985         (expand_asm_operands): Likewise.
16986         * tree.c (tree_size): Update computation of size of STRING_CST.
16987         (make_node): Don't make STRING_CST nodes.
16988         (build_string): Allocate string with tree node.
16989         * tree.def (STRING_CST): Update comment.
16990         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16991         (tree_string): Place contents of string in tree node.
16992         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16993         from tree.
16994
16995         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16996         altivec operands.
16997
16998 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16999
17000         * c-common.h: Fix comment formatting.
17001         * c-cppbuiltin.c: Likewise.
17002         * c-pragma.c: Likewise.
17003         * calls.c: Likewise.
17004         * collect2.c: Likewise.
17005         * cppcharset.c: Likewise.
17006         * cpptrad.c: Likewise.
17007         * dbxout.c: Likewise.
17008         * defaults.h: Likewise.
17009         * dwarf2out.c: Likewise.
17010         * fold-const.c: Likewise.
17011         * genautomata.c: Likewise.
17012         * genconditions.c: Likewise.
17013         * genflags.c: Likewise.
17014         * gengtype.c: Likewise.
17015         * integrate.c: Likewise.
17016         * loop.c: Likewise.
17017         * predict.c: Likewise.
17018         * sdbout.c: Likewise.
17019
17020 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17021
17022         * config/ia64/ia64.md (*movti_internal): C output template
17023         extracted to ia64.c.
17024         (*movti_internal_reg): Delete.
17025         (reload_inti, reload_outti): Use the correct mode on operand 2
17026         in the first place, don't fix it up in the output template.
17027         (movtf, reload_ointf, reload_outtf): New expanders.
17028         (*movtf_internal): New define_insn_and_split.
17029         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17030         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17031         (ia64_split_tmode_move): New function, body mostly pulled
17032         from ia64.md:*movti_internal.
17033         (ia64_function_arg_words): New function, extracted common
17034         logic from ia64_function_arg et seq.
17035         (ia64_function_arg_offset): Likewise.  Handle correctly the
17036         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17037         (ia64_function_arg, ia64_function_arg_partial_nregs)
17038         (ia64_function_arg_advance): Use ia64_function_arg_words and
17039         ia64_function_arg_offset.
17040         (ia64_function_value): TCmode does not go in float regs.
17041         (ia64_secondary_reload_class): Also handle TFmode.
17042         * config/ia64/ia64-protos.h: Remove prototype for
17043         ia64_split_timode; add prototype for ia64_split_tmode_move.
17044
17045 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17046
17047         * Makefile.in (MAINT): Make it an immediate assignment.
17048
17049 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17050
17051         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17052
17053 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17054
17055         * config/h8300/coff.h: Replace Hitachi with Renesas.
17056         * config/h8300/elf.h: Likewise.
17057         * config/h8300/h8300-protos.h: Likewise.
17058         * config/h8300/h8300.c: Likewise.
17059         * config/h8300/h8300.h: Likewise.
17060         * config/h8300/h8300.md: Likewise.
17061         * config/h8300/lib1funcs.asm: Likewise.
17062
17063 2004-01-15  Andrew Pinski  <apinski@apple.com>
17064
17065         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17066         around it.
17067
17068 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17069
17070         * config/h8300/h8300.c (h8300_return_in_memory): New.
17071         (TARGET_STRUCT_VALUE_RTX): Likewise.
17072         (TARGET_RETURN_IN_MEMORY): Likewise.
17073         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17074         (RETURN_IN_MEMORY): Likewise.
17075
17076 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17077
17078         PR optimization/13375
17079         * gcse.c (handle_avail_expr): Just return if the source is not a
17080         single set.
17081
17082 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17083             Daniel Jacobowitz  <drow@mvista.com>
17084
17085         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17086         (EQUIV): Define.
17087         (ARM_FUNC_ALIAS): New macro.
17088         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17089         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17090
17091 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17092
17093         PR optimization/12372
17094         * calls.c (expand_call): Add call_fusage data for stack arguments in
17095         constant calls.
17096
17097 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17098
17099         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17100         (rs6000_elf_declare_function_name): Formatting.
17101         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17102
17103 2004-01-15  Jan Hubicka  <jh@suse.cz>
17104
17105         PR bootstrap/13692
17106         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17107         previous patch.
17108
17109 2004-01-15  Richard Henderson  <rth@redhat.com>
17110
17111         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17112         integer regs of the same call-savedness.
17113
17114 2004-01-15  Andreas Schwab  <schwab@suse.de>
17115
17116         PR bootstrap/13562
17117         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17118         status for NOTB/NOTW/NEGW methods.
17119
17120 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17121
17122         * doc/invoke.texi: Update dump file names.  Fix a typo.
17123
17124 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17125
17126         * builtins.c (expand_builtin_va_end): Don't use
17127         EXPAND_BUILTIN_VA_END.
17128         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17129         * config/d30v/d30v.h: Remove a commented-out definition of
17130         EXPAND_BUILTIN_VA_END.
17131         * config/stormy16/stormy16.h: Likewise.
17132
17133 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17134
17135         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17136         * targhooks.c (default_struct_value_rtx): Don't use
17137         STRUCT_VALUE_INCOMING_REGNUM.
17138
17139 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17140
17141         PR bootstrap/12744
17142         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17143         GENINSRC and not parsedir.  Define srcextra as a langhook.
17144         * configure: Regenerate.
17145         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17146         parsedir and delete all references throughout.  Conditionally define
17147         rule for srcextra dependent on GENINSRC.
17148         (stmp-docobjdir): Delete.
17149         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17150         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17151         and gengtype-yacc.h back to source directory.
17152         (maintainer-clean): Delete all parse files in source directory.
17153         (distclean): Delete generated files.
17154
17155         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17156         (objc-parse.c, objc-parse.y): Don't use parsedir.
17157         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17158         directory if requested.
17159         (po-generated): Don't use parsedir.
17160         (objc.maintainer-clean): Delete above files from source directory.
17161
17162 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17163
17164         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17165
17166 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17167
17168         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17169         TARGET_RETURN_IN_MEMORY.
17170
17171 2004-01-15  Jan Hubicka  <jh@suse.cz>
17172
17173         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17174         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17175         functions accepting SSE arguments
17176         (function_arg): Warn only when asked to warn.
17177         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17178
17179 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17180
17181         * c-parse.in (stmts_and_decls): Make label at end of compound
17182         statement a hard error.
17183
17184 2004-01-14  Jan Hubicka  <jh@suse.cz>
17185
17186         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17187         * cgraph.h (cgraph_local_info): Sort fields by size; add
17188         redefined_extern_inline
17189         (cgraph_global_info): Sort fields by size.
17190         (cgraph_node): Likewise.
17191         * cgraphunit.c (cgraph_finalize_function): Se
17192         local.redefined_extern_inline on redefinition.
17193         (cgraph_analyze_function): Use it; fix formating.
17194
17195 2004-01-14  Jan Hubicka  <jh@suse.cz>
17196
17197         PR c++/10776
17198         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17199         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17200         bitmaps
17201         (cache_size): New variable
17202         (add_dependence): Update use; canonize early memory locations
17203         (sched_analyze_1): Likewise.
17204         (sched_analyze_2): Likewise.
17205         (init_dependency_caches): Initialize bitmaps.
17206         (free_dependency_caches): Free bitmaps
17207
17208 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17209
17210         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17211         targetm.calls.strict_argument_naming().
17212         * target.h: Likewise.
17213
17214 2004-01-14  Richard Henderson  <rth@redhat.com>
17215
17216         PR debug/13231
17217         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17218         instructions.
17219
17220 2004-01-14  Richard Henderson  <rth@redhat.com>
17221
17222         PR c++/12491
17223         * except.c (struct eh_region): Add u.fixup.resolved.
17224         (resolve_one_fixup_region): Split out from ...
17225         (resolve_fixup_regions): ... here.
17226
17227 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17228
17229         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17230
17231 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17232
17233         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17234         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17235         (STRUCT_VALUE): Remove.
17236
17237 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17238
17239         * system.h: Poison PROMOTED_MODE
17240         * integrate.c (expand_inline_function): Don't mention the
17241         PROMOTED_MODE.
17242         * loop.c (update_giv_derive): Same.
17243         * tree.h (DECL_RTL): Same.
17244
17245 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17246
17247         PR target/9365
17248         * sh.c (gen_block_redirect): Add special handling of RETURN.
17249         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17250         far branch target (i.e. it's a return).
17251
17252 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17253
17254         * regrename.c (find_oldest_value_reg): Fix a warning.
17255
17256 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17257
17258         PR bootstrap/12527
17259         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17260         Move linux-gas.h and linux-elf.h before aout.h.
17261         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17262         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17263
17264 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17265
17266         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17267         (CONST_INT, VOIDmode, ...).
17268
17269 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17270
17271         * regrename.c (find_oldest_value_reg): If the replacement uses
17272         multiple hard registers, check that all of them are in CLASS.
17273
17274 2004-01-14  Jan Hubicka  <jh@suse.cz>
17275
17276         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17277         impossible.
17278
17279 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17280
17281         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17282
17283 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17284
17285         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17286         Calculate always vrsave_mask if TARGET_ALTIVEC.
17287         (rs6000_emit_prologue): Emit code for vrsave
17288         only if TARGET_ALTIVEC_VRSAVE.
17289         (rs6000_emit_epilogue): Likewise.
17290
17291 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17292
17293         * config/sparc/sparc.md (tie_add32): Fix pasto.
17294         (tie_add64): Likewise.
17295
17296 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17297
17298         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17299
17300 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17301
17302         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17303         * config/iq2000/iq2000.c: Likewise.
17304         * config/iq2000/iq2000.md: Likewise.
17305
17306 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17307
17308         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17309         (subrange_type_die): Add handle for nameless subrange types.
17310
17311 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17312
17313         * config/h8300/h8300-protos.h: Replace do_movsi with
17314         h8300_expand_movsi.
17315         * config/h8300/h8300.c (do_movsi): Change to
17316         h8300_expand_movsi.
17317         * config/h8300/h8300.md (movsi): Replace do_movsi with
17318         h8300_expand_movsi.
17319         (movsf): Likewise.
17320
17321 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17322
17323         * config/h8300/h8300.c (dosize): Change to
17324         h8300_emit_stack_adjustment.  Update callers.
17325
17326 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17327
17328         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17329         the source being post_inc.  Tighten the predicate for the
17330         destination to register_operand.
17331         (movstricthi): Likewise.
17332
17333 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17334
17335         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17336         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17337         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17338
17339 2004-01-14  Jan Hubicka  <jh@suse.cz>
17340
17341         Partial fix PR c++/12850
17342         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17343         at zero nest level.
17344
17345 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17346
17347         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17348         pseudo-register.
17349
17350 2004-01-13  Devang Patel <dpatel@apple.com
17351
17352         PR debug/7078
17353         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17354         NAMESPACE_DECL memebers.
17355
17356 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17357
17358         PR c++/12709
17359         * c-common.c (finish_fname_decls): Use the chain only if the
17360         tree is an expr_stmt.
17361
17362 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17363
17364         * rtl.def: Add comment about new option in automata_option.
17365
17366         * genautomata.c (PROGRESS_OPTION): New macro.
17367         (progress_flag): New global variable.
17368         (gen_automata_option): Process `progress'.
17369         (transform_insn_regexps, check_unit_distributions_to_automata,
17370         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17371         expand_automata, write_automata): Print about the progress only if
17372         progress_flag.  Remove fflush.
17373         (initiate_automaton_gen): Process command line flag `-progress'.
17374
17375         * doc/md.texi: Describe the new option.
17376
17377 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17378
17379         * cfg.c (dump_bb): Dump entry edges.
17380
17381 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17382
17383         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17384         references from SImode.
17385         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17386
17387 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17388
17389         * system.h (TEXT_SECTION): Poison.
17390         * varasm.c (text_section): Don't use TEXT_SECTION.
17391         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17392         * doc/tm.texi (TEXT_SECTION): Remove.
17393
17394 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17395
17396         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17397
17398 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17399
17400         * unwind-libunwind.c: Delete.
17401
17402 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17403
17404         PR 13656
17405         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17406         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17407         them at the very end.
17408         (validate_proto_after_old_defn): Restructure for comprehensibility;
17409         make error messages clearer.
17410
17411 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17412
17413         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17414         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17415         * varray.c: No need to prototype error.
17416         (varray_check_failed): Wrap long string onto two lines.
17417         (varray_underflow): New function.
17418
17419 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17420
17421         PR c++/13376
17422         * function.h (struct function): Kill `name' field.
17423         (current_function_name): Make it an extern function.
17424         * function.c (current_function_name): New function.
17425         * graph.c: Update all uses of current_function_name.
17426         * gcse.c: Likewise.
17427         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17428         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17429         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17430         instead of a strcmp with "main".
17431
17432 2004-01-13  Jan Hubicka  <jh@suse.cz>
17433
17434         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17435
17436         * cgraphunit.c (cgraph_optimize_function):  Always do
17437         optimize_inline_calls when there is always_inline callee.
17438         (cgraph_decide_inlining): Fix formating.
17439         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17440         functions.
17441         (expand_call_inline): Likewise.
17442         * toplev.h (sorry): Fix prototype.
17443
17444 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17445
17446         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17447         conditional jumps that drop through to unconditional jumps or the
17448         end of the sequence.
17449
17450 2004-01-13  Jan Hubicka  <jh@suse.cz>
17451
17452         * alias.c (new_alias_set): Construct the alias_set varray.
17453         (init_alias_once): Don't do it here.
17454
17455 2004-01-12  Marc Espie <espie@openbsd.org>
17456
17457         * system.h: handle YYBYACC like YYBISON.
17458
17459 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17460
17461         PR target/10847
17462         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17463         building on sparc64-*-openbsd*.
17464
17465 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17466
17467         PR debug/13539
17468         * dbxout.c (dbxout_type): Protected inheritance is not
17469         private but protected.
17470
17471 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17472
17473         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17474
17475 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17476
17477         PR optimization/12508.
17478         * combine.c (try_combine): Remove a dead set in a parallel
17479         even if its destination is a subreg.
17480
17481         Revert:
17482         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17483         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17484         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17485
17486 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17487
17488         * real.c: Update copyright date.
17489         * emit-rtl.c: Likewise.
17490         * rtl.h: Likewise.
17491         * dwarf2out.c: Likewise.
17492         * config/rs6000/darwin-ldouble.c: Likewise.
17493         * config/rs6000/rs6000.md: Likewise.
17494
17495 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17496
17497         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17498         TFmode to SImode libfuncs.
17499
17500 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17501
17502         PR middle-end/11397
17503         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17504
17505 2004-01-12  Jan Hubicka  <jh@suse.cz>
17506
17507         PR opt/12826
17508         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17509         stored.
17510
17511         PR opt/12863
17512         * cfgcleanup.c (label_is_jump_target_p): Move to...
17513         * rtlanal.c (label_is_jump_target_p): ... here.
17514         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17515         edges unified with branch edges.
17516
17517 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17518
17519         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17520         high word of an integral CONST_DOUBLE.
17521
17522 2004-01-12  Paul Brook  <paul@codesourcery.com>
17523
17524         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17525
17526 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17527
17528         PR target/13585
17529         * sh-protos.h (check_use_sfunc_addr): Declare.
17530         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17531         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17532
17533 2004-01-12  Jan Hubicka  <jh@suse.cz>
17534
17535         * alias.c:  Invlude varray.h
17536         (alias_sets): Turn into varray.
17537         (get_alias_set_entry): Use VARRAY; mark inline.
17538         (mems_in_disjoint_alias_sets_p): Mark inline.
17539         (record_alias_subset): Use varray.
17540         (init_alias_once): Initialize varray.
17541         (new_alias_set): Grow array.
17542         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17543
17544 2004-01-12  Jan Hubicka  <jh@suse.cz>
17545
17546         Partial fix for PR opt/10776 II
17547         * cselib.c: Include params.h
17548         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17549         locations.
17550         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17551         * Makefile.in (cselib.o): Depend on params.h
17552
17553 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17554
17555         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17556         simplify_unary_operation if the operand has a known mode.
17557
17558 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17559
17560         PR target/13534
17561         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17562         predicate to handle 'ld' conform addresses.
17563         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17564         contraint.
17565         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17566         are memory contraints.
17567         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17568         New prototype.
17569         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17570         Change 'o' to 'Y' constraint.
17571         (*movdf_softfloat64): Ditto.
17572
17573 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17574
17575         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17576         brace-enclosed syntax in all C output statements.
17577
17578 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17579
17580         PR target/13401
17581         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17582         Objective-C language type value is 14.
17583
17584 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17585
17586         PR c/12148
17587         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17588         `int' in a number of places to make sure we always have a SImode
17589         and not a HImode.  Add a 'L' suffix to a number of constants.
17590
17591 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17592
17593         * pa.c: Don't include obstack.h.
17594
17595         * pa.md: Correct constraint in pattern for loading PIC label address.
17596
17597 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17598
17599         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17600          before defining.
17601
17602 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17603
17604         PR fortran/9972
17605         * toplev.c (rest_of_handle_inline): Also consider functions
17606         for deferral if the language is GNU F77.
17607
17608 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17609
17610         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17611         diagnostic messages.
17612
17613 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17614
17615         PR middle-end/13392
17616         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17617         to drop through label.  Don't fall back to SCC even when conditional
17618         jump has not been found.
17619
17620 2004-01-11  Jan Hubicka  <jh@suse.cz>
17621
17622         * invoke.texi: Fix syntax error in previous patch.
17623
17624         Partial fix for PR opt/10776
17625         * Makefile.in (reload.o): Include param.h
17626         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17627         * reload.c: Include params.h.
17628         (find_equiv_reg): Work limiting check.
17629         * invoke.texi: Document.
17630
17631 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17632
17633         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17634         out-of-bounds accesses to string constants.  Simplify mips16
17635         case accordingly.
17636
17637 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17638
17639         PR optimization/13469
17640         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17641         reload_cse_regs (-fnon-call-exceptions only).
17642
17643 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17644
17645         * config/mcore/lib1.asm: Fix comment formatting.
17646         * config/mcore/mcore-elf.h: Likewise.
17647         * config/mcore/mcore.c: Likewise.
17648         * config/mcore/mcore.h: Likewise.
17649         * config/mcore/mcore.md: Likewise.
17650
17651 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17652
17653         * c-decl.c (duplicate_decls): Break apart into...
17654         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17655         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17656         ... these new functions.  Restructure for comprehensibility.
17657         Remove various archaic special cases.  Always report the
17658         location of the previous declaration when a diagnostic is issued.
17659         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17660         (match_builtin_function_types): Delete unnecessary forward declaration.
17661
17662 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17663
17664         * genautomata.c (make_automaton, NDFA_to_DFA):
17665         Print progress bars with '.' characters instead of '*'.
17666         (build_automaton): Change notes to match.
17667
17668 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17669
17670         * config/m32r/m32r.md: Use define_constants for unspec and
17671         unspec_volatile.
17672
17673 2004-01-10  Jan Hubicka  <jh@suse.cz>
17674
17675         PR opt/11635
17676         * expr.c (expand_expr_real):  More curefully expand union casts.
17677
17678 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17679
17680         * config/m32r/m32r.md (flush_icache): Use 1 for
17681         unspec_volatile.
17682
17683 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17684             James E Wilson  <wilson@specifixinc.com>
17685
17686         PR debug/12860
17687         * dbxout.c (dbxout_symbol): Remove initialization of
17688         current_sym_code, current_sym_value, and current_sym_addr.
17689         (dbxout_symbol_location): Same.
17690         (dbxout_prepare_symbol): Zero current_sym_code,
17691         current_sym_value, and current_sym_addr.
17692
17693 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17694
17695         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17696         check is done first.
17697
17698 2004-01-09  Eric Christopher  <echristo@redhat.com>
17699
17700         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17701         if we're running mark_constant_function.
17702
17703 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17704
17705         PR target/12561
17706         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17707
17708 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17709
17710         PR debug/11231
17711         * dbxout.c (dbxout_type_fields): Return if any item is
17712         error_mark_node or the type is error_mark_node.
17713
17714 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17715
17716         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17717         exactly what is expected as a 'long double'.
17718         (_xlqadd): When a value to be returned is representable as a
17719         'double', just return it directly, do not construct it using a union.
17720         Also, correct final fixup.
17721         (_xlqmul): Likewise.
17722         (_xlqdiv): Likewise.
17723         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17724
17725         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17726
17727 2004-01-09  Richard Henderson  <rth@redhat.com>
17728
17729         * recog.c (constrain_operands): Validate mem operands.
17730
17731 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17732
17733         * gcc.c (init_spec): Remove -lunwind from shared case.
17734         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17735
17736 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17737
17738         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17739         * configure: Regenerate
17740
17741 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17742
17743         PR c/11234
17744         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17745         between function and object pointers.
17746         (digest_init): When comparing a pointer to function type to the
17747         target type, only apply TREE_TYPE once to the pointer to function
17748         type.
17749         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17750         function pointer rather than casting it to a function pointer.
17751         (for_each_eh_label): Update caller.
17752         * recog.h (struct insn_data): Use a struct or union for output.
17753         * genoutput.c (output_insn_data): Update.
17754         * final.c (get_insn_template): Update.
17755
17756 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17757
17758         * expr.h (expand_expr): Make it a macro, not a function.
17759         (expand_expr_real): New function.
17760         * expr.c (store_expr): Adjust logic for deciding whether or not to
17761         copy the value returned by expand_expr.
17762         (expand_expr): Rename to ...
17763         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17764         calls to language hooks.
17765         * c-common.h (c_expand_expr): Adjust prototype.
17766         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17767         * langhooks-def.h (lhd_expand_expr): Change prototype.
17768         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17769         * langhooks.h (lang_hooks): Change type of expand_expr.
17770         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17771         (last_expr_alt_rtl): Likewise.
17772         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17773         (clear_last_expr): Clear it.
17774         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17775         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17776         * tree.def (RTL_EXPR): Give it an additional operand.
17777         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17778
17779 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17780
17781         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17782         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17783
17784 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17785
17786         PR target/13380.
17787         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17788         or (ne:SI (reg:CC 17) (const_int 0)).
17789         Be specific about modes wherever possible.
17790
17791 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17792
17793         * config/m32r/m32r.c (m32r_expand_block_move): Call
17794         gen_movestrsi_internal with two more arguments.
17795         (m32r_output_block_move): Adjust operand numbers.
17796         Properly update the source and destination pointers.
17797         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17798         'r+'.  Change the set detinations to match_operand.
17799
17800 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17801
17802         * final.c (FIRST_INSN_ADDRESS): Remove.
17803         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17804         * system.h (FIRST_INSN_ADDRESS): Poison.
17805         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17806         * config/m32r/m32r-protos.h: Remove the prototype for
17807         m32r_first_insn_address.
17808         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17809         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17810         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17811
17812 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17813
17814         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17815         we just created.
17816         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17817         emitted as subrange types too.
17818         (subrange_type_die): Add handling of enumeration subtypes.
17819
17820 2004-01-08  Richard Henderson  <rth@redhat.com>
17821
17822         PR opt/12441
17823         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17824         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17825         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17826         (ix86_address_cost): Be prepared for SUBREGed registers.
17827         (legitimate_address_p): Accept SUBREGed registers.
17828
17829 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17830
17831         * Makefile.in: Rename configure.in to configure.ac
17832         * doc/sourcebuild.texi: Likewise.
17833         * configure: Regenerate.
17834         * config.in: Regenerate.
17835
17836 2004-01-08  Stuart Hastings  <stuart@apple.com>
17837
17838         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17839
17840 2004-01-08  Jan Hubicka  <jh@suse.cz>
17841
17842         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17843
17844 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17845
17846         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17847         (UNSPEC_FIX_TRUNC_TF): New constant.
17848         (movtf_internal): Make splitter active only when insn is active.
17849         (extenddftf2): Rewrite to properly load zero into low part.
17850         (extenddftf2_internal): New.
17851         (extendsftf2): Rewrite.
17852         (truncdftf2): Correct length.
17853         (floatditf2): Delete.
17854         (fix_trunc_helper): New.
17855         (fix_trunctfdi2): Use fix_trunc_helper.
17856         (fix_trunctfsi2): Likewise.fix_trunc
17857         (fix_trunctfsi2_internal): New.
17858
17859         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17860         addresses are legitimate on Darwin even when flag_pic.
17861         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17862         non-offsettable addresses for loads of TFmode constants.
17863
17864 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17865
17866         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17867         variables in the appropriate bss section.
17868
17869 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17870
17871         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17872         target_flags has MASK_POWERPC64 when -m64.
17873         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17874         to 620, 630, power3, power4 and rs64a entries.
17875         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17876
17877 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17878
17879         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17880         floating-point constants.
17881
17882 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17883
17884         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17885         Create the subrange_type DIE using the given context DIE.
17886         (modified_type_die): Update call to subrange_type_die.
17887
17888 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17889
17890         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17891         Add multiple-include guard.
17892
17893 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17894
17895         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17896         all vector constant loadable by vsplt*.
17897         (output_vec_const_move): Likewise.
17898
17899 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17900
17901         PR c/6024
17902         * c-typeck.c (comptypes): Only treat enumerated types in the same
17903         translation unit as compatible with each other when they are the
17904         same type.
17905         * doc/extend.texi: Update.
17906
17907 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17908
17909         PR c/12165
17910         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17911         array type from the array element type.
17912
17913 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17914
17915         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17916         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17917         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17918         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17919         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17920
17921 2004-01-06  Eric Christopher  <echristo@redhat.com>
17922
17923         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17924         (DWARF2_DEBUGGING_INFO): Define.
17925         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17926         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17927         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17928         for irix as.
17929         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17930         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17931         * config/mips/iris5gas.h: Ditto.
17932         (DBX_DEBUGGING_INFO): Remove.
17933         (DWARF2_DEBUGGING_INFO): Ditto.
17934         (MIPS_DEBUGGING_INFO): Ditto.
17935         (PREFERRED_DEBUGGING_TYPE): Ditto.
17936         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17937         (PREFERRED_DEBUGGING_TYPE): Ditto.
17938         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17939         * config/mips/elf64.h: Ditto.
17940
17941 2004-01-06  Jan Hubicka  <jh@suse.cz>
17942
17943         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17944         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17945
17946 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17947
17948         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17949         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17950         * config/rs6000/darwin-ldouble.c: New.
17951
17952         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17953         for constants.
17954         (constant_subword): Delete.
17955         * rtl.h (constant_subword): Delete prototype.
17956         (immed_double_const): Is not in varasm.c.
17957         * simplify-rtx.c (simplify_immed_subreg): New.
17958         (simplify_subreg): Use simplify_immed_subreg.
17959
17960         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17961         than trying to generate RTL directly.
17962         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17963         RTL directly.
17964
17965         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17966
17967 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17968
17969         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17970         function into a separate macro.
17971         (read_only_data_section): Add void argument.
17972         (private_data_section): Same.
17973         (read_only_private_data_section): Same.
17974         (toc_section): Same.
17975
17976 2004-01-06  Jan Hubicka  <jh@suse.cz>
17977
17978         * invoke.texi:  Remove typo in last change.
17979
17980         PR target/10301
17981         * config.gcc: Accept opteron and athlon-64 as variants
17982         of k8.
17983         * i386.c (override_options): Likewise.
17984         * invoke.texi (i386 -mtune): Expand documentation.
17985
17986 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17987
17988         * alias.c: Fix comment typos.
17989         * builtins.c: Likewise.
17990         * cfg.c: Likewise.
17991         * df.c: Likewise.
17992         * dominance.c: Likewise.
17993         * dwarf2out.c: Likewise.
17994         * emit-rtl.c: Likewise.
17995         * expr.c: Likewise.
17996         * final.c: Likewise.
17997         * fold-const.c: Likewise.
17998         * gcse.c: Likewise.
17999         * genattrtab.c: Likewise.
18000         * genrecog.c: Likewise.
18001         * gensupport.c: Likewise.
18002         * ggc-zone.c: Likewise.
18003         * integrate.c: Likewise.
18004         * local-alloc.c: Likewise.
18005         * loop.c: Likewise.
18006         * recog.c: Likewise.
18007         * regmove.c: Likewise.
18008         * reg-stack.c: Likewise.
18009         * reorg.c: Likewise.
18010         * rtlanal.c: Likewise.
18011         * rtl.h: Likewise.
18012         * sched-ebb.c: Likewise.
18013         * simplify-rtx.c: Likewise.
18014         * toplev.c: Likewise.
18015         * varasm.c: Likewise.
18016
18017 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18018
18019         * doc/install.texi: Fix typos.
18020         * doc/invoke.texi: Likewise.
18021         * doc/md.texi: Likewise.
18022
18023 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18024
18025         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18026
18027 2004-01-06  Jan Hubicka  <jh@suse.cz>
18028
18029         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18030         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18031         of MMX_REGPARM.
18032         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18033         add MMX_REGPARM.
18034         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18035         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18036         (MMX_REGPARM_MAX): Similarly for -mmmx.
18037
18038 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18039
18040         * config/sh/linux.h: Fix comment formatting.
18041         * config/sh/netbsd-elf.h: Likewise.
18042         * config/sh/sh.c: Likewise.
18043         * config/sh/sh.h: Likewise.
18044         * config/sh/vxworks.h: Likewise.
18045
18046 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18047
18048         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18049         * toplev.c (output_file_directive): Don't use
18050         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18051
18052 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18053
18054         * toplev.c: Fix broken checkin of 2003-12-30.
18055
18056 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18057
18058         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18059         (USING_MMAP): We don't support non-mmap.
18060         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18061         large objects.
18062         (struct page_entry): Remove bytes_free.
18063         (struct page_table_chain): Remove.
18064         (struct globals): Remove page_table member.
18065         (loookup_page_table_entry): Function deleted.
18066         (set_page_table_entry): Ditto.
18067         (ggc_allocated_p): No longer need page table lookups.
18068         (ggc_marked_p): Ditto.
18069         (alloc_small_page): Don't care about bytes_free anymore.
18070         (alloc_large_page): Round up size.
18071         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18072         their size the new way.
18073         Remove page table lookups and setting.
18074         (ggc_get_size): Calculate large object size the new way.
18075         (sweep_pages): Redo to account for fact that we no longer have
18076         bytes_free.
18077         (ggc_collect): No longer need to reincrement bytes_free.
18078         (ggc_pch_alloc_object): Handle new large objects properly.
18079         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18080
18081 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18082
18083         * doc/invoke.texi: Remove a page break.
18084
18085 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18086
18087         * config/avr/avr.c (avr_output_function_prologue): Remove an
18088         extra pair of curly braces.
18089
18090 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18091
18092         * config/mn10300/mn10300.c: Fix comment formatting.
18093         * config/mn10300/mn10300.h: Likewise.
18094
18095 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18096
18097         * tree.h: Update documentation on nothrow_flag.
18098         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18099         types.
18100
18101 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18102
18103         * doc/invoke.texi: Remove traces of dead ports.
18104
18105 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18106
18107         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18108         option.
18109
18110 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18111
18112         PR target/12945
18113         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18114         counter labels.
18115         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18116         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18117         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18118         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18119         (mips_symbol_insns): Don't trust the local/global classification.
18120         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18121         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18122         -mno-explicit-relocs.
18123         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18124         between local and global symbols.
18125
18126 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18127
18128         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18129         (mips_preferred_reload_class): Declare.
18130         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18131         (EXTRA_CONSTRAINT): Update accordingly.
18132         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18133         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18134         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18135         mips_dangerous_for_la25_p.
18136         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18137         if mips_dangerous_for_la25_p.
18138
18139 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18140
18141         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18142         warning.
18143
18144 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18145
18146         * configure.ac: Use AC_PROG_CPP_WERROR.
18147         * configure: Regenerate.
18148
18149 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18150
18151         * .cvsignore: Add autom4te.cache.
18152
18153 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18154
18155         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18156         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18157         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18158         then architecture options, then ABI options.  General rewording.
18159
18160 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18161
18162         PR c/3414
18163         * doc/extend.texi: Clarify definition of malloc attribute.
18164
18165 2004-01-04  Jan Hubicka  <jh@suse.cz>
18166
18167         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18168         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18169         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18170         (cgraph_inline_p): Add extra argument reason.
18171         * cgraphunit.c: Minor formating fixes.
18172         cgraph_first_inlined_callee): New functions.
18173         (record_call_1): Record builtins too.
18174         (cgraph_analyze_function): Update inline_failed messages.
18175         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18176         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18177         (cgraph_check_inline_limits): Likewise; Add argument reason.
18178         (cgraph_set_inline_failed): New static function.
18179         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18180         reasons.
18181         (cgraph_inline_p): Add new argument reason.
18182         * tree-inline.c (expand_call_inline):  Update warning.
18183
18184 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18185
18186         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18187         with modern equivalents.
18188         * configure: Regenerate.
18189
18190         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18191         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18192         * configure: Regenerate.
18193
18194         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18195
18196         * configure.in: Rename to configure.ac.
18197         * configure.ac: Renamed from configure.in; make minimum necessary
18198         changes for autoconf 2.5x.
18199         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18200         * configure: Regenerate with autoconf 2.57.
18201
18202 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18203
18204         * config/mips/linux.h: Fix comment formatting.
18205         * config/mips/mips.c: Likewise.
18206         * config/mips/mips.h: Likewise.
18207         * config/mips/mips.md: Likewise.
18208         * config/mips/netbsd.h: Likewise.
18209         * config/mips/windiss.h: Likewise.
18210
18211 2004-01-02  Richard Henderson  <rth@redhat.com>
18212
18213         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18214         for sse and 387; add suppression for mmx.
18215
18216 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18217
18218         * loop.c (loop_optimize): Free all loops_info's mems.
18219
18220         * c-typeck.c (finish_init): Free spelling_base before
18221         setting it again.
18222
18223         * cfgloop.c (flow_loops_find): Always free the sbitmap
18224         headers.
18225
18226         * predict.c (estimate_probability): Free bbs after being
18227         done with it.
18228
18229 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18230
18231         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18232         const_8bit_operand and call_address_operand.
18233
18234 2004-01-02  Jan Hubicka  <jh@suse.cz>
18235
18236         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18237         when there is nothing to inline but warnings are requested.
18238         (cgraph_decide_inlining):  Fix memory leak.
18239
18240 2004-01-02  Jan Hubicka  <jh@suse.cz>
18241
18242         * expr.c (store_constructor):  Fix pasto in previous patch.
18243
18244 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18245
18246         * config/i386/cygming.h: Fix comment formatting.
18247         * config/i386/djgpp.h: Likewise.
18248         * config/i386/gthr-win32.c: Likewise.
18249         * config/i386/i386-interix.h: Likewise.
18250         * config/i386/i386.c: Likewise.
18251         * config/i386/i386.h: Likewise.
18252         * config/i386/openbsd.h: Likewise.
18253         * config/i386/winnt.c: Likewise.
18254         * config/i386/xm-mingw32.h: Likewise.
18255
18256 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18257
18258         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18259         copyright and last modification dates.
18260
18261 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18262
18263         * doc/install.texi (Specific): Mention x86_64.
18264
18265 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18266
18267         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18268         Call force_operand on plus_constant result.
18269
18270 2004-01-01  Jan Hubicka  <jh@suse.cz>
18271
18272         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18273         * expr.c (store_constructor): Use vec_init pattern.
18274         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18275         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18276         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18277         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18278         New patterns.
18279         (sse2_unpc?pd): Fix pattern.
18280         (sse2_movlpd): Kill.
18281         (sse2_movsd): Deal with movlpd too.
18282         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18283         (ix86_expand_vector_init): New.
18284         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18285         * md.texi (vec_set, vec_extract): Document
18286
18287 2003-12-31  Jan Hubicka  <jh@suse.cz>
18288
18289         PR opt/13473
18290         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18291         ASM input operands
18292
18293         PR opt/12617
18294         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18295         (dump_file): Likewise.
18296         (rest_of_compilation): Likewise.
18297
18298         PR debug/13367
18299         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18300         flag_really_no_inline we inline always_inline functions.
18301         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18302         for non-always_inline functions when there is flag_really_no_inline.
18303         (cgraph_decide_inlining): Limit work done when not inlining.
18304         (cgraph_decide_inlining_incrementally): Likewise.
18305         (cgraph_optimize_function): Check whether something got inlined.
18306         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18307         extern inline functions when not inlining.
18308
18309         * opts.c (decode_options):  Disable crossjumping at -O1
18310         * invoke.texi (-O1): Document change.
18311
18312 See ChangeLog.10 for earlier changes.