OSDN Git Service

* cfglayout.c (fixup_reorder_chain): Handle case where the
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * cfglayout.c (fixup_reorder_chain): Handle case where the
4         destination of E_FALL is EXIT_BLOCK_PTR.
5
6 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
7
8         PR target/15653
9         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
10         after shifts before asm.
11
12 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13
14         PR tree-optimization/15993
15         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
16         destination is unchanged.
17
18 2004-06-16  Andreas Jaeger  <aj@suse.de>
19
20         * doc/install.texi (Configuration): Update description for
21         --enable-version-specific-runtime-libs.
22
23 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
24
25         * doc/install.texi: boehm-gc now uses automake 1.8.5.
26
27 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
28
29         * toplev.h (rest_of_compilation): Adjust prototype.
30
31 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
32
33         * coverage.c: Remove argument to rest_of_compilation.
34         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
35         * passes.c (rest_of_compilation): Remove argument.
36         (pass_rest_of_compilation): New.
37         (rest_of_handle_final, rest_of_handle_delay_slots,
38         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
39         rest_of_handle_machine_reorg, rest_of_handle_regrename
40         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
41         rest_of_handle_regmove, rest_of_handle_tracer
42         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
43         rest_of_handle_web, rest_of_handle_branch_prob
44         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
45         rest_of_handle_addressof, rest_of_handle_jump_bypass
46         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
47         Check that the two arguments are actually superfluous.
48         * tree-optimize.c (register_dump_files): Add properties argument.
49         Track validity of passes.  Only initialize dump files for
50         tree-based passes.  Store the full set of provided passes in
51         the pass.
52         (init_tree_optimization_passes): Register pass_expand and
53         pass_rest_of_compilation.
54         (execute_one_pass): Do not track the presence of required properties
55         here.  Set in_gimple_form.  Do not update current_properties.
56         (current_properties): Remove.
57         (set_save_expr_context): Remove.
58         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
59         expand to RTL here, and do not call rest_of_compilation.  Push
60         GGC context even before gimplification.
61         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
62         (pass_expand, pass_rest_of_compilation): Declare.
63
64 2004-06-15  Jeff Law  <law@redhat.com>
65
66         * fold-const.c (swap_tree_comparison): No longer static.
67         (tree_swap_operands_p): Similarly.  Return true if both operands
68         are SSA_NAMEs and the first operand has a higher version number than
69         the second operand.
70         * tree.h (swap_tree_comparison): Prototype.
71         (tree_swap_operands_p): Prototype.
72         * tree-ssa-operands.c (get_expr_operands): For commutative
73         operators and relational comparisons, canonicalize the
74         order of the operands.
75
76 2004-06-15  Richard Henderson  <rth@redhat.com>
77
78         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
79         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
80         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
81         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
82         (finish_fname_decls, fname_decl): Use statement_lists.
83         (c_expand_expr_stmt): Don't set last_expr_type.
84         (c_type_hash): Fix indentation.
85         (c_safe_from_p): Don't follow TREE_CHAIN.
86         (c_tree_chain_matters_p): Remove.
87         * c-common.def (SCOPE_STMT): Remove.
88         (CLEANUP_STMT): Redefine to contain its own body.
89         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
90         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
91         Add x_cur_stmt_list.
92         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
93         (cur_stmt_list): New.
94         (STATEMENT_LIST_STMT_EXPR): New.
95         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
96         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
97         (CLEANUP_BODY): New.
98         (CLEANUP_DECL): Move to operand 2.
99         (c_common_stmt_codes): Remove SCOPE_STMT.
100         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
101         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
102         (c_push_function_context, c_pop_function_context): Don't save it.
103         (finish_decl): Set TREE_USED on the decl for a cleanup.
104         Use push_cleanup.
105         (store_parm_decls): Use statement lists.
106         (finish_function): Remove compstmt rule workaround.  Use statement
107         lists.  Call finish_fname_decls after finalizing the body.
108         (c_begin_compound_stmt): Move to c-typeck.c.
109         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
110         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
111         (c_genericize): Invoke them.
112         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
113         (c_build_bind_expr): Export.
114         (gimplify_block, gimplify_cleanup): Remove.
115         (gimplify_condition): Use gimplify_stmt.
116         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
117         (gimplify_if_stmt): Remove recursion hack.
118         (c_gimplify_expr): Remove STMT_EXPR handling.
119         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
120         (is_last_stmt_of_scope): Remove.
121         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
122         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
123         c_end_compound_stmt.
124         * c-objc-common.c (build_cdtor): Likewise.
125         * c-parse.in (primary): Use c_finish_stmt_expr.
126         (push_scope, pop_scope): Remove.
127         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
128         (c99_block_end, compstmt): Use c_end_compound_stmt.
129         (c99_block_lineno_labeled_stmt): Likewise.
130         (compstmt_primary_start): Use c_begin_stmt_expr.
131         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
132         (do_stmt_start): Fill in body directly.
133         (lineno_stmt): Avoid setting lineno on constants.
134         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
135         Remove SCOPE_STMT.
136         * c-semantics.c (begin_stmt_tree): Remove.
137         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
138         (add_stmt): Use statement lists.
139         (add_scope_stmt, finish_stmt_tree): Remove.
140         (push_cleanup): New.
141         * c-tree.h: Move some decls from c-common.h.
142         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
143         (do_case, c_finish_case): Likewise.
144         (c_finish_then): Take body for then as argument.
145         (c_finish_else): Similarly.
146         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
147         c_finish_for_stmt_incr, c_finish_for_stmt): New.
148         (c_begin_stmt_expr, c_finish_stmt_expr): New.
149         (c_begin_compound_stmt): Do scope management.
150         (c_end_compound_stmt): New.
151         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
152         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
153         Look through exception handling constructs.
154         (gimplify_bind_expr): Accept temporary argument.
155         (gimplify_target_expr): Special case BIND_EXPR bodies.
156         (gimplify_expr): Handle fallback == fb_none like a statement.
157         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
158         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
159         * langhooks.h (tree_chain_matters_p): Remove.
160         * stub-objc.c (objc_clear_super_receiver): New.
161         * tree-gimple.h (voidify_wrapper_expr): Update decl.
162         (append_to_statement_list, append_to_statement_list_force): Move
163         to tree-iterator.h.
164         * tree-inline.c (expand_call_inline): Update call.
165         (clone_body): Use statement lists.
166         (walk_tree): Don't check tree_chain_matters_p.
167         (copy_tree_r): Likewise.
168         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
169         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
170         * tree-iterator.h (append_to_statement_list,
171         append_to_statement_list_force): Moved from tree-gimple.h.
172         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
173         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
174         (objc_enter_block): Likewise.
175         (objc_exit_block): Use c_end_compound_stmt.
176         (objc_build_try_enter_fragment): Add #error and comment for
177         rewriting for OBJCPLUS.
178         (objc_build_extract_fragment, objc_build_try_epilogue,
179         objc_build_catch_stmt, objc_build_finally_prologue,
180         objc_build_finally_epilogue): Update for C statement builders.
181         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
182         Remove.
183
184 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
185
186         * df.c (df_reg_clobber_gen): Removed.
187         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
188         Make more effective for hard regs.
189         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
190
191 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
192
193         * c-pragma.h (c_lex_string_translate): Change type to int.
194         * c-parse.in: Change all assignments of c_lex_string_translate
195         to true and false to 1 and 0.
196         * c-lex.c (c_lex_string_translate): Likewise.
197         (lex_string): Convert string without translation in the -1
198         case.
199
200 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
201
202         * convert.h: Add include guards
203
204 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
205
206         * tree-flow-inline.h: Document all functions.
207
208 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
209
210         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
211         * tree-dfa.c (create_stmt_ann): Ditto.
212         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
213         * tree-inline.c (estimate_num_insns_1): Ditto.
214         * tree.c (tree_size): Ditto.
215         (make_node_stat): Ditto.
216         (tree_node_structure): Ditto.
217         (ephi_node_elt_check_failed): Remove.
218         (is_essa_node): Ditto.
219         * tree.def (EPHI_NODE): Ditto.
220         (EEXIT_NODE): Ditto.
221         (EUSE_NODE): Ditto.
222         (EKILL_NODE): Ditto.
223         * tree.h (EREF_NODE_CHECK): Remove.
224         (EPHI_NODE_ELT_CHECK): Ditto.
225         (struct tree_eref_common): Ditto.
226         (struct tree_euse_node): Ditto.
227         (struct ephi_arg_d): Ditto.
228         (struct tree_ephi_node): Ditto.
229         (ephi_node_elt_check_failed): Remove prototype.
230         (is_essa_node): Ditto.
231         (enum tree_node_structure_enum): Remove TS_E*_NODE.
232         (union tree_node): Remove E*_NODE uses.
233
234 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
235
236         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
237         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
238         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
239         Likewise.
240         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
241         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
242         expand_builtin_strcmp, expand_builtin_strncmp,
243         expand_builtin_frame_address): Likewise.
244         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
245         insert_one_insn): Likewise.
246         * calls.c (prepare_call_address, precompute_register_parameters,
247         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
248         * cfganal.c (flow_active_insn_p): Likewise.
249         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
250         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
251         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
252         make_extraction, recog_for_combine, gen_lowpart_for_combine,
253         simplify_comparison, record_dead_and_set_regs_1,
254         record_dead_and_set_regs, record_promoted_value,
255         check_promoted_subreg, get_last_value_validate, get_last_value,
256         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
257         unmentioned_reg_p_1): Likewise.
258         * conflict.c (mark_reg): Likewise.
259         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
260         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
261         merge_equiv_classes, flush_hash_table, invalidate,
262         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
263         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
264         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
265         record_jump_cond, cse_insn, addr_affects_sp_p,
266         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
267         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
268         cse_cc_succs, cse_condition_code_reg): Likewise.
269         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
270         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
271         cselib_record_set, cselib_record_sets): Likewise.
272         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
273         dbxout_block): Likewise.
274         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
275         * dojump.c (do_jump): Likewise.
276         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
277         is_based_loc, rtl_for_decl_location): Likewise.
278         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
279         set_decl_incoming_rtl, mark_user_reg): Likewise.
280         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
281         copy_to_suggested_reg, allocate_dynamic_stack_space,
282         probe_stack_range, hard_function_value): Likewise.
283         * expmed.c (store_bit_field, store_fixed_bit_field,
284         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
285         extract_split_bit_field, expand_divmod, emit_store_flag_force):
286         Likewise.
287         * expr.c (convert_move, convert_modes,
288         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
289         use_group_regs, emit_move_insn, emit_move_insn_1,
290         compress_float_constant, push_block, emit_single_push_insn,
291         emit_push_insn, get_subtarget, expand_assignment, store_expr,
292         store_constructor, store_field, force_operand, safe_from_p,
293         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
294         Likewise.
295         * final.c (profile_function, final_scan_insn, alter_subreg,
296         get_mem_expr_from_op, output_asm_operand_names, output_operand,
297         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
298         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
299         find_regno_partial, propagate_one_insn, init_propagate_block_info,
300         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
301         attempt_auto_inc, find_auto_inc, mark_used_regs,
302         count_or_remove_death_notes_bb): Likewise.
303         * function.c (find_temp_slot_from_address, update_temp_slot_address,
304         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
305         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
306         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
307         purge_single_hard_subreg_set, instantiate_decl,
308         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
309         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
310         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
311         expand_function_start, diddle_return_value, clobber_return_register,
312         expand_function_end, keep_stack_depressed, handle_epilogue_set,
313         update_epilogue_consts): Likewise.
314         * genemit.c (gen_exp, gen_insn): Likewise.
315         * genrecog.c (make_insn_sequence): Likewise.
316         * global.c (global_conflicts, expand_preferences, mark_reg_store,
317         mark_reg_conflicts, set_preference, reg_becomes_live,
318         build_insn_chain, mark_reg_change): Likewise.
319         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
320         Likewise.
321         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
322         Likewise.
323         * integrate.c (copy_rtx_and_substitute, try_constants,
324         subst_constants, mark_stores, allocate_initial_values): Likewise.
325         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
326         delete_computation, rtx_renumbered_equal_p, true_regnum,
327         reg_or_subregno): Likewise.
328         * lcm.c (reg_dies, reg_becomes_live): Likewise.
329         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
330         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
331         wipe_dead_reg, no_conflict_p): Likewise.
332         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
333         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
334         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
335         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
336         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
337         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
338         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
339         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
340         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
341         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
342         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
343         try_swap_copy_prop): Likewise.
344         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
345         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
346         Likewise.
347         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
348         reload_cse_simplify_operands, reload_combine,
349         reload_combine_note_store, reload_combine_note_use,
350         reload_cse_move2add, move2add_note_store): Likewise.
351         * print-rtl.c (print_rtx): Likewise.
352         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
353         contains_pseudo, handle_asm_insn): Likewise.
354         * ra-debug.c (ra_print_rtx_object, dump_constraints,
355         dump_static_insn_cost): Likewise.
356         * ra-rewrite.c (slots_overlap_p, emit_colors,
357         remove_suspicious_death_notes): Likewise.
358         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
359         register_operand, scratch_operand, nonmemory_operand,
360         constrain_operands): Likewise.
361         * reg-stack (check_asm_stack_operands, remove_regno_note,
362         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
363         subst_asm_stack_regs): Likewise.
364         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
365         record_address_regs, reg_scan_mark_refs): Likewise.
366         * regmove.c (discover_flags_reg, replacement_quality,
367         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
368         fixup_match_1): Likewise.
369         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
370         kill_set_value, copyprop_hardreg_forward_1): Likewise.
371         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
372         reload_inner_reg_of_subreg, can_reload_into, push_reload,
373         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
374         operands_match_p, decompose, find_reloads, find_reloads_toplev,
375         find_reloads_address, subst_indexed_address, find_reloads_address_1,
376         find_reloads_subreg_address, find_replacement,
377         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
378         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
379         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
380         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
381         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
382         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
383         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
384         do_output_reload, emit_reload_insns, gen_reload,
385         delete_address_reloads_1, inc_for_reload): Likewise.
386         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
387         update_reg_unused_notes, fill_slots_from_thread): Likewise.
388         * resource.c (update_live_status, mark_referenced_resources,
389         mark_set_resources, mark_target_live_regs): Likewise.
390         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
391         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
392         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
393         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
394         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
395         parms_set, find_first_parameter_load, keep_with_call_p,
396         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
397         num_sign_bit_copies1): Likewise.
398         * rtlhooks.c (gen_lowpart_general): Likewise.
399         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
400         sched_analyze): Likewise.
401         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
402         Likewise.
403         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
404         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
405         simplify_binary_operation, simplify_const_relational_operation,
406         simplify_subreg): Likewise.
407         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
408         expand_end_stmt_expr, expand_return, expand_decl,
409         expand_anon_union_decl): Likewise.
410         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
411         find_splittable_regs, find_splittable_givs, find_common_reg_term,
412         loop_iterations): Likewise.
413         * var-tracking.c (variable_union, variable_part_different_p,
414         variable_different_p, count_uses, add_uses, add_stores,
415         compute_bb_dataflow, set_variable_part, delete_variable_part,
416         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
417         Likewise.
418         * varasm.c (assemble_variable): Likewise.
419
420 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
421
422         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
423         definition.
424         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
425         #undef and #if 0'd definition.
426
427 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
428
429         * combine.c (distribute_notes): Comment typo fix.
430
431 2004-06-15  Roger Sayle  <roger@eyesopen.com>
432
433         * expmed.c (synth_mult): Mask bits of the multiplier to the
434         machine mode of the multiplication.  Don't consider shifts
435         by more than (or equal to) the width of the operation's mode.
436
437 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
438
439         * doc/install.texi: Yet another update for autoconf
440         and automake versions.
441
442 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
443
444         * function.h (struct function): Remove cannot_inline field.
445         (current_function_cannot_inline): Remove.
446         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
447         Simplify conditionals to ignore warn_return_type.
448         * tree-optimize.c (tree_rest_of_compilation): Do not reset
449         DECL_DEFER_OUTPUT.
450         * objc/objc-act.c (build_module_descriptor, finish_method_def):
451         Do not set current_function_cannot_inline.
452
453 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
454
455         * cfglayout.c (fixup_reorder_chain): Handle case where the
456         destination of E_TAKEN is EXIT_BLOCK_PTR.
457
458 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
459
460         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
461
462 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
463
464         * fold-const.c (operand_equal_p): Update comment.
465
466 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
467
468         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
469         (INCOMING_RETURN_ADDR_RTX): Define.
470         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
471         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
472         __builtin_return_address(0).
473         (m32r_return_addr): Added for __builtin_return_address(0).
474         (m32r_reload_lr): Ditto.
475
476         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
477
478 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
479
480         * doc/install.texi (Prerequisites): Update libbanshee,
481         fastjar, libcpp, libjava/libltdl entries to
482         automake 1.8.5.
483
484 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
485             Olivier Hainque  <hainque@act-europe.fr>
486
487         * function.c (fixup_var_refs): Also adjust the start of sequence
488         after fixing up the insns.
489
490 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
491
492         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
493
494 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
495
496         * doc/install.texi (Prerequisites): Update libstdc++ entry to
497         automake 1.8.5.
498
499 2004-06-14  Eric Christopher  <echristo@redhat.com>
500
501         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
502         to -mtpf-trace (-mno-tpf-trace).
503         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
504         documentation.
505
506 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
507
508         * real.c: Fix bit count in head comment.
509
510 2004-06-14  Jeff Law  <law@redhat.com>
511
512         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
513         PHIs where the destination or an argument is marked with
514         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
515
516 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
517
518         PR middle-end/15945
519         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
520         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
521
522 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
523
524         * opts.sh (var_args): Fix regexp.
525
526 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
527
528         PR target/15178
529         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
530
531 2004-06-14  Paul Brook  <paul@codesourcery.com>
532
533         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
534
535 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
536
537         * Makefile.in (FLAGS_H): New.
538         (flags.h): Replace by FLAGS_H.
539         * c.opt: Document Var, VarExists, Init and Report attributes.
540         * common.opt: Fill the values of the attributes.
541         * diagnostic.c (flag_fatal_errors): Do not define.
542         * except.c (flag_non_call_exceptions): Do not define.
543         * flags.h: Include options.h.  Remove declarations conflicting with
544         the automatically defined ones.
545         * opts.c: Remove automatically defined variables.
546         (handle_option): Perform default initialization.
547         (common_handle_option): Do not handle options covered by the
548         default initialization.
549         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
550         fields.
551         (CL_REPORT): New.
552         * opts.sh: Generate variable declarations, handle CL_REPORT.
553         * toplev.c: Remove automatically defined variables.
554         (f_options): Removed.
555         (print_switch_values): Use cl_options instead of f_options.
556         * toplev.h (version_flag): Declaration removed.
557
558 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
559
560         * config/sparc/sparc.h: Correct comment about availability of
561         little endian option.
562
563         * config.gcc: Remove sparc64-*-aout*.
564         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
565         * config/sparc/sp64-aout.h: Remove.
566         * config/sparc/aout.h: Remove.
567
568 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
569
570         * config/s390/s390.c: Include "tree-gimple.h".
571         (s390_gimplify_va_arg): New function.
572         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
573         (s390_va_arg): Remove.
574         * config/s390/s390-protos.h (s390_va_arg): Remove.
575         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
576
577 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
578
579         * basic-block.h (could_fall_through): Declare.
580         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
581         Fail if the source already has a fallthrough edge to the exit
582         block pointer.
583         (could_fall_through): New function.
584         * cfgbuild.c (make_edges): Check if we already have a fallthrough
585         edge to the exit block pointer.
586         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
587         not called before reload has completed.
588         Handle special case of first block having a fall-through exit edge.
589         (cfg_layout_finalize): Don't call it before reload or if we have
590         rtl epilogues.
591         (fixup_reorder_chain): A fall through to the exit block does not
592         require the block to come last.  Add sanity checks.
593         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
594         edges to the exit block.
595         * function.c (cfglayout.h): #include.
596         (thread_prologue_and_epilogue_insns): If we have neither return nor
597         epilogue, but a fall through to the exit block from mid-function,
598         force a non-fall-through exit.
599         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
600
601 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
602
603         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
604         for power5 and rs64a.  Correct condition for default.  Correct power3,
605         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
606
607 2004-06-13  Steven Bosscher <stevenb@suse.de>
608
609         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
610         Revert previous change, don't use CALL_P.
611
612 2004-06-13  Jason Merrill  <jason@redhat.com>
613
614         * tree.h: Move std_gimplify_va_arg_expr protoype here.
615         * tree-gimple.h: From here.
616
617 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
618
619         Fix PR tree-optimization/15979
620         Fix PR tree-optimization/15981
621         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
622         try to insert values undefined along some path.
623
624 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
625
626         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
627         are available everywhere too.
628
629 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
630
631         * fold-const.c (fold_checksum_tree <case 't'>): Only
632         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
633         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
634         EXPR is an INTEGERAL_TYPE or a scalar float type.
635
636 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
637
638         * tree-sra.c (tree_sra): Update documentation.
639
640 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
641
642         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
643         function_types_compatible_p, type_lists_compatible_p): Remove
644         flags parameter.
645         * c-tree.h (comptypes): Likewise.
646         (COMPARE_STRICT): Remove.
647         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
648         callers changed.
649
650 2004-06-13  Eric Christopher  <echristo@redhat.com>
651
652         * c-decl.c (diagnose_mismatched_decls): Improve error message.
653         Remove unused code.
654         * c-typeck.c (comptypes): Add location in standard we're checking.
655
656 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
657
658         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
659         version 3.3.4.
660
661 2004-06-12  Roger Sayle  <roger@eyesopen.com>
662
663         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
664         index by machine mode.
665         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
666         tables inside the loop over machine modes.
667         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
668         expand_divmod): Index shift*_cost by the appropriate machine mode.
669
670 2004-06-12  Eric Christopher  <echristo@redhat.com>
671
672         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
673         * config/s390/s390.md: Ditto.
674         * config/s390/s390.c: Ditto.
675         (s390_frame_info): Conditionalize frame and setup info on
676         TARGET_TPF_PROFILING.
677         (s390_arg_frame_offset): Ditto.
678
679 2004-06-12  Roger Sayle  <roger@eyesopen.com>
680
681         * fold-const.c (omit_two_operands): New function.
682         * tree.h (omit_two_operands): Prototype here.
683         * builtins.c (fold_builtin_unordered_cmp): New function to lower
684         C99 unordered comparison builtins to the appropriate tree nodes.
685         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
686         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
687         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
688         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
689         (simplify_builtin_memcmp, simplify_builtin_strncmp,
690         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
691         omit_two_operands function to build the required COMPOUND_EXPRs.
692
693 2004-06-12  Steven Bosscher <stevenb@suse.de>,
694             Andreas Jaeger  <aj@suse.de>
695
696         * gcse.c (record_set_info): Use predicates like REG_P.
697         (mems_conflict_for_gcse_p): Likewise.
698         (load_killed_in_block_p): Likewise.
699         (hash_expr_1): Likewise.
700         (insert_set_in_table): Likewise.
701         (gcse_constant_p): Likewise.
702         (hash_scan_set): Likewise.
703         (hash_scan_insn): Likewise.
704         (canon_list_insert): Likewise.
705         (record_last_mem_set_info): Likewise.
706         (record_last_set_info): Likewise.
707         (compute_hash_table_work): Likewise.
708         (mark_set): Likewise.
709         (mark_clobber): Likewise.
710         (mark_oprs_set): Likewise.
711         (compute_transp): Likewise.
712         (find_avail_set): Likewise.
713         (cprop_insn): Likewise.
714         (do_local_cprop): Likewise.
715         (cprop): Likewise.
716         (find_implicit_sets): Likewise.
717         (find_bypass_set): Likewise.
718         (bypass_conditional_jumps): Likewise.
719         (insert_insn_end_bb): Likewise.
720         (pre_insert_copy_insn): Likewise.
721         (compute_transpout): Likewise.
722         (next_ls_expr): Likewise.
723         (invalidate_any_buried_refs): Likewise.
724         (compute_ld_motion_mems): Likewise.
725         (reg_set_info): Likewise.
726         (reg_clear_last_set): Likewise.
727         (find_moveable_store): Likewise.
728         (compute_store_table): Likewise.
729         (find_loads): Likewise.
730         (store_killed_in_insn): Likewise.
731         (insert_insn_start_bb): Likewise.
732         (reg_set_between_after_reload_p): Likewise.
733         (reg_used_between_after_reload_p): Likewise.
734         (is_jump_table_basic_block): Likewise.
735         (gcse_after_reload): Likewise.
736         (hash_scan_set_after_reload): Likewise.
737         (compute_hash_table_after_reload): Likewise.
738
739 2004-06-12  Steven Bosscher  <stevenb@suse.de>
740
741         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
742         (INSN_P): Don't look at the rtx code class, just explicitly
743         check for one of the tree RTX_INSN codes.
744
745 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
746
747         * c-typeck.c (default_function_array_conversion): Use
748         build_pointer_type not TYPE_POINTER_TO.
749
750 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
751
752         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
753         * configure, config.in: Regenerate.
754         * system.h: Unconditionally define bool as unsigned char,
755         BOOL_BITFIELD as unsigned int.
756         * domwalk.h: Use BOOL_BITFIELD.
757
758 2004-06-12  Andreas Jaeger  <aj@suse.de>
759
760         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
761         * libgcc-darwin.ver: Likewise.
762
763 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
764
765         * reload.c (find_reloads): Force reload for pseudo registers on big
766         endian machines.
767
768 2004-06-11  Steven Bosscher <stevenb@suse.de>
769
770         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
771         Don't try to mark anything control dependent on the entry or
772         exit blocks.
773
774 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
775
776         Fix Bug 15899
777         Fix Bug 15460
778         * tree.h (SSA_NAME_VALUE): New macro.
779         (struct tree_ssa_name): Add value_handle member.
780         * tree-ssa-pre.c: Replaced.
781         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
782         (struct cst_ann_d): New.
783         (struct expr_ann_d): New.
784         (union tree_ann_d): Add cst_ann, expr_ann.
785         * tree-dfa.c (create_cst_ann): New function.
786         (create_expr_ann): Ditto.
787         * tree-flow-inline.h (cst_ann): New function.
788         (expr_ann): Ditto.
789         (get_cst_ann): Ditto.
790         (get_expr_ann): Ditto..
791
792 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
793
794         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
795         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
796         _U_Qfcmp library function.
797         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
798         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
799
800         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
801         unspec used for loading address from DLT.
802         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
803         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
804         Don't use short code sequence when loading the address of a nonlocal
805         label.
806         (nonlocal_goto): New expander.
807         (indirect_goto): New jump pattern for nonlocal gotos.
808         (short_jump): Remove extra whitespace.
809         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
810         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
811         pattern.
812
813 2004-06-11  Roger Sayle  <roger@eyesopen.com>
814
815         * expmed.c (synth_mult): Add an additional MODE argument for the
816         machine mode of the multiplication.  Update recursive calls.  Use
817         mode instead of word_mode for determining operation costs.
818         (choose_mult_variant): Update calls to synth_mult with "mode".
819
820 2004-06-11  Richard Henderson  <rth@redhat.com>
821
822         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
823         and makes_aliased_stores.
824
825 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
826
827         * doc/install.text (--enable-shared): Fix typo.
828
829 2004-06-11  Richard Henderson  <rth@redhat.com>
830
831         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
832         argument.  Use internal post for call to gimplify_expr.  Tidy
833         rounded type size computation.
834         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
835         get_initialized_tmp_var.
836
837 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
838
839         * doc/install.texi (--enable-shared): Update libobjc's shared library
840         status.  Remove reference to libf2c.
841
842 2004-06-11  Jason Merrill  <jason@redhat.com>
843
844         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
845         * config/i386/i386.c (ix86_va_arg): Remove.
846         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
847         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
848         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
849         * config/alpha/alpha.c (alpha_va_arg): Remove.
850         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
851         * config/sparc/sparc.c (sparc_va_arg): Remove.
852
853         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
854         assignment might throw.
855         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
856         expressions.
857
858 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
859
860         PR 15886:
861         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
862
863 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
864
865         * doc/install.texi (Prerequisites): Update documentation of
866         required versions of autoconf and automake.  Remove mention of
867         libf2c.
868
869 2004-06-11  Jason Merrill  <jason@redhat.com>
870
871         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
872         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
873
874 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
875
876         * typeclass.h: Add GPL plus exception license.  Add include
877         guard.
878
879 2004-06-10  Jason Merrill  <jason@redhat.com>
880
881         * gimplify.c (gimplify_modify_expr): Don't force a temporary
882         of an aggregate_value_p type.
883
884 2004-06-10  Jeff Law  <law@redhat.com>
885
886         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
887         code when we are in gimple form.
888
889 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
890
891         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
892         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
893         (highest_ssa_version): Remove.
894         * tree-outof-ssa.c (new_temp_expr_table): Replace
895         highest_ssa_version with num_ssa_names.
896         (dump_replaceable_exprs): Likewise.
897         (rewrite_vars_out_of_ssa): Likewise.
898         * tree-ssa-ccp.c (initialize): Likewise
899         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
900         * tree-ssa-dce.c (tree_dce_init): Likewise.
901         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
902         * tree-ssa-live.c (create_ssa_var_map): Likewise.
903         (dump_var_map): Likewise.
904         * tree-ssa.c (verify_ssa): Likewise.
905         (kill_redundant_phi_nodes): Likewise.
906         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
907         * tree-ssanames.c: Include tree-flow.h
908         (ssa_names): New varray.
909         (init_ssa_names): Initialize ssa_names.
910         Reserve the first slot of the ssa_names table.
911         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
912         Assign version numbers using num_ssa_names.
913
914 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
915
916         * doc/sourcebuild.texi (Front End): Add details of more
917         installation documentation required.
918
919 2004-06-10  Brian Booth  <bbooth@redhat.com>
920
921         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
922         of V_MAY_DEF and V_MUST_DEF.
923         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
924         num_vdefs to num_v_may_defs.
925         (compute_immediate_uses_for_stmt): Rename occurences of vdef
926         to v_may_def.
927         (redirect_immediate_uses): Ditto.
928         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
929         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
930         Also add code to sum up the number of v_must_defs.
931         (vdefs_disappeared_p): Replace with...
932         (v_may_defs_disappeared_p): This.
933         (v_must_defs_disappeared_p): New function.
934         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
935         Also add code to mark new variables found in V_MUST_DEFs for
936         renameing.
937         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
938         vdef_ops to v_may_def_ops.
939         (get_vdef_ops): Replace with...
940         (get_v_may_def_ops): This.
941         * tree-flow-inline.h (get_vdef_ops): Replace with...
942         (get_v_may_def_ops): This.
943         (get_v_must_def_ops): New function.
944         (get_vdef_result_ptr): Replace with...
945         (get_v_may_def_result_ptr): This.
946         (get_vdef_op_ptr): Ditto with...
947         (get_v_may_def_op_ptr); This.
948         (get_v_must_def_op_ptr): New function.
949         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
950         to v_may_def. Also add code to mark statements with
951         V_MUST_DEFs as definition sites.
952         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
953         add code to register new V_MUST_DEFs made by the statement.
954         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
955         (check_replaceable): Rename occurences of vdef to v_may_def. Also
956         add check for V_MUST_DEFs.
957         (find_replaceable_in_bb): Ditto.
958         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
959         to v_may_def. Also add code to dump V_MUST_DEFs.
960         * tree-sra.c (mark_all_vdefs): Replace with...
961         (mark_all_v_may_defs): This.
962         (mark_all_v_must_defs): New function.
963         (create_scalar_copies): Replace call to mark_all_vdefs with
964         calls to mark_all_v_may_defs and mark_all_v_must_defs.
965         (scalarize_structures): Rename occurences of vdef to v_may_def.
966         Also add a check for V_MUST_DEFs.
967         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
968         * tree-ssa-alias.c (global_var): Update comment.
969         (compute_may_aliases): Ditto.
970         (compute_points_to_and_addr_escape): Rename occurences of vdef
971         to v_may_def. Also add code to mark variables in V_MUST_DEF
972         operands as being written to.
973         (group_aliases): Update comment.
974         (maybe_create_global_var): Ditto.
975         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
976         Also add a check for V_MUST_DEFs on GIMPLE registers.
977         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
978         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
979         to v_may_def. Also add code to mark all V_MUST_DEF operands
980         VARYING.
981         (initialize): Ditto.
982         (set_rhs): Rename occurences of vdef to v_may_def. Also add
983         code to update SSA_NAMEs in V_MUST_DEFs.
984         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
985         to v_may_def.
986         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
987         occurences of vdef to v_may_def. Also add code to mark statements
988         with V_MUST_DEFs as necessary.
989         (propagate_necessity): Rename occurences of vdef to v_may_def.
990         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
991         occurences of vdef to v_may_def. Also add code to mark operands
992         in V_MUST_DEFs for renaming.
993         (eliminate_redundant_computations): Rename occurences of vdef
994         to v_may_def.
995         (record_equivalences_from_stmt): Rename occurences of vdef
996         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
997         (optimize_stmt): Remove unnesessary variable vdefs. Update
998         comment.
999         (register_definitions_for_stmt): Rename occurences of vdef
1000         to v_may_def. Also add code to register definitions made with
1001         V_MUST_DEFs.
1002         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1003         (fix_stmt_v_may_defs): This.
1004         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1005         (dse_optimize_stmt): Ditto.
1006         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1007         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1008         used in virtual operators.
1009         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1010         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1011         renaming.
1012         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1013         definitions.
1014         (build_vdefs): Renamed to...
1015         (build_v_may_defs): This.
1016         (build_v_must_defs): New variable.
1017         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1018         v_may_def_ops.
1019         (append_vdef): Replace with...
1020         (append_v_may_def): This.
1021         (append_v_must_def): New function.
1022         (NUM_FREE): Increment for V_MUST_DEF
1023         (optype_freelist): Increment its size for V_MUST_DEF
1024         (allocate_vdef_optype): Replace with...
1025         (allocate_v_may_def_optype): This.
1026         (allocate_v_must_def_optype): New function.
1027         (free_vdefs): Replace with...
1028         (free_v_may_defs): This.
1029         (free_v_must_defs): New function.
1030         (remove_vdefs): Replace with...
1031         (remove_v_may_defs): This.
1032         (remove_v_must_defs): New function.
1033         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1034         add code to initialize build_v_must_defs.
1035         (finalize_ssa_vdefs): Replace with...
1036         (finalize_ssa_v_may_defs): This.
1037         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1038         (finalize_ssa_v_must_defs): New function.
1039         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1040         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1041         (verify_start_operands): Rename occurences of vdef to v_may_def.
1042         Also add check for build_v_must_defs.
1043         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1044         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1045         killing definitions.
1046         (get_expr_operands): Update comment and use opf_kill_def for
1047         killing definitions.
1048         (add_stmt_operand): Replace code that appends VDEFs with code
1049         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1050         otherwise.
1051         (add_call_clobber_ops): Update comments.
1052         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1053         (v_may_def_optype_d): This.
1054         (v_must_def_optype_d): New structure.
1055         (VDEF_OPS): Replace with...
1056         (V_MAY_DEF_OPS): This.
1057         (STMT_VDEF_OPS): Same with...
1058         (STMT_V_MAY_DEF_OPS): This.
1059         (NUM_VDEFS): And...
1060         (NUM_V_MAY_DEFS): This.
1061         (VDEF_RESULT_PTR): As well as...
1062         (V_MAY_DEF_RESULT_PTR): This.
1063         (VDEF_RESULT): Same goes for...
1064         (V_MAY_DEF_RESULT): This.
1065         (VDEF_OP_PTR): And...
1066         (V_MAY_DEF_OP_PTR): This.
1067         (VDEF_OP): And...
1068         (V_MAY_DEF_OP): This.
1069         (V_MUST_DEF_OPS): New macro.
1070         (STMT_V_MUST_DEF_OPS): Ditto.
1071         (NUM_V_MUST_DEFS): Ditto.
1072         (V_MUST_DEF_OP_PTR): Ditto.
1073         (V_MUST_DEF_OP): Ditto.
1074         (remove_vdefs): Replace signature with...
1075         (remove_v_may_defs): This.
1076         (remove_v_must_defs): New function signature.
1077         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1078         with calls to remove_v_may_defs and remove_v_must_defs.
1079         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1080         Also add code that marks left occurences of operands in V_MUST_DEFs.
1081         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1082         to v_may_def. Also add check for V_MUST_DEFs.
1083         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1084
1085 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1086
1087         PR target/15653
1088         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1089         insn.
1090
1091 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1092
1093         PR web/15263
1094         * doc/install.texi: Remove superfluous linebreak.
1095
1096 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1097
1098         * builtins.c (expand_builtin): Fall back to library function call for
1099         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1100         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1101         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1102         IMAGPART_EXPR respectively.
1103
1104 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1105
1106         * sh.c (dump_table): New argument start.  Changed caller.
1107         (fixup_mova): New function.
1108         (find_barrier): Use it.
1109         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1110         If the label a mova refers to is above the mova itself, change
1111         the mova into a load.
1112         * sh.md (*casesi_worker): Rename to:
1113         (casesi_worker_1).
1114         (casesi_worker_2): New insn.
1115
1116 2004-06-10  Jason Merrill  <jason@redhat.com>
1117
1118         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1119         hook signature.
1120         * tree-gimple.h: Adjust.
1121         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1122         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1123         Use fold_convert.
1124         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1125         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1126         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1127         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1128         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1129         Gimplify valist rather than calling stabilize_va_list.
1130
1131 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1132
1133         * Makefile.in (df.o): Remove fibheap dependency.
1134         * df.h: Do not include sbitmap.h.
1135         (struct ref): New field "data".
1136         (DF_REF_DATA): New accessor macro.
1137         (struct df): Field "dom" removed.
1138         (df_analyze_subcfg): New function.
1139         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1140         (transfer_function): ... new type.
1141         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1142         (iterative_dataflow): ... new function.
1143         (enum set_representation, struct dataflow): New.
1144         * df.c: Do not include fibheap.h.
1145
1146         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1147         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1148         prune_to_subcfg, df_bb_modify): New functions.
1149         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1150         df_refs_update, df_reg_table_realloc, df_ref_create,
1151         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1152         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1153         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1154
1155         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1156         (df_rd_transfer_function, df_ru_transfer_function,
1157         df_lr_transfer_function): Type of bitmaps changed to void *.
1158         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1159         (hybrid_search): ... new function.
1160         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1161         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1162         a worklist.  Do not process basic blocks unnecessarily.
1163
1164 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1165
1166         * fold-const.c (fold_abs_const): Make extern.
1167         * tree.h (fold_abs_const): Prototype here.
1168         * builtins.c (fold_builtin_fabs): New function to transform
1169         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1170         (fold_builtin_abs): New function to transform abs, labs, llabs
1171         and imaxabs builtins into ABS_EXPR tree nodes.
1172         (expand_builtin): Fall back to a function call for abs, labs,
1173         llabs and imaxabs builtins that survive constant folding.
1174         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1175         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1176
1177 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1178
1179         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1180         leaf function without unwind info at RP 0.
1181
1182 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1183
1184         PR c++/14791
1185         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1186         (fileptr_type_node): Define.
1187         * tree.c (build_common_tree_nodes_2): Initialize
1188         fileptr_type_node to ptr_type_node.
1189         * c-common.c (c_common_nodes_and_builtins): For C++, make
1190         fileptr_type_node a distinct type copy.
1191         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1192         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1193         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1194         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1195         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1196         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1197         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1198         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1199         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1200         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1201         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1202         the above *FILEPTR* types instead of *PTR*.
1203
1204 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1205
1206         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1207         match.
1208
1209 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1210
1211         * fold-const.c (fold_not_const): New function.
1212         (fold) <ABS_EXPR>: Don't bother testing wins.
1213         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1214         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1215
1216 2004-06-09  Richard Henderson  <rth@redhat.com>
1217
1218         PR middle-end/15228
1219         * function.c (assign_parms): Always set_mem_align with the computed
1220         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1221
1222 2004-06-09  Richard Henderson  <rth@redhat.com>
1223
1224         PR opt/15108
1225         * tree-tailcall.c (find_tail_calls): Don't check early for
1226         tail_recursion failure.
1227
1228 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1229
1230         Move SSA_NAME annotations into tree_ssa_name.
1231
1232         * tree-dfa.c (create_ssa_name_ann): Remove.
1233         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1234         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1235         (struct ssa_name_ann_d): Remove.
1236         (union tree_ann_d): Update.
1237         (ssa_name_ann_t): Remove.
1238         * tree-ssa-alias.c: (get_ptr_info): New local function.
1239         Replace references to ssa_name_ann_t with struct ptr_info_def.
1240         * tree-ssa-operands.c (get_expr_operands): Likewise.
1241         * tree.h (SSA_NAME_PTR_INFO): Define.
1242         (struct ptr_info_def): Declare.
1243         (struct tree_ssa_name): Add field 'ptr_info'.
1244
1245 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1246
1247         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1248         misplaced ')'.
1249
1250 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1251
1252         * config/i386/k6.md: Rewrite using the DFA model.
1253         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1254         cost of load-operation insns for the K6.
1255         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1256         (ia32_multipass_dfa_lookahead): Likewise.
1257
1258 2004-06-09  Richard Henderson  <rth@redhat.com>
1259
1260         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1261         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1262
1263 2004-06-09  Richard Henderson  <rth@redhat.com>
1264
1265         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1266
1267 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1268
1269         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1270         (CPP_ID_DATA_H): New.
1271         (gtype-desc.o): Update dependencies.
1272         (GTFILES): Use CPP_ID_DATA_H.
1273
1274 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1275
1276         Revert:
1277         PR c++/15815
1278         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1279         * doc/extend.texi: Deprecate #pragma interface and #pragma
1280         implementation.
1281
1282 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1283
1284         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1285
1286 2004-06-09  Richard Henderson  <rth@redhat.com>
1287
1288         * basic-block.h (struct edge_def): Add goto_locus.
1289         * tree-cfg.c (make_goto_expr_edges): Set it.
1290         (disband_implicit_edges): Use it.
1291         * tree-pretty-print.c (dump_implicit_edges): Print it.
1292
1293 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1294
1295         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1296
1297 2004-06-08  Jason Merrill  <jason@redhat.com>
1298
1299         Gimplify VA_ARG_EXPR into simpler forms.
1300         * target.h: Add gimplify_va_arg_expr hook.
1301         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1302         * fold-const.c (build_fold_addr_expr)
1303         (build_fold_addr_expr_with_type): Move from gimplify.c.
1304         * tree.h: Declare them.
1305         * gimplify.c (gimplify_and_add): New fn.
1306         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1307         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1308         (gimplify_expr): Use build_fold_*.
1309         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1310         don't know how to gimplify it.
1311         * builtins.c (std_gimplify_va_arg_expr): New fn.
1312         (dummy_object): New static fn.
1313         (gimplify_va_arg_expr): New fn.
1314         (stabilize_va_list): Use build_fold_*.
1315         * tree-gimple.h: Declare new fns.
1316         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1317         (ix86_gimplify_va_arg): New fn.
1318         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1319         (ia64_gimplify_va_arg): New fn.
1320         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1321         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1322         * alias.c (get_varargs_alias_set): Just return 0 for now.
1323
1324         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1325
1326 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1327
1328         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1329         of convert.
1330         * tree-inline.c (setup_one_parameter): Likewise.
1331         * tree-sra.c (csc_build_component_ref): Likewise.
1332         * tree-ssa-ccp.c (ccp_fold): Likewise.
1333         * tree-ssa-copy.c (cprop_operand): Likewise.
1334         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1335         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1336
1337 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1338
1339         PR rtl-optimization/15521:
1340         * sched-int.h (in_post_call_group_p): Change type to enum.
1341         * sched-deps.c (sched_analyze_insn):
1342         (sched_analyze): When in_post_call_group_p is post_call_initial,
1343         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1344         and also reset in_post_call_group_p to post_call.
1345         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1346         initialize in_post_call_group_p as post_call_initial.
1347         (init_deps): initialize in_post_call_group_p to not_post_call.
1348
1349 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1350
1351         PR ada/6637
1352         * doc/install.texi: List ada, libada as options to --enable-shared
1353
1354 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1355
1356         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1357         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1358         config.in entries.
1359         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1360         if hard links are not available.
1361         * configure: Regenerate.
1362         * config.in: Regenerate.
1363
1364 2004-06-08  Per Bothner  <per@bothner.com>
1365
1366         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1367
1368 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1369
1370         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1371         Correct formatting.
1372
1373 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1374
1375         PR target/15790
1376         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1377
1378 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1379
1380         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1381         POINTER_TYPE and INTEGER_TYPE.
1382
1383 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1384
1385         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1386         defined.
1387
1388 2004-06-08  Jeff Law  <law@redhat.com>
1389
1390         * doc/contrib.texi: Add entries for Stefan Olsson and
1391         Ola Ronnerup.
1392
1393 2004-06-08  DJ Delorie  <dj@redhat.com>
1394
1395         * toplev.c (floor_log2_wide): Replace loop with faster bit
1396         operations.
1397         (exact_log2_wide): Define in terms of the above.
1398         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1399         available.
1400
1401 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1402
1403         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1404         Make sure that we are in INDIRECT mode when getting the
1405         stub name.
1406
1407 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1408
1409         * h8300.md (extendqisi2_h8300): Add constraints.
1410         (ldm_h8300s_4_normal): Fix typo.
1411
1412 2004-06-08  Richard Henderson  <rth@redhat.com>
1413
1414         * gimple-low.c (struct lower_data): Replace the_return_label and
1415         one_return_stmt with return_statements.
1416         (lower_function_body): Process the entire list of return_statements.
1417         (lower_return_expr): Check source value before unifying return_exprs.
1418         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1419         for !aggregate_value_p.
1420         * tree-gimple.c: Update RETURN_EXPR grammer.
1421
1422 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1423
1424         PR target/15598
1425         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1426
1427 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1428
1429         PR rtl-optimization/15717
1430         * config/i386/i386.c (legitimate_constant_p): Do not allow
1431         x - symbol_ref.
1432
1433 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1434
1435         * gimplify.c (copy_if_shared_r): Revert:
1436         2004-05-21  Richard Henderson  <rth@redhat.com>
1437         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1438
1439 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1440
1441         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1442         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1443         (init_expmed): Initialize these cost arrays as appropriate.
1444         (store_bit_field, extract_bit_field): Correct whitespace.
1445         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1446         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1447         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1448         word_mode or compute_mode as appropriate.
1449
1450 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1451
1452         PR target/15783
1453         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1454         parameter.  Enumerate the registers inside the PARALLEL.
1455         (function_arg): Adjust call to function_arg_union_value.
1456         (function_value): Likewise.
1457
1458         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1459
1460 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1461
1462         * real.c (real_copysign): New function to implement libm's copysign.
1463         * real.h (real_copysign): Prototype here.
1464         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1465         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1466         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1467         fold_builtin_isdigit): Add function prototypes.
1468         (fold_builtin_copysign): New function to fold copysign, copysignf
1469         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1470         constant arguments at compile-time using real_copysign.  Fold
1471         copysign(X,Y) as fabs(X) if Y is always non-negative.
1472         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1473         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1474
1475 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1476
1477         * tree.c (iterative_hash_expr): Use real_hash.
1478
1479 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1480
1481         PR c/14765
1482         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1483         NULL_TREE.
1484
1485 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1486
1487         PR c++/15815
1488         * doc/extend.texi: Deprecate #pragma interface and #pragma
1489         implementation.
1490
1491 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1492
1493         PR middle-end/15666
1494         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1495         builtin decl as well.
1496
1497 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1498
1499         PR c/14649
1500         * c-typeck.c (require_constant_value, require_constant_elements):
1501         Move declarations to the top of the file.
1502         (build_function_call): If we require a constant value, fold with
1503         fold_initializer.  If the result is a constant, and the function
1504         wasn't called using __builtin_foo, issue a pedantic warning.
1505         (build_unary_op): If we require a constant value, fold tree with
1506         fold_initializer.
1507         (build_binary_op): Use require_constant_value to determine whether
1508         to call fold or fold_initializer.
1509
1510 2004-06-07  Richard Henderson  <rth@redhat.com>
1511
1512         * gimple-low.c (struct lower_data): Add the_return_label and
1513         one_return_stmt.
1514         (lower_function_body): Initialize and use them.
1515         (lower_return_expr): New.
1516         (lower_stmt): Call it.
1517         * gimplify.c (gimplify_return_expr): Force the argument to be either
1518         null or a result_decl.
1519         * tree-gimple.c: Update gimple grammer to match.
1520         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1521         coalescing of result_decls.
1522
1523 2004-06-07  Richard Henderson  <rth@redhat.com>
1524
1525         PR rtl-opt/15193
1526         * expmed.c (extract_bit_field): Fix vector_extract return.
1527
1528         * config/i386/i386.md (negv4sf2): New pattern.
1529
1530 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1531
1532         PR c++/15337
1533         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1534         message.
1535
1536 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1537
1538         * config.in: Regenerate.
1539
1540 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1541
1542         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1543         SWITCH_LABELS are always sorted.
1544
1545 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1546
1547         * hooks.c (hook_int_void_1): New generic hook.
1548         * hooks.h (hook_int_void_1): Add prototype.
1549         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1550         Define to hook_int_void_1.
1551         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1552         with dummies for the new one.
1553
1554 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1555
1556         * tree.h (lvalue_or_else): Delete function prototype.
1557         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1558
1559 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1560
1561         PR target/14542
1562         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1563         a live change of a register after peephole replacement.
1564
1565 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1566
1567         PR c/13519
1568         * c-typeck.c (composite_type, common_pointer_type): New functions.
1569         (common_type): Split parts into composite_type and
1570         common_pointer_type.  Ensure that arithmetic operations return
1571         unqualified types without attributes.  Don't make composite type
1572         of signed enum and compatible integer be unsigned.
1573         (build_conditional_expr, build_binary_op): Use
1574         common_pointer_type.
1575         * c-decl.c (merge_decls): Use composite_type.
1576         * c-tree.h (composite_type): Declare.
1577
1578 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1579
1580         PR target/14457
1581         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1582         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1583         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1584         (inhibit_libc): Must define.
1585         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1586         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1587         ("xorhi3"): Likewise.
1588
1589 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1590
1591         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1592         always_inline pass.
1593
1594 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1595
1596         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1597         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1598
1599 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1600
1601         * regclass.c (init_reg_sets): Check for missing registers in target
1602         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1603
1604 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1605
1606         * Makefile.in (MKDEPS_H): New shorthand.
1607         (c-opts.o): Update dependencies.
1608         * c-opts.c: Include mkdeps.h.
1609         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1610         not cpp_add_dependency_target.
1611
1612 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1613
1614         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1615         * config/v850/v850.md: Convert to DFA scheduler description.
1616
1617 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1618
1619         PR fortran/15478
1620         * doc/install.texi: Document GMP as prerequisite. Document
1621         --with-gmp and --with-gmp-dir configure options.
1622         * fortran/gfortran.texi: Remove section "Compiling and testing",
1623         remove TOC reference to it.
1624
1625 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1626
1627         * combine.c(simplify_shift_const): Check shift amount is a
1628         CONST_INT.
1629
1630 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1631
1632         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1633         opening asm_out_file.
1634         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1635         reading asm_out_file. Replace fflush after reading asm_out_file
1636         with fseek.
1637         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1638         default and add to HOST_HOOKS_INITIALIZER.
1639         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1640         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1641         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1642         to set mmi.offset padding.
1643          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1644         $(srcdir)/config/i386/winnt.c.
1645         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1646         (i[34567]86-*-uwin*): Likewise.
1647         *i[34567]86-*-interix3*): Likewise.
1648         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1649         * config/i386/host-mingw32.c: New file.
1650         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1651         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1652         (extern_head): Likewise.
1653         (struct export_list) Likewise.
1654         (export_head): Likewise.
1655         (i386_pe_record_external_function): Use ggc_alloc.
1656         (i386_pe_record_exported_symbol): Likewise.
1657         Include "gt-winnt.h" at end.
1658         * doc/hostconfig.texi: Document
1659         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1660
1661 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1662
1663         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1664         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1665         trailing whitespace before EOLs and before TABs.
1666         (MAX_CODE_ALIGN): Remove unused macro.
1667         (CALL_USED_REGISTERS): Reformat and add comments.
1668
1669 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1670
1671         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1672         to enumerate -lmudflap* and dependencies when linking.
1673
1674 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1675
1676         PR target/15822
1677         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1678
1679 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1680
1681         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1682         * genconditions.c (write_header): Back out removal of reload.h.
1683
1684 2004-06-04  Jan Hubicka  <jh@suse.cz>
1685
1686         Re-apply hopefully fixed patch:
1687         * i386.md (UNSPECV_EH_RETURN): Kill.
1688         (eh_return): Use jump_insn.
1689         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1690
1691 2004-06-04  Jeff Law  <law@redhat.com>
1692
1693         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1694
1695 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1696
1697         * except.c (for_each_eh_region): New function.
1698         * except.h (for_each_eh_region): Add a prototype for it.
1699         * tree-cfg.c (update_eh_labels): New function, callback for
1700         for_each_eh_region.
1701         (label_for_bb): Make global static, unfortunately.
1702         (cleanup_dead_labels): Also update label references for
1703         exception regions.
1704
1705 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1706
1707         * config/mips/mips.c (struct irix_section_align_entry): Fix
1708         GTY marker.
1709
1710 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1711
1712         * toplev.c (check_global_declarations): Don't ask for
1713         DECL_ASSEMBLER_NAME unless the function really is declared
1714         static and not defined.
1715
1716 2004-06-03  Matt Austern  <austern@apple.com>
1717
1718         PR c++/15428
1719         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1720         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1721         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1722         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1723         documentation to reflect the new macro name and to clarify its
1724         meaning.
1725
1726 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1727
1728         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1729
1730 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1731
1732         * config/darwin.c (machopic_indirect_data_reference): Copy
1733         the SYMBOL_REF_DECL from the original RTX for the new
1734         non-lazy pointer RTX.
1735
1736 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1737
1738         * tree.h: Remove include of version.h
1739         * c-cppbuiltin.c: Include version.h
1740         * diagnostic.c: Include version.h
1741         * dwarf2out.c: Include version.h
1742         * toplev.c: Include version.h
1743         * vmsdbgout.c: Include version.h
1744         * Makefile.in: Remove dependency on version.h from TREE_H, and
1745         add dependencies to required .o targets
1746
1747 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1748
1749         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1750         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1751         (TARGET_H): Add insn-modes.h.
1752         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1753         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1754         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1755         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1756         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1757         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1758         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1759         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1760         CFGLAYOUT_H.
1761         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1762         Replace ra.h with RA_H.
1763         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1764         insn-recog.o): Replace resource.h with RESOURCE_H.
1765         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1766         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1767         with SCHED_INT_H.
1768         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1769         ra-rewrite.o): Replace df.h with DF_H.
1770         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1771         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1772         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1773         (insn-conditions.o): Remove unused reload.h.
1774         * cfglayout.h: Add include guard.  Include basic-block.h.
1775         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1776         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1777         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1778         basic-block.h.
1779         * genconditions.c:  Remove reload.h.
1780         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1781         hard-reg-set.h, insn-modes.h.
1782         * resource.h: Add include guard.  Include hard-reg-set.h.
1783         * sched-int.h:  Add include guard.  Include insn-attr.h,
1784         basic-block.h, rtl.h.
1785         * target.h: Add include guard.  Include insn-modes.h.
1786         * tree-ssa-live.h: Include partition.h.
1787
1788 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1789                 Kenneth Zadeck <zadeck@naturalbridge.com>
1790
1791         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1792         (add_var_to_ssa_edges_worklist): Add value argument.
1793         Update callers.
1794         Use new worklist.
1795         (process_ssa_edge_worklist): New function.
1796         (tree_ssa_ccp): Move worklist processing core to
1797         process_ssa_edge_worklist, and just call that for the two worklists.
1798
1799 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1800
1801         * basic-block.c (tail_recursion_label_list): Don't declare.
1802         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1803         accordingly.
1804         * cfgbuild.c (find_label_refs): Remove.
1805         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1806         * cfgcleanup.c (tail_recursion_label_p): Remove.
1807         (merge_blocks_move): Do not check for tail recursion.
1808         (try_optimize_cfg): Likewise.
1809         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1810         * cfgrtl.c (tail_recursion_label_list): Remove.
1811         * except.c (remove_unreachable_regions): Don't handle
1812         CALL_PLACEHOLDER insns.
1813         (convert_from_eh_region_ranges_1, can_throw_internal,
1814         can_throw_external): Likewise.
1815         * function.c (free_after_compilation): Don't clear
1816         x_tail_recursion_label.
1817         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1818         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1819         (reorder_blocks_1): Likewise.
1820         * function.h (struct function): Remove x_tail_recursion_label
1821         member.  Don't define tail_recursion_label.
1822         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1823         * print-rtl.c (print_rtx): Likewise.
1824         * rtl.def (CALL_PLACEHOLDER): Remove.
1825         * rtl.h (sibcall_use_t): Remove enum.
1826         (optimize_sibling_and_tail_recursive_calls,
1827         replace_call_placeholder): Remove function prototypes.
1828         * stmt.c (tail_recursion_args): Remove.
1829         (optimize_tail_recursion): Remove.
1830         (expand_return): Don't check for possible tail recursion.
1831         * tree.h (optimize_tail_recursion): Remove prototype.
1832
1833 2004-06-02  Jan Hubicka  <jh@suse.cz>
1834
1835         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1836         return_stmt.
1837
1838 2004-06-02  Jason Merrill  <jason@redhat.com>
1839
1840         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1841         Do include c-parse.in.
1842
1843 2004-06-02  Eric Christopher  <echristo@redhat.com>
1844
1845         * c-typeck.c (common_type): Don't lose type qualifiers
1846         when creating new variants.
1847
1848 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1849
1850         PR tree-optimization/14042
1851         PR tree-optimization/14729
1852         PR tree-optimization/14736
1853         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1854         Check the type which the pointer points to
1855         instead of the pointer types.
1856
1857 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1858
1859         PR tree-optimization/15738.
1860         * builtins.c (fold_builtin_strchr): Transform
1861         strrchr (s, '\0') to strchr (s, '\0').
1862
1863 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1864
1865         * i386.c (ix86_adjust_cost): Don't increase the cost for
1866         load+operation for PROCESSOR_PENTIUMPRO, it is already
1867         modelled in the DFA description
1868
1869 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1870
1871         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1872         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1873         (ALIAS_H, EMIT_RTL_H): New.
1874         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1875         (cfgcleanup.o): Add EMIT_RTL_H.
1876         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1877         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1878         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1879         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1880         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1881         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1882         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1883         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1884         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1885         set_mem_size): Move to emit-rtl.h.
1886         * emit-rtl.h: New.
1887         * alias.h: New.
1888
1889 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1890
1891         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1892         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1893         Adjust recursive calls to self.
1894         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1895
1896 2004-06-01  Richard Henderson  <rth@redhat.com>
1897             Andrew Pinski  <pinskia@physics.uc.edu>
1898
1899         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1900         (primary): Handle offsetof.  Add error productions for faux functions.
1901         Move component_ref objc checking to build_component_ref.
1902         (reswords): Add offsetof.
1903         (rid_to_yy): Add offsetof.
1904         * c-tree.h (build_offsetof): Declare.
1905         * c-common.h (objc_is_public): Declare.
1906         * c-typeck.c (build_component_ref): Check objc_is_public.
1907         (build_offsetof): New.
1908         * stub-objc.c (objc_is_public): New.
1909         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1910         from is_public.
1911         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1912         * doc/extend.texi (Offsetof): Move from C++ section to C section
1913         and rewrite for __builtin_offsetof.
1914
1915 2004-06-01  Peter Barada  <peter@the-baradas.com>
1916             Peter Jakubek  <peter@laseranimation.com>
1917
1918         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1919         a scratch to perform an add to memory.
1920
1921 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1922
1923         PR target/14018
1924         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1925         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1926         m68k_align_funcs): Remove.
1927         (override_options): Remove code to handle -malign-* options.
1928         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1929         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1930         (m68k_align_loops_string, m68k_align_jumps_string,
1931         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1932         m68k_align_funcs): Remove definitions.
1933
1934 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1935
1936         PR target/15626
1937         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1938         by the Sun linker in conjunction with the Sun assembler.
1939         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1940
1941 2004-06-01  Jeff Law  <law@redhat.com>
1942
1943         * stmt.c (expand_decl): Be more selective about calling
1944         mark_reg_pointer.
1945
1946 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1947
1948         PR objc/7993
1949         * objc-act.c (is_private): Do not emit the 'instance variable %s
1950         is declared private' error.
1951         (is_public): Emit the error after calling is_private.
1952         (lookup_objc_ivar): If the instance variable is private, return 0
1953         - the instance variable is invisible here.
1954
1955 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1956
1957         * doc/invoke.texi (-static-libgcc): Explicitly mention
1958         non-GNU linkers.
1959
1960 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1961
1962         PR target/12968
1963         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1964
1965 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1966
1967         PR c/15749
1968         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1969         misuses of structures with flexible array members if
1970         in_system_header.
1971
1972 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1973
1974         PR target/15693
1975         * config/sparc/sparc.c (compare_operand): New predicate.
1976         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1977         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1978         operand is a ZERO_EXTRACT and the second operand is not zero,
1979         force the former to a register.
1980         (cmpdi expander): Likewise.
1981
1982 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1983
1984         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1985         looks at.
1986         * alias.c (alias_invariant_size): Make alias_invariant_size
1987         static, fix GTY marker.
1988
1989 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1990
1991         PR tree-optimization/15743.
1992         * builtins.c (fold_builtin_1): Fold index() and rindex().
1993
1994 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1995
1996         PR middle-end/15069
1997         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1998         into "X < 0" (where C is the signbit) if X's type is a full mode.
1999
2000 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2001
2002         * pa.md: Disable the peephole2 patterns that generate indexed
2003         floating-point stores when indexing is disabled.
2004
2005 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2006
2007         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2008         (pp_c_right_bracket): Likewise.
2009         (pp_c_star): Likewise.
2010         (pp_c_ampersand): Define.
2011         * c-pretty-print.h (pp_c_left_bracket): Declare.
2012         (pp_c_right_bracket): Likewise.
2013         (pp_c_star): Likewise.
2014         (pp_c_ampersand): Likewise.
2015
2016 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2017
2018         * config/sol2.h (__enable_execute_stack): ANSIfy function
2019         definition.
2020
2021 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2022
2023         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2024         HAVE_DOS_BASED_FILESYSTEM.
2025
2026 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2027
2028         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2029         Only look at case labels if the immediate dominator is also
2030         the only predecessor.  Don't look for more case labels if the
2031         first seen is a case range.
2032
2033 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2034
2035         * builtins.c: Add a prototype for fold_builtin_strchr().
2036
2037 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2038
2039         Revert this patch:
2040         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2041
2042         * combine.c (gen_binary): Remove.
2043         (known_cond, simplify_shift_const
2044         find_split_point, combine_simplify_rtx,
2045         simplify_if_then_else, simplify_set,
2046         simplify_logical, expand_field_assignment,
2047         extract_left_shift, force_to_mode,
2048         if_then_else_cond, apply_distributive_law,
2049         simplify_and_const_int, simplify_shift_const,
2050         gen_lowpart_for_combine, simplify_comparison,
2051         reversed_comparison): Replace with
2052         simplify_gen_binary, simplify_gen_relational or
2053         distribute_and_simplify_rtx.
2054         (distribute_and_simplify_rtx): New function.
2055
2056 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2057
2058         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2059         when generating PIC code.
2060
2061 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2062
2063         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2064         (c_expand_body): here.
2065         (c_expand_decl): Move to ...
2066         * c-common.c (c_expand_decl): Here and remove check for nested
2067         functions.
2068         * c-common.h (c_expand_decl): Add prototype.
2069         * c-tree.h (c_expand_decl): Remove.
2070
2071 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2072
2073         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2074         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2075         fold_mathfn_compare, fold_inf_compare, fold,
2076         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2077         Use constant_boolean_node where appropriate.  Don't bother using
2078         fold_convert on the second argument to omit_one_operand.
2079
2080 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2081
2082         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2083         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2084         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2085         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2086         Add missing (but documented) tree nodes to the index.
2087
2088 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2089
2090         PR tree-optimization/14819
2091         * builtins.c (fold_builtin_strchr): New.
2092         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2093         with fold_builtin_strchr().
2094
2095 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2096
2097         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2098         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2099         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2100         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2101         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2102         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2103         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2104         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2105         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2106         formatting.
2107
2108 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2109
2110         * gimplify.c (sort_case_labels): New.  Split out from...
2111         (gimplify_switch_expr): ...here.  Use it.
2112         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2113         the SWITCH_EXPR created here before leaving the function.
2114         * tree.c (sort_case_labels): Add prototype.
2115
2116 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2117
2118         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2119         of BOOLEAN_TYPE.
2120
2121 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2122
2123         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2124         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2125         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2126         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2127         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2128         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2129         comment typos.  Follow spelling conventions.
2130
2131 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2132
2133         * gengtype-yacc.y: Add NESTED_PTR token.
2134         (option): Record `nested_ptr' option.
2135         * gengtype-lex.l: Handle `nested_ptr' keyword.
2136         * gengtype.c (walk_type): Process `nested_ptr' option.
2137         * gengtype.h (struct nested_ptr_data): New.
2138         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2139         * stringpool.c (struct string_pool_data): Make 'entries' point to
2140         ht_identifier instead of tree.
2141         (gt_pch_save_stringpool): Don't adjust pointers.
2142         (gt_pch_restore_stringpool): Call ht_load.
2143
2144 2004-05-29  Jason Merrill  <jason@redhat.com>
2145
2146         * gimplify.c (gimplify_expr): Don't build a statement list
2147         if no gimplification was necessary.
2148
2149 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2150
2151         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2152         and %> as well as %'.
2153         * c-format.c: Use %< and %>.
2154         (gcc_diag_char_table, gcc_cdiag_char_table,
2155         gcc_cxxdiag_char_table): Update.
2156
2157 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2158
2159         * c-typeck.c (common_type): Correct comment.
2160
2161 2004-05-29  Peter Barada  <peter@the-baradas.com>
2162
2163         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2164         * config/m68k/m68k.c (const_method): Likewise.
2165         * config/m68k/m68k.c (const_int_cost): Likewise.
2166         * config/m68k/m68k.c (const_int_cost): Likewise.
2167         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2168
2169 2004-05-29  Peter Barada  <peter@the-baradas.com>
2170
2171         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2172         addressing.
2173         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2174         movsi,movhi,movqi insn patterns.
2175
2176 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2177
2178         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2179
2180         PR target/15720
2181         * config/darwin.c (machopic_indirect_call_target): Copy
2182         the SYMBOL_REF_DECL from the original RTX for the new
2183         stub RTX.
2184
2185 2004-05-28  DJ Delorie  <dj@redhat.com>
2186
2187         * stor-layout.c (place_field): Revert erroneous commit.
2188
2189 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2190
2191         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2192         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2193         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2194         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2195         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2196         vec_ste): Remove type checks for integral parameters and literals
2197         from '..._args_eq' macros.
2198
2199 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2200
2201         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2202
2203 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2204
2205         * testsuite/g++.dg/charset/function.cc: New.
2206
2207         * testsuite/gcc.dg/charset/function.c: New.
2208
2209         * c-decl.c (c_make_fname_decl): Free return value from
2210         fname_as_string.
2211
2212         * cp/decl.c (cp_make_fname_decl): Free return value from
2213         fname_as_string.
2214
2215         * c-common.c (fname_as_string): Translate if necessary.
2216
2217 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2218
2219         * stringpool.c: Add comments to PCH saving/restoring routines.
2220
2221 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2222
2223         * c-common.c (c_estimate_num_insns_1): Kill.
2224         (c_estimate_num_insns): Kill.
2225         * c-common.h (c_estimate_num_insns): Kill.
2226
2227         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2228         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2229         Remove comment about not checking for
2230         _POSIX_PRIORITY_SCHEDULING.
2231         * gthr-posix.c: Likewise.
2232
2233 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2234             Roger Sayle  <roger@eyesopen.com>
2235
2236         PR rtl-optimization/15649
2237         Add LTGT_EXPR and improve pretty-printing of unordered
2238         comparisons.
2239         * c-common.c (c_common_truthvalue_conversion):
2240         Handle LTGT_EXPR.
2241         * c-typeck.c (build_binary_op): Likewise.
2242         * dojump.c (do_jump): Likewise.
2243         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2244         * predict.c (tree_predict_by_opcode): Likewise.
2245         * real.c (real_compare): Likewise.
2246         * tree-cfg.c (verify_expr): Likewise.
2247         * tree-inline.c (estimate_num_insns_1): Likewise.
2248         * tree-pretty-print.c (dump_generic_node): Likewise.
2249         Handle ORDERED_EXPR, UNORDERED_EXPR.
2250         (op_symbol): Print unordered comparisons differently
2251         than ordered ones.
2252         * tree.def (LTGT_EXPR): New '<' tree code.
2253         * doc/c-tree.texi (Expressions): Document floating-point
2254         comparison nodes.
2255
2256         Fold comparisons between floating point values.
2257         * fold-const.c (enum comparison_code): New, from
2258         #define'd constants.  Define compcodes for unordered
2259         comparisons and for invalid transformations.
2260         (invert_tree_comparison): Add "honor_nans" parameter.
2261         (fold_truthop): Revamp to work on floating-point types too.
2262         (comparison_to_compcode): Support unordered comparisons.
2263         Use new enum comparison_code.
2264         (compcode_to_comparison): Likewise.
2265         (combine_compcodes): New function.
2266         (invert_truthvalue): Let invert_tree_comparison decide
2267         whether it is valid to fold the comparison.  Fold ORDERED
2268         and UNORDERED even if flag_unsafe_math_optimizations is off,
2269         and the remaining even if flag_unsafe_math_optimizations
2270         is off but we are under -fno-trapping-math.
2271         (fold_relational_const): Integer modes do not honor NaNs.
2272
2273 2004-05-28  Paul Brook  <paul@codesourcery.com>
2274
2275         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2276
2277 2004-05-28  Paul Brook  <paul@codesourcery.com>
2278
2279         * config/arm/arm.c (thumb_force_lr_save): New function.
2280         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2281         thumb_output_function_prologue): Use it.
2282         (thumb_expand_prologue): Set lr_save_eliminated.
2283
2284 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2285
2286         * config/mips/mips.md (extendsidi2): Tie the source and destination
2287         of the register alternative.  Split it into nothing.
2288
2289 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2290
2291         * rtl.h (skip_consecutive_labels): Declare.
2292         * emit-rtl.c (skip_consecutive_labels): New function.
2293         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2294         * jump.c (follow_jumps): Say what null return values mean.
2295
2296 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2297
2298         PR target/13250
2299         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2300
2301 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2302
2303         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2304         libgcc-std.ver.
2305         * config/sh/libgcc-std.ver: New file.
2306
2307 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2308
2309         * except.c: Revert change of 2004-05-26.
2310         * config/i386/i386.md: Revert change of 2004-05-27.
2311
2312 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2313
2314         * configure.ac: Remove --enable-tree-browser option.
2315         Define TREEBROWSER when ac_tree_checking is defined.
2316         * configure: Rebuilt.
2317
2318 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2319
2320         * expr.c (store_constructor): Restore sanity check on
2321         the size of the type before clearing.
2322
2323 2004-05-27  Jan Hubicka  <jh@suse.cz>
2324
2325         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2326
2327 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2328
2329         * combine.c (gen_binary): Remove.
2330         (known_cond, simplify_shift_const
2331         find_split_point, combine_simplify_rtx,
2332         simplify_if_then_else, simplify_set,
2333         simplify_logical, expand_field_assignment,
2334         extract_left_shift, force_to_mode,
2335         if_then_else_cond, apply_distributive_law,
2336         simplify_and_const_int, simplify_shift_const,
2337         gen_lowpart_for_combine, simplify_comparison,
2338         reversed_comparison): Replace with
2339         simplify_gen_binary, simplify_gen_relational or
2340         distribute_and_simplify_rtx.
2341         (distribute_and_simplify_rtx): New function.
2342         * simplify-rtx.c (simplify_binary_operation):
2343         Use nonzero_bits to simplify ANDs where we are
2344         turning off bits already known to be off in OP0.
2345
2346 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2347
2348         PR target/14478
2349         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2350
2351 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2352
2353         PR middle-end/14084
2354         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2355         to size of decl.
2356
2357 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2358
2359         PR/14924
2360         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2361
2362 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2363
2364         * tree.h: Fix comment typo.
2365
2366 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2367
2368         * gimplify.c (compare_case_labels): New function.
2369         (gimplify_switch_expr): Sort case labels, and make sure the
2370         last label in the label vector is the default case.
2371         * tree-cfg.c (group_case_labels): New function.
2372         (build_tree_cfg): Cleanup redundant labels and group case labels
2373         before creating edges.
2374         (cleanup_dead_labels): Handle GOTO_EXPRs.
2375         (find_case_label_for_value): Use a binary search to find the
2376         case label for the given value.
2377         * tree-gimple.c: Mention that labels are sorted, and that the
2378         last label must be the default.
2379
2380 2004-05-27  Jan Hubicka  <jh@suse.cz>
2381
2382         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2383
2384 2004-05-27  Jan Hubicka  <jh@suse.cz>
2385
2386         * i386.md (UNSPECV_EH_RETURN): Kill.
2387         (eh_return): Use jump_insn.
2388         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2389
2390 2004-05-26  Jan Hubicka  <jh@suse.cz>
2391
2392         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2393         not loop optimizing.
2394
2395 2004-05-26  Jan Hubicka  <jh@suse.cz>
2396
2397         * except.c (can_throw_internal):  Notice RESX instructions.
2398
2399 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2400
2401         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2402         of the two sizes to assemble_integer.
2403
2404 2004-05-25  Paul Brook  <paul@codesourcery.com>
2405
2406         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2407         pointless #ifdef.
2408
2409 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2410
2411         * Makefile.in (top_builddir): Define to .
2412
2413 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2414
2415         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2416         top-level detects, except when in-tree ld is being cross-built.
2417         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2418         then AS only if target is host.
2419         * configure: Rebuilt.
2420
2421 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2422
2423         * global.c (global_alloc): Call make_accurate_live_analysis.
2424         (record_one_conflict): Remove dead code.
2425         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2426         (bb_info): New structure.
2427         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2428         (allocate_bb_info, free_bb_info, mark_reg_change,
2429         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2430         modify_bb_reg_pav, calculate_reg_pav,
2431         make_accurate_live_analysis): New functions.
2432
2433 2004-05-25  Devang Patel  <dpatel@apple.com>
2434
2435         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2436         xrealloc.
2437         (end_alias_analysis): Use ggc_free instead fo free.
2438
2439 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2440
2441         PR target/15546
2442         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2443         as needed to be outputted.
2444
2445 2004-05-25  Jan Hubicka  <jh@suse.cz>
2446
2447         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2448
2449 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2450         Mostafa Hagog  <mustafa@il.ibm.com>
2451
2452         * Makefile.in (modulo-sched.o, ddg.o): New.
2453         * ddg.h, ddg.c, modulo-sched.c: New files.
2454         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2455         internals to "dupicate_insn".
2456         (duplicate_insn): New function.
2457         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2458         declarations.
2459         * common.opt (fmodulo-sched): New flag.
2460         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2461         Remove static and forward declaration.
2462         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2463         functions.
2464         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2465         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2466         declarations.
2467         * flags.h (flag_modulo_sched): New flag.
2468         * opts.c (common_handle_option): Handle modulo-sched flag.
2469         * params.def (max-sms-loop-number, sms-max-ii-factor,
2470         sms-dfa-history, sms-loop-average-count-threshold): New
2471         parameters.
2472         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2473         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2474         parameters.
2475         * passes.c ("sms", "sms-vcg"): New dumps.
2476         (rest_of_handle_sched): Call sms_schedule.
2477         * rtl.h (sms_schedule): New declaration.
2478         * timevar.def (TV_SMS): New.
2479         * toplev.c (flag_modulo_sched): Initialize.
2480         (f_options): Handle -fmodulo-sched option.
2481         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2482         * docs/passes.texi: Document new SMS pass.
2483
2484 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2485
2486         * Makefile.in (OBJS): Add rtlhooks.o.
2487         (rtlanal.o): Depend on function.h.
2488         (cse.o): Depend on rtlhooks-def.h.
2489         (combine.o): Depend on rtlhooks-def.h.
2490         (rtlhooks.o): New rule.
2491         * combine.c: Include rtlhooks-def.h.
2492         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2493         num_sign_bit_copies, cached_num_sign_bit_copies,
2494         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2495         (reg_nonzero_bits_for_combine,
2496         reg_num_sign_bit_copies_for_combine): New functions holding
2497         the remnants of the above.
2498         (combine_rtl_hooks): New.
2499         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2500         * cse.c: Include rtlhooks-def.h.
2501         (cse_rtl_hooks): New.
2502         (cse_main): Set rtl_hooks instead of gen_lowpart.
2503         * emit-rtl.c (gen_lowpart): Remove.
2504         (gen_lowpart_general): Move to rtlhooks.c.
2505         * rtl.h (nonzero_bits, num_sign_bit_copies,
2506         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2507         (gen_lowpart_general): Remove.
2508         (gen_lowpart): Temporarily redefine as a macro.
2509         * rtlanal.c: Include function.h.
2510         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2511         num_sign_bit_copies, cached_num_sign_bit_copies,
2512         num_sign_bit_copies1): New, from combine.c.
2513         * rtlhooks.c: New file.
2514         * rtlhooks-def.h: New file.
2515
2516 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2517
2518         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2519         to support 32-bit -mint8 mode.
2520
2521         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2522         option in the AVR architecture.
2523
2524 2004-05-24  Mike Stump  <mrs@apple.com>
2525
2526         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2527
2528 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2529
2530         * intl.h (open_quote, close_quote): New.
2531         * intl.c (open_quote, close_quote): New.
2532         (gcc_init_libintl): Set them.
2533         * pretty-print.c: Include "intl.h".
2534         (pp_base_format_text): Support 'q' format flag and %` and %'
2535         formats.  Use ' instead of ` in comments.
2536         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2537         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2538         foramt_types_orig): Describe these new formats.
2539         (decode_format_attr, check_function_format,
2540         check_format_info_main): Use these new formats.
2541         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2542         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2543         check these formats to 3.5.
2544
2545 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2546
2547         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2548         (BACKEND): Reflect this.
2549         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2550         (LIBS): Likewise.
2551
2552 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2553
2554         PR tree-optimization/14197
2555         * builtins.c: Include "tree-gimple.h"
2556         (readonly_data_expr): Use get_base_address.  Make sure to call
2557         decl_readonly_section only on trees it can handle.
2558         * tree-gimple.c (get_base_address): Accept STRING_CST and
2559         CONSTRUCTOR expressions.
2560         * Makefile.in: Update dependencies.
2561
2562 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2563
2564         Move libcpp to the toplevel.
2565         * Makefile.in: Remove references to libcpp files,
2566         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2567         and change hashtable.h to that.
2568         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2569         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2570         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2571         * configure: Regenerate.
2572         * config.in: Regenerate.
2573         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2574         * cppcharset.c: Removed.
2575         * cpperror.c: Removed.
2576         * cppexp.c: Removed.
2577         * cppfiles.c: Removed.
2578         * cpphash.c: Removed.
2579         * cpphash.h: Removed.
2580         * cppinit.c: Removed.
2581         * cpplex.c: Removed.
2582         * cpplib.c: Removed.
2583         * cpplib.h: Removed.
2584         * cppmacro.c: Removed.
2585         * cpppch.c: Removed.
2586         * cpptrad.c: Removed.
2587         * cppucnid.h: Removed.
2588         * cppucnid.pl: Removed.
2589         * cppucnid.tab: Removed.
2590         * hashtable.c: Removed.
2591         * hashtable.h: Removed.
2592         * line-map.c: Removed.
2593         * line-map.h: Removed.
2594         * mkdeps.c: Removed.
2595         * mkdeps.h: Removed.
2596         * stringpool.h: Include symtab.h instead of hashtable.h.
2597         * tree.h: Include symtab.h instead of hashtable.h.
2598         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2599
2600 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2601
2602         * gcc.c (struct prefix_list): Add forward declaration.
2603         (do_spec_path): New function, extracted from...
2604         (do_spec_1) <'D'>: ... here.  Drop support for
2605         SPACE_AFTER_L_OPTION.
2606         (do_spec_1) <'I'>: Use do_spec_path.
2607         (process_command): Do not store the 'include' suffix
2608         in include_prefixes.
2609         * system.h: Poison SPACE_AFTER_L_OPTION.
2610
2611 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2612
2613         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2614         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2615
2616 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2617
2618         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2619         Update based on printed manual.  Enable setting of offsets for
2620         FSFPRINT and move it to gcc-common.texi.
2621         * doc/gcc.texi: Update FSF printing details.
2622         * doc/gccint.texi: Remove FSF printing details.
2623
2624 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2625
2626         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2627
2628 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2629
2630         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2631         expand_builtin_strrchr, expand_builtin_strpbrk,
2632         expand_builtin_mempcpy, expand_builtin_memcmp,
2633         expand_builtin_strcmp, expand_builtin_strncmp,
2634         expand_builtin_strcat, std_expand_builtin_va_start,
2635         std_expand_builtin_va_arg, expand_builtin_va_copy,
2636         expand_builtin_signbit, fold_builtin_cabs,
2637         fold_builtin_logarithm, fold_builtin_mempcpy,
2638         fold_builtin_signbit, fold_builtin_isascii,
2639         fold_builtin_toascii, fold_builtin_isdigit,
2640         fold_builtin_1, build_function_call_expr,
2641         simplify_builtin_strchr, simplify_builtin_strrchr,
2642         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2643         simplify_builtin_memcmp, simplify_builtin_strcmp,
2644         simplify_builtin_strncmp, simplify_builtin_strncat,
2645         simplify_builtin_strspn, simplify_builtin_strcspn,
2646         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2647         to build with calls to build2, build3 or omit_one_operand.
2648
2649 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2650
2651         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2652         section when generating EABI code.
2653
2654 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2655
2656         PR 15546
2657         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2658         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2659
2660 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2661
2662         * c-common.c (c_common_truthvalue_conversion): Handle
2663         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2664         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2665         i.e. set the type to truthvalue_type_node and return.
2666
2667 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2668
2669        * tree.h (struct tree_decl): Add possibly_inlined bit.
2670         (DECL_POSSIBLY_INLINED): New accessor macro.
2671         * cgraph.h: Remove declaration of cgraph_inline_hash.
2672         * cgraph.c: Remove definition of cgraph_inline_hash.
2673         (hash_node): Revert to hashing DECL_UID.
2674         (eq_node): Take two pointers to cgraph_node structures.
2675         Compare DECL_UIDs.
2676         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2677         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2678         hash on DECL_UID.
2679         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2680         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2681         (cgraph_node): Allocate a temporary node on the stack, fill in
2682         its DECL field, and pass that to htab_find_slot.
2683         (cgraph_varpool_node): Likewise.
2684         (cgraph_function_possibly_inlined_p): If global info is ready,
2685         return the DECL_POSSIBLY_INLINED bit.
2686         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2687         instead of mucking with cgraph_inline_hash.
2688
2689 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2690
2691         * doc/contrib.texi: Add g77 contributors.
2692
2693 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2694
2695         * calls.c (initialize_argument_information): Forbid sibcalls if a
2696         callee-copied argument is stored in the current function's frame.
2697
2698 2004-05-22  Eric Christopher  <echristo@redhat.com>
2699
2700         * fix-header.c (read_scan_file): Update for add_path change.
2701
2702 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2703
2704         * c.opt (Wmissing-include-dirs): New.
2705         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2706         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2707         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2708         * c-incpath.h (add_path): Add fourth (bool) argument.
2709         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2710         (add_standard_paths): Likewise.
2711         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2712         is used and the directory was user-supplied via -I.
2713         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2714         using add_cpp_dir_path ().
2715         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2716         (struct cpp_dir): Add user_supplied_p.
2717         * doc/invoke.texi (Warning Options): Document new option.
2718
2719 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2720
2721         * fold-const.c (fold_read_from_constant_string): Convert result to
2722         requested type.
2723
2724 2004-05-21  Richard Henderson  <rth@redhat.com>
2725
2726         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2727         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2728         Don't mark VA_ARG_EXPRs volatile here.
2729         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2730
2731 2004-05-21  Richard Henderson  <rth@redhat.com>
2732
2733         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2734         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2735
2736 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2737
2738         * fold-const.c (fold, fold_relational_hi_lo,
2739         nondestructive_fold_binary_to_constant,
2740         fold_read_from_constant_string): Use fold_convert instead of convert.
2741         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2742         simplify_builtin_strchr, simplify_builtin_strrchr,
2743         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2744
2745 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2746
2747         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2748         is NULL.
2749
2750 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2751
2752         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2753         override sparc.h definition.
2754
2755 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2756
2757         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2758         get_unwidened, get_narrower): Replace build with build2.
2759         * fold-const.c (negate_expr, associate_trees, size_binop,
2760         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2761         pedantic_omit_one_operand, distribute_bit_expr,
2762         make_bit_field_ref, optimize_bit_field_compare,
2763         decode_field_reference, range_binop, make_range,
2764         build_range_check, fold_range_test, fold_truthop,
2765         optimize_minmax_comparison, extract_muldiv_1,
2766         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2767         fold_inf_compare, fold_single_bit_test, fold,
2768         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2769         Likewise replace build with either build2 or build3.
2770
2771 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2772
2773         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2774         * calls.c (prepare_call_address): Don't test
2775         NO_RECURSIVE_FUNCTION_CSE.
2776         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2777         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2778         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2779         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2780         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2781         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2782         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2783         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2784         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2785         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2786         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2787         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2788         Likewise.
2789         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2790         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2791         * doc/tm.texi (Costs): Remove documentation for
2792         NO_RECURSIVE_FUNCTION_CSE.
2793
2794 2004-05-20  Paul Brook  <paul@codesourcery.com>
2795
2796         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2797         * unwind-dw2.c (extract_cie_info): Ditto.
2798         (_Unwind_FrameState): Change retaddr_column to word type.
2799
2800 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2801
2802         PR middle-end/3074
2803         * fold-const.c (strip_compound_expr): Delete function.
2804         (count_cond): Delete function.
2805         (fold_binary_op_with_conditional_arg): Only perform transformations
2806         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2807         when a is constant.  This greatly simplifies this routine.
2808
2809         * tree.c (saved_expr_p): Delete function.
2810         * tree.h (saved_expr_p): Delete function prototype.
2811
2812 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2813
2814         * common.opt (ftree-loop-optimize): Remove.
2815
2816 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2817
2818         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2819         (NM_FOR_TARGET): Use := and $(shell).
2820         (mainversion): Remove unused variable.
2821
2822 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2823
2824         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2825         sequence containing the insn to be deleted, always reemit it.
2826
2827 2004-05-20  Richard Henderson  <rth@redhat.com>
2828
2829         PR 15454
2830         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2831         * function.c (expand_function_start): Expand static_chain_decl by hand.
2832         * gimplify.c (create_tmp_var_name): Export.
2833         * tree-gimple.h (create_tmp_var_name): Declare.
2834
2835 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2836
2837         * rs6000.c (print_operand) <case 'z'>: Call
2838         mark_decl_referenced before assemble_name.
2839
2840 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2841
2842         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2843         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2844         (cgraph_varpool_node): Hash on the pointer to the decl, not
2845         the DECL_UID.  Fixes 64-bit bootstrap failure.
2846
2847 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2848
2849         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2850         we don't earlyclobber operands used in the second insn.
2851
2852 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2853
2854         * tree-mudflap.c: Formatting fixes.
2855
2856 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2857
2858         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2859         * gengtype.c (open_base_files): Include reload.h in ifiles.
2860         * reload.h (reg_equiv_memory_loc_varray): Declare.
2861         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2862         (init_reload): Initialize it.
2863         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2864         reg_equiv_memory_loc_varray to size 0.
2865         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2866         growing reg_equiv_memory_loc_varray to the desired size.
2867         * passes.c (rest_of_handle_old_regalloc): Likewise.
2868         * reload.c: Amend comment on calling init_reload.
2869
2870 2004-05-20  Nick Clifton  <nickc@redhat.com>
2871
2872         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2873         with 'TRAMP' in the body of the macro definition.
2874
2875 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2876
2877         PR target/15383
2878         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2879         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2880         cmptf_libfunc isn't set.
2881         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2882         conventions.
2883         (ia64_sysv4_init_libfuncs): New.
2884
2885         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2886         ia64_sysv4_init_libfuncs.
2887
2888 2004-05-20  Falk Hueffner  <falk@debian.org>
2889
2890         PR other/15526
2891         * libgcc2.c (__mulvsi3): Fix overflow test.
2892
2893 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2894
2895         PR c/14171
2896         * reg-stack.c (nan): Rename to ...
2897         (not_a_num): Here.
2898         (reg_to_stack): Rename nan to not_a_num.
2899         (subst_stack_regs_pat): Likewise.
2900         (convert_regs_entry): Likewise.
2901         (convert_regs_1): Likewise.
2902
2903         * tree-cfg.c (find_case_label_for_value): Replace call to
2904         simple_cst_equal with tree_int_cst_equal.
2905
2906 2004-05-19  Jeff Law <law@redhat.com>
2907
2908         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2909         If the operand is for a use, then strip away the SSA_NAME, do not
2910         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2911         (mark_def_sites): Appropriately pass additional argument to
2912         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2913         then set the VDEF_RESULT to the VDEF_OP.
2914         (set_def_block): Strip away any SSA_NAME to get to the real
2915         underlying variable.
2916
2917         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2918         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2919         BB directly.
2920
2921 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2922
2923         PR c++/15463
2924         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2925         result of inverse.
2926
2927         PR rtl-optimization/15274
2928         * loop-iv.c (determine_max_iter, shorten_into_mode,
2929         iv_number_of_iterations): Handle constants correctly.
2930         * rtl.h (get_mode_bounds): Declaration changed.
2931         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2932         the target mode.
2933
2934         PR rtl-optimization/14692
2935         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2936         (unswitch_single_loop): Work correctly when may_unswitch_on
2937         returns a folded constant.
2938
2939         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2940         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2941         comparisons with mode bounds.
2942
2943         * function.c (struct temp_slot): Add new field prev.
2944         (free_after_compilation, init_temp_slots): Free new fields.
2945         (cut_slot_from_list, insert_slot_to_list,
2946         temp_slots_at_level, max_slot_level, move_slot_to_level,
2947         make_slot_available): New functions.
2948         (assign_stack_temp_for_type, combine_temp_slots,
2949         find_temp_slot_from_address, preserve_temp_slots,
2950         preserve_rtl_expr_result, free_temp_slots,
2951         free_temps_for_rtl_expr, pop_temp_slots): Work with
2952         the new structure of lists.
2953         (mark_all_temps_used): Removed.
2954         * function.h (struct function): Field x_temp_slots
2955         replaced by x_used_temp_slots and x_avail_temp_slots.
2956         (temp_slots): Replaced by ...
2957         (used_temp_slots, avail_temp_slots): New.
2958         * tree.h (mark_all_temps_used): Declaration removed.
2959
2960         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2961         simplify_using_assignment): Take the expression out of
2962         the expr_list wrapper.
2963
2964         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2965         infinite loops.
2966
2967 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2968
2969         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2970         costs should be based on code size when optimizing for size.
2971
2972 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2973
2974         * fold-const.c: Remove non-printable character 160.
2975
2976 2004-05-19  Nick Clifton  <nickc@redhat.com>
2977
2978         * doc/invoke.texi (ARM Options): Fix typo.
2979         Remove descrption of -mshort-load-bytes and
2980         -mno-short-load-bytes.
2981
2982         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2983         missing parenthesis.
2984         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2985         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2986
2987 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2988
2989         * expr.c (store_constructor): Build loop start and end by hand
2990         instead of via loop functions from stmt.c.
2991         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2992         Remove the code to expand them.
2993
2994         * stmt.c (loop_stack): Remove this and everything related.
2995         (struct nesting, enum nesting_desc): Update.
2996         (expand_fixup): Likewise.
2997         (expand_loop_start, expand_start_loop_continue_elsewhere,
2998         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2999         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3000         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3001         expand_exit_something): Remove.
3002         * tree.h: Remove prototypes.
3003
3004 2004-05-18  Mike Stump  <mrs@apple.com>
3005             Devang Patel  <dpatel@apple.com>
3006
3007         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3008         if this label is for eh.
3009         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3010         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3011         * dwarf2out.c (output_call_frame_info): Likewise.
3012         * output.h (default_emit_unwind_label): Likewise.
3013         * target.h (unwind_label): Likewise.
3014         * varasm.c (default_emit_unwind_label): Likewise.
3015
3016         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3017         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3018         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3019         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3020         DEBUG_RANGES_SECTION): Define.
3021
3022 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3023
3024         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3025         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3026         (cgraph_varpool_node):
3027         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3028         (cgraph_function_possibly_inlined_p): Use the decl itself for
3029         the key, not DECL_ASSEMBLER_NAME.
3030         (change_decl_assembler_name): No need to muck with the hash tables.
3031         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3032         Delete.
3033         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3034         for the key, not DECL_ASSEMBLER_NAME.
3035         * cgraph.h: Remove prototypes of deleted functions.
3036         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3037         (mark_decl_referenced): New function.
3038         * tree.h: Prototype mark_decl_referenced.
3039         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3040         mark_decl_referenced before assemble_name.
3041         * c-decl.c (finish_decl): Use mark_decl_referenced.
3042
3043 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3044             Jeff Law <law@redhat.com>
3045
3046         * tree-ssa-phiopt.c (abs_replacement): New function.
3047         (empty_block_p): New function extracted from...
3048         (candidate_bb_for_phi_optimization): Break out empty block test.
3049         (conditional_replacement): Use empty_block_p.
3050         (value_replacement): Similarly.
3051
3052         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3053         * tree-ssa-phiopt.c: Include flags.h.
3054         (conditional_replacement): Remove argument names from prototype.
3055         Minor formatting and comment fixes.
3056         (tree_ssa_phiopt): If conditional_replacement returns false, then
3057         call value_replacement.
3058         (value_replacement): New function.
3059
3060 2004-05-18  Jeff Law  <law@redhat.com>
3061
3062         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3063         from conditional_replacement.
3064         (candidate_bb_for_phi_optimization): Similarly.
3065         (conditional_replacement): Use replace_phi_with_stmt and
3066         candidate_bb_for_phi_optimization.
3067
3068         * tree-ssa-phiopt.c: Fix various formatting issues.
3069
3070 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3071
3072         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3073         s390_expand_cmpmem): Do not use expand_start_loop and
3074         expand_end_loop, instead build the loop manually.
3075
3076 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3077
3078         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3079         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3080
3081 2004-05-17  Jeff Law  <law@redhat.com>
3082
3083         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3084         * flags.h (flag_delete_null_pointer_checks): Here.
3085         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3086         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3087         (add_phi_arg, remove_phi_arg_num): Similarly.
3088         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3089         property into PHI nodes.
3090         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3091         (record_equivalences_from_phis): If all PHI arguments are known to be
3092         nonzero, then the result must be nonzero as well.
3093         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3094         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3095         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3096         as appropriate.
3097         * tree.h (PHI_ARG_NONZERO): Define.
3098         (phi_arg_d): Add nonzero flag.
3099
3100 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3101
3102         * f: Entire directory removed
3103
3104         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3105         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3106         (g77_integer_type_node, g77_uinteger_type_node)
3107         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3108         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3109         the above set of variables.
3110
3111         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3112         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3113         to g77 manual.
3114
3115 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3116
3117         PR tree-optimization/15438
3118         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3119         attributed functions as pure or const.
3120
3121 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3122
3123         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3124         from source code with errors.
3125
3126 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3127
3128         Enable tree browser for all front ends.
3129         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3130         (BACKEND): ...to here.
3131
3132 2004-05-17  Jan Hubicka  <jh@suse.cz>
3133
3134         * i386.c (construct_container): Do not produce BLKmode registers.
3135         (classify_argument): Properly compute alignment of complex types.
3136
3137 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3138
3139         PR target/15084
3140         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3141         and renamed to movdi_insv_1_rex64.
3142         (insv): Support SImode for 32bit and DImode for 64bit.
3143
3144 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3145
3146         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3147         (TARGET_SWITCHES): Remove debugg.
3148         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3149         TARGET_64BIT.
3150         (subdi3): Replace the define_expand with a define_insn, the latter
3151         renamed from subdi3_internal_3.
3152         (negdi2): Likewise negdi2_internal_2.
3153         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3154         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3155         and associated define_splits.
3156         (adddi3_internal): Renamed from adddi3_internal_3.
3157         (ashldi3_internal): Likewise ashldi3_internal4.
3158         (ashrdi3_internal): Likewise ashrdi3_internal4.
3159         (lshrdi3_internal): Likewise lshrdi3_internal4.
3160
3161 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3162
3163         * optabs.c (expand_unop): Try implementing negation using subtraction
3164         from zero.
3165
3166 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3167
3168         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3169         SAR register.
3170
3171 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3172
3173         PR target/10982
3174         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3175         (ne_zeroextractsi_shifted): New pattern.
3176         (ite_ne_zeroextractsi): New pattern.
3177         (ite_ne_zeroextractsi_shifted): New pattern.
3178
3179 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3180
3181         * c-gimplify.c (c_genericize):
3182         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3183         * c-parse.in <expr_no_commas>: Likewise.
3184         <if_prefix>: Likewise.
3185         <select_or_iter_stmt>: Likewise.
3186         * expr.c (expand_var, expand_expr_real_1): Likewise.
3187         * expr.h (expand_expr): Make it a static inline function.
3188         Move prototype for expand_expr_real up before this.
3189         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3190         Likewise.
3191         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3192         gimplify_asm_expr, gimplify_expr): Likewise.
3193         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3194         dump_function_to_file): Likewise.
3195         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3196         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3197         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3198         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3199         Likewise.
3200         * tree-optimize.c (execute_one_pass): Likewise.
3201         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3202         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3203
3204         * objc/objc-act.c (objc_build_try_enter_fragment,
3205         objc_build_try_epilogue, objc_build_catch_stmt,
3206         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3207         with lang_hooks.foo ().
3208
3209 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3210
3211         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3212         that simplify_builtin doesn't destructively modify its argument.
3213
3214 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3215
3216         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3217         implementations for ARM and Thumb.
3218         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3219
3220 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3221
3222         * prefix.c (update_path): Replace PREFIX with KEY only
3223         when it matches a full directory name in PATH.
3224
3225 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3226
3227         * arm.h (TARGET_APCS_32): Delete.
3228         (TARGET_MMU_TRAPS): Delete.
3229         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3230         define __APCS_26__.
3231         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3232         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3233         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3234         (prog_mode_type): Delete.
3235         (PROMOTE_MODE): Always promote unsigned for HImode.
3236         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3237         (MASK_RETURN_ADDR): Simplify.
3238         * arm.c (arm_prgmode): Delete.
3239         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3240         (print_multi_reg, output_return_instruction): Simplify.
3241         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3242         (arm_return_addr): Simplify.
3243         * arm.md (prog_mode): Delete.
3244         (conds): Simplify.
3245         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3246         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3247         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3248         (loadhi_shiftpredec): Delete.
3249         (peephole for post-increment on HImode load): Delete.
3250         * arm/crtn.asm: (FUNC_END): Simplify.
3251         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3252         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3253         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3254         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3255         MULTILIB_DEFAULTS as required.
3256         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3257         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3258         variables as required.
3259         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3260
3261 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3262
3263         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3264         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3265         count to 8 to handle n_reg > 2.
3266
3267 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3268
3269         * doc/extend.texi: Update WG14 URL.
3270
3271 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3272
3273         * basic-block.h (life_analysis, delete_noop_moves):
3274         Update prototypes.
3275         * bt-load.c (branch_target_load_optimize): Don't take the
3276         insns stream as an argument.  Update the life_analysis calls.
3277         * combine.c (combine_instructions): Update delete_noop_moves
3278         calls.
3279         * flow.c (notice_stack_pointer_modification): Don't take the
3280         insns stream as an argument.  Work on the flow graph.
3281         (life_analysis): Likewise.
3282         (delete_noop_moves): Likewise.
3283         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3284         (rest_of_handle_life): Update life_analysis call.
3285         (rest_of_compilation): Likewise, and also update
3286         branch_target_load_optimize call.
3287         * ra.c (reg_alloc): Update life_analysis call.
3288         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3289         the insns stream as an argument.
3290         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3291         call.
3292         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3293         prototypes.
3294         * value-profile.c (branch_prob): Update life_analysis call.
3295         * web.c (web_main): Work on the CFG, not on the insns stream.
3296
3297         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3298         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3299         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3300
3301 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3302
3303         PR c/15444
3304         * c-format.c (avoid_dollar_number): New function.
3305         (check_format_info_main): Call avoid_dollar_number when operand
3306         numbers might occur but has_operand_number == 0.
3307
3308 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3309
3310         * arm.md (all peephole2 patterns): Use predicates that validate
3311         register classes as appropriate.
3312
3313 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3314
3315         PR opt/14472
3316         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3317         ignore type conversions that do not inhibit tail calling.
3318         (find_tail_calls): Likewise.
3319
3320 2004-05-14  Jeff Law  <law@redhat.com>
3321
3322         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3323         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3324         bypassed virtuals into vars_to_rename just before into-ssa pass.
3325
3326         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3327         so that it picks up more opportunities to eliminate ABS expressions
3328         or turn them into negations.
3329
3330 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3331
3332         * passes.c (rest_of_handle_null_pointer): Remove.
3333         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3334         (rest_of_compilation): Likewise.
3335         * rtl.h (delete_null_pointer_checks): Remove prototype.
3336         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3337         Remove declarations.
3338         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3339         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3340         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3341         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3342         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3343         one_classic_gcse_pass, invalidate_nonnull_info,
3344         delete_null_pointer_checks_1, delete_null_pointer_checks,
3345         expr_reached_here_p_work): Remove.
3346         (gcse_main): Do not perform classic GCSE when optimizing for size.
3347         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3348         are never used.
3349
3350 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3351
3352         PR optimization/14466
3353         * tree-complex.c (make_temp): Remove.
3354         (gimplify_val): Replace make_temp with make_rename_temp
3355         and add NULL as the second argument.
3356         (expand_complex_div_wide): Likewise.
3357         * tree-dfa.c (make_rename_temp): New function.
3358         * tree-flow.h (make_rename_temp): Declare.
3359         * tree-sra.c (make_temp): Remove.
3360         (lookup_scalar): Replace make_temp with make_rename_temp.
3361         (create_scalar_copies): Likewise.
3362         * tree-ssa-phiopt.c (conditional_replacement): When we
3363         get non gimple create a temporary variable to hold the
3364         casted expression.
3365
3366 2004-05-14  Paul Brook  <paul@codesourcery.com>
3367
3368         * stor-layout.c (update_alignment_for_field): Use
3369         targetm.align_anon_bitfield.
3370         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3371         (TARGET_INITIALIZER): Use it.
3372         * target.h (struct gcc_target): Add align_anon_bitfield.
3373         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3374         (TARGET_ALIGN_ANON_BITFIELD): Define.
3375         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3376
3377 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3378
3379         * tree.def (documentation): Remove mention of class 'b'.
3380         (BLOCK): Now in class 'x'.
3381         * c-common.c (verify_tree): Remove case 'b'.
3382         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3383         * calls.c (calls_function_1): Control cannot get past the switch
3384         when exp is a BLOCK.
3385         * print-tree.c (print_node): Move code for class 'b' to the class
3386         'c'/'x' switch, as case BLOCK.
3387         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3388         (unsafe_for_reeval, substitute_placeholder_in_expr)
3389         (stabilize_reference_1): Remove case 'b'.
3390         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3391         of something being 'b' to tests for TREE_CODE of something being
3392         BLOCK.
3393         * tree-ssa-operands.c (get_expr_operands): Likewise.
3394
3395 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3396
3397         * tree-gimple.c: Rename from tree-simple.c.
3398         * tree-gimple.h: Rename from tree-simple.h.
3399         * c-gimplify.c: Rename from c-simplify.c
3400         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3401         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3402         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3403         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3404         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3405         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3406         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3407         Update.
3408
3409 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3410
3411         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3412
3413 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3414
3415         * tree-ssa.c (delete_tree_ssa): XFREE
3416         bitmaps allocated with BITMAP_XMALLOC.
3417
3418         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3419         idfs_cache at the end of the function.
3420
3421         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3422         at the end of the function.