tree.h (PHI_CHAIN): New.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2004-06-16  Steven Bosscher  <stevenb@suse.de>
2
3         * tree.h (PHI_CHAIN): New.
4         * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
5         tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
6         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
7         tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
8         tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
9         when traversing a list of PHI_NODEs.
10
11 2004-06-16  Bernardo Innocenti  <bernie@develer.com>
12
13         PR target/13292
14         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
15         on -msoft-float.
16         (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
17         68040 and soft-float.
18         * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
19         in the TARGET_68040_ONLY case.
20
21 2004-06-16 Peter Barada  <peter@the-baradas.com>
22
23         * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
24         (movsi_cf): Make named, don't match TARGET_CFV4.
25         (pushexthisi_const): Use mov3q if possible.
26         (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
27         to special case mvz.w for ColdFire V4.
28         (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
29         to special case mvz.b for ColdFire V4.
30         (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
31         divide.
32         (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
33         * config/m68k/m68k.c(valid_mov3q_const):  New function.
34         (const_method): SWAP is valid for ColdFire.
35         (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
36         * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
37
38 2004-06-16  Richard Henderson  <rth@redhat.com>
39
40         * c-common.def (CASE_LABEL): Remove.
41         * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
42         (match_case_to_enum_1): Likewise.
43         * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
44         * c-dump.c (c_dump_tree): Likewise.
45         * c-gimplify.c (c_gimplify_stmt): Likewise.
46         * c-pretty-print.c (pp_c_statement): Likewise.
47         * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
48         * tree.h (CASE_LOW): Update commentary.
49
50 2004-06-16  Richard Henderson  <rth@redhat.com>
51
52         * c-common.def (ASM_STMT): Remove.
53         * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
54         * c-dump.c (c_dump_tree): Likewise.
55         * c-gimplify.c (c_gimplify_stmt): Likewise.
56         * c-pretty-print.c (pp_c_statement): Likewise.
57         * c-typeck.c (build_asm_expr): Use ASM_EXPR.
58         * tree.h: Fix commentary.
59
60 2004-06-16  Richard Henderson  <rth@redhat.com>
61
62         * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
63         * c-common.c (c_add_case_label): Use LABEL_EXPR.
64         * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
65         (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
66         * c-dump.c (c_dump_tree): Likewise.
67         * c-gimplify.c (c_gimplify_stmt): Likewise.
68         * c-pretty-print.c (pp_c_statement): Likewise.
69         * c-parse.in (stmt): Use GOTO_EXPR.
70         (label): Use LABEL_EXPR.
71         * c-semantics.c (build_stmt): Set TREE_TYPE to void.
72         * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
73
74 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
75
76         * cfgcleanup.c (try_simplify_condjump): Update test to make
77         sure we have a conditional branch around am unconditional branch.
78
79 2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
80
81         * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
82         
83 2004-06-16  Dale Johannesen  <dalej@apple.com>
84
85         * loop.c (loop_givs_reduce): Avoid miscompilation of
86         loops entered at bottom.
87
88 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
89
90         * cfglayout.c (fixup_reorder_chain): Handle case where the
91         destination of E_FALL is EXIT_BLOCK_PTR.
92
93 2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
94
95         PR target/15653
96         * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
97         after shifts before asm.
98
99 2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
100
101         PR tree-optimization/15993
102         * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
103         destination is unchanged.
104
105 2004-06-16  Andreas Jaeger  <aj@suse.de>
106
107         * doc/install.texi (Configuration): Update description for
108         --enable-version-specific-runtime-libs.
109
110 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
111
112         * doc/install.texi: boehm-gc now uses automake 1.8.5.
113
114 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
115
116         * toplev.h (rest_of_compilation): Adjust prototype.
117
118 2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
119
120         * coverage.c: Remove argument to rest_of_compilation.
121         * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
122         * passes.c (rest_of_compilation): Remove argument.
123         (pass_rest_of_compilation): New.
124         (rest_of_handle_final, rest_of_handle_delay_slots,
125         rest_of_handle_stack_regs, rest_of_handle_variable_tracking
126         rest_of_handle_machine_reorg, rest_of_handle_regrename
127         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
128         rest_of_handle_regmove, rest_of_handle_tracer
129         rest_of_handle_if_conversion, rest_of_handle_if_after_combine
130         rest_of_handle_web, rest_of_handle_branch_prob
131         rest_of_handle_value_profile_transformations, rest_of_handle_cfg
132         rest_of_handle_addressof, rest_of_handle_jump_bypass
133         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
134         Check that the two arguments are actually superfluous.
135         * tree-optimize.c (register_dump_files): Add properties argument.
136         Track validity of passes.  Only initialize dump files for
137         tree-based passes.  Store the full set of provided passes in
138         the pass.
139         (init_tree_optimization_passes): Register pass_expand and
140         pass_rest_of_compilation.
141         (execute_one_pass): Do not track the presence of required properties
142         here.  Set in_gimple_form.  Do not update current_properties.
143         (current_properties): Remove.
144         (set_save_expr_context): Remove.
145         (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
146         expand to RTL here, and do not call rest_of_compilation.  Push
147         GGC context even before gimplification.
148         * tree-pass.h (PROP_rtl, PROP_trees): New flags.
149         (pass_expand, pass_rest_of_compilation): Declare.
150
151 2004-06-15  Jeff Law  <law@redhat.com>
152
153         * fold-const.c (swap_tree_comparison): No longer static.
154         (tree_swap_operands_p): Similarly.  Return true if both operands
155         are SSA_NAMEs and the first operand has a higher version number than
156         the second operand.
157         * tree.h (swap_tree_comparison): Prototype.
158         (tree_swap_operands_p): Prototype.
159         * tree-ssa-operands.c (get_expr_operands): For commutative
160         operators and relational comparisons, canonicalize the
161         order of the operands.
162
163 2004-06-15  Richard Henderson  <rth@redhat.com>
164
165         * c-common.c (lang_gimplify_stmt): Remove next_p argument.
166         (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
167         c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
168         c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
169         (finish_fname_decls, fname_decl): Use statement_lists.
170         (c_expand_expr_stmt): Don't set last_expr_type.
171         (c_type_hash): Fix indentation.
172         (c_safe_from_p): Don't follow TREE_CHAIN.
173         (c_tree_chain_matters_p): Remove.
174         * c-common.def (SCOPE_STMT): Remove.
175         (CLEANUP_STMT): Redefine to contain its own body.
176         * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
177         x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
178         Add x_cur_stmt_list.
179         (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
180         (cur_stmt_list): New.
181         (STATEMENT_LIST_STMT_EXPR): New.
182         (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
183         SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
184         (CLEANUP_BODY): New.
185         (CLEANUP_DECL): Move to operand 2.
186         (c_common_stmt_codes): Remove SCOPE_STMT.
187         (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
188         * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
189         (c_push_function_context, c_pop_function_context): Don't save it.
190         (finish_decl): Set TREE_USED on the decl for a cleanup.
191         Use push_cleanup.
192         (store_parm_decls): Use statement lists.
193         (finish_function): Remove compstmt rule workaround.  Use statement
194         lists.  Call finish_fname_decls after finalizing the body.
195         (c_begin_compound_stmt): Move to c-typeck.c.
196         * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
197         * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
198         (c_genericize): Invoke them.
199         (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
200         (c_build_bind_expr): Export.
201         (gimplify_block, gimplify_cleanup): Remove.
202         (gimplify_condition): Use gimplify_stmt.
203         (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
204         (gimplify_if_stmt): Remove recursion hack.
205         (c_gimplify_expr): Remove STMT_EXPR handling.
206         (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
207         (is_last_stmt_of_scope): Remove.
208         * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
209         * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
210         c_end_compound_stmt.
211         * c-objc-common.c (build_cdtor): Likewise.
212         * c-parse.in (primary): Use c_finish_stmt_expr.
213         (push_scope, pop_scope): Remove.
214         (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
215         (c99_block_end, compstmt): Use c_end_compound_stmt.
216         (c99_block_lineno_labeled_stmt): Likewise.
217         (compstmt_primary_start): Use c_begin_stmt_expr.
218         (simple_if, select_or_iter_stmt): Update calls to stmt builders.
219         (do_stmt_start): Fill in body directly.
220         (lineno_stmt): Avoid setting lineno on constants.
221         * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
222         Remove SCOPE_STMT.
223         * c-semantics.c (begin_stmt_tree): Remove.
224         (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
225         (add_stmt): Use statement lists.
226         (add_scope_stmt, finish_stmt_tree): Remove.
227         (push_cleanup): New.
228         * c-tree.h: Move some decls from c-common.h.
229         * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
230         (do_case, c_finish_case): Likewise.
231         (c_finish_then): Take body for then as argument.
232         (c_finish_else): Similarly.
233         (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
234         c_finish_for_stmt_incr, c_finish_for_stmt): New.
235         (c_begin_stmt_expr, c_finish_stmt_expr): New.
236         (c_begin_compound_stmt): Do scope management.
237         (c_end_compound_stmt): New.
238         * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
239         * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
240         Look through exception handling constructs.
241         (gimplify_bind_expr): Accept temporary argument.
242         (gimplify_target_expr): Special case BIND_EXPR bodies.
243         (gimplify_expr): Handle fallback == fb_none like a statement.
244         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
245         * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
246         * langhooks.h (tree_chain_matters_p): Remove.
247         * stub-objc.c (objc_clear_super_receiver): New.
248         * tree-gimple.h (voidify_wrapper_expr): Update decl.
249         (append_to_statement_list, append_to_statement_list_force): Move
250         to tree-iterator.h.
251         * tree-inline.c (expand_call_inline): Update call.
252         (clone_body): Use statement lists.
253         (walk_tree): Don't check tree_chain_matters_p.
254         (copy_tree_r): Likewise.
255         * tree-iterator.c (alloc_stmt_list): Clear lang bits.
256         (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
257         * tree-iterator.h (append_to_statement_list,
258         append_to_statement_list_force): Moved from tree-gimple.h.
259         * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
260         * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
261         (objc_enter_block): Likewise.
262         (objc_exit_block): Use c_end_compound_stmt.
263         (objc_build_try_enter_fragment): Add #error and comment for
264         rewriting for OBJCPLUS.
265         (objc_build_extract_fragment, objc_build_try_epilogue,
266         objc_build_catch_stmt, objc_build_finally_prologue,
267         objc_build_finally_epilogue): Update for C statement builders.
268         * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
269         Remove.
270
271 2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
272
273         * df.c (df_reg_clobber_gen): Removed.
274         (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
275         Make more effective for hard regs.
276         * ra-build.c (livethrough_conflicts_bb): Check contains_call.
277
278 2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
279
280         * c-pragma.h (c_lex_string_translate): Change type to int.
281         * c-parse.in: Change all assignments of c_lex_string_translate
282         to true and false to 1 and 0.
283         * c-lex.c (c_lex_string_translate): Likewise.
284         (lex_string): Convert string without translation in the -1
285         case.
286
287 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
288
289         * convert.h: Add include guards
290
291 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
292
293         * tree-flow-inline.h: Document all functions.
294
295 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
296
297         * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
298         * tree-dfa.c (create_stmt_ann): Ditto.
299         * tree-pretty-print.c (dump_generic_node): Remove E* node handling.
300         * tree-inline.c (estimate_num_insns_1): Ditto.
301         * tree.c (tree_size): Ditto.
302         (make_node_stat): Ditto.
303         (tree_node_structure): Ditto.
304         (ephi_node_elt_check_failed): Remove.
305         (is_essa_node): Ditto.
306         * tree.def (EPHI_NODE): Ditto.
307         (EEXIT_NODE): Ditto.
308         (EUSE_NODE): Ditto.
309         (EKILL_NODE): Ditto.
310         * tree.h (EREF_NODE_CHECK): Remove.
311         (EPHI_NODE_ELT_CHECK): Ditto.
312         (struct tree_eref_common): Ditto.
313         (struct tree_euse_node): Ditto.
314         (struct ephi_arg_d): Ditto.
315         (struct tree_ephi_node): Ditto.
316         (ephi_node_elt_check_failed): Remove prototype.
317         (is_essa_node): Ditto.
318         (enum tree_node_structure_enum): Remove TS_E*_NODE.
319         (union tree_node): Remove E*_NODE uses.
320
321 2004-06-15  Jerry Quinn  <jlquinn@optonline.net>
322
323         * alias.c (record_set, record_base_value, canon_rtx, get_addr,
324         nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P.
325         * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set):
326         Likewise.
327         * builtins.c (expand_builtin_setjmp, expand_builtin_apply,
328         expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp,
329         expand_builtin_strcmp, expand_builtin_strncmp,
330         expand_builtin_frame_address): Likewise.
331         * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs,
332         insert_one_insn): Likewise.
333         * calls.c (prepare_call_address, precompute_register_parameters,
334         precompute_arguments, expand_call, emit_library_call_value_1): Likewise.
335         * cfganal.c (flow_active_insn_p): Likewise.
336         * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p,
337         combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P,
338         subst, combine_simplify_rtx, simplify_if_then_else, simplify_set,
339         make_extraction, recog_for_combine, gen_lowpart_for_combine,
340         simplify_comparison, record_dead_and_set_regs_1,
341         record_dead_and_set_regs, record_promoted_value,
342         check_promoted_subreg, get_last_value_validate, get_last_value,
343         reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes,
344         unmentioned_reg_p_1): Likewise.
345         * conflict.c (mark_reg): Likewise.
346         * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost,
347         mention_regs, insert_regs, lookup, lookup_for_remove, insert,
348         merge_equiv_classes, flush_hash_table, invalidate,
349         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
350         invalidate_for_call, use_related_value, canon_hash, exp_equiv_p,
351         cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant,
352         record_jump_cond, cse_insn, addr_affects_sp_p,
353         invalidate_from_clobbers, cse_process_notes, cse_around_loop,
354         cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode,
355         cse_cc_succs, cse_condition_code_reg): Likewise.
356         * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p,
357         cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx,
358         cselib_record_set, cselib_record_sets): Likewise.
359         * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms,
360         dbxout_block): Likewise.
361         * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise.
362         * dojump.c (do_jump): Likewise.
363         * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg,
364         is_based_loc, rtl_for_decl_location): Likewise.
365         * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl,
366         set_decl_incoming_rtl, mark_user_reg): Likewise.
367         * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg,
368         copy_to_suggested_reg, allocate_dynamic_stack_space,
369         probe_stack_range, hard_function_value): Likewise.
370         * expmed.c (store_bit_field, store_fixed_bit_field,
371         store_split_bit_field, extract_bit_field, extract_fixed_bit_field,
372         extract_split_bit_field, expand_divmod, emit_store_flag_force):
373         Likewise.
374         * expr.c (convert_move, convert_modes,
375         block_move_libcall_safe_for_call_parm, emit_group_load, use_reg,
376         use_group_regs, emit_move_insn, emit_move_insn_1,
377         compress_float_constant, push_block, emit_single_push_insn,
378         emit_push_insn, get_subtarget, expand_assignment, store_expr,
379         store_constructor, store_field, force_operand, safe_from_p,
380         expand_expr_real_1, expand_increment, do_store_flag, do_tablejump):
381         Likewise.
382         * final.c (profile_function, final_scan_insn, alter_subreg,
383         get_mem_expr_from_op, output_asm_operand_names, output_operand,
384         only_leaf_regs_used, leaf_renumber_regs_insn): Likewise.
385         * flow.c (verify_wide_reg_1, mark_regs_live_at_end,
386         find_regno_partial, propagate_one_insn, init_propagate_block_info,
387         insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond,
388         attempt_auto_inc, find_auto_inc, mark_used_regs,
389         count_or_remove_death_notes_bb): Likewise.
390         * function.c (find_temp_slot_from_address, update_temp_slot_address,
391         preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn,
392         fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof,
393         put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk,
394         purge_single_hard_subreg_set, instantiate_decl,
395         instantiate_virtual_regs_1, aggregate_value_p, assign_parms,
396         promoted_input_arg, setjmp_vars_warning, setjmp_args_warning,
397         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
398         expand_function_start, diddle_return_value, clobber_return_register,
399         expand_function_end, keep_stack_depressed, handle_epilogue_set,
400         update_epilogue_consts): Likewise.
401         * genemit.c (gen_exp, gen_insn): Likewise.
402         * genrecog.c (make_insn_sequence): Likewise.
403         * global.c (global_conflicts, expand_preferences, mark_reg_store,
404         mark_reg_conflicts, set_preference, reg_becomes_live,
405         build_insn_chain, mark_reg_change): Likewise.
406         * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight):
407         Likewise.
408         * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block):
409         Likewise.
410         * integrate.c (copy_rtx_and_substitute, try_constants,
411         subst_constants, mark_stores, allocate_initial_values): Likewise.
412         * jump.c (reversed_comparison_code_parts, delete_prior_computation,
413         delete_computation, rtx_renumbered_equal_p, true_regnum,
414         reg_or_subregno): Likewise.
415         * lcm.c (reg_dies, reg_becomes_live): Likewise.
416         * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem,
417         update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set,
418         wipe_dead_reg, no_conflict_p): Likewise.
419         * loop-iv.c (simple_reg_p, simple_set_p, kill_sets,
420         iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered,
421         simple_rhs_p, simplify_using_assignment, implies_p): Likewise.
422         * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p,
423         move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p,
424         find_single_use_in_loop, count_one_set, loop_bivs_init_find,
425         loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs,
426         valid_initial_value_p, simplify_giv_expr, consec_sets_giv,
427         loop_regs_update, check_dbra_loop, maybe_eliminate_biv,
428         maybe_eliminate_biv_1, record_initial, update_reg_last_use,
429         canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop,
430         try_swap_copy_prop): Likewise.
431         * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop,
432         expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float):
433         Likewise.
434         * postreload.c (reload_cse_simplify, reload_cse_simplify_set,
435         reload_cse_simplify_operands, reload_combine,
436         reload_combine_note_store, reload_combine_note_use,
437         reload_cse_move2add, move2add_note_store): Likewise.
438         * print-rtl.c (print_rtx): Likewise.
439         * ra-build.c (copy_insn_p, remember_move, init_one_web_common,
440         contains_pseudo, handle_asm_insn): Likewise.
441         * ra-debug.c (ra_print_rtx_object, dump_constraints,
442         dump_static_insn_cost): Likewise.
443         * ra-rewrite.c (slots_overlap_p, emit_colors,
444         remove_suspicious_death_notes): Likewise.
445         * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use,
446         register_operand, scratch_operand, nonmemory_operand,
447         constrain_operands): Likewise.
448         * reg-stack (check_asm_stack_operands, remove_regno_note,
449         emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat,
450         subst_asm_stack_regs): Likewise.
451         * regclass.c (scan_one_insn, record_reg_classes, copy_cost,
452         record_address_regs, reg_scan_mark_refs): Likewise.
453         * regmove.c (discover_flags_reg, replacement_quality,
454         copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize,
455         fixup_match_1): Likewise.
456         * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value,
457         kill_set_value, copyprop_hardreg_forward_1): Likewise.
458         * reload.c (MATCHES, push_secondary_reload, find_reusable_reload,
459         reload_inner_reg_of_subreg, can_reload_into, push_reload,
460         combine_reloads, find_dummy_reload, hard_reg_set_here_p,
461         operands_match_p, decompose, find_reloads, find_reloads_toplev,
462         find_reloads_address, subst_indexed_address, find_reloads_address_1,
463         find_reloads_subreg_address, find_replacement,
464         refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p,
465         refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise.
466         * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns,
467         find_reg, delete_dead_insn, alter_reg, eliminate_regs,
468         elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs,
469         forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs,
470         emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
471         do_output_reload, emit_reload_insns, gen_reload,
472         delete_address_reloads_1, inc_for_reload): Likewise.
473         * reorg.c (update_reg_dead_notes, fix_reg_dead_note,
474         update_reg_unused_notes, fill_slots_from_thread): Likewise.
475         * resource.c (update_live_status, mark_referenced_resources,
476         mark_set_resources, mark_target_live_regs): Likewise.
477         * rtlanal.c (nonzero_address_p, get_jump_table_offset,
478         global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p,
479         reg_set_p, set_noop_p, find_last_value, refers_to_regno_p,
480         note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note,
481         find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in,
482         parms_set, find_first_parameter_load, keep_with_call_p,
483         hoist_test_store, hoist_update_store, address_cost, nonzero_bits1,
484         num_sign_bit_copies1): Likewise.
485         * rtlhooks.c (gen_lowpart_general): Likewise.
486         * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn,
487         sched_analyze): Likewise.
488         * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1):
489         Likewise.
490         * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise.
491         * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation,
492         simplify_binary_operation, simplify_const_relational_operation,
493         simplify_subreg): Likewise.
494         * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands,
495         expand_end_stmt_expr, expand_return, expand_decl,
496         expand_anon_union_decl): Likewise.
497         * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body,
498         find_splittable_regs, find_splittable_givs, find_common_reg_term,
499         loop_iterations): Likewise.
500         * var-tracking.c (variable_union, variable_part_different_p,
501         variable_different_p, count_uses, add_uses, add_stores,
502         compute_bb_dataflow, set_variable_part, delete_variable_part,
503         emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters):
504         Likewise.
505         * varasm.c (assemble_variable): Likewise.
506
507 2004-06-15  Chris Demetriou  <cgd@broadcom.com>
508
509         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
510         definition.
511         * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove
512         #undef and #if 0'd definition.
513
514 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
515
516         * combine.c (distribute_notes): Comment typo fix.
517
518 2004-06-15  Roger Sayle  <roger@eyesopen.com>
519
520         * expmed.c (synth_mult): Mask bits of the multiplier to the
521         machine mode of the multiplication.  Don't consider shifts
522         by more than (or equal to) the width of the operation's mode.
523
524 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
525
526         * doc/install.texi: Yet another update for autoconf
527         and automake versions.
528
529 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
530
531         * function.h (struct function): Remove cannot_inline field.
532         (current_function_cannot_inline): Remove.
533         * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT.
534         Simplify conditionals to ignore warn_return_type.
535         * tree-optimize.c (tree_rest_of_compilation): Do not reset
536         DECL_DEFER_OUTPUT.
537         * objc/objc-act.c (build_module_descriptor, finish_method_def):
538         Do not set current_function_cannot_inline.
539
540 2004-06-15  J"orn Rennecke <joern.rennecke@superh.com>
541
542         * cfglayout.c (fixup_reorder_chain): Handle case where the
543         destination of E_TAKEN is EXIT_BLOCK_PTR.
544
545 2004-06-15  Diego Novillo  <dnovillo@redhat.com>
546
547         * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
548
549 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
550
551         * fold-const.c (operand_equal_p): Update comment.
552
553 2004-06-15  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
554
555         * config/m32r/m32r.h (RETURN_ADDR_RTX): Define.
556         (INCOMING_RETURN_ADDR_RTX): Define.
557         * config/m32r/m32r-protos.h (m32r_return_addr): Added.
558         * config/m32r/m32r.c (m32r_exppand_prologue): Changed for
559         __builtin_return_address(0).
560         (m32r_return_addr): Added for __builtin_return_address(0).
561         (m32r_reload_lr): Ditto.
562
563         * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
564
565 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
566
567         * doc/install.texi (Prerequisites): Update libbanshee,
568         fastjar, libcpp, libjava/libltdl entries to
569         automake 1.8.5.
570
571 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
572             Olivier Hainque  <hainque@act-europe.fr>
573
574         * function.c (fixup_var_refs): Also adjust the start of sequence
575         after fixing up the insns.
576
577 2004-06-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
578
579         * gccbug.in: Update optimization -> tree-optimization/rtl-optimization.
580
581 2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>
582
583         * doc/install.texi (Prerequisites): Update libstdc++ entry to
584         automake 1.8.5.
585
586 2004-06-14  Eric Christopher  <echristo@redhat.com>
587
588         * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf)
589         to -mtpf-trace (-mno-tpf-trace).
590         * doc/invoke.texi (S/390 and zSeries Options): Add tpf option
591         documentation.
592
593 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
594
595         * real.c: Fix bit count in head comment.
596
597 2004-06-14  Jeff Law  <law@redhat.com>
598
599         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
600         PHIs where the destination or an argument is marked with
601         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
602
603 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
604
605         PR middle-end/15945
606         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
607         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
608
609 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
610
611         * opts.sh (var_args): Fix regexp.
612
613 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
614
615         PR target/15178
616         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
617
618 2004-06-14  Paul Brook  <paul@codesourcery.com>
619
620         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
621
622 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
623
624         * Makefile.in (FLAGS_H): New.
625         (flags.h): Replace by FLAGS_H.
626         * c.opt: Document Var, VarExists, Init and Report attributes.
627         * common.opt: Fill the values of the attributes.
628         * diagnostic.c (flag_fatal_errors): Do not define.
629         * except.c (flag_non_call_exceptions): Do not define.
630         * flags.h: Include options.h.  Remove declarations conflicting with
631         the automatically defined ones.
632         * opts.c: Remove automatically defined variables.
633         (handle_option): Perform default initialization.
634         (common_handle_option): Do not handle options covered by the
635         default initialization.
636         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
637         fields.
638         (CL_REPORT): New.
639         * opts.sh: Generate variable declarations, handle CL_REPORT.
640         * toplev.c: Remove automatically defined variables.
641         (f_options): Removed.
642         (print_switch_values): Use cl_options instead of f_options.
643         * toplev.h (version_flag): Declaration removed.
644
645 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
646
647         * config/sparc/sparc.h: Correct comment about availability of
648         little endian option.
649
650         * config.gcc: Remove sparc64-*-aout*.
651         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
652         * config/sparc/sp64-aout.h: Remove.
653         * config/sparc/aout.h: Remove.
654
655 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
656
657         * config/s390/s390.c: Include "tree-gimple.h".
658         (s390_gimplify_va_arg): New function.
659         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
660         (s390_va_arg): Remove.
661         * config/s390/s390-protos.h (s390_va_arg): Remove.
662         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
663
664 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
665
666         * basic-block.h (could_fall_through): Declare.
667         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
668         Fail if the source already has a fallthrough edge to the exit
669         block pointer.
670         (could_fall_through): New function.
671         * cfgbuild.c (make_edges): Check if we already have a fallthrough
672         edge to the exit block pointer.
673         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
674         not called before reload has completed.
675         Handle special case of first block having a fall-through exit edge.
676         (cfg_layout_finalize): Don't call it before reload or if we have
677         rtl epilogues.
678         (fixup_reorder_chain): A fall through to the exit block does not
679         require the block to come last.  Add sanity checks.
680         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
681         edges to the exit block.
682         * function.c (cfglayout.h): #include.
683         (thread_prologue_and_epilogue_insns): If we have neither return nor
684         epilogue, but a fall through to the exit block from mid-function,
685         force a non-fall-through exit.
686         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
687
688 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
689
690         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
691         for power5 and rs64a.  Correct condition for default.  Correct power3,
692         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
693
694 2004-06-13  Steven Bosscher <stevenb@suse.de>
695
696         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
697         Revert previous change, don't use CALL_P.
698
699 2004-06-13  Jason Merrill  <jason@redhat.com>
700
701         * tree.h: Move std_gimplify_va_arg_expr protoype here.
702         * tree-gimple.h: From here.
703
704 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
705
706         Fix PR tree-optimization/15979
707         Fix PR tree-optimization/15981
708         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
709         try to insert values undefined along some path.
710
711 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
712
713         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
714         are available everywhere too.
715
716 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
717
718         * fold-const.c (fold_checksum_tree <case 't'>): Only
719         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
720         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
721         EXPR is an INTEGERAL_TYPE or a scalar float type.
722
723 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
724
725         * tree-sra.c (tree_sra): Update documentation.
726
727 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
728
729         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
730         function_types_compatible_p, type_lists_compatible_p): Remove
731         flags parameter.
732         * c-tree.h (comptypes): Likewise.
733         (COMPARE_STRICT): Remove.
734         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
735         callers changed.
736
737 2004-06-13  Eric Christopher  <echristo@redhat.com>
738
739         * c-decl.c (diagnose_mismatched_decls): Improve error message.
740         Remove unused code.
741         * c-typeck.c (comptypes): Add location in standard we're checking.
742
743 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
744
745         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
746         version 3.3.4.
747
748 2004-06-12  Roger Sayle  <roger@eyesopen.com>
749
750         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
751         index by machine mode.
752         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
753         tables inside the loop over machine modes.
754         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
755         expand_divmod): Index shift*_cost by the appropriate machine mode.
756
757 2004-06-12  Eric Christopher  <echristo@redhat.com>
758
759         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
760         * config/s390/s390.md: Ditto.
761         * config/s390/s390.c: Ditto.
762         (s390_frame_info): Conditionalize frame and setup info on
763         TARGET_TPF_PROFILING.
764         (s390_arg_frame_offset): Ditto.
765
766 2004-06-12  Roger Sayle  <roger@eyesopen.com>
767
768         * fold-const.c (omit_two_operands): New function.
769         * tree.h (omit_two_operands): Prototype here.
770         * builtins.c (fold_builtin_unordered_cmp): New function to lower
771         C99 unordered comparison builtins to the appropriate tree nodes.
772         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
773         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
774         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
775         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
776         (simplify_builtin_memcmp, simplify_builtin_strncmp,
777         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
778         omit_two_operands function to build the required COMPOUND_EXPRs.
779
780 2004-06-12  Steven Bosscher <stevenb@suse.de>,
781             Andreas Jaeger  <aj@suse.de>
782
783         * gcse.c (record_set_info): Use predicates like REG_P.
784         (mems_conflict_for_gcse_p): Likewise.
785         (load_killed_in_block_p): Likewise.
786         (hash_expr_1): Likewise.
787         (insert_set_in_table): Likewise.
788         (gcse_constant_p): Likewise.
789         (hash_scan_set): Likewise.
790         (hash_scan_insn): Likewise.
791         (canon_list_insert): Likewise.
792         (record_last_mem_set_info): Likewise.
793         (record_last_set_info): Likewise.
794         (compute_hash_table_work): Likewise.
795         (mark_set): Likewise.
796         (mark_clobber): Likewise.
797         (mark_oprs_set): Likewise.
798         (compute_transp): Likewise.
799         (find_avail_set): Likewise.
800         (cprop_insn): Likewise.
801         (do_local_cprop): Likewise.
802         (cprop): Likewise.
803         (find_implicit_sets): Likewise.
804         (find_bypass_set): Likewise.
805         (bypass_conditional_jumps): Likewise.
806         (insert_insn_end_bb): Likewise.
807         (pre_insert_copy_insn): Likewise.
808         (compute_transpout): Likewise.
809         (next_ls_expr): Likewise.
810         (invalidate_any_buried_refs): Likewise.
811         (compute_ld_motion_mems): Likewise.
812         (reg_set_info): Likewise.
813         (reg_clear_last_set): Likewise.
814         (find_moveable_store): Likewise.
815         (compute_store_table): Likewise.
816         (find_loads): Likewise.
817         (store_killed_in_insn): Likewise.
818         (insert_insn_start_bb): Likewise.
819         (reg_set_between_after_reload_p): Likewise.
820         (reg_used_between_after_reload_p): Likewise.
821         (is_jump_table_basic_block): Likewise.
822         (gcse_after_reload): Likewise.
823         (hash_scan_set_after_reload): Likewise.
824         (compute_hash_table_after_reload): Likewise.
825
826 2004-06-12  Steven Bosscher  <stevenb@suse.de>
827
828         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
829         (INSN_P): Don't look at the rtx code class, just explicitly
830         check for one of the tree RTX_INSN codes.
831
832 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
833
834         * c-typeck.c (default_function_array_conversion): Use
835         build_pointer_type not TYPE_POINTER_TO.
836
837 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
838
839         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
840         * configure, config.in: Regenerate.
841         * system.h: Unconditionally define bool as unsigned char,
842         BOOL_BITFIELD as unsigned int.
843         * domwalk.h: Use BOOL_BITFIELD.
844
845 2004-06-12  Andreas Jaeger  <aj@suse.de>
846
847         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
848         * libgcc-darwin.ver: Likewise.
849
850 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
851
852         * reload.c (find_reloads): Force reload for pseudo registers on big
853         endian machines.
854
855 2004-06-11  Steven Bosscher <stevenb@suse.de>
856
857         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
858         Don't try to mark anything control dependent on the entry or
859         exit blocks.
860
861 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
862
863         Fix Bug 15899
864         Fix Bug 15460
865         * tree.h (SSA_NAME_VALUE): New macro.
866         (struct tree_ssa_name): Add value_handle member.
867         * tree-ssa-pre.c: Replaced.
868         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
869         (struct cst_ann_d): New.
870         (struct expr_ann_d): New.
871         (union tree_ann_d): Add cst_ann, expr_ann.
872         * tree-dfa.c (create_cst_ann): New function.
873         (create_expr_ann): Ditto.
874         * tree-flow-inline.h (cst_ann): New function.
875         (expr_ann): Ditto.
876         (get_cst_ann): Ditto.
877         (get_expr_ann): Ditto..
878
879 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
880
881         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
882         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
883         _U_Qfcmp library function.
884         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
885         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
886
887         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
888         unspec used for loading address from DLT.
889         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
890         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
891         Don't use short code sequence when loading the address of a nonlocal
892         label.
893         (nonlocal_goto): New expander.
894         (indirect_goto): New jump pattern for nonlocal gotos.
895         (short_jump): Remove extra whitespace.
896         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
897         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
898         pattern.
899
900 2004-06-11  Roger Sayle  <roger@eyesopen.com>
901
902         * expmed.c (synth_mult): Add an additional MODE argument for the
903         machine mode of the multiplication.  Update recursive calls.  Use
904         mode instead of word_mode for determining operation costs.
905         (choose_mult_variant): Update calls to synth_mult with "mode".
906
907 2004-06-11  Richard Henderson  <rth@redhat.com>
908
909         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
910         and makes_aliased_stores.
911
912 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
913
914         * doc/install.text (--enable-shared): Fix typo.
915
916 2004-06-11  Richard Henderson  <rth@redhat.com>
917
918         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
919         argument.  Use internal post for call to gimplify_expr.  Tidy
920         rounded type size computation.
921         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
922         get_initialized_tmp_var.
923
924 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
925
926         * doc/install.texi (--enable-shared): Update libobjc's shared library
927         status.  Remove reference to libf2c.
928
929 2004-06-11  Jason Merrill  <jason@redhat.com>
930
931         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
932         * config/i386/i386.c (ix86_va_arg): Remove.
933         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
934         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
935         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
936         * config/alpha/alpha.c (alpha_va_arg): Remove.
937         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
938         * config/sparc/sparc.c (sparc_va_arg): Remove.
939
940         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
941         assignment might throw.
942         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
943         expressions.
944
945 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
946
947         PR 15886:
948         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
949
950 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
951
952         * doc/install.texi (Prerequisites): Update documentation of
953         required versions of autoconf and automake.  Remove mention of
954         libf2c.
955
956 2004-06-11  Jason Merrill  <jason@redhat.com>
957
958         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
959         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
960
961 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
962
963         * typeclass.h: Add GPL plus exception license.  Add include
964         guard.
965
966 2004-06-10  Jason Merrill  <jason@redhat.com>
967
968         * gimplify.c (gimplify_modify_expr): Don't force a temporary
969         of an aggregate_value_p type.
970
971 2004-06-10  Jeff Law  <law@redhat.com>
972
973         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
974         code when we are in gimple form.
975
976 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
977
978         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
979         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
980         (highest_ssa_version): Remove.
981         * tree-outof-ssa.c (new_temp_expr_table): Replace
982         highest_ssa_version with num_ssa_names.
983         (dump_replaceable_exprs): Likewise.
984         (rewrite_vars_out_of_ssa): Likewise.
985         * tree-ssa-ccp.c (initialize): Likewise
986         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
987         * tree-ssa-dce.c (tree_dce_init): Likewise.
988         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
989         * tree-ssa-live.c (create_ssa_var_map): Likewise.
990         (dump_var_map): Likewise.
991         * tree-ssa.c (verify_ssa): Likewise.
992         (kill_redundant_phi_nodes): Likewise.
993         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
994         * tree-ssanames.c: Include tree-flow.h
995         (ssa_names): New varray.
996         (init_ssa_names): Initialize ssa_names.
997         Reserve the first slot of the ssa_names table.
998         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
999         Assign version numbers using num_ssa_names.
1000
1001 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1002
1003         * doc/sourcebuild.texi (Front End): Add details of more
1004         installation documentation required.
1005
1006 2004-06-10  Brian Booth  <bbooth@redhat.com>
1007
1008         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
1009         of V_MAY_DEF and V_MUST_DEF.
1010         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
1011         num_vdefs to num_v_may_defs.
1012         (compute_immediate_uses_for_stmt): Rename occurences of vdef
1013         to v_may_def.
1014         (redirect_immediate_uses): Ditto.
1015         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
1016         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
1017         Also add code to sum up the number of v_must_defs.
1018         (vdefs_disappeared_p): Replace with...
1019         (v_may_defs_disappeared_p): This.
1020         (v_must_defs_disappeared_p): New function.
1021         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
1022         Also add code to mark new variables found in V_MUST_DEFs for
1023         renameing.
1024         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
1025         vdef_ops to v_may_def_ops.
1026         (get_vdef_ops): Replace with...
1027         (get_v_may_def_ops): This.
1028         * tree-flow-inline.h (get_vdef_ops): Replace with...
1029         (get_v_may_def_ops): This.
1030         (get_v_must_def_ops): New function.
1031         (get_vdef_result_ptr): Replace with...
1032         (get_v_may_def_result_ptr): This.
1033         (get_vdef_op_ptr): Ditto with...
1034         (get_v_may_def_op_ptr); This.
1035         (get_v_must_def_op_ptr): New function.
1036         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
1037         to v_may_def. Also add code to mark statements with
1038         V_MUST_DEFs as definition sites.
1039         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
1040         add code to register new V_MUST_DEFs made by the statement.
1041         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
1042         (check_replaceable): Rename occurences of vdef to v_may_def. Also
1043         add check for V_MUST_DEFs.
1044         (find_replaceable_in_bb): Ditto.
1045         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
1046         to v_may_def. Also add code to dump V_MUST_DEFs.
1047         * tree-sra.c (mark_all_vdefs): Replace with...
1048         (mark_all_v_may_defs): This.
1049         (mark_all_v_must_defs): New function.
1050         (create_scalar_copies): Replace call to mark_all_vdefs with
1051         calls to mark_all_v_may_defs and mark_all_v_must_defs.
1052         (scalarize_structures): Rename occurences of vdef to v_may_def.
1053         Also add a check for V_MUST_DEFs.
1054         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
1055         * tree-ssa-alias.c (global_var): Update comment.
1056         (compute_may_aliases): Ditto.
1057         (compute_points_to_and_addr_escape): Rename occurences of vdef
1058         to v_may_def. Also add code to mark variables in V_MUST_DEF
1059         operands as being written to.
1060         (group_aliases): Update comment.
1061         (maybe_create_global_var): Ditto.
1062         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
1063         Also add a check for V_MUST_DEFs on GIMPLE registers.
1064         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
1065         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
1066         to v_may_def. Also add code to mark all V_MUST_DEF operands
1067         VARYING.
1068         (initialize): Ditto.
1069         (set_rhs): Rename occurences of vdef to v_may_def. Also add
1070         code to update SSA_NAMEs in V_MUST_DEFs.
1071         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
1072         to v_may_def.
1073         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
1074         occurences of vdef to v_may_def. Also add code to mark statements
1075         with V_MUST_DEFs as necessary.
1076         (propagate_necessity): Rename occurences of vdef to v_may_def.
1077         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
1078         occurences of vdef to v_may_def. Also add code to mark operands
1079         in V_MUST_DEFs for renaming.
1080         (eliminate_redundant_computations): Rename occurences of vdef
1081         to v_may_def.
1082         (record_equivalences_from_stmt): Rename occurences of vdef
1083         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
1084         (optimize_stmt): Remove unnesessary variable vdefs. Update
1085         comment.
1086         (register_definitions_for_stmt): Rename occurences of vdef
1087         to v_may_def. Also add code to register definitions made with
1088         V_MUST_DEFs.
1089         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
1090         (fix_stmt_v_may_defs): This.
1091         (fix_phi_uses): Rename occurences of vdef to v_may_def.
1092         (dse_optimize_stmt): Ditto.
1093         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
1094         to v_may_def. Also add code to mark V_MUST_DEF operands as being
1095         used in virtual operators.
1096         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
1097         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
1098         renaming.
1099         * tree-ssa-operands.c (opf_kill_def): New flag for killing
1100         definitions.
1101         (build_vdefs): Renamed to...
1102         (build_v_may_defs): This.
1103         (build_v_must_defs): New variable.
1104         (voperands_d): Add v_must_def_ops and replace vdef_ops with
1105         v_may_def_ops.
1106         (append_vdef): Replace with...
1107         (append_v_may_def): This.
1108         (append_v_must_def): New function.
1109         (NUM_FREE): Increment for V_MUST_DEF
1110         (optype_freelist): Increment its size for V_MUST_DEF
1111         (allocate_vdef_optype): Replace with...
1112         (allocate_v_may_def_optype): This.
1113         (allocate_v_must_def_optype): New function.
1114         (free_vdefs): Replace with...
1115         (free_v_may_defs): This.
1116         (free_v_must_defs): New function.
1117         (remove_vdefs): Replace with...
1118         (remove_v_may_defs): This.
1119         (remove_v_must_defs): New function.
1120         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
1121         add code to initialize build_v_must_defs.
1122         (finalize_ssa_vdefs): Replace with...
1123         (finalize_ssa_v_may_defs): This.
1124         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
1125         (finalize_ssa_v_must_defs): New function.
1126         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
1127         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
1128         (verify_start_operands): Rename occurences of vdef to v_may_def.
1129         Also add check for build_v_must_defs.
1130         (get_stmt_operands): Rename occurences of vdef to v_may_def.
1131         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
1132         killing definitions.
1133         (get_expr_operands): Update comment and use opf_kill_def for
1134         killing definitions.
1135         (add_stmt_operand): Replace code that appends VDEFs with code
1136         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
1137         otherwise.
1138         (add_call_clobber_ops): Update comments.
1139         * tree-ssa-operands.h (vdef_optype_d): Replace with...
1140         (v_may_def_optype_d): This.
1141         (v_must_def_optype_d): New structure.
1142         (VDEF_OPS): Replace with...
1143         (V_MAY_DEF_OPS): This.
1144         (STMT_VDEF_OPS): Same with...
1145         (STMT_V_MAY_DEF_OPS): This.
1146         (NUM_VDEFS): And...
1147         (NUM_V_MAY_DEFS): This.
1148         (VDEF_RESULT_PTR): As well as...
1149         (V_MAY_DEF_RESULT_PTR): This.
1150         (VDEF_RESULT): Same goes for...
1151         (V_MAY_DEF_RESULT): This.
1152         (VDEF_OP_PTR): And...
1153         (V_MAY_DEF_OP_PTR): This.
1154         (VDEF_OP): And...
1155         (V_MAY_DEF_OP): This.
1156         (V_MUST_DEF_OPS): New macro.
1157         (STMT_V_MUST_DEF_OPS): Ditto.
1158         (NUM_V_MUST_DEFS): Ditto.
1159         (V_MUST_DEF_OP_PTR): Ditto.
1160         (V_MUST_DEF_OP): Ditto.
1161         (remove_vdefs): Replace signature with...
1162         (remove_v_may_defs): This.
1163         (remove_v_must_defs): New function signature.
1164         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
1165         with calls to remove_v_may_defs and remove_v_must_defs.
1166         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
1167         Also add code that marks left occurences of operands in V_MUST_DEFs.
1168         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
1169         to v_may_def. Also add check for V_MUST_DEFs.
1170         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
1171
1172 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
1173
1174         PR target/15653
1175         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
1176         insn.
1177
1178 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1179
1180         PR web/15263
1181         * doc/install.texi: Remove superfluous linebreak.
1182
1183 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1184
1185         * builtins.c (expand_builtin): Fall back to library function call for
1186         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
1187         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
1188         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
1189         IMAGPART_EXPR respectively.
1190
1191 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
1192
1193         * sh.c (dump_table): New argument start.  Changed caller.
1194         (fixup_mova): New function.
1195         (find_barrier): Use it.
1196         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
1197         If the label a mova refers to is above the mova itself, change
1198         the mova into a load.
1199         * sh.md (*casesi_worker): Rename to:
1200         (casesi_worker_1).
1201         (casesi_worker_2): New insn.
1202
1203 2004-06-10  Jason Merrill  <jason@redhat.com>
1204
1205         * target.h (struct gcc_target): Change gimplify_va_arg_expr
1206         hook signature.
1207         * tree-gimple.h: Adjust.
1208         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
1209         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
1210         Use fold_convert.
1211         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
1212         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
1213         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
1214         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
1215         (gimplify_va_arg_expr): Return GS_ERROR in error case.
1216         Gimplify valist rather than calling stabilize_va_list.
1217
1218 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1219
1220         * Makefile.in (df.o): Remove fibheap dependency.
1221         * df.h: Do not include sbitmap.h.
1222         (struct ref): New field "data".
1223         (DF_REF_DATA): New accessor macro.
1224         (struct df): Field "dom" removed.
1225         (df_analyze_subcfg): New function.
1226         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
1227         (transfer_function): ... new type.
1228         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
1229         (iterative_dataflow): ... new function.
1230         (enum set_representation, struct dataflow): New.
1231         * df.c: Do not include fibheap.h.
1232
1233         (df_reg_def_chain_clean, df_reg_use_chain_clean,
1234         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
1235         prune_to_subcfg, df_bb_modify): New functions.
1236         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
1237         df_refs_update, df_reg_table_realloc, df_ref_create,
1238         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
1239         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
1240         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
1241
1242         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
1243         (df_rd_transfer_function, df_ru_transfer_function,
1244         df_lr_transfer_function): Type of bitmaps changed to void *.
1245         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
1246         (hybrid_search): ... new function.
1247         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
1248         (iterative_dataflow): ... new function. Avoid use of fibheaps for
1249         a worklist.  Do not process basic blocks unnecessarily.
1250
1251 2004-06-10  Roger Sayle  <roger@eyesopen.com>
1252
1253         * fold-const.c (fold_abs_const): Make extern.
1254         * tree.h (fold_abs_const): Prototype here.
1255         * builtins.c (fold_builtin_fabs): New function to transform
1256         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
1257         (fold_builtin_abs): New function to transform abs, labs, llabs
1258         and imaxabs builtins into ABS_EXPR tree nodes.
1259         (expand_builtin): Fall back to a function call for abs, labs,
1260         llabs and imaxabs builtins that survive constant folding.
1261         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
1262         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
1263
1264 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1265
1266         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
1267         leaf function without unwind info at RP 0.
1268
1269 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
1270
1271         PR c++/14791
1272         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
1273         (fileptr_type_node): Define.
1274         * tree.c (build_common_tree_nodes_2): Initialize
1275         fileptr_type_node to ptr_type_node.
1276         * c-common.c (c_common_nodes_and_builtins): For C++, make
1277         fileptr_type_node a distinct type copy.
1278         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
1279         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
1280         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
1281         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
1282         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
1283         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
1284         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
1285         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
1286         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
1287         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
1288         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
1289         the above *FILEPTR* types instead of *PTR*.
1290
1291 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
1292
1293         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
1294         match.
1295
1296 2004-06-09  Roger Sayle  <roger@eyesopen.com>
1297
1298         * fold-const.c (fold_not_const): New function.
1299         (fold) <ABS_EXPR>: Don't bother testing wins.
1300         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
1301         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
1302
1303 2004-06-09  Richard Henderson  <rth@redhat.com>
1304
1305         PR middle-end/15228
1306         * function.c (assign_parms): Always set_mem_align with the computed
1307         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
1308
1309 2004-06-09  Richard Henderson  <rth@redhat.com>
1310
1311         PR opt/15108
1312         * tree-tailcall.c (find_tail_calls): Don't check early for
1313         tail_recursion failure.
1314
1315 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
1316
1317         Move SSA_NAME annotations into tree_ssa_name.
1318
1319         * tree-dfa.c (create_ssa_name_ann): Remove.
1320         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
1321         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
1322         (struct ssa_name_ann_d): Remove.
1323         (union tree_ann_d): Update.
1324         (ssa_name_ann_t): Remove.
1325         * tree-ssa-alias.c: (get_ptr_info): New local function.
1326         Replace references to ssa_name_ann_t with struct ptr_info_def.
1327         * tree-ssa-operands.c (get_expr_operands): Likewise.
1328         * tree.h (SSA_NAME_PTR_INFO): Define.
1329         (struct ptr_info_def): Declare.
1330         (struct tree_ssa_name): Add field 'ptr_info'.
1331
1332 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
1333
1334         * config/i386/winnt.c (i386_pe_output_labelref): Correct
1335         misplaced ')'.
1336
1337 2004-06-09  Steven Bosscher  <stevenb@suse.de>
1338
1339         * config/i386/k6.md: Rewrite using the DFA model.
1340         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
1341         cost of load-operation insns for the K6.
1342         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
1343         (ia32_multipass_dfa_lookahead): Likewise.
1344
1345 2004-06-09  Richard Henderson  <rth@redhat.com>
1346
1347         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
1348         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
1349
1350 2004-06-09  Richard Henderson  <rth@redhat.com>
1351
1352         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
1353
1354 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
1355
1356         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
1357         (CPP_ID_DATA_H): New.
1358         (gtype-desc.o): Update dependencies.
1359         (GTFILES): Use CPP_ID_DATA_H.
1360
1361 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
1362
1363         Revert:
1364         PR c++/15815
1365         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1366         * doc/extend.texi: Deprecate #pragma interface and #pragma
1367         implementation.
1368
1369 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
1370
1371         * config/sparc/sparc.h (MOVE_RATIO): New definition.
1372
1373 2004-06-09  Richard Henderson  <rth@redhat.com>
1374
1375         * basic-block.h (struct edge_def): Add goto_locus.
1376         * tree-cfg.c (make_goto_expr_edges): Set it.
1377         (disband_implicit_edges): Use it.
1378         * tree-pretty-print.c (dump_implicit_edges): Print it.
1379
1380 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1381
1382         * h8300.md (ldm_h8300s_4): Fix condition for expander.
1383
1384 2004-06-08  Jason Merrill  <jason@redhat.com>
1385
1386         Gimplify VA_ARG_EXPR into simpler forms.
1387         * target.h: Add gimplify_va_arg_expr hook.
1388         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
1389         * fold-const.c (build_fold_addr_expr)
1390         (build_fold_addr_expr_with_type): Move from gimplify.c.
1391         * tree.h: Declare them.
1392         * gimplify.c (gimplify_and_add): New fn.
1393         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
1394         (gimplify_array_ref_to_plus, gimplify_modify_expr)
1395         (gimplify_expr): Use build_fold_*.
1396         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
1397         don't know how to gimplify it.
1398         * builtins.c (std_gimplify_va_arg_expr): New fn.
1399         (dummy_object): New static fn.
1400         (gimplify_va_arg_expr): New fn.
1401         (stabilize_va_list): Use build_fold_*.
1402         * tree-gimple.h: Declare new fns.
1403         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1404         (ix86_gimplify_va_arg): New fn.
1405         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1406         (ia64_gimplify_va_arg): New fn.
1407         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
1408         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
1409         * alias.c (get_varargs_alias_set): Just return 0 for now.
1410
1411         * c-objc-common.c (c_tree_printer): Improve handling of %T.
1412
1413 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
1414
1415         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
1416         of convert.
1417         * tree-inline.c (setup_one_parameter): Likewise.
1418         * tree-sra.c (csc_build_component_ref): Likewise.
1419         * tree-ssa-ccp.c (ccp_fold): Likewise.
1420         * tree-ssa-copy.c (cprop_operand): Likewise.
1421         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1422         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1423
1424 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
1425
1426         PR rtl-optimization/15521:
1427         * sched-int.h (in_post_call_group_p): Change type to enum.
1428         * sched-deps.c (sched_analyze_insn):
1429         (sched_analyze): When in_post_call_group_p is post_call_initial,
1430         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
1431         and also reset in_post_call_group_p to post_call.
1432         (sched_analyze): When the previous basic block ended in a CALL_INSN,
1433         initialize in_post_call_group_p as post_call_initial.
1434         (init_deps): initialize in_post_call_group_p to not_post_call.
1435
1436 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
1437
1438         PR ada/6637
1439         * doc/install.texi: List ada, libada as options to --enable-shared
1440
1441 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
1442
1443         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
1444         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
1445         config.in entries.
1446         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
1447         if hard links are not available.
1448         * configure: Regenerate.
1449         * config.in: Regenerate.
1450
1451 2004-06-08  Per Bothner  <per@bothner.com>
1452
1453         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
1454
1455 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1456
1457         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
1458         Correct formatting.
1459
1460 2004-06-08  James E Wilson  <wilson@specifixinc.com>
1461
1462         PR target/15790
1463         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
1464
1465 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1466
1467         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
1468         POINTER_TYPE and INTEGER_TYPE.
1469
1470 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
1471
1472         * modulo-sched.c: Compile only when INSN_SCHEDULING is
1473         defined.
1474
1475 2004-06-08  Jeff Law  <law@redhat.com>
1476
1477         * doc/contrib.texi: Add entries for Stefan Olsson and
1478         Ola Ronnerup.
1479
1480 2004-06-08  DJ Delorie  <dj@redhat.com>
1481
1482         * toplev.c (floor_log2_wide): Replace loop with faster bit
1483         operations.
1484         (exact_log2_wide): Define in terms of the above.
1485         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
1486         available.
1487
1488 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
1489
1490         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
1491         Make sure that we are in INDIRECT mode when getting the
1492         stub name.
1493
1494 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
1495
1496         * h8300.md (extendqisi2_h8300): Add constraints.
1497         (ldm_h8300s_4_normal): Fix typo.
1498
1499 2004-06-08  Richard Henderson  <rth@redhat.com>
1500
1501         * gimple-low.c (struct lower_data): Replace the_return_label and
1502         one_return_stmt with return_statements.
1503         (lower_function_body): Process the entire list of return_statements.
1504         (lower_return_expr): Check source value before unifying return_exprs.
1505         * gimplify.c (gimplify_return_expr): Force the use of a temporary
1506         for !aggregate_value_p.
1507         * tree-gimple.c: Update RETURN_EXPR grammer.
1508
1509 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
1510
1511         PR target/15598
1512         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
1513
1514 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1515
1516         PR rtl-optimization/15717
1517         * config/i386/i386.c (legitimate_constant_p): Do not allow
1518         x - symbol_ref.
1519
1520 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
1521
1522         * gimplify.c (copy_if_shared_r): Revert:
1523         2004-05-21  Richard Henderson  <rth@redhat.com>
1524         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
1525
1526 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1527
1528         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
1529         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
1530         (init_expmed): Initialize these cost arrays as appropriate.
1531         (store_bit_field, extract_bit_field): Correct whitespace.
1532         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
1533         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
1534         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
1535         word_mode or compute_mode as appropriate.
1536
1537 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1538
1539         PR target/15783
1540         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
1541         parameter.  Enumerate the registers inside the PARALLEL.
1542         (function_arg): Adjust call to function_arg_union_value.
1543         (function_value): Likewise.
1544
1545         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
1546
1547 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1548
1549         * real.c (real_copysign): New function to implement libm's copysign.
1550         * real.h (real_copysign): Prototype here.
1551         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
1552         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
1553         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
1554         fold_builtin_isdigit): Add function prototypes.
1555         (fold_builtin_copysign): New function to fold copysign, copysignf
1556         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
1557         constant arguments at compile-time using real_copysign.  Fold
1558         copysign(X,Y) as fabs(X) if Y is always non-negative.
1559         (fold_builtin_1): Correct minor whitespace/style issues.  Call
1560         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
1561
1562 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
1563
1564         * tree.c (iterative_hash_expr): Use real_hash.
1565
1566 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1567
1568         PR c/14765
1569         * c-parse.in (compstmt_primary_start): Set last_expr_type to
1570         NULL_TREE.
1571
1572 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1573
1574         PR c++/15815
1575         * doc/extend.texi: Deprecate #pragma interface and #pragma
1576         implementation.
1577
1578 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
1579
1580         PR middle-end/15666
1581         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
1582         builtin decl as well.
1583
1584 2004-06-07  Roger Sayle  <roger@eyesopen.com>
1585
1586         PR c/14649
1587         * c-typeck.c (require_constant_value, require_constant_elements):
1588         Move declarations to the top of the file.
1589         (build_function_call): If we require a constant value, fold with
1590         fold_initializer.  If the result is a constant, and the function
1591         wasn't called using __builtin_foo, issue a pedantic warning.
1592         (build_unary_op): If we require a constant value, fold tree with
1593         fold_initializer.
1594         (build_binary_op): Use require_constant_value to determine whether
1595         to call fold or fold_initializer.
1596
1597 2004-06-07  Richard Henderson  <rth@redhat.com>
1598
1599         * gimple-low.c (struct lower_data): Add the_return_label and
1600         one_return_stmt.
1601         (lower_function_body): Initialize and use them.
1602         (lower_return_expr): New.
1603         (lower_stmt): Call it.
1604         * gimplify.c (gimplify_return_expr): Force the argument to be either
1605         null or a result_decl.
1606         * tree-gimple.c: Update gimple grammer to match.
1607         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1608         coalescing of result_decls.
1609
1610 2004-06-07  Richard Henderson  <rth@redhat.com>
1611
1612         PR rtl-opt/15193
1613         * expmed.c (extract_bit_field): Fix vector_extract return.
1614
1615         * config/i386/i386.md (negv4sf2): New pattern.
1616
1617 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1618
1619         PR c++/15337
1620         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1621         message.
1622
1623 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1624
1625         * config.in: Regenerate.
1626
1627 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1628
1629         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1630         SWITCH_LABELS are always sorted.
1631
1632 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1633
1634         * hooks.c (hook_int_void_1): New generic hook.
1635         * hooks.h (hook_int_void_1): Add prototype.
1636         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1637         Define to hook_int_void_1.
1638         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1639         with dummies for the new one.
1640
1641 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1642
1643         * tree.h (lvalue_or_else): Delete function prototype.
1644         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1645
1646 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1647
1648         PR target/14542
1649         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1650         a live change of a register after peephole replacement.
1651
1652 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1653
1654         PR c/13519
1655         * c-typeck.c (composite_type, common_pointer_type): New functions.
1656         (common_type): Split parts into composite_type and
1657         common_pointer_type.  Ensure that arithmetic operations return
1658         unqualified types without attributes.  Don't make composite type
1659         of signed enum and compatible integer be unsigned.
1660         (build_conditional_expr, build_binary_op): Use
1661         common_pointer_type.
1662         * c-decl.c (merge_decls): Use composite_type.
1663         * c-tree.h (composite_type): Declare.
1664
1665 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1666
1667         PR target/14457
1668         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1669         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1670         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1671         (inhibit_libc): Must define.
1672         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1673         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1674         ("xorhi3"): Likewise.
1675
1676 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1677
1678         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1679         always_inline pass.
1680
1681 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1682
1683         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1684         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1685
1686 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1687
1688         * regclass.c (init_reg_sets): Check for missing registers in target
1689         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1690
1691 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1692
1693         * Makefile.in (MKDEPS_H): New shorthand.
1694         (c-opts.o): Update dependencies.
1695         * c-opts.c: Include mkdeps.h.
1696         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1697         not cpp_add_dependency_target.
1698
1699 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1700
1701         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1702         * config/v850/v850.md: Convert to DFA scheduler description.
1703
1704 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1705
1706         PR fortran/15478
1707         * doc/install.texi: Document GMP as prerequisite. Document
1708         --with-gmp and --with-gmp-dir configure options.
1709         * fortran/gfortran.texi: Remove section "Compiling and testing",
1710         remove TOC reference to it.
1711
1712 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1713
1714         * combine.c(simplify_shift_const): Check shift amount is a
1715         CONST_INT.
1716
1717 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1718
1719         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1720         opening asm_out_file.
1721         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1722         reading asm_out_file. Replace fflush after reading asm_out_file
1723         with fseek.
1724         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1725         default and add to HOST_HOOKS_INITIALIZER.
1726         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1727         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1728         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1729         to set mmi.offset padding.
1730          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1731         $(srcdir)/config/i386/winnt.c.
1732         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1733         (i[34567]86-*-uwin*): Likewise.
1734         *i[34567]86-*-interix3*): Likewise.
1735         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1736         * config/i386/host-mingw32.c: New file.
1737         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1738         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1739         (extern_head): Likewise.
1740         (struct export_list) Likewise.
1741         (export_head): Likewise.
1742         (i386_pe_record_external_function): Use ggc_alloc.
1743         (i386_pe_record_exported_symbol): Likewise.
1744         Include "gt-winnt.h" at end.
1745         * doc/hostconfig.texi: Document
1746         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1747
1748 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1749
1750         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1751         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1752         trailing whitespace before EOLs and before TABs.
1753         (MAX_CODE_ALIGN): Remove unused macro.
1754         (CALL_USED_REGISTERS): Reformat and add comments.
1755
1756 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1757
1758         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1759         to enumerate -lmudflap* and dependencies when linking.
1760
1761 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1762
1763         PR target/15822
1764         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1765
1766 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1767
1768         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1769         * genconditions.c (write_header): Back out removal of reload.h.
1770
1771 2004-06-04  Jan Hubicka  <jh@suse.cz>
1772
1773         Re-apply hopefully fixed patch:
1774         * i386.md (UNSPECV_EH_RETURN): Kill.
1775         (eh_return): Use jump_insn.
1776         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1777
1778 2004-06-04  Jeff Law  <law@redhat.com>
1779
1780         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1781
1782 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1783
1784         * except.c (for_each_eh_region): New function.
1785         * except.h (for_each_eh_region): Add a prototype for it.
1786         * tree-cfg.c (update_eh_labels): New function, callback for
1787         for_each_eh_region.
1788         (label_for_bb): Make global static, unfortunately.
1789         (cleanup_dead_labels): Also update label references for
1790         exception regions.
1791
1792 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1793
1794         * config/mips/mips.c (struct irix_section_align_entry): Fix
1795         GTY marker.
1796
1797 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1798
1799         * toplev.c (check_global_declarations): Don't ask for
1800         DECL_ASSEMBLER_NAME unless the function really is declared
1801         static and not defined.
1802
1803 2004-06-03  Matt Austern  <austern@apple.com>
1804
1805         PR c++/15428
1806         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1807         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1808         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1809         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1810         documentation to reflect the new macro name and to clarify its
1811         meaning.
1812
1813 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1814
1815         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1816
1817 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1818
1819         * config/darwin.c (machopic_indirect_data_reference): Copy
1820         the SYMBOL_REF_DECL from the original RTX for the new
1821         non-lazy pointer RTX.
1822
1823 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1824
1825         * tree.h: Remove include of version.h
1826         * c-cppbuiltin.c: Include version.h
1827         * diagnostic.c: Include version.h
1828         * dwarf2out.c: Include version.h
1829         * toplev.c: Include version.h
1830         * vmsdbgout.c: Include version.h
1831         * Makefile.in: Remove dependency on version.h from TREE_H, and
1832         add dependencies to required .o targets
1833
1834 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1835
1836         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1837         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1838         (TARGET_H): Add insn-modes.h.
1839         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1840         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1841         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1842         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1843         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1844         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1845         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1846         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1847         CFGLAYOUT_H.
1848         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1849         Replace ra.h with RA_H.
1850         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1851         insn-recog.o): Replace resource.h with RESOURCE_H.
1852         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1853         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1854         with SCHED_INT_H.
1855         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1856         ra-rewrite.o): Replace df.h with DF_H.
1857         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1858         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1859         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1860         (insn-conditions.o): Remove unused reload.h.
1861         * cfglayout.h: Add include guard.  Include basic-block.h.
1862         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1863         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1864         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1865         basic-block.h.
1866         * genconditions.c:  Remove reload.h.
1867         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1868         hard-reg-set.h, insn-modes.h.
1869         * resource.h: Add include guard.  Include hard-reg-set.h.
1870         * sched-int.h:  Add include guard.  Include insn-attr.h,
1871         basic-block.h, rtl.h.
1872         * target.h: Add include guard.  Include insn-modes.h.
1873         * tree-ssa-live.h: Include partition.h.
1874
1875 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1876                 Kenneth Zadeck <zadeck@naturalbridge.com>
1877
1878         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1879         (add_var_to_ssa_edges_worklist): Add value argument.
1880         Update callers.
1881         Use new worklist.
1882         (process_ssa_edge_worklist): New function.
1883         (tree_ssa_ccp): Move worklist processing core to
1884         process_ssa_edge_worklist, and just call that for the two worklists.
1885
1886 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1887
1888         * basic-block.c (tail_recursion_label_list): Don't declare.
1889         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1890         accordingly.
1891         * cfgbuild.c (find_label_refs): Remove.
1892         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1893         * cfgcleanup.c (tail_recursion_label_p): Remove.
1894         (merge_blocks_move): Do not check for tail recursion.
1895         (try_optimize_cfg): Likewise.
1896         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1897         * cfgrtl.c (tail_recursion_label_list): Remove.
1898         * except.c (remove_unreachable_regions): Don't handle
1899         CALL_PLACEHOLDER insns.
1900         (convert_from_eh_region_ranges_1, can_throw_internal,
1901         can_throw_external): Likewise.
1902         * function.c (free_after_compilation): Don't clear
1903         x_tail_recursion_label.
1904         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1905         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1906         (reorder_blocks_1): Likewise.
1907         * function.h (struct function): Remove x_tail_recursion_label
1908         member.  Don't define tail_recursion_label.
1909         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1910         * print-rtl.c (print_rtx): Likewise.
1911         * rtl.def (CALL_PLACEHOLDER): Remove.
1912         * rtl.h (sibcall_use_t): Remove enum.
1913         (optimize_sibling_and_tail_recursive_calls,
1914         replace_call_placeholder): Remove function prototypes.
1915         * stmt.c (tail_recursion_args): Remove.
1916         (optimize_tail_recursion): Remove.
1917         (expand_return): Don't check for possible tail recursion.
1918         * tree.h (optimize_tail_recursion): Remove prototype.
1919
1920 2004-06-02  Jan Hubicka  <jh@suse.cz>
1921
1922         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1923         return_stmt.
1924
1925 2004-06-02  Jason Merrill  <jason@redhat.com>
1926
1927         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1928         Do include c-parse.in.
1929
1930 2004-06-02  Eric Christopher  <echristo@redhat.com>
1931
1932         * c-typeck.c (common_type): Don't lose type qualifiers
1933         when creating new variants.
1934
1935 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1936
1937         PR tree-optimization/14042
1938         PR tree-optimization/14729
1939         PR tree-optimization/14736
1940         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1941         Check the type which the pointer points to
1942         instead of the pointer types.
1943
1944 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1945
1946         PR tree-optimization/15738.
1947         * builtins.c (fold_builtin_strchr): Transform
1948         strrchr (s, '\0') to strchr (s, '\0').
1949
1950 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1951
1952         * i386.c (ix86_adjust_cost): Don't increase the cost for
1953         load+operation for PROCESSOR_PENTIUMPRO, it is already
1954         modelled in the DFA description
1955
1956 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1957
1958         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1959         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1960         (ALIAS_H, EMIT_RTL_H): New.
1961         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1962         (cfgcleanup.o): Add EMIT_RTL_H.
1963         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1964         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1965         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1966         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1967         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1968         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1969         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1970         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1971         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1972         set_mem_size): Move to emit-rtl.h.
1973         * emit-rtl.h: New.
1974         * alias.h: New.
1975
1976 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1977
1978         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1979         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1980         Adjust recursive calls to self.
1981         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1982
1983 2004-06-01  Richard Henderson  <rth@redhat.com>
1984             Andrew Pinski  <pinskia@physics.uc.edu>
1985
1986         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1987         (primary): Handle offsetof.  Add error productions for faux functions.
1988         Move component_ref objc checking to build_component_ref.
1989         (reswords): Add offsetof.
1990         (rid_to_yy): Add offsetof.
1991         * c-tree.h (build_offsetof): Declare.
1992         * c-common.h (objc_is_public): Declare.
1993         * c-typeck.c (build_component_ref): Check objc_is_public.
1994         (build_offsetof): New.
1995         * stub-objc.c (objc_is_public): New.
1996         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1997         from is_public.
1998         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1999         * doc/extend.texi (Offsetof): Move from C++ section to C section
2000         and rewrite for __builtin_offsetof.
2001
2002 2004-06-01  Peter Barada  <peter@the-baradas.com>
2003             Peter Jakubek  <peter@laseranimation.com>
2004
2005         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
2006         a scratch to perform an add to memory.
2007
2008 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2009
2010         PR target/14018
2011         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
2012         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2013         m68k_align_funcs): Remove.
2014         (override_options): Remove code to handle -malign-* options.
2015         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
2016         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
2017         (m68k_align_loops_string, m68k_align_jumps_string,
2018         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
2019         m68k_align_funcs): Remove definitions.
2020
2021 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
2022
2023         PR target/15626
2024         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
2025         by the Sun linker in conjunction with the Sun assembler.
2026         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
2027
2028 2004-06-01  Jeff Law  <law@redhat.com>
2029
2030         * stmt.c (expand_decl): Be more selective about calling
2031         mark_reg_pointer.
2032
2033 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
2034
2035         PR objc/7993
2036         * objc-act.c (is_private): Do not emit the 'instance variable %s
2037         is declared private' error.
2038         (is_public): Emit the error after calling is_private.
2039         (lookup_objc_ivar): If the instance variable is private, return 0
2040         - the instance variable is invisible here.
2041
2042 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2043
2044         * doc/invoke.texi (-static-libgcc): Explicitly mention
2045         non-GNU linkers.
2046
2047 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
2048
2049         PR target/12968
2050         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
2051
2052 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2053
2054         PR c/15749
2055         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
2056         misuses of structures with flexible array members if
2057         in_system_header.
2058
2059 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2060
2061         PR target/15693
2062         * config/sparc/sparc.c (compare_operand): New predicate.
2063         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
2064         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
2065         operand is a ZERO_EXTRACT and the second operand is not zero,
2066         force the former to a register.
2067         (cmpdi expander): Likewise.
2068
2069 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
2070
2071         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
2072         looks at.
2073         * alias.c (alias_invariant_size): Make alias_invariant_size
2074         static, fix GTY marker.
2075
2076 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2077
2078         PR tree-optimization/15743.
2079         * builtins.c (fold_builtin_1): Fold index() and rindex().
2080
2081 2004-05-31  Roger Sayle  <roger@eyesopen.com>
2082
2083         PR middle-end/15069
2084         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
2085         into "X < 0" (where C is the signbit) if X's type is a full mode.
2086
2087 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2088
2089         * pa.md: Disable the peephole2 patterns that generate indexed
2090         floating-point stores when indexing is disabled.
2091
2092 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2093
2094         * c-pretty-print.c (pp_c_left_bracket): Make a function.
2095         (pp_c_right_bracket): Likewise.
2096         (pp_c_star): Likewise.
2097         (pp_c_ampersand): Define.
2098         * c-pretty-print.h (pp_c_left_bracket): Declare.
2099         (pp_c_right_bracket): Likewise.
2100         (pp_c_star): Likewise.
2101         (pp_c_ampersand): Likewise.
2102
2103 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2104
2105         * config/sol2.h (__enable_execute_stack): ANSIfy function
2106         definition.
2107
2108 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
2109
2110         * c-incpath.c (add_path): Canonicalize paths to use '/' if
2111         HAVE_DOS_BASED_FILESYSTEM.
2112
2113 2004-05-31  Steven Bosscher  <stevenb@suse.de>
2114
2115         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
2116         Only look at case labels if the immediate dominator is also
2117         the only predecessor.  Don't look for more case labels if the
2118         first seen is a case range.
2119
2120 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
2121
2122         * builtins.c: Add a prototype for fold_builtin_strchr().
2123
2124 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
2125
2126         Revert this patch:
2127         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2128
2129         * combine.c (gen_binary): Remove.
2130         (known_cond, simplify_shift_const
2131         find_split_point, combine_simplify_rtx,
2132         simplify_if_then_else, simplify_set,
2133         simplify_logical, expand_field_assignment,
2134         extract_left_shift, force_to_mode,
2135         if_then_else_cond, apply_distributive_law,
2136         simplify_and_const_int, simplify_shift_const,
2137         gen_lowpart_for_combine, simplify_comparison,
2138         reversed_comparison): Replace with
2139         simplify_gen_binary, simplify_gen_relational or
2140         distribute_and_simplify_rtx.
2141         (distribute_and_simplify_rtx): New function.
2142
2143 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2144
2145         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
2146         when generating PIC code.
2147
2148 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2149
2150         * c-decl.c (c_expand_body_1): Remove and fold back into ...
2151         (c_expand_body): here.
2152         (c_expand_decl): Move to ...
2153         * c-common.c (c_expand_decl): Here and remove check for nested
2154         functions.
2155         * c-common.h (c_expand_decl): Add prototype.
2156         * c-tree.h (c_expand_decl): Remove.
2157
2158 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2159
2160         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
2161         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
2162         fold_mathfn_compare, fold_inf_compare, fold,
2163         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2164         Use constant_boolean_node where appropriate.  Don't bother using
2165         fold_convert on the second argument to omit_one_operand.
2166
2167 2004-05-30  Roger Sayle  <roger@eyesopen.com>
2168
2169         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
2170         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
2171         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
2172         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
2173         Add missing (but documented) tree nodes to the index.
2174
2175 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2176
2177         PR tree-optimization/14819
2178         * builtins.c (fold_builtin_strchr): New.
2179         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
2180         with fold_builtin_strchr().
2181
2182 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2183
2184         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
2185         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
2186         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
2187         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
2188         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
2189         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
2190         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
2191         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
2192         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
2193         formatting.
2194
2195 2004-05-30  Steven Bosscher  <stevenb@suse.de>
2196
2197         * gimplify.c (sort_case_labels): New.  Split out from...
2198         (gimplify_switch_expr): ...here.  Use it.
2199         * tree-eh.c (lower_try_finally_switch): Sort the labels of
2200         the SWITCH_EXPR created here before leaving the function.
2201         * tree.c (sort_case_labels): Add prototype.
2202
2203 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
2204
2205         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
2206         of BOOLEAN_TYPE.
2207
2208 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2209
2210         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
2211         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
2212         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
2213         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
2214         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
2215         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
2216         comment typos.  Follow spelling conventions.
2217
2218 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
2219
2220         * gengtype-yacc.y: Add NESTED_PTR token.
2221         (option): Record `nested_ptr' option.
2222         * gengtype-lex.l: Handle `nested_ptr' keyword.
2223         * gengtype.c (walk_type): Process `nested_ptr' option.
2224         * gengtype.h (struct nested_ptr_data): New.
2225         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
2226         * stringpool.c (struct string_pool_data): Make 'entries' point to
2227         ht_identifier instead of tree.
2228         (gt_pch_save_stringpool): Don't adjust pointers.
2229         (gt_pch_restore_stringpool): Call ht_load.
2230
2231 2004-05-29  Jason Merrill  <jason@redhat.com>
2232
2233         * gimplify.c (gimplify_expr): Don't build a statement list
2234         if no gimplification was necessary.
2235
2236 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2237
2238         * pretty-print.c (pp_base_format_text): Support %< instead of %`
2239         and %> as well as %'.
2240         * c-format.c: Use %< and %>.
2241         (gcc_diag_char_table, gcc_cdiag_char_table,
2242         gcc_cxxdiag_char_table): Update.
2243
2244 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2245
2246         * c-typeck.c (common_type): Correct comment.
2247
2248 2004-05-29  Peter Barada  <peter@the-baradas.com>
2249
2250         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
2251         * config/m68k/m68k.c (const_method): Likewise.
2252         * config/m68k/m68k.c (const_int_cost): Likewise.
2253         * config/m68k/m68k.c (const_int_cost): Likewise.
2254         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
2255
2256 2004-05-29  Peter Barada  <peter@the-baradas.com>
2257
2258         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
2259         addressing.
2260         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
2261         movsi,movhi,movqi insn patterns.
2262
2263 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2264
2265         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
2266
2267         PR target/15720
2268         * config/darwin.c (machopic_indirect_call_target): Copy
2269         the SYMBOL_REF_DECL from the original RTX for the new
2270         stub RTX.
2271
2272 2004-05-28  DJ Delorie  <dj@redhat.com>
2273
2274         * stor-layout.c (place_field): Revert erroneous commit.
2275
2276 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
2277
2278         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
2279         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
2280         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
2281         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
2282         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
2283         vec_ste): Remove type checks for integral parameters and literals
2284         from '..._args_eq' macros.
2285
2286 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2287
2288         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
2289
2290 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
2291
2292         * testsuite/g++.dg/charset/function.cc: New.
2293
2294         * testsuite/gcc.dg/charset/function.c: New.
2295
2296         * c-decl.c (c_make_fname_decl): Free return value from
2297         fname_as_string.
2298
2299         * cp/decl.c (cp_make_fname_decl): Free return value from
2300         fname_as_string.
2301
2302         * c-common.c (fname_as_string): Translate if necessary.
2303
2304 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
2305
2306         * stringpool.c: Add comments to PCH saving/restoring routines.
2307
2308 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
2309
2310         * c-common.c (c_estimate_num_insns_1): Kill.
2311         (c_estimate_num_insns): Kill.
2312         * c-common.h (c_estimate_num_insns): Kill.
2313
2314         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
2315         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
2316         Remove comment about not checking for
2317         _POSIX_PRIORITY_SCHEDULING.
2318         * gthr-posix.c: Likewise.
2319
2320 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
2321             Roger Sayle  <roger@eyesopen.com>
2322
2323         PR rtl-optimization/15649
2324         Add LTGT_EXPR and improve pretty-printing of unordered
2325         comparisons.
2326         * c-common.c (c_common_truthvalue_conversion):
2327         Handle LTGT_EXPR.
2328         * c-typeck.c (build_binary_op): Likewise.
2329         * dojump.c (do_jump): Likewise.
2330         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
2331         * predict.c (tree_predict_by_opcode): Likewise.
2332         * real.c (real_compare): Likewise.
2333         * tree-cfg.c (verify_expr): Likewise.
2334         * tree-inline.c (estimate_num_insns_1): Likewise.
2335         * tree-pretty-print.c (dump_generic_node): Likewise.
2336         Handle ORDERED_EXPR, UNORDERED_EXPR.
2337         (op_symbol): Print unordered comparisons differently
2338         than ordered ones.
2339         * tree.def (LTGT_EXPR): New '<' tree code.
2340         * doc/c-tree.texi (Expressions): Document floating-point
2341         comparison nodes.
2342
2343         Fold comparisons between floating point values.
2344         * fold-const.c (enum comparison_code): New, from
2345         #define'd constants.  Define compcodes for unordered
2346         comparisons and for invalid transformations.
2347         (invert_tree_comparison): Add "honor_nans" parameter.
2348         (fold_truthop): Revamp to work on floating-point types too.
2349         (comparison_to_compcode): Support unordered comparisons.
2350         Use new enum comparison_code.
2351         (compcode_to_comparison): Likewise.
2352         (combine_compcodes): New function.
2353         (invert_truthvalue): Let invert_tree_comparison decide
2354         whether it is valid to fold the comparison.  Fold ORDERED
2355         and UNORDERED even if flag_unsafe_math_optimizations is off,
2356         and the remaining even if flag_unsafe_math_optimizations
2357         is off but we are under -fno-trapping-math.
2358         (fold_relational_const): Integer modes do not honor NaNs.
2359
2360 2004-05-28  Paul Brook  <paul@codesourcery.com>
2361
2362         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
2363
2364 2004-05-28  Paul Brook  <paul@codesourcery.com>
2365
2366         * config/arm/arm.c (thumb_force_lr_save): New function.
2367         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
2368         thumb_output_function_prologue): Use it.
2369         (thumb_expand_prologue): Set lr_save_eliminated.
2370
2371 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2372
2373         * config/mips/mips.md (extendsidi2): Tie the source and destination
2374         of the register alternative.  Split it into nothing.
2375
2376 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
2377
2378         * rtl.h (skip_consecutive_labels): Declare.
2379         * emit-rtl.c (skip_consecutive_labels): New function.
2380         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
2381         * jump.c (follow_jumps): Say what null return values mean.
2382
2383 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2384
2385         PR target/13250
2386         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
2387
2388 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2389
2390         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
2391         libgcc-std.ver.
2392         * config/sh/libgcc-std.ver: New file.
2393
2394 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2395
2396         * except.c: Revert change of 2004-05-26.
2397         * config/i386/i386.md: Revert change of 2004-05-27.
2398
2399 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
2400
2401         * configure.ac: Remove --enable-tree-browser option.
2402         Define TREEBROWSER when ac_tree_checking is defined.
2403         * configure: Rebuilt.
2404
2405 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
2406
2407         * expr.c (store_constructor): Restore sanity check on
2408         the size of the type before clearing.
2409
2410 2004-05-27  Jan Hubicka  <jh@suse.cz>
2411
2412         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
2413
2414 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
2415
2416         * combine.c (gen_binary): Remove.
2417         (known_cond, simplify_shift_const
2418         find_split_point, combine_simplify_rtx,
2419         simplify_if_then_else, simplify_set,
2420         simplify_logical, expand_field_assignment,
2421         extract_left_shift, force_to_mode,
2422         if_then_else_cond, apply_distributive_law,
2423         simplify_and_const_int, simplify_shift_const,
2424         gen_lowpart_for_combine, simplify_comparison,
2425         reversed_comparison): Replace with
2426         simplify_gen_binary, simplify_gen_relational or
2427         distribute_and_simplify_rtx.
2428         (distribute_and_simplify_rtx): New function.
2429         * simplify-rtx.c (simplify_binary_operation):
2430         Use nonzero_bits to simplify ANDs where we are
2431         turning off bits already known to be off in OP0.
2432
2433 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
2434
2435         PR target/14478
2436         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
2437
2438 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
2439
2440         PR middle-end/14084
2441         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
2442         to size of decl.
2443
2444 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
2445
2446         PR/14924
2447         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
2448
2449 2004-05-26  Roger Sayle  <roger@eyesopen.com>
2450
2451         * tree.h: Fix comment typo.
2452
2453 2004-05-27  Steven Bosscher  <stevenb@suse.de>
2454
2455         * gimplify.c (compare_case_labels): New function.
2456         (gimplify_switch_expr): Sort case labels, and make sure the
2457         last label in the label vector is the default case.
2458         * tree-cfg.c (group_case_labels): New function.
2459         (build_tree_cfg): Cleanup redundant labels and group case labels
2460         before creating edges.
2461         (cleanup_dead_labels): Handle GOTO_EXPRs.
2462         (find_case_label_for_value): Use a binary search to find the
2463         case label for the given value.
2464         * tree-gimple.c: Mention that labels are sorted, and that the
2465         last label must be the default.
2466
2467 2004-05-27  Jan Hubicka  <jh@suse.cz>
2468
2469         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
2470
2471 2004-05-27  Jan Hubicka  <jh@suse.cz>
2472
2473         * i386.md (UNSPECV_EH_RETURN): Kill.
2474         (eh_return): Use jump_insn.
2475         (eh_return_si, eh_return_di): Change pattern to jump instruction.
2476
2477 2004-05-26  Jan Hubicka  <jh@suse.cz>
2478
2479         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
2480         not loop optimizing.
2481
2482 2004-05-26  Jan Hubicka  <jh@suse.cz>
2483
2484         * except.c (can_throw_internal):  Notice RESX instructions.
2485
2486 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
2487
2488         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
2489         of the two sizes to assemble_integer.
2490
2491 2004-05-25  Paul Brook  <paul@codesourcery.com>
2492
2493         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
2494         pointless #ifdef.
2495
2496 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
2497
2498         * Makefile.in (top_builddir): Define to .
2499
2500 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
2501
2502         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
2503         top-level detects, except when in-tree ld is being cross-built.
2504         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
2505         then AS only if target is host.
2506         * configure: Rebuilt.
2507
2508 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
2509
2510         * global.c (global_alloc): Call make_accurate_live_analysis.
2511         (record_one_conflict): Remove dead code.
2512         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
2513         (bb_info): New structure.
2514         (BB_INFO, BB_INFO_BY_INDEX): New macros.
2515         (allocate_bb_info, free_bb_info, mark_reg_change,
2516         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
2517         modify_bb_reg_pav, calculate_reg_pav,
2518         make_accurate_live_analysis): New functions.
2519
2520 2004-05-25  Devang Patel  <dpatel@apple.com>
2521
2522         * alias.c (init_alias_analysis): Use ggc_calloc instead of
2523         xrealloc.
2524         (end_alias_analysis): Use ggc_free instead fo free.
2525
2526 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
2527
2528         PR target/15546
2529         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
2530         as needed to be outputted.
2531
2532 2004-05-25  Jan Hubicka  <jh@suse.cz>
2533
2534         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
2535
2536 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
2537         Mostafa Hagog  <mustafa@il.ibm.com>
2538
2539         * Makefile.in (modulo-sched.o, ddg.o): New.
2540         * ddg.h, ddg.c, modulo-sched.c: New files.
2541         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
2542         internals to "dupicate_insn".
2543         (duplicate_insn): New function.
2544         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
2545         declarations.
2546         * common.opt (fmodulo-sched): New flag.
2547         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
2548         Remove static and forward declaration.
2549         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
2550         functions.
2551         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
2552         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
2553         declarations.
2554         * flags.h (flag_modulo_sched): New flag.
2555         * opts.c (common_handle_option): Handle modulo-sched flag.
2556         * params.def (max-sms-loop-number, sms-max-ii-factor,
2557         sms-dfa-history, sms-loop-average-count-threshold): New
2558         parameters.
2559         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
2560         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
2561         parameters.
2562         * passes.c ("sms", "sms-vcg"): New dumps.
2563         (rest_of_handle_sched): Call sms_schedule.
2564         * rtl.h (sms_schedule): New declaration.
2565         * timevar.def (TV_SMS): New.
2566         * toplev.c (flag_modulo_sched): Initialize.
2567         (f_options): Handle -fmodulo-sched option.
2568         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
2569         * docs/passes.texi: Document new SMS pass.
2570
2571 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
2572
2573         * Makefile.in (OBJS): Add rtlhooks.o.
2574         (rtlanal.o): Depend on function.h.
2575         (cse.o): Depend on rtlhooks-def.h.
2576         (combine.o): Depend on rtlhooks-def.h.
2577         (rtlhooks.o): New rule.
2578         * combine.c: Include rtlhooks-def.h.
2579         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2580         num_sign_bit_copies, cached_num_sign_bit_copies,
2581         num_sign_bit_copies1): Move most of the code to rtlanal.c.
2582         (reg_nonzero_bits_for_combine,
2583         reg_num_sign_bit_copies_for_combine): New functions holding
2584         the remnants of the above.
2585         (combine_rtl_hooks): New.
2586         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
2587         * cse.c: Include rtlhooks-def.h.
2588         (cse_rtl_hooks): New.
2589         (cse_main): Set rtl_hooks instead of gen_lowpart.
2590         * emit-rtl.c (gen_lowpart): Remove.
2591         (gen_lowpart_general): Move to rtlhooks.c.
2592         * rtl.h (nonzero_bits, num_sign_bit_copies,
2593         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2594         (gen_lowpart_general): Remove.
2595         (gen_lowpart): Temporarily redefine as a macro.
2596         * rtlanal.c: Include function.h.
2597         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2598         num_sign_bit_copies, cached_num_sign_bit_copies,
2599         num_sign_bit_copies1): New, from combine.c.
2600         * rtlhooks.c: New file.
2601         * rtlhooks-def.h: New file.
2602
2603 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2604
2605         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2606         to support 32-bit -mint8 mode.
2607
2608         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2609         option in the AVR architecture.
2610
2611 2004-05-24  Mike Stump  <mrs@apple.com>
2612
2613         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2614
2615 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2616
2617         * intl.h (open_quote, close_quote): New.
2618         * intl.c (open_quote, close_quote): New.
2619         (gcc_init_libintl): Set them.
2620         * pretty-print.c: Include "intl.h".
2621         (pp_base_format_text): Support 'q' format flag and %` and %'
2622         formats.  Use ' instead of ` in comments.
2623         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2624         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2625         foramt_types_orig): Describe these new formats.
2626         (decode_format_attr, check_function_format,
2627         check_format_info_main): Use these new formats.
2628         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2629         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2630         check these formats to 3.5.
2631
2632 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2633
2634         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2635         (BACKEND): Reflect this.
2636         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2637         (LIBS): Likewise.
2638
2639 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2640
2641         PR tree-optimization/14197
2642         * builtins.c: Include "tree-gimple.h"
2643         (readonly_data_expr): Use get_base_address.  Make sure to call
2644         decl_readonly_section only on trees it can handle.
2645         * tree-gimple.c (get_base_address): Accept STRING_CST and
2646         CONSTRUCTOR expressions.
2647         * Makefile.in: Update dependencies.
2648
2649 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2650
2651         Move libcpp to the toplevel.
2652         * Makefile.in: Remove references to libcpp files,
2653         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2654         and change hashtable.h to that.
2655         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2656         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2657         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2658         * configure: Regenerate.
2659         * config.in: Regenerate.
2660         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2661         * cppcharset.c: Removed.
2662         * cpperror.c: Removed.
2663         * cppexp.c: Removed.
2664         * cppfiles.c: Removed.
2665         * cpphash.c: Removed.
2666         * cpphash.h: Removed.
2667         * cppinit.c: Removed.
2668         * cpplex.c: Removed.
2669         * cpplib.c: Removed.
2670         * cpplib.h: Removed.
2671         * cppmacro.c: Removed.
2672         * cpppch.c: Removed.
2673         * cpptrad.c: Removed.
2674         * cppucnid.h: Removed.
2675         * cppucnid.pl: Removed.
2676         * cppucnid.tab: Removed.
2677         * hashtable.c: Removed.
2678         * hashtable.h: Removed.
2679         * line-map.c: Removed.
2680         * line-map.h: Removed.
2681         * mkdeps.c: Removed.
2682         * mkdeps.h: Removed.
2683         * stringpool.h: Include symtab.h instead of hashtable.h.
2684         * tree.h: Include symtab.h instead of hashtable.h.
2685         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2686
2687 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2688
2689         * gcc.c (struct prefix_list): Add forward declaration.
2690         (do_spec_path): New function, extracted from...
2691         (do_spec_1) <'D'>: ... here.  Drop support for
2692         SPACE_AFTER_L_OPTION.
2693         (do_spec_1) <'I'>: Use do_spec_path.
2694         (process_command): Do not store the 'include' suffix
2695         in include_prefixes.
2696         * system.h: Poison SPACE_AFTER_L_OPTION.
2697
2698 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2699
2700         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2701         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2702
2703 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2704
2705         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2706         Update based on printed manual.  Enable setting of offsets for
2707         FSFPRINT and move it to gcc-common.texi.
2708         * doc/gcc.texi: Update FSF printing details.
2709         * doc/gccint.texi: Remove FSF printing details.
2710
2711 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2712
2713         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2714
2715 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2716
2717         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2718         expand_builtin_strrchr, expand_builtin_strpbrk,
2719         expand_builtin_mempcpy, expand_builtin_memcmp,
2720         expand_builtin_strcmp, expand_builtin_strncmp,
2721         expand_builtin_strcat, std_expand_builtin_va_start,
2722         std_expand_builtin_va_arg, expand_builtin_va_copy,
2723         expand_builtin_signbit, fold_builtin_cabs,
2724         fold_builtin_logarithm, fold_builtin_mempcpy,
2725         fold_builtin_signbit, fold_builtin_isascii,
2726         fold_builtin_toascii, fold_builtin_isdigit,
2727         fold_builtin_1, build_function_call_expr,
2728         simplify_builtin_strchr, simplify_builtin_strrchr,
2729         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2730         simplify_builtin_memcmp, simplify_builtin_strcmp,
2731         simplify_builtin_strncmp, simplify_builtin_strncat,
2732         simplify_builtin_strspn, simplify_builtin_strcspn,
2733         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2734         to build with calls to build2, build3 or omit_one_operand.
2735
2736 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2737
2738         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2739         section when generating EABI code.
2740
2741 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2742
2743         PR 15546
2744         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2745         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2746
2747 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2748
2749         * c-common.c (c_common_truthvalue_conversion): Handle
2750         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2751         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2752         i.e. set the type to truthvalue_type_node and return.
2753
2754 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2755
2756        * tree.h (struct tree_decl): Add possibly_inlined bit.
2757         (DECL_POSSIBLY_INLINED): New accessor macro.
2758         * cgraph.h: Remove declaration of cgraph_inline_hash.
2759         * cgraph.c: Remove definition of cgraph_inline_hash.
2760         (hash_node): Revert to hashing DECL_UID.
2761         (eq_node): Take two pointers to cgraph_node structures.
2762         Compare DECL_UIDs.
2763         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2764         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2765         hash on DECL_UID.
2766         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2767         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2768         (cgraph_node): Allocate a temporary node on the stack, fill in
2769         its DECL field, and pass that to htab_find_slot.
2770         (cgraph_varpool_node): Likewise.
2771         (cgraph_function_possibly_inlined_p): If global info is ready,
2772         return the DECL_POSSIBLY_INLINED bit.
2773         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2774         instead of mucking with cgraph_inline_hash.
2775
2776 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2777
2778         * doc/contrib.texi: Add g77 contributors.
2779
2780 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2781
2782         * calls.c (initialize_argument_information): Forbid sibcalls if a
2783         callee-copied argument is stored in the current function's frame.
2784
2785 2004-05-22  Eric Christopher  <echristo@redhat.com>
2786
2787         * fix-header.c (read_scan_file): Update for add_path change.
2788
2789 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2790
2791         * c.opt (Wmissing-include-dirs): New.
2792         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2793         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2794         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2795         * c-incpath.h (add_path): Add fourth (bool) argument.
2796         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2797         (add_standard_paths): Likewise.
2798         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2799         is used and the directory was user-supplied via -I.
2800         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2801         using add_cpp_dir_path ().
2802         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2803         (struct cpp_dir): Add user_supplied_p.
2804         * doc/invoke.texi (Warning Options): Document new option.
2805
2806 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2807
2808         * fold-const.c (fold_read_from_constant_string): Convert result to
2809         requested type.
2810
2811 2004-05-21  Richard Henderson  <rth@redhat.com>
2812
2813         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2814         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2815         Don't mark VA_ARG_EXPRs volatile here.
2816         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2817
2818 2004-05-21  Richard Henderson  <rth@redhat.com>
2819
2820         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2821         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2822
2823 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2824
2825         * fold-const.c (fold, fold_relational_hi_lo,
2826         nondestructive_fold_binary_to_constant,
2827         fold_read_from_constant_string): Use fold_convert instead of convert.
2828         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2829         simplify_builtin_strchr, simplify_builtin_strrchr,
2830         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2831
2832 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2833
2834         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2835         is NULL.
2836
2837 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2838
2839         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2840         override sparc.h definition.
2841
2842 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2843
2844         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2845         get_unwidened, get_narrower): Replace build with build2.
2846         * fold-const.c (negate_expr, associate_trees, size_binop,
2847         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2848         pedantic_omit_one_operand, distribute_bit_expr,
2849         make_bit_field_ref, optimize_bit_field_compare,
2850         decode_field_reference, range_binop, make_range,
2851         build_range_check, fold_range_test, fold_truthop,
2852         optimize_minmax_comparison, extract_muldiv_1,
2853         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2854         fold_inf_compare, fold_single_bit_test, fold,
2855         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2856         Likewise replace build with either build2 or build3.
2857
2858 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2859
2860         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2861         * calls.c (prepare_call_address): Don't test
2862         NO_RECURSIVE_FUNCTION_CSE.
2863         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2864         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2865         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2866         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2867         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2868         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2869         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2870         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2871         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2872         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2873         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2874         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2875         Likewise.
2876         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2877         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2878         * doc/tm.texi (Costs): Remove documentation for
2879         NO_RECURSIVE_FUNCTION_CSE.
2880
2881 2004-05-20  Paul Brook  <paul@codesourcery.com>
2882
2883         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2884         * unwind-dw2.c (extract_cie_info): Ditto.
2885         (_Unwind_FrameState): Change retaddr_column to word type.
2886
2887 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2888
2889         PR middle-end/3074
2890         * fold-const.c (strip_compound_expr): Delete function.
2891         (count_cond): Delete function.
2892         (fold_binary_op_with_conditional_arg): Only perform transformations
2893         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2894         when a is constant.  This greatly simplifies this routine.
2895
2896         * tree.c (saved_expr_p): Delete function.
2897         * tree.h (saved_expr_p): Delete function prototype.
2898
2899 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2900
2901         * common.opt (ftree-loop-optimize): Remove.
2902
2903 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2904
2905         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2906         (NM_FOR_TARGET): Use := and $(shell).
2907         (mainversion): Remove unused variable.
2908
2909 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2910
2911         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2912         sequence containing the insn to be deleted, always reemit it.
2913
2914 2004-05-20  Richard Henderson  <rth@redhat.com>
2915
2916         PR 15454
2917         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2918         * function.c (expand_function_start): Expand static_chain_decl by hand.
2919         * gimplify.c (create_tmp_var_name): Export.
2920         * tree-gimple.h (create_tmp_var_name): Declare.
2921
2922 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2923
2924         * rs6000.c (print_operand) <case 'z'>: Call
2925         mark_decl_referenced before assemble_name.
2926
2927 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2928
2929         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2930         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2931         (cgraph_varpool_node): Hash on the pointer to the decl, not
2932         the DECL_UID.  Fixes 64-bit bootstrap failure.
2933
2934 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2935
2936         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2937         we don't earlyclobber operands used in the second insn.
2938
2939 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2940
2941         * tree-mudflap.c: Formatting fixes.
2942
2943 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2944
2945         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2946         * gengtype.c (open_base_files): Include reload.h in ifiles.
2947         * reload.h (reg_equiv_memory_loc_varray): Declare.
2948         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2949         (init_reload): Initialize it.
2950         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2951         reg_equiv_memory_loc_varray to size 0.
2952         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2953         growing reg_equiv_memory_loc_varray to the desired size.
2954         * passes.c (rest_of_handle_old_regalloc): Likewise.
2955         * reload.c: Amend comment on calling init_reload.
2956
2957 2004-05-20  Nick Clifton  <nickc@redhat.com>
2958
2959         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2960         with 'TRAMP' in the body of the macro definition.
2961
2962 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2963
2964         PR target/15383
2965         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2966         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2967         cmptf_libfunc isn't set.
2968         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2969         conventions.
2970         (ia64_sysv4_init_libfuncs): New.
2971
2972         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2973         ia64_sysv4_init_libfuncs.
2974
2975 2004-05-20  Falk Hueffner  <falk@debian.org>
2976
2977         PR other/15526
2978         * libgcc2.c (__mulvsi3): Fix overflow test.
2979
2980 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2981
2982         PR c/14171
2983         * reg-stack.c (nan): Rename to ...
2984         (not_a_num): Here.
2985         (reg_to_stack): Rename nan to not_a_num.
2986         (subst_stack_regs_pat): Likewise.
2987         (convert_regs_entry): Likewise.
2988         (convert_regs_1): Likewise.
2989
2990         * tree-cfg.c (find_case_label_for_value): Replace call to
2991         simple_cst_equal with tree_int_cst_equal.
2992
2993 2004-05-19  Jeff Law <law@redhat.com>
2994
2995         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2996         If the operand is for a use, then strip away the SSA_NAME, do not
2997         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2998         (mark_def_sites): Appropriately pass additional argument to
2999         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
3000         then set the VDEF_RESULT to the VDEF_OP.
3001         (set_def_block): Strip away any SSA_NAME to get to the real
3002         underlying variable.
3003
3004         * tree-ssa-phiopt.c (value_replacement): Handle the case where
3005         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
3006         BB directly.
3007
3008 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3009
3010         PR c++/15463
3011         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
3012         result of inverse.
3013
3014         PR rtl-optimization/15274
3015         * loop-iv.c (determine_max_iter, shorten_into_mode,
3016         iv_number_of_iterations): Handle constants correctly.
3017         * rtl.h (get_mode_bounds): Declaration changed.
3018         * stor-layout.c (get_mode_bounds): Return a constant suitable for
3019         the target mode.
3020
3021         PR rtl-optimization/14692
3022         * loop-unswitch.c (may_unswitch_on): Try folding the result.
3023         (unswitch_single_loop): Work correctly when may_unswitch_on
3024         returns a folded constant.
3025
3026         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
3027         * simplify-rtx.c (simplify_const_relational_operation): Optimize
3028         comparisons with mode bounds.
3029
3030         * function.c (struct temp_slot): Add new field prev.
3031         (free_after_compilation, init_temp_slots): Free new fields.
3032         (cut_slot_from_list, insert_slot_to_list,
3033         temp_slots_at_level, max_slot_level, move_slot_to_level,
3034         make_slot_available): New functions.
3035         (assign_stack_temp_for_type, combine_temp_slots,
3036         find_temp_slot_from_address, preserve_temp_slots,
3037         preserve_rtl_expr_result, free_temp_slots,
3038         free_temps_for_rtl_expr, pop_temp_slots): Work with
3039         the new structure of lists.
3040         (mark_all_temps_used): Removed.
3041         * function.h (struct function): Field x_temp_slots
3042         replaced by x_used_temp_slots and x_avail_temp_slots.
3043         (temp_slots): Replaced by ...
3044         (used_temp_slots, avail_temp_slots): New.
3045         * tree.h (mark_all_temps_used): Declaration removed.
3046
3047         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
3048         simplify_using_assignment): Take the expression out of
3049         the expr_list wrapper.
3050
3051         * loop-iv.c (iv_number_of_iterations): Improve clasification of
3052         infinite loops.
3053
3054 2004-05-19  Roger Sayle  <roger@eyesopen.com>
3055
3056         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
3057         costs should be based on code size when optimizing for size.
3058
3059 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
3060
3061         * fold-const.c: Remove non-printable character 160.
3062
3063 2004-05-19  Nick Clifton  <nickc@redhat.com>
3064
3065         * doc/invoke.texi (ARM Options): Fix typo.
3066         Remove descrption of -mshort-load-bytes and
3067         -mno-short-load-bytes.
3068
3069         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
3070         missing parenthesis.
3071         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
3072         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
3073
3074 2004-05-19  Steven Bosscher  <stevenb@suse.de>
3075
3076         * expr.c (store_constructor): Build loop start and end by hand
3077         instead of via loop functions from stmt.c.
3078         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
3079         Remove the code to expand them.
3080
3081         * stmt.c (loop_stack): Remove this and everything related.
3082         (struct nesting, enum nesting_desc): Update.
3083         (expand_fixup): Likewise.
3084         (expand_loop_start, expand_start_loop_continue_elsewhere,
3085         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
3086         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
3087         expand_exit_loop_if_false, expand_exit_loop_top_cond,
3088         expand_exit_something): Remove.
3089         * tree.h: Remove prototypes.
3090
3091 2004-05-18  Mike Stump  <mrs@apple.com>
3092             Devang Patel  <dpatel@apple.com>
3093
3094         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
3095         if this label is for eh.
3096         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
3097         * config/darwin.c (darwin_emit_unwind_label): Likewise.
3098         * dwarf2out.c (output_call_frame_info): Likewise.
3099         * output.h (default_emit_unwind_label): Likewise.
3100         * target.h (unwind_label): Likewise.
3101         * varasm.c (default_emit_unwind_label): Likewise.
3102
3103         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
3104         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
3105         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
3106         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
3107         DEBUG_RANGES_SECTION): Define.
3108
3109 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
3110
3111         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
3112         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
3113         (cgraph_varpool_node):
3114         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
3115         (cgraph_function_possibly_inlined_p): Use the decl itself for
3116         the key, not DECL_ASSEMBLER_NAME.
3117         (change_decl_assembler_name): No need to muck with the hash tables.
3118         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
3119         Delete.
3120         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
3121         for the key, not DECL_ASSEMBLER_NAME.
3122         * cgraph.h: Remove prototypes of deleted functions.
3123         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
3124         (mark_decl_referenced): New function.
3125         * tree.h: Prototype mark_decl_referenced.
3126         * final.c (output_addr_const) <case SYMBOL_REF>: Call
3127         mark_decl_referenced before assemble_name.
3128         * c-decl.c (finish_decl): Use mark_decl_referenced.
3129
3130 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
3131             Jeff Law <law@redhat.com>
3132
3133         * tree-ssa-phiopt.c (abs_replacement): New function.
3134         (empty_block_p): New function extracted from...
3135         (candidate_bb_for_phi_optimization): Break out empty block test.
3136         (conditional_replacement): Use empty_block_p.
3137         (value_replacement): Similarly.
3138
3139         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
3140         * tree-ssa-phiopt.c: Include flags.h.
3141         (conditional_replacement): Remove argument names from prototype.
3142         Minor formatting and comment fixes.
3143         (tree_ssa_phiopt): If conditional_replacement returns false, then
3144         call value_replacement.
3145         (value_replacement): New function.
3146
3147 2004-05-18  Jeff Law  <law@redhat.com>
3148
3149         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
3150         from conditional_replacement.
3151         (candidate_bb_for_phi_optimization): Similarly.
3152         (conditional_replacement): Use replace_phi_with_stmt and
3153         candidate_bb_for_phi_optimization.
3154
3155         * tree-ssa-phiopt.c: Fix various formatting issues.
3156
3157 2004-05-18  Steven Bosscher  <stevenb@suse.de>
3158
3159         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3160         s390_expand_cmpmem): Do not use expand_start_loop and
3161         expand_end_loop, instead build the loop manually.
3162
3163 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
3164
3165         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
3166         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
3167
3168 2004-05-17  Jeff Law  <law@redhat.com>
3169
3170         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
3171         * flags.h (flag_delete_null_pointer_checks): Here.
3172         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
3173         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
3174         (add_phi_arg, remove_phi_arg_num): Similarly.
3175         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
3176         property into PHI nodes.
3177         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
3178         (record_equivalences_from_phis): If all PHI arguments are known to be
3179         nonzero, then the result must be nonzero as well.
3180         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
3181         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
3182         appropriately.  Walk the USE-DEF chains and propagate nonzero property
3183         as appropriate.
3184         * tree.h (PHI_ARG_NONZERO): Define.
3185         (phi_arg_d): Add nonzero flag.
3186
3187 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
3188
3189         * f: Entire directory removed
3190
3191         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
3192         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
3193         (g77_integer_type_node, g77_uinteger_type_node)
3194         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
3195         * c-common.c (c_common_nodes_and_builtins): Do not initialize
3196         the above set of variables.
3197
3198         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
3199         * doc/invoke.texi, doc/standards.texi: Remove cross-references
3200         to g77 manual.
3201
3202 2004-05-17  Steven Bosscher  <stevenb@suse.de>
3203
3204         PR tree-optimization/15438
3205         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
3206         attributed functions as pure or const.
3207
3208 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
3209
3210         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
3211         from source code with errors.
3212
3213 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
3214
3215         Enable tree browser for all front ends.
3216         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
3217         (BACKEND): ...to here.
3218
3219 2004-05-17  Jan Hubicka  <jh@suse.cz>
3220
3221         * i386.c (construct_container): Do not produce BLKmode registers.
3222         (classify_argument): Properly compute alignment of complex types.
3223
3224 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3225
3226         PR target/15084
3227         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
3228         and renamed to movdi_insv_1_rex64.
3229         (insv): Support SImode for 32bit and DImode for 64bit.
3230
3231 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3232
3233         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
3234         (TARGET_SWITCHES): Remove debugg.
3235         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
3236         TARGET_64BIT.
3237         (subdi3): Replace the define_expand with a define_insn, the latter
3238         renamed from subdi3_internal_3.
3239         (negdi2): Likewise negdi2_internal_2.
3240         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
3241         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
3242         and associated define_splits.
3243         (adddi3_internal): Renamed from adddi3_internal_3.
3244         (ashldi3_internal): Likewise ashldi3_internal4.
3245         (ashrdi3_internal): Likewise ashrdi3_internal4.
3246         (lshrdi3_internal): Likewise lshrdi3_internal4.
3247
3248 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
3249
3250         * optabs.c (expand_unop): Try implementing negation using subtraction
3251         from zero.
3252
3253 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3254
3255         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
3256         SAR register.
3257
3258 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
3259
3260         PR target/10982
3261         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
3262         (ne_zeroextractsi_shifted): New pattern.
3263         (ite_ne_zeroextractsi): New pattern.
3264         (ite_ne_zeroextractsi_shifted): New pattern.
3265
3266 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3267
3268         * c-gimplify.c (c_genericize):
3269         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
3270         * c-parse.in <expr_no_commas>: Likewise.
3271         <if_prefix>: Likewise.
3272         <select_or_iter_stmt>: Likewise.
3273         * expr.c (expand_var, expand_expr_real_1): Likewise.
3274         * expr.h (expand_expr): Make it a static inline function.
3275         Move prototype for expand_expr_real up before this.
3276         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
3277         Likewise.
3278         * gimplify.c (gimple_boolify, gimplify_addr_expr,
3279         gimplify_asm_expr, gimplify_expr): Likewise.
3280         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
3281         dump_function_to_file): Likewise.
3282         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
3283         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
3284         * tree-into-ssa.c (dump_tree_ssa): Likewise.
3285         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
3286         Likewise.
3287         * tree-optimize.c (execute_one_pass): Likewise.
3288         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
3289         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
3290
3291         * objc/objc-act.c (objc_build_try_enter_fragment,
3292         objc_build_try_epilogue, objc_build_catch_stmt,
3293         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
3294         with lang_hooks.foo ().
3295
3296 2004-05-15  Roger Sayle  <roger@eyesopen.com>
3297
3298         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
3299         that simplify_builtin doesn't destructively modify its argument.
3300
3301 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3302
3303         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
3304         implementations for ARM and Thumb.
3305         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
3306
3307 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
3308
3309         * prefix.c (update_path): Replace PREFIX with KEY only
3310         when it matches a full directory name in PATH.
3311
3312 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
3313
3314         * arm.h (TARGET_APCS_32): Delete.
3315         (TARGET_MMU_TRAPS): Delete.
3316         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
3317         define __APCS_26__.
3318         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
3319         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
3320         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
3321         (prog_mode_type): Delete.
3322         (PROMOTE_MODE): Always promote unsigned for HImode.
3323         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
3324         (MASK_RETURN_ADDR): Simplify.
3325         * arm.c (arm_prgmode): Delete.
3326         (arm_override_options, arm_gen_rotated_half_load): Simplify.
3327         (print_multi_reg, output_return_instruction): Simplify.
3328         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
3329         (arm_return_addr): Simplify.
3330         * arm.md (prog_mode): Delete.
3331         (conds): Simplify.
3332         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
3333         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
3334         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
3335         (loadhi_shiftpredec): Delete.
3336         (peephole for post-increment on HImode load): Delete.
3337         * arm/crtn.asm: (FUNC_END): Simplify.
3338         * arm/lib1funcs.asm: Remove APCS-26 return macros.
3339         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
3340         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
3341         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
3342         MULTILIB_DEFAULTS as required.
3343         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
3344         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
3345         variables as required.
3346         * doc/invoke.texi (ARM Options): Remove obsolete flags.
3347
3348 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
3349
3350         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
3351         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
3352         count to 8 to handle n_reg > 2.
3353
3354 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3355
3356         * doc/extend.texi: Update WG14 URL.
3357
3358 2004-05-15  Steven Bosscher  <stevenb@suse.de>
3359
3360         * basic-block.h (life_analysis, delete_noop_moves):
3361         Update prototypes.
3362         * bt-load.c (branch_target_load_optimize): Don't take the
3363         insns stream as an argument.  Update the life_analysis calls.
3364         * combine.c (combine_instructions): Update delete_noop_moves
3365         calls.
3366         * flow.c (notice_stack_pointer_modification): Don't take the
3367         insns stream as an argument.  Work on the flow graph.
3368         (life_analysis): Likewise.
3369         (delete_noop_moves): Likewise.
3370         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
3371         (rest_of_handle_life): Update life_analysis call.
3372         (rest_of_compilation): Likewise, and also update
3373         branch_target_load_optimize call.
3374         * ra.c (reg_alloc): Update life_analysis call.
3375         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
3376         the insns stream as an argument.
3377         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
3378         call.
3379         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
3380         prototypes.
3381         * value-profile.c (branch_prob): Update life_analysis call.
3382         * web.c (web_main): Work on the CFG, not on the insns stream.
3383
3384         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
3385         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
3386         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3387
3388 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3389
3390         PR c/15444
3391         * c-format.c (avoid_dollar_number): New function.
3392         (check_format_info_main): Call avoid_dollar_number when operand
3393         numbers might occur but has_operand_number == 0.
3394
3395 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
3396
3397         * arm.md (all peephole2 patterns): Use predicates that validate
3398         register classes as appropriate.
3399
3400 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3401
3402         PR opt/14472
3403         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
3404         ignore type conversions that do not inhibit tail calling.
3405         (find_tail_calls): Likewise.
3406
3407 2004-05-14  Jeff Law  <law@redhat.com>
3408
3409         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
3410         bother marking bypassed virtuals for out-of-ssa.  Instead merge
3411         bypassed virtuals into vars_to_rename just before into-ssa pass.
3412
3413         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
3414         so that it picks up more opportunities to eliminate ABS expressions
3415         or turn them into negations.
3416
3417 2004-05-14  Steven Bosscher  <stevenb@suse.de>
3418
3419         * passes.c (rest_of_handle_null_pointer): Remove.
3420         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
3421         (rest_of_compilation): Likewise.
3422         * rtl.h (delete_null_pointer_checks): Remove prototype.
3423         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
3424         Remove declarations.
3425         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
3426         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
3427         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
3428         expr_reaches_here_p, computing_insn, def_reaches_here_p,
3429         can_disregard_other_sets, handle_avail_expr, classic_gcse,
3430         one_classic_gcse_pass, invalidate_nonnull_info,
3431         delete_null_pointer_checks_1, delete_null_pointer_checks,
3432         expr_reached_here_p_work): Remove.
3433         (gcse_main): Do not perform classic GCSE when optimizing for size.
3434         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
3435         are never used.
3436
3437 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
3438
3439         PR optimization/14466
3440         * tree-complex.c (make_temp): Remove.
3441         (gimplify_val): Replace make_temp with make_rename_temp
3442         and add NULL as the second argument.
3443         (expand_complex_div_wide): Likewise.
3444         * tree-dfa.c (make_rename_temp): New function.
3445         * tree-flow.h (make_rename_temp): Declare.
3446         * tree-sra.c (make_temp): Remove.
3447         (lookup_scalar): Replace make_temp with make_rename_temp.
3448         (create_scalar_copies): Likewise.
3449         * tree-ssa-phiopt.c (conditional_replacement): When we
3450         get non gimple create a temporary variable to hold the
3451         casted expression.
3452
3453 2004-05-14  Paul Brook  <paul@codesourcery.com>
3454
3455         * stor-layout.c (update_alignment_for_field): Use
3456         targetm.align_anon_bitfield.
3457         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
3458         (TARGET_INITIALIZER): Use it.
3459         * target.h (struct gcc_target): Add align_anon_bitfield.
3460         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
3461         (TARGET_ALIGN_ANON_BITFIELD): Define.
3462         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
3463
3464 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
3465
3466         * tree.def (documentation): Remove mention of class 'b'.
3467         (BLOCK): Now in class 'x'.
3468         * c-common.c (verify_tree): Remove case 'b'.
3469         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
3470         * calls.c (calls_function_1): Control cannot get past the switch
3471         when exp is a BLOCK.
3472         * print-tree.c (print_node): Move code for class 'b' to the class
3473         'c'/'x' switch, as case BLOCK.
3474         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
3475         (unsafe_for_reeval, substitute_placeholder_in_expr)
3476         (stabilize_reference_1): Remove case 'b'.
3477         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
3478         of something being 'b' to tests for TREE_CODE of something being
3479         BLOCK.
3480         * tree-ssa-operands.c (get_expr_operands): Likewise.
3481
3482 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3483
3484         * tree-gimple.c: Rename from tree-simple.c.
3485         * tree-gimple.h: Rename from tree-simple.h.
3486         * c-gimplify.c: Rename from c-simplify.c
3487         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
3488         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
3489         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
3490         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
3491         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
3492         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
3493         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
3494         Update.
3495
3496 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
3497
3498         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
3499
3500 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3501
3502         * tree-ssa.c (delete_tree_ssa): XFREE
3503         bitmaps allocated with BITMAP_XMALLOC.
3504
3505         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
3506         idfs_cache at the end of the function.
3507
3508         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
3509         at the end of the function.
3510
3511         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
3512         el at the end of the function.
3513
3514         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
3515         bitmaps allocated with BITMAP_XMALLOC.
3516
3517         * loop-unswitch.c (unswitch_single_loop): Free bbs at
3518         the end.
3519
3520         * final.c (shorten_branches): Free uid_shuid before
3521         reallocating it.
3522
3523         * bb-reoder.c (connect_traces): Free cold_traces at the end.
3524
3525 2004-05-13  Jeff Law  <law@redhat.com>
3526
3527         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
3528         variables.  Simplify slightly by using USE_OP/DEF_OP instead
3529         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
3530
3531         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
3532         rather than iterating through the blocks testing each bit in
3533         livein to initialize the worklist.
3534         (mark_def_sites): Remove useless checks of KILLS for virtual
3535         operands.
3536
3537         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
3538         new parameters for the statement and variable worklist as well
3539         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
3540         worklist recording interesting variables in the variable worklist
3541         and bitmap.  Handle casts between integral and boolean types.
3542         (substitute_single_use_vars): Accept new parameters for the statement
3543         and variable worklist.  When a substitution is made add a new
3544         entry to the statement worklist.  Handle casts between integral
3545         and boolean types.
3546         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
3547         worklists to children.  Iterate until the statement worklist
3548         is empty.
3549
3550 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
3551
3552         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
3553         the end of the block.
3554
3555         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
3556         with BITMAP_XMALLOC.
3557
3558         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
3559         with BITMAP_XMALLOC.
3560
3561         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
3562         Free nonzero_vars at the end of the function.
3563
3564         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
3565         need to generate code instead of a NOP_EXPR.
3566
3567 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
3568
3569         * gcc.c (default_compilers): Fill out initializers for new Fortran
3570         entries.
3571
3572 2004-05-13  Paul Brook  <paul@codesourcery.com>
3573
3574         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
3575
3576 2004-05-13  Paul Brook  <paul@codesourcery.com>
3577
3578         * config/arm/arm.c (arm_default_short_enums): New function.
3579         (TARGET_DEFAULT_SHORT_ENUMS): Define.
3580
3581 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3582
3583         Merge from tree-ssa-20020619-branch.
3584
3585         * Makefile.in (reload1.o-warn): Add.
3586         (tree-alias-ander.o-warn): Add.
3587         (GMPLIBS): Define.
3588         (GMPINC): Define.
3589         (BANSHEELIB): Define.
3590         (BANSHEEINC): Define.
3591         (TREE_DUMP_H): Define.
3592         (TREE_SIMPLE_H): Define.
3593         (TREE_FLOW_H): Define.
3594         (LIBDEPS): Add BANSHEELIB.
3595         (INCLUDES): Add BANSHEEINC and GMPINC.
3596         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3597         c-mudflap.o and c-pretty-print.o.
3598         (C_OBJS): Remove c-pretty-print.o.
3599         (OBJS-common): Remove sibcall.o.
3600         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3601         tree-ssa.o, tree-optimize.o, tree-simple.o,
3602         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3603         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3604         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3605         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3606         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3607         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3608         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3609         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3610         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3611         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3612         tree-profile.o.
3613         (OBJC-archive): Add tree-nomudflap.o.
3614         (cc1): Add dependency on @TREEBROWSER@.
3615         (c-decl.o): Add dependency on TREE_DUMP_H.
3616         (c-dump.o): Likewise.
3617         (c-common.o): Add dependency on tree-iterator.h
3618         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3619         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3620         (tree.o): Add dependency on tree-iterator.h,
3621         BASIC_BLOCK_H and TREE_FLOW_H.
3622         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3623         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3624         (tree-alias-type.o, tree-alias-ander.o,
3625         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3626         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3627         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3628         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3629         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3630         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3631         tree-nested.o, tree-iterator.o, tree-dfa.o,
3632         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3633         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3634         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3635         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3636         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3637         tree-sra.o, tree-complex.o, tree-profile.o,
3638         rtl-profile.o): New rules.
3639         (function.o): Add dependency on basic-block.h
3640         (expr.o): Add dependency on tree-iterator.h.
3641         (sibcall.o): Remove.
3642         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3643         (cfg.o): Add dependency on TIMEVAR_H.
3644         (cfghooks.o): Add dependency on TREE_FLOW_H.
3645         (reg-stack.o): Add dependency on basic-block.h.
3646         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3647         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3648         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3649         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3650         tree-alias-type.h, tree-alias-common.h,
3651         tree-alias-type.c, tree-alias-common.c,
3652         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3653         rtl-profile.c and tree-nested.c.
3654         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3655         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3656         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3657         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3658         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3659         * basic-block.h: Include predict.h
3660         (struct edge_def): Add GTY marker.
3661         Change field 'insns' to be a union of tree and rtx.
3662         (EDGE_TRUE_VALUE): Define.
3663         (EDGE_FALSE_VALUE): Define.
3664         (EDGE_EXECUTABLE): Define.
3665         (struct bb_ann_d): Forward declare.
3666         (struct basic_block_def): Add GTY marker.
3667         Remove fields head_tree and end_tree.
3668         Add fields stmt_list, rbi and tree_annotations.
3669         (struct reorder_block_def): Define.
3670         (basic_block_info): Add GTY marker.
3671         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3672         variables instead of macros.
3673         (flow_call_edges_add): Remove declaration.
3674         (make_eh_edge): Remove declaration.
3675         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3676         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3677         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3678         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3679         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3680         (try_redirect_by_replacing_jump): Modfiy return type to
3681         edge instead of bool.
3682         * bb-reorder.c (copy_bb): Call duplicate_block
3683         instead of cfg_layout_duplicate_bb.
3684         (copy_bb_p): Call can_duplicate_block_p instead of
3685         cfg_layout_can_duplicate_bb_p.
3686         * bitmap.c (bitmap_first_set_bit): Abort if word
3687         wasn't found.
3688         (bitmap_last_set_bit): Likewise.
3689         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3690         (DEF_FUNCTION_TYPE_3): Add.
3691         * builtins.c (c_strlen): Make extern.
3692         (builtin_save_expr): New.
3693         (expand_builtin_nonlocal_goto): New.
3694         (expand_builtin_constant_p): Remove.
3695         (expand_builtin_mathfn): Call builtin_save_expr instead
3696         of save_expr.
3697         (expand_builtin_mathfn_2): Likewise.
3698         (expand_builtin_strcmp): Likewise.
3699         (expand_builtin_strncmp): Likewise.
3700         (expand_builtin_strcat): Likewise.
3701         (fold_builtin_cabs): Likewise.
3702         (expand_builtin_alloca): Don't trigger if -fmudflap is
3703         given.
3704         (build_string_literal): Set TREE_INVARIANT on new node.
3705         (expand_builtin_profile_fun): New.
3706         (round_trampoline_addr): New.
3707         (expand_builtin_init_trampoline): New.
3708         (expand_builtin_adjust_trampoline): New.
3709         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3710         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3711         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3712         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3713         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3714         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3715         Handle.
3716         (fold_builtin_expect): New.
3717         (fold_builtin_isascii): Don't return non-constant results
3718         in GIMPLE form.
3719         (fold_builtin_isdigit): Likewise.
3720         (fold_builtin_1): New.
3721         (fold_builtin): Call it.
3722         (build_function_call_expr): Update call to build a new
3723         CALL_EXPR.
3724         (purge_builtin_constant_p): Remove.
3725         (simplify_builtin, simplify_builtin_memcmp,
3726         simplify_builtin_strcmp, simplify_builtin_strncmp,
3727         simplify_builtin_strpbrk, simplify_builtin_strstr,
3728         simplify_builtin_strchr, simplify_builtin_strrchr,
3729         simplify_builtin_strcat, simplify_builtin_strncat,
3730         simplify_builtin_strspn, simplify_builtin_strcspn,
3731         simplify_builtin_next_arg, simplify_builtin_va_start,
3732         simplify_builtin_sprintf): New.
3733         * builtins.def (BUILT_IN_STACK_ALLOC,
3734         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3735         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3736         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3737         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3738         * c-common.c: Include tree-iterator.h and hashtab.h.
3739         (lang_statement_code_p): Declare.
3740         (lang_gimplify_stmt): Declare.
3741         (fix_string_type): Set TREE_INVARIANT for value.
3742         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3743         (c_type_hash): New.
3744         (c_common_get_alias_set): Handle multiple type nodes
3745         referring to "the same" type, currently for C90 only.
3746         (c_add_case_label): Use create_artificial_label.
3747         (finish_label_address_expr): Don't set TREE_CONSTANT on
3748         result.
3749         (c_expand_expr): Don't handle STMT_EXPR.
3750         (handle_alias_attribute): Marke aliased variables to be
3751         TREE_STATIC.
3752         (handle_nonnull_attribute): Initialize arg_num.
3753         (check_function_nonnull): Likewise.
3754         (c_walk_subtrees): New.
3755         (c_estimate_num_insns_1): Don't handle
3756         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3757         (c_decl_uninit_1): Remove.
3758         (c_decl_uninit): Remove.
3759         (c_warn_unused_result): New.
3760         * c-common.def (ASM_STMT): Change number of operands
3761         to 4.
3762         (FILE_STMT): Remove.
3763         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3764         Remove.
3765         (lang_gimplify_stmt): Add.
3766         (expand_stmt): Remove.
3767         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3768         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3769         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3770         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3771         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3772         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3773         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3774         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3775         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3776         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3777         genrtl_compound_stmt, genrtl_asm_stmt,
3778         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3779         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3780         c_tree_chain_matters_p, c_warn_unused_result,
3781         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3782         Declare.
3783         * c-convert.c (convert): Make convert work when
3784         converting to compatible types across translation unit.
3785         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3786         tree-simple.h, diagnostic.h and tree-dump.h
3787         (merge_decls): Initialize oldtype to NULL.
3788         (finish_decl): Use DECL_HARD_REGISTER instead of
3789         DECL_C_HARD_REGISTER.
3790         (check_bitfield_type_and_width): Check for null
3791         lang_type_specific when check the precision of an enum.
3792         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3793         in a pointer-to-array declarator.
3794         (finish_struct): Clear allocated struct lang_type.
3795         (finish_enum): Set enum_min and enum_max.  Set
3796         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3797         not to the enumerators.
3798         (set_decl_nonlocal): New.
3799         (store_parm_decls): Use it via walk_tree.
3800         (c_finalize): New.
3801         (finish_function): When !targetm.have_ctors_dtors,
3802         record static constructors and destructors here...
3803         (c_expand_body_1): ... not here.
3804         (c_expand_decl): Rename from c_expand_decl_stmt.
3805         Handle all C-specific expansion semantics.
3806         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3807         STMT_LINENO.
3808         * c-format.c (handle_format_arg_attribute): Initialize
3809         format_num.
3810         * c-lang.c: Include tree-inline.h
3811         (LANG_HOOKS_EXPAND_DECL,
3812         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3813         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3814         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3815         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3816         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3817         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3818         (c_types_compatible_p): New.
3819         * c-mudflap.c: New file.
3820         * c-objc-common.c: Include tree-mudflap.h
3821         (start_cdtor, finish_cdtor): Collapse
3822         together into
3823         (build_cdtor): ...here.  Update to construct a complete tree
3824         for the function.  No need to call push_scope, pop_scope, or
3825         clear_last_expr, or set current_function_cannot_inline.
3826         (c_missing_noreturn_ok_p): Change prototype to return
3827         bool.
3828         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3829         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3830         opts.c.
3831         (c_common_post_options): Don't ever use rtl inlining.
3832         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3833         * c-pragma.c (handle_pragma_redefine_extname): Define
3834         always.
3835         (init_pragma): Activate #pragma redefine_extname for mudflap.
3836         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3837         (pp_c_initializer): Accept any type CONSTRUCTOR.
3838         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3839         COMPLEX_TYPE.
3840         (decl_name_str): New local function.
3841         (pp_c_direct_declarator): Call it.
3842         (pp_c_primary_expression): Call it.
3843         (pp_c_id_expression): Call it.
3844         (pp_c_statement): Call it.
3845         (print_c_tree): Create new pp object.
3846         * c-pretty-print.h (pp_c_tree_decl_identifier,
3847         print_c_tree): Declare.
3848         * c-semantics.c: Include langhooks.h
3849         (lang_expand_stmt, lang_expand_decl_stmt,
3850         find_reachable_label_1, find_reachable_label,
3851         expand_unreachable_if_stmt, expand_unreachable_stmt,
3852         genrtl_do_stmt_1): Remove.
3853         (begin_stmt_tree): Don't check for changed filename.
3854         Call annotate_with_locus.
3855         (finish_stmt_tree): Don't set line for end of function.
3856         (build_stmt): Don't check type nodes for
3857         side effects.
3858         (build_stmt): Set TREE_SIDE_EFFECTS.
3859         Set EXPR_LOCUS instead of STMT_LINENO.
3860         (lang_expand_stmt, lang_expand_decl_stmt,
3861         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3862         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3863         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3864         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3865         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3866         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3867         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3868         find_reachable_label_1, expand_unreachable_if_stmt,
3869         expand_unreachable_stmt): Remove.
3870         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3871         * c-simplify.c: New file.
3872         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3873         (struct lang_type): Add fields enum_min and enum_max.
3874         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3875         (c_expand_decl, c_missing_noreturn_ok_p,
3876         c_types_compatible_p): Declare.
3877         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3878         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3879         (default_function_array_conversion): Rely on build to
3880         set TREE_CONSTANT.
3881         (parser_build_binary_op, pointer_diff): Likewise.
3882         (build_unary_op, build_binary_op): Likewise.
3883         (build_array_ref):
3884         (build_external_ref): Set TREE_INVARIANT.
3885         (build_c_cast, pop_init_level): Likewise.
3886         (process_init_element): Use ASM_VOLATILE_P.
3887         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3888         (c_finish_case): Call c_do_switch_warnings.
3889         * c.opt (fdump-): Remove.
3890         * calls.c (try_to_integrate): Remove.
3891         (prepare_call_address): Replace fndecl arg with a
3892         precomputed static chain value.
3893         (emit_call_1): New argument for full call expr.
3894         (flags_from_decl_or_type): Call special_function_p.
3895         (initialize_argument_information): Add argument
3896         may_tailcall.
3897         (purge_reg_equiv_notes): New.
3898         (expand_call): Do not try to expand calls inline.
3899         (fixup_tail_calls): New.
3900         * cfg.c: Include timevar.h and ggc.h.
3901         (bb_pool, edge_pool): Remove.
3902         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3903         (entry_exit_blocks): Remove.
3904         (rbi_pool): Declare.
3905         (init_flow): Do not create pools.
3906         Allocate entry/exit block.
3907         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3908         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3909         (unlink_block): Clear b->prev_bb and b->next_bb.
3910         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3911         (dump_flow_info): Work on trees too.
3912         (dump_cfg_bb_info): New.
3913         (brief_dump_cfg): New.
3914         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3915         (find_edge): New.
3916         * cfgbuild.c (rtl_make_eh_edge): Rename from
3917         make_eh_edge.  Update all users.
3918         (find_basic_blocks): Don't call VARRAY_FREE on
3919         basic_block_info.
3920         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3921         and newpos2.
3922         (delete_unreachable_blocks): Return changed status.
3923         (merge_seq_blocks): New.
3924         * cfghooks.c: Include tree-flow.h
3925         (tree_register_cfg_hooks, ir_type): New.
3926         (redirect_edge_and_branch): Change return type to edge.
3927         (predict_edge, predicted_by_p, can_duplicate_block_p,
3928         duplicate_block, block_ends_with_call_p,
3929         block_ends_with_condjump_p, flow_call_edges_add): New.
3930         * cfghooks.h (redirect_edge_and_branch): Change return
3931         type to edge.
3932         (predict_edge, predicted_by_p, can_duplicate_block_p,
3933         duplicate_block, block_ends_with_call_p,
3934         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3935         (redirect_edge_and_branch): Change return type to edge.
3936         (struct cfg_hooks): Add fields block_ends_with_call_p,
3937         block_ends_with_condjump_p, flow_call_edges_add,
3938         predict_edge, predicted_by_p, can_duplicate_block_p and
3939         duplicate_block.
3940         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3941         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3942         (fixup_reorder_chain): Use initialize_bb_rbi.
3943         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3944         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3945         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3946         (insn_locators_initialize): Use new info about blocks.
3947         * cfglayout.h (typedef struct reorder_block_def): Moved to
3948         basic_block.h.
3949         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3950         removed.
3951         * cfgloop.c: Include tree.h and tree-flow.h.
3952         * cfgloop.h (create_loop_notes): Declare.
3953         * cfgloopmanip.c (create_loop_notes): New.
3954         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3955         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3956         and duplicate_block fields.
3957         (create_basic_block_structure): Don't look at
3958         RTX_INTEGRATED_P.
3959         (rtl_block_ends_with_call_p): New.
3960         (rtl_block_ends_with_condjump_p): New.
3961         (need_fake_edge_p): Moved from cfganal.c.
3962         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3963         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3964         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3965         (cfg_layout_rtl_cfg_hooks): Ditto.
3966         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3967         functions to be reachable.
3968         * cgraphunit.c (decide_is_function_needed):
3969         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3970         inline functions don't need to be output.
3971         (cgraph_assemble_pending_functions): Don't do anything
3972         special for nested functions.
3973         (cgraph_mark_functions_to_output): Likewise.
3974         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3975         (cgraph_analyze_function): Use estimate_num_insns.
3976         (cgraph_mark_functions_to_output): Likewise.
3977         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3978         (cgraph_expand_function): Allow functions to not be
3979         emitted.
3980         (cgraph_remove_unreachable_nodes):
3981         (cgraph_recursive_inlining_p): Simplify.
3982         (lookup_recursive_calls,
3983         cgraph_decide_recursive_inlining): New.
3984         (cgraph_decide_inlining_*): Update calls of
3985         cgraph_mark_inline.
3986         * combine.c (get_pos_from_mask): Always set *plen.
3987         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3988         ftree-based-profiling, ftree-ccp, ftree-ch,
3989         ftree-combine-temps, ftree-copyrename, ftree-dce,
3990         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3991         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3992         ftree-lrs): Add.
3993         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3994         Undefine.
3995         * configure.ac: Add --enable-tree-browser option.
3996         Add --with-libbanshee option.
3997         Add GMPLIBS and GMPINC.
3998         * configure: Regenerate.
3999         * coverage.c (tree_ctr_tables): New.
4000         (coverage_counter_alloc): Use it.
4001         (build_ctr_info_value): Ditto.
4002         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
4003         (tree_coverage_counter_ref): New.
4004         * coverage.h (coverage_counter_ref): Remove declaration.
4005         (rtl_coverage_counter_ref): Declare.
4006         (tree_coverage_counter_ref): Declare.
4007         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
4008         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
4009         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
4010         (struct cse_basic_block_data): Rename enum values to not
4011         conflict with profile.h; update all uses.
4012         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
4013         in comments.
4014         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
4015         * diagnostic.h (debug_output_buffer, dump_generic_node,
4016         print_generic_stmt, print_generic_stmt_indented,
4017         print_generic_expr, print_generic_decl,
4018         debug_generic_expr, debug_generic_stmt, debug_c_tree):
4019         Declare.
4020         * dominance.c: Cache immediate dominators.
4021         * domwalk.c: New file.
4022         * domwalk.h: New file.
4023         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
4024         (gen_subprogram_die): Generate a DIE for a named
4025         return value.
4026         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
4027         (add_location_or_const_value_attribute): Likewise.
4028         (add_bound_info): Likewise.
4029         (gen_decl_die): Likewise.
4030         * emit-rtl.c (maybe_set_first_label_num): New.
4031         (copy_most_rtx): Don't copy the integrated flag.
4032         Copy the new return_val flag.
4033         * et-forest.c (MAX_NODES): Define.
4034         (record_path_before_1): Abort if len is greater than
4035         MAX_NODES.
4036         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
4037         gen_eh_region_catch, gen_eh_region_allowed,
4038         gen_eh_region_must_not_throw, get_eh_region_number,
4039         get_eh_region_may_contain_throw, get_eh_region_tree_label,
4040         set_eh_region_tree_label, expand_resx_expr): New.
4041         (expand_eh_region_start, expand_start_catch): Use them.
4042         (expand_end_catch): Tidy.
4043         (note_eh_region_may_contain_throw): Take region argument.
4044         (note_current_region_may_contain_throw): New.
4045         (get_exception_filter): Export.
4046         (collect_eh_region_array): Export.
4047         (remove_unreachable_regions): Check ERT_TRY based on reachability
4048         of catches, not reachability of continue_label.  Never remove
4049         ERT_MUST_NOT_THROW regions.
4050         (collect_rtl_labels_from_trees): New.
4051         (convert_from_eh_region_ranges): Use it.
4052         (connect_post_landing_pads): Handle dying cleanups.
4053         (struct reachable_info): Add callback data.
4054         (add_reachable_handler): Invoke the callback.
4055         (foreach_reachable_handler): New.
4056         (reachable_handlers): Use it.
4057         (arh_to_landing_pad, arh_to_label): New.
4058         (can_throw_internal_1): Split out from can_throw_internal.
4059         (can_throw_external_1): Similarly.
4060         * except.h: Update.
4061         * explow.c (emit_stack_save): Remove savearea mode check.
4062         (update_nonlocal_goto_save_area): New.
4063         (allocate_dynamic_stack_space): Use it.
4064         (probe_stack_range): Never emit loop notes.
4065         * expmed.c (extract_fixed_bit_field): Always propagate the
4066         target for the shift if it is a REG.
4067         * expr.c: Include tree-iterator.h
4068         (is_zeros_p): Remove.
4069         (categorize_ctor_elements_1, categorize_ctor_elements): New.
4070         (count_type_elements): New.
4071         (mostly_zeros_p): Use them.
4072         (expr_wfl_stack): Remove.
4073         (convert_move): Do nothing if to and from are the same.
4074         (emit_block_move_via_loop): Don't emit LOOP notes.
4075         (emit_move_insn): Don't handle CONSTANT_P_RTX.
4076         (emit_move_insn_1): Don't generate inline warnings.
4077         (expand_vars, expand_var): Split from ...
4078         (expand_expr_1): ... here.
4079         (expand_expr_real, expand_expr_real_1):  Use new macros
4080         EXPR_LOCATION and EXPR_HAS_LOCATION.
4081         * expr.h (simplify_builtin_fputs,
4082         simplify_builtin_strcpy, simplify_builtin_strncpy,
4083         expand_var, fixup_tail_calls,
4084         update_nonlocal_goto_save_area): Declare.
4085         (lookup_static_chain, expand_inline_function,
4086         mark_seen_cases): Remove.
4087         (prepare_call_address): Change type of 2nd argument to
4088         rtx.
4089         * final.c (profile_function): Update static chain test.
4090         (final): Don't look at RTX_INTEGRATED_P.
4091         * flags.h (flag_mudflap, flag_mudflap_threads,
4092         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
4093         flag_tree_dce, flag_tree_combine_temps,
4094         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
4095         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
4096         flag_tree_points_to): Declare.
4097         (enum pta_type): Declare.
4098         * flow.c (lang_missing_noreturn_ok_p): Remove.
4099         (check_function_return_warnings): Remove.
4100         (update_life_info): Update comments.
4101         (free_basic_block_vars): Don't call VARRAY_FREE for
4102         basic_block_info.
4103         (regno_uninitialized): Remove.
4104         * fold-const.c (int_const_binop): Make extern.
4105         (non_lvalue): Rely on build to set TREE_CONSTANT.
4106         (operand_equal_p): Replace only_const argument with
4107         flags.  Allow pure functions if OEP_PURE_SAME.
4108         (fold): Use OEP_ONLY_CONST.
4109         (invert_truthvalue) <NOP_EXPR> Break if argument is of
4110         boolean type.
4111         (fold_relational_hi_lo,
4112         nondestructive_fold_binary_to_constant,
4113         nondestructive_fold_unary_to_constant,
4114         fold_read_from_constant_string): New.
4115         * function.c (struct function): Remove calls_constant_p.
4116         (current_function_calls_constant_p): Remove.
4117         (inline_function_decl): Remove.
4118         (put_var_into_stack): Don't use it.
4119         (fix_lexical_addr): Likewise.
4120         (inline_function_decl): Remove extern declaration.
4121         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
4122         (trampolines_created): Move to varasm.c.
4123         (free_after_compilation): Update for removed fields.
4124         (allocate_struct_function): Likewise.
4125         (delete_handlers, lookup_static_chain): Remove.
4126         (fix_lexical_addr): Don't consider non-local variable refs.
4127         (trampoline_address): Remove.
4128         (round_trampoline_addr): Move to builtins.c.
4129         (adjust_trampoline_addr): Remove.
4130         (expand_function_start): Update for changes to static chain
4131         and nonlocal goto handling.
4132         (initial_trampoline): Move to varasm.c.
4133         (expand_function_end): Don't build trampolines or kill
4134         unreferenced nonlocal goto labels.
4135         (free_after_compilation): Don't set it.
4136         (expand_function_end): Likewise.
4137         (setjmp_vars_warning): Rename from
4138         uninitialized_vars_warning, remove uninitialized vars warning.
4139         (uninitialized_vars_warning): Remove old comment
4140         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
4141         and do not call the langhook.
4142         (expand_function_start, expand_function_end): Don't do
4143         function instrumentation here.
4144         (clear_block_marks): Rename from reorder_blocks_0, export.
4145         (blocks_nreverse): Export.
4146         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
4147         of rtl.
4148         (reset_block_changes, record_block_change, finalize_block_changes,
4149         check_block_change, free_block_changes): New functions.
4150         (assign_parms): Setting of current_function_stdarg
4151         moved ...
4152         (allocate_struct_function): ... here.
4153         * function.h (struct function): Remove x_nonlocal_labels,
4154         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
4155         x_context_display, x_trampoline_list, needs_context.
4156         Add static_chain_decl, nonlocal_goto_save_area.
4157         (struct function): Remove x_clobber_return_insn.
4158         Add tail_call_emit field, last_label_uid,
4159         unexpanded_var_list, dont_emit_block_notes,
4160         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
4161         (clear_block_marks): Declare.
4162         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
4163         (mfwrap_spec, mflib_spec): Declare.
4164         (cpp_unique_options, cc1_options): Ditto.
4165         (default_compilers): Add .F and .f90.
4166         (static_specs): Add mfwrap and mflib.
4167         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
4168         CONSTANT_RTX_P.
4169         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
4170         Update to match insns field in struct edge_def.
4171         * gdbinit.in (pgs, pge): Define.
4172         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
4173         instead of the integrated flag.
4174         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
4175         * gengtype-yacc.y (bitfieldlen): Add empty action.
4176         (struct_fields): Accept unnamed bitfields.
4177         (bitfieldlen): Split from ...
4178         (bitfieldopt): ... here.
4179         * gengtype.c (ifiles): Add tree-alias-type.h and
4180         tree-flow.h.
4181         * genrecog.c (validate_pattern): Do not handle
4182         CONSTANT_P_RTX.
4183         * gimple-low.c: New file.
4184         * gimplify.c: New file.
4185         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
4186         (restore_line_notes): Do not set RTX_INTEGRATED_P.
4187         * ifcvt.c (dead_or_predicable): Initialize local variable
4188         'earliest'.
4189         * input.h (expr_wfl_stack): Remove.
4190         * integrate.c (INTEGRATE_THRESHOLD): Remove.
4191         (setup_initial_hard_reg_value_integration): Likewise.
4192         (initialize_for_inline): Likewise.
4193         (note_modified_parmregs): Likewise.
4194         (integrate_parm_decls): Likewise.
4195         (process_reg_param): Likewise.
4196         (save_parm_insns): Likewise.
4197         (copy_insn_list): Likewise.
4198         (copy_insn_notes): Likewise.
4199         (compare_blocks): Likewise.
4200         (find_block): Likewise.
4201         (inlining): Likewise.
4202         (function_cannot_inline_p): Likewise.
4203         (parmdecl_map): Likewise.
4204         (in_nonparam_insns): Likewise.
4205         (save_for_inline): Likewise.
4206         (FIXED_BASE_PLUS): Likewise.
4207         (expand_inline_function): Likewise.
4208         (copy_rtx_and_substitute): Don't look at map->integrating,
4209         map->inline_target, and inlining, since we are never copying
4210         for integrating.
4211         Don't abort on RTX_INTEGRATED_P.
4212         (old_fun): Remove.
4213         (output_inline_function): Remove.
4214         * integrate.h (struct inline_map): Remove fields integrating,
4215         block_map, leaf_reg_map, inline_target, and local_return_label.
4216         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
4217         copy_loop_headers, never_reached_warning): Removed.
4218         (any_uncondjump_p): Reject nonlocal goto.
4219         * langhooks-def.h (lhd_types_compatible_p,
4220         lhd_expand_decl, lhd_gimplify_expr): Declare.
4221         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4222         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4223         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4224         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4225         LANG_HOOKS_GIMPLIFY_EXPR,
4226         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
4227         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
4228         LANG_HOOKS_GIMPLIFY_EXPR,
4229         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
4230         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
4231         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
4232         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
4233         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
4234         LANG_HOOKS_DECL_UNINIT,
4235         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
4236         * langhooks.c: Include tree-simple.h.
4237         (lhd_expand_decl): New.
4238         (lhd_types_compatible_p): New.
4239         (lhd_decl_uninit): Remove.
4240         (lhd_gimplify_expr): New.
4241         * langhooks.h (struct lang_hooks_for_rtl_expansion):
4242         Remove.
4243         (struct lang_hooks_for_functions): Add field
4244         missing_noreturn_ok_p.
4245         (struct lang_hooks): Add field expand_decl,
4246         types_compatible_p, gimplify_expr and
4247         gimple_before_inlining.
4248         Remove fields decl_uninit and rtl_expand
4249         * opts.c (decode_options): Set flag_tree_ccp,
4250         flag_tree_dce, flag_tree_dom, flag_tree_dse,
4251         flag_tree_pre, flag_tree_ter,
4252         flag_tree_live_range_split, flag_tree_sra,
4253         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
4254         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
4255         OPT_fmudflapth, OPT_fmudflapir,
4256         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
4257         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
4258         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
4259         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
4260         OPT_ftree_points_to_ and OPT_ftree_pre.
4261         * output.h (regno_uninitialized, find_basic_blocks,
4262         cleanup_cfg, delete_unreachable_blocks,
4263         check_function_return_warnings): Remove.
4264         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
4265         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
4266         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
4267         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
4268         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
4269         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
4270         Define.
4271         * passes.c (rest_of_decl_compilation):
4272         (rest_of_handle_sibling_calls): Remove.
4273         (rest_of_handle_inlining): Remove.
4274         (rest_of_handle_gcse): Do not run
4275         purge_builtin_constant_p.
4276         (rest_of_compilation): Update.
4277         Do not call copy_loop_headers.
4278         Do rtl-based profiling only when
4279         !flag_tree_based_profiling.  Register rtl-based profiling
4280         hooks.
4281         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
4282         (predicted_by_p): Rename to ...
4283         (rtl_predicted_by_p): .. this one; make global
4284         (tree_predicted_by_p): New.
4285         (dump_prediction): Add FILE argument.
4286         (predict_edge): Rename to ...
4287         (rtl_predict_edge): .. this one.
4288         (tree_predict_edge): New.
4289         (combine_predictions_for_insn): Update calls of predict_edge.
4290         (predict_loops): Break out from ...
4291         (estimate_probability): ... here; update comments; move updating
4292         of unknown probabilities from ...
4293         (estimate_bb_frequencies): ... here.
4294         (combine_predictions_for_bb): New.
4295         (tree_predict_by_opcode): New.
4296         (tree_estimate_probability): New.
4297         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
4298         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
4299         * predict.h: Add include guard.
4300         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
4301         * pretty-print.c (pp_write_text_to_stream): Make extern.
4302         * pretty-print.h (pp_write_text_to_stream): Declare.
4303         * print-rtl.c (print_rtx): Don't print the integrated flag.
4304         Print the return_val flag.
4305         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
4306         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
4307         Remove support for EXPR_WITH_FILE_LOCATION nodes.
4308         (print_node): Print TREE_INVARIANT and TREE_VISITED.
4309         * profile.c: Include cfghooks.h, tree-flow.h.
4310         (profile_hooks): New.
4311         (profile_dump_file): New.
4312         (instrument_edges): Use hooks instead of RTL-specific code.
4313         (instrument_values): Ditto.
4314         (get_exec_counts): Ditto.
4315         (compute_branch_probabilities): Ditto.
4316         (compute_value_histograms): Ditto.
4317         (branch_prob): Ditto.
4318         (find_spanning_tree): Ditto.
4319         (end_branch_prob): Ditto.
4320         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
4321         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
4322         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
4323         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
4324         (tree_register_profile_hooks): New.
4325         (rtl_register_profile_hooks): New.
4326         * ra-rewrite.c (rewrite_program): Clear variable info.
4327         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
4328         * regs.h: Add include guards.
4329         * reload.c (decompose): Clear val using memset.
4330         * rtl.def (CONSTANT_P_RTX): Remove.
4331         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
4332         (copy_loop_headers): Remove.
4333         (struct rtx_def): Replace the integrated flag with the
4334         return_val flag.
4335         (maybe_set_first_label_num): Declare.
4336         (init_branch_prob): Move declaration to value-prof.h.
4337         (end_branch_prob): Ditto.
4338         (branch_prob): Ditto.
4339         (never_reached_warning): Don't declare it.
4340         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
4341         (hoist_insn_to_edge): Update to match field insns in
4342         struct edge_def.
4343         * sbitmap.c (sbitmap_realloc): New.
4344         * sbitmap.h (sbitmap_realloc): Declare.
4345         * sibcall.c: Remove file.
4346         * simplify-rtx.c (simplify_rtx): Do not handle
4347         CONSTANT_P_RTX.
4348         * stmt.c (parse_output_constraint): Don't warn for read-write
4349         memory operand.
4350         (tail_recursion_args): Use types_compatible_p langhook.
4351         (force_label_rtx): Don't look at inline_function_decl.
4352         (label_rtx): Set LABEL_PRESERVE_P appropriately.
4353         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
4354         (declare_nonlocal_label): Remove.
4355         (expand_goto): Don't handle nonlocal gotos.
4356         (expand_nl_handler_label): Remove.
4357         (expand_nl_goto_receivers): Remove.
4358         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
4359         update_nonlocal_goto_save_area.
4360         (expand_expr_stmt_value): Check TREE_NO_WARNING.
4361         (warn_if_unused_value): Likewise.
4362         (expand_start_loop, expand_loop_continue_here,
4363         expand_end_loop): Don't create loop notes.
4364         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
4365         mark_seen_cases, check_for_full_enumeration_handling): Remove.
4366         (expand_end_case_type): Don't do warn_switch handling.
4367         (pushcase, pushcase_range) Update add_case_node calls.
4368         (add_case_node): Add dont_expand_label argument.
4369         (same_case_target_p): Don't search rtl.
4370         (expand_start_bindings_and_block, expand_end_bindings):
4371         Don't emit block notes when dont_emit_block_notes.
4372         (using_eh_for_cleanups_p): Export.
4373         (expand_return): Allow any typed rhs.
4374         (expand_stack_alloc): New.
4375         (expand_stack_save, expand_stack_restore): New.
4376         (containing_blocks_have_cleanups_or_stack_level): New
4377         function.
4378         (asm_op_is_mem_input): New fn.
4379         (expand_asm_expr): New fn.
4380         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
4381         nodes.
4382         * stor-layout.c (layout_type): Just return if type is
4383         error_mark_node.
4384         (update_alignment_for_field): Export.
4385         (variable_size): We don't care about global_bindings_p if
4386         the frontend doesn't want a list of the expressions.
4387         * system.h: Poison INTEGRATE_THRESHOLD.
4388         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
4389         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
4390         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
4391         TV_TREE_SSA_OTHER, TV_TREE_OPS,
4392         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
4393         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
4394         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
4395         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
4396         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
4397         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
4398         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
4399         TV_CONTROL_DEPENDENCES): Define.
4400         * toplev.c: Include tree-alias-common.h
4401         (current_file_decl, flag_mudflap, flag_mudflap_threads,
4402         flag_mudflap_ignore_reads, flag_tree_based_profiling,
4403         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
4404         flag_tree_dce, flag_tree_ch, flag_tree_sra,
4405         flag_tree_combine_temps, flag_tree_ter,
4406         flag_tree_live_range_split, flag_tree_dom,
4407         flag_tree_copyrename, flag_tree_dse): Declare.
4408         (f_options): Add tree-based-profiling, tree-gvn,
4409         tree-pre, tree-ccp, tree-dce,
4410         tree-dominator-opts, tree-copyrename, tree-dse,
4411         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
4412         (wrapup_global_declarations): Don't output nested inlined functions.
4413         (general_init): Call init_tree_optimization_passes.
4414         (process_options): Sorry for -ftree-based-profiling plus
4415         -ftest-coverage or -fprofile-values.
4416         * toplev.h (init_tree_optimization_passes,
4417         flag_tree_based_profiling): Declare.
4418         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
4419         * tree-alias-ander.c: New file.
4420         * tree-alias-ander.h: New file.
4421         * tree-alias-common.c: New file.
4422         * tree-alias-common.h: New file.
4423         * tree-alias-type.c: New file.
4424         * tree-alias-type.h: New file.
4425         * tree-browser.c: New file.
4426         * tree-browser.def: New file.
4427         * tree-cfg.c: New file.
4428         * tree-complex.c: New file.
4429         * tree-dfa.c: New file.
4430         * tree-dump.c (dump_enable_all): New.
4431         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
4432         (dump_node): Remove const from field suffix and swtch.
4433         (dump_files): Add null entry, .generic, .nested, .vcg,
4434         .xml and a match-all entry.
4435         (extra_dump_files, extra_dump_files_in_use,
4436         extra_dump_files_alloced): Declare
4437         (dump_option_value_info): Add raw, details, stats,
4438         blocks, vops, lineno, uid and all.
4439         (dump_register): New.
4440         (get_dump_file_info): New.
4441         (dump_begin): Call it.
4442         Do nothing for TDI_none.
4443         (dump_begin): Include phase number in dump filename.
4444         (dump_enable_all): New.
4445         (dump_switch_p_1): Split out from dump_switch_p.
4446         (dump_switch_p): Handle extra_dump_files.
4447         Start our scan at TDI_none + 1.
4448         If -fdump-tree-all was given, call dump_enable_all.
4449         * tree-dump.h: Include splay-tree.h.
4450         (dump_function, dump_function_to_file, dump_register):
4451         Declare.
4452         * tree-eh.c: New file.
4453         * tree-flow-inline.h: New file.
4454         * tree-flow.h: New file.
4455         * tree-inline.c: Re-write to handle inlining on GIMPLE.
4456         * tree-inline.h (walk_tree,
4457         walk_tree_without_duplicates): Move to tree.h.
4458         (estimate_num_insns): Declare.
4459         * tree-into-ssa.c: New file.
4460         * tree-iterator.c: New file.
4461         * tree-iterator.h: New file.
4462         * tree-mudflap.c: New file.
4463         * tree-mudflap.h: New file.
4464         * tree-nested.c: New file.
4465         * tree-nomudflap.c: New file.
4466         * tree-nrv.c: New file.
4467         * tree-optimize.c (dump_flags, vars_to_rename,
4468         in_gimple_form, all_passes, pass_gimple,
4469         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
4470         (execute_gimple, execute_rebuild_bind,
4471         gate_all_optimizations, execute_del_cfg,
4472         register_one_dump_file, register_dump_files, dup_pass_1,
4473         init_tree_optimization_passes, execute_todo,
4474         execute_one_pass, execute_pass_list): New.
4475         (clear_decl_rtl): Remove.
4476         (tree_rest_of_compilation): Update to use tree
4477         optimizers.
4478         * tree-outof-ssa.c: New file.
4479         * tree-pass.h: New file.
4480         * tree-phinodes.c: New file.
4481         * tree-pretty-print.c: New file.
4482         * tree-profile.c: New file.
4483         * tree-simple.c: New file.
4484         * tree-simple.h: New file.
4485         * tree-sra.c: New file.
4486         * tree-ssa-alias.c: New file.
4487         * tree-ssa-ccp.c: New file.
4488         * tree-ssa-copy.c: New file.
4489         * tree-ssa-copyrename.c: New file.
4490         * tree-ssa-dce.c: New file.
4491         * tree-ssa-dom.c: New file.
4492         * tree-ssa-dse.c: New file.
4493         * tree-ssa-forwprop.c: New file.
4494         * tree-ssa-live.c: New file.
4495         * tree-ssa-live.h: New file.
4496         * tree-ssa-loop.c: New file.
4497         * tree-ssa-operands.c: New file.
4498         * tree-ssa-operands.h: New file.
4499         * tree-ssa-phiopt.c: New file.
4500         * tree-ssa-pre.c: New file.
4501         * tree-ssa.c: New file.
4502         * tree-ssanames.c: New file.
4503         * tree-tailcall.c: New file.
4504         * tree.c: Include tree-iterator.h, basic-block.h and
4505         tree-flow.h.
4506         (tree_node_kind): Add phi_nodes and ssa names.
4507         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
4508         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
4509         (make_node_stat): Handle PHI_NODE and SSA_NAME.
4510         <'c'> Set TREE_INVARIANT.
4511         (copy_node_stat): Abort if trying to copy a
4512         STATEMENT_LIST.
4513         Clear TREE_VISITED.
4514         Clear annotation field.
4515         (build_constructor): Copy TREE_INVARIANT from vals.
4516         Don't clear TREE_CONSTANT.
4517         (expr_first, expr_last, expr_length): Remove.
4518         (staticp): Pass unknown component references to the language.
4519         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
4520         (skip_simple_arithmetic): Likewise.
4521         (stabilize_reference_1): Likewise.
4522         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
4523         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
4524         STATEMENT_LIST.
4525         (lhd_unsave_expr_now): Remove.
4526         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
4527         (recompute_tree_invarant_for_addr_expr): New.
4528         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
4529         Call recompute_tree_invarant_for_addr_expr.
4530         Set TREE_INVARIANT accordingly.
4531         (build2_stat): Don't handle CALL_EXPR.
4532         (build3_stat): Don't call build2_stat for CALL_EXPRs.
4533         (build_expr_wfl): Remove.
4534         (annotate_with_file_line, annotate_with_locus): New.
4535         (simple_cst_equal): Call simple_cst_list_equal to compare
4536         CONSTRUCTOR_ELTS pointers.
4537         (iterative_hash_expr): Don't hash types associated
4538         with conversions.  Instead hash on the signedness of the
4539         toplevel object and the operand of the conversion.
4540         (dump_tree_statistics): Call ssanames_print_statistics
4541         and phinodes_print_statistics.
4542         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
4543         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
4544         needs_to_live_in_memory): New.
4545         (initializer_zerop): Handle VECTOR_CST.  Don't check
4546         AGGREGATE_TYPE_P for CONSTRUCTOR.
4547         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
4548         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
4549         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
4550         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
4551         (CALL_EXPR): Add another operand.
4552         (EXPR_WITH_FILE_LOCATION): Remove.
4553         (SWITCH_EXPR): Add another operand.
4554         * tree.h: Update various comments.
4555         (union tree_ann_d): Forward declare.
4556         (struct tree_common): Add fields nowarning_flag,
4557         invariant_flag and visited.
4558         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
4559         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
4560         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
4561         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
4562         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
4563         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
4564         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
4565         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
4566         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
4567         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
4568         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
4569         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
4570         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
4571         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
4572         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
4573         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
4574         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
4575         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
4576         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
4577         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
4578         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
4579         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
4580         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
4581         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
4582         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
4583         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
4584         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
4585         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
4586         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
4587         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
4588         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
4589         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
4590         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
4591         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4592         TDF_UID,): Define.
4593         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4594         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4595         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4596         EXPR_WFL_SET_LINECOL): Remove.
4597         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4598         make_phi_node, init_phinodes, fini_phinodes,
4599         release_phi_node, phinodes_print_statistics,
4600         init_ssanames, fini_ssanames, make_ssa_name,
4601         release_ssa_name, ssanames_print_statistics,
4602         annotate_with_file_line, build_empty_stmt,
4603         annotate_with_locus, expr_only, categorize_ctor_elements,
4604         count_type_elements, add_var_to_bind_expr, is_essa_node,
4605         expand_stack_alloc, expand_stack_save,
4606         expand_stack_restore, add_case_node, operand_equal_p,
4607         nondestructive_fold_unary_to_constant,
4608         nondestructive_fold_binary_to_constant,
4609         fold_read_from_constant_string, int_const_binop,
4610         strip_float_extensions, simplify_builtin, c_strlen,
4611         recompute_tree_invarant_for_addr_expr,
4612         needs_to_live_in_memory, make_vector,
4613         setjmp_vars_warning, update_alignment_for_field,
4614         expand_asm_expr, asm_op_is_mem_input,
4615         containing_blocks_have_cleanups_or_stack_level,
4616         create_artificial_label, gimplify_function_tree,
4617         get_name, unshare_expr, walk_tree,
4618         walk_tree_without_duplicates, in_gimple_form): Declare.
4619         (struct tree_exp): Add fields locus and block.
4620         (struct tree_ssa_name, struct edge_def, struct
4621         tree_phi_node, struct tree_eref_common, struct
4622         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4623         union alias_var_def, struct tree_statement_list_node,
4624         struct tree_statement_list, enum operand_equal_flag): Declare.
4625         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4626         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4627         TS_STATEMENT_LIST.
4628         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4629         euse and stmt_list.
4630         (function_cannot_inline_p, uninitialized_vars_warning,
4631         save_for_inline, output_inline_function, all_cases_count,
4632         check_for_full_enumeration_handling,
4633         declare_nonlocal_label): Remove.
4634         (enum tree_dump_index): Add TDI_none, TDI_tu,
4635         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4636         * unroll.c (unroll_loop): Don't clear map->inline_target.
4637         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4638         function.
4639         * value-prof.c (value_prof_hooks): New.
4640         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4641         Move rtl-specific bits in from branch_prob.
4642         (value_profile_transformations): Rename to
4643         rtl_value_profile_transformations.
4644         (struct value_prof_hooks): New.
4645         (rtl_value_prof_hooks): New.
4646         (rtl_register_value_prof_hooks): New.
4647         (tree_find_values_to_profile): New stub.
4648         (tree_value_profile_transformations): New stub.
4649         (tree_value_prof_hooks): New stub.
4650         (tree_register_value_prof_hooks): New stub.
4651         (find_values_to_profile): New.
4652         (value_profile_transformations): New.
4653         * value-prof.h: Add multiple inclusion guard.
4654         (struct histogram_value): Change rtx fields to void *.
4655         (rtl_register_value_prof_hooks): New declaration.
4656         (tree_register_value_prof_hooks): New declaration.
4657         (find_values_to_profile): New declaration.
4658         (free_profiled_values): New declaration.
4659         (value_profile_transformations): New declaration.
4660         (struct profile_hooks): New declaration.
4661         (init_branch_prob): Declaration moved from rtl.h.
4662         (branch_prob): Declaration moved from rtl.h.
4663         (end_branch_prob): Declaration mooved from rtl.h.
4664         (tree_register_profile_hooks): New declaration.
4665         (rtl_register_profile_hooks): New declaration.
4666         (tree_profile_hooks): New declaration.
4667         (rtl_profile_hooks): New declaration.
4668         * varasm.c: Include tree-mudflap.h.
4669         (TRAMPOLINE_ALIGNMENT): Remove.
4670         (make_decl_rtl): Call mudflap_enqueue_decl.
4671         (assemble_static_space):
4672         (assemble_trampoline_template): Set and return
4673         TRAMPOLINE_ALIGNMENT.
4674         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4675         Add entry for 'tree *'.
4676         Add entry for struct edge_def *.
4677         (varray_copy): New.
4678         * varray.h (enum varray_data_enum): Add
4679         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4680         VARRAY_DATA_TREE_PTR.
4681         (union varray_data_tag): Corresponding changes.
4682         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4683         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4684         VARRAY_EDGE, VARRAY_TREE_PTR,
4685         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4686         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4687         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4688
4689         * config/*/*: Various updates for changed macros, tree
4690         codes, etc.  Check ChangeLog.tree-ssa.
4691
4692         * doc/cfg.texi: New file.
4693         * doc/tree-ssa.texi: New file.
4694         * doc/c-tree.texi: Document new codes.
4695         * doc/gccint.texi: Include new files.
4696         * doc/install.texi: Document new features.
4697         * doc/invoke.texi: Document new switches.
4698         * doc/passes.texi: Document new passes.
4699         * doc/rtl.texi: Update changed RTL codes.
4700         * doc/sourcebuild.texi: Update build instructions.
4701         * doc/standards.texi: Document Fortran changes.
4702         * doc/tm.texi: Update.
4703
4704 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4705
4706         Replace several arrays with a struct of arrays.
4707         * combine.c (struct reg_stat): New.
4708         (init_reg_last_arrays): Renamed to...
4709         (init_reg_last): ...this.  Callers adjusted.
4710         (reg_stat): New.
4711         (combine_instructions): Allocate it and use it.
4712         (reg_last_death, reg_last_set, reg_last_set_value,
4713         reg_last_set_label, reg_last_set_table_tick,
4714         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4715         reg_last_set_mode, reg_last_set_nonzero_bits,
4716         reg_last_set_sign_bit_copies): Replace throughout
4717         with items of reg_stat.
4718
4719 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4720
4721         PR optimization/15100
4722         * combine.c (distribute_notes): Don't create a dangling
4723         REG_LIBCALL/REG_RETVAL note.
4724
4725 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4726
4727         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4728
4729         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4730         negv2si2.
4731
4732 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4733
4734         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4735
4736 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4737
4738         * doc/gty.texi (GTY Options): Clarify example.
4739
4740 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4741
4742         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4743         Add const qualifier to altivec vector type if one is needed.
4744
4745 2004-05-11  Paul Brook  <paul@codesourcery.com>
4746
4747         * flags.h (flag_short_enums): Update comment.
4748         * opts.c (decode_options): Set flag_short_enums to 2.
4749         * toplev.c (flag_short_enums): Update comment.
4750         (process_options): Call default_short_enums target hook.
4751
4752 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4753
4754         PR target/14063
4755         * config/rs6000/altivec.md (altivec_dssall):
4756         Change to unspec_volatile.
4757         (altivec_dss): Likewise.
4758
4759 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4760
4761         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4762         vnor.
4763         ("one_cmplv8hi2"): Same.
4764         ("one_cmplv4si2"): Same.
4765
4766 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4767
4768         PR target/15130
4769         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4770         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4771         into account.  Compute the correct number of general registers
4772         for the return value.  Generate a special push/pop sequence when
4773         failing to get a temporary register for non SHmedia epilogue.
4774         (sh_expand_epilogue): Add an argument to show whether it's for
4775         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4776         -1 if needed.
4777         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4778         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4779         with 1.
4780         (epilogue): Call sh_expand_epilogue with 0.
4781
4782 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4783
4784         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4785         goto a cleanup label.  After the cleanup, free the allocated memory.
4786
4787 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4788
4789         * config/rs6000/altivec.h (vec_sld): Add overloads for
4790         argument/return types of 'vector bool int', 'vector bool short'
4791         and 'vector bool char'.
4792
4793 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4794
4795         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4796         nested function.
4797
4798 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4799
4800         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4801         treating missing ones as "".
4802         * config/mips/mips.md: Remove constraints from match_operands and
4803         match_scratches if they appear in define_expands (except reload*),
4804         define_peephole2s, define_splits or attribute specifications.
4805         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4806         constraint strings.
4807
4808 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4809
4810         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4811         AltiVec vectors.
4812         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4813         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4814         byte boundary.  Remove useless code.  Add function comment.
4815         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4816         call to where it belongs.
4817         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4818         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4819         (rs6000_va_arg): Adjust for AltiVec change.
4820
4821 2004-05-10  Paul Brook  <paul@codesourcery.com>
4822
4823         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4824         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4825         (TARGET_DOUBLEWORD_ALIGN): Use it.
4826         (WCHAR_TYPE): Define.
4827         (WCHAR_SIZE_TYPE): Define.
4828         (SIZE_TYPE): Define.
4829
4830 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4831
4832         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4833         when size is 8 bytes.
4834         (function_arg_advance): Account for stack space used by AltiVec
4835         args when -mabi=altivec.  Simplify alignment calculations.  For
4836         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4837         (function_arg): Similarly.
4838         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4839         not AltiVec ABI.
4840         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4841         Correct alignment, and align before testing reg count.  Remove
4842         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4843         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4844         TARGET_FPRS here..
4845         (rs6000_function_value): .. not here before call.
4846
4847 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4848
4849         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4850
4851 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4852
4853         PR 15007
4854         * c-decl.c (current_file_decl): Rename to all_translation_units,
4855         adjust comment.
4856         (pop_scope): If popping file_scope, construct a
4857         TRANSLATION_UNIT_DECL and make it the context of all the
4858         symbols in the scope.
4859         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4860         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4861         anything to current_file_decl.
4862         (pushdecl_top_level): Likewise.
4863         (store_parm_decls_newstyle): Adjust check for nested function.
4864         (c_write_global_declarations): Update for renamed variable.
4865
4866 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4867
4868         * config/rs6000/rs6000-protos.h
4869         (rs6000_conditional_register_usage): Protoize.
4870
4871         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4872
4873         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4874         function.
4875
4876 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4877
4878         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4879         where op is a comparison operator and C1 and C2 are integer constants
4880         into a range check.
4881         (fold): Call fold_div_compare.
4882
4883 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4884
4885         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4886         problems with earlier versions of the GNU compiler.
4887
4888 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4889
4890         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4891         Declare.
4892
4893         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4894         (rs6000_hard_regno_mode_ok): New.
4895         (rs6000_init_hard_regno_mode_ok): New.
4896         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4897
4898         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4899         result.
4900
4901 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4902
4903         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4904         define as macros #ifdef __APPLE_ALTIVEC__.
4905
4906 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4907
4908         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4909         Generate appropriate parallels for vector arguments
4910         passed to vararg functions. (function_arg): make the call
4911         to rs6000_mixed_function_arg for vector args as needed.
4912
4913 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4914
4915         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4916         EABI_FLOAT_VARARGS_P.
4917
4918 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4919
4920         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4921         * config/mips/mips.c (override_options): Disable branch likely
4922         instructions if TUNE_MIPS5500.
4923
4924 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4925
4926         * config/mips/mips.c (override_options): Allow the hi and lo registers
4927         to store any integral mode, not just MODE_INTs.
4928
4929 2004-05-07  Paul Brook  <paul@codesourcery.com>
4930
4931         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4932         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4933         (TARGET_DOUBLEWORD_ALIGN): Use it.
4934         (WCHAR_TYPE): Define.
4935         (WCHAR_SIZE_TYPE): Define.
4936         (SIZE_TYPE): Define.
4937
4938 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4939
4940         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4941         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4942
4943 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4944
4945         * loop-doloop.c (doloop_valid_p): Make sure that body
4946         gets freed.
4947
4948 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4949
4950         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4951         declaration.
4952         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4953         (sparc_skip_caller_unimp): New global variable.
4954         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4955         Use it instead of SKIP_CALLERS_UNIMP_P.
4956         * config/sparc/sparc.md (call expander): Add sanity check.
4957         (call_address_struct_value_sp32): Re-sync with expander.
4958         (call_symbolic_struct_value_sp32): Likewise.
4959         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4960         of custom predicate.
4961
4962 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4963
4964         PR c++/14962
4965         * c-pragma.c (handle_pragma_redefine_extname): Only change
4966         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4967
4968 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4969
4970         * optabs.h (enum optab_index): Add new OTI_log1p.
4971         (log1p_optab): Define corresponding macro.
4972         * optabs.c (init_optabs): Initialize log1p_optab.
4973         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4974         patterns.
4975         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4976         using log1p_optab.
4977         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4978         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4979
4980         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4981
4982         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4983         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4984         Prototype here.
4985         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4986         x87's fyl2xp1 instruction.
4987         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4988         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4989         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4990         log1p  and log1pl built-ins as inline x87 intrinsics.
4991
4992 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4993
4994         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4995         * config/arm/freebsd.h: Likewise.
4996         * config/ia64/freebsd.h: Likewise.
4997         * config/sparc/freebsd.h: Likewise.
4998
4999 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
5000
5001         PR optimization/15296
5002         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
5003         getting last consecutive label at a branch.
5004         (relax_delay_slots): Similar, near top of loop.
5005
5006 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5007
5008         PR target/15202
5009         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
5010         register to general register.
5011
5012 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
5013
5014         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
5015         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
5016         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
5017         (STACK_BOUNDARY): Delete.
5018
5019 2004-05-06  Stuart Hastings  <stuart@apple.com>
5020
5021         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
5022         mistakenly clobbered by 1.423.
5023
5024 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5025
5026         * doc/invoke.texi: Document -mvr4130-align.
5027         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
5028         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
5029         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
5030         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
5031         * config/mips/mips.md: Include sched-int.h.
5032         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
5033         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
5034         (override_options): Enable -mvr4130-align at -O3 and above.
5035         (mips_sim_insn): New variable.
5036         (mips_sim): New structure.
5037         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
5038         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
5039         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
5040         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
5041         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
5042         (mips_reorg): Call vr4130_align_insns.
5043         (vr4130_last_insn): New variable.
5044         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
5045         (vr4130_swap_insns_p, vr4130_reorder): New functions.
5046         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
5047         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
5048         (mips_use_dfa_pipeline_interface): Return true for the same.
5049         * config/mips/4130.md: New file.
5050         * config/mips/mips.md: Include it.  Add a peephole2 to convert
5051         "mult;mflo" into "mtlo;macc".
5052         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
5053         target of maccs.
5054         (*msac_using_macc): New pattern.
5055
5056 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
5057
5058         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
5059         (ir_vr55_hilo): Split into...
5060         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
5061         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
5062         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
5063         Add various multiplication bypasses.
5064         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
5065         multiplication.
5066
5067 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
5068
5069         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
5070         attribute to "XF".
5071
5072 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
5073
5074         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
5075         (fmod_optab, drem_optab): Define corresponding macros.
5076         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
5077         * genopinit.c (optabs): Implement fmod_optab and drem_optab
5078         using fmod?f3 and drem?f3 patterns.
5079         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
5080         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
5081         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
5082         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
5083         flag_unsafe_math_optimizations is set.
5084
5085         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
5086         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
5087
5088         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
5089         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
5090         Prototype here.
5091         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
5092         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
5093         fprem and fprem1 instructions.
5094         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
5095         Rename insn definition to x86_fnstsw_1.
5096         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
5097         x87 instructions.
5098         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
5099         and fmodl built-ins as inline x87 intrinsics.
5100         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
5101         and dreml built-ins as inline x87 intrinsics.
5102
5103 2004-05-05  Roger Sayle  <roger@eyesopen.com>
5104
5105         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
5106
5107 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
5108
5109         PR driver/9822
5110         * doc/invoke.texi (Spec Files): Remove documentation of %c.
5111
5112 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
5113
5114         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
5115         representation.
5116
5117 2004-05-06  Paul Brook  <paul@codesourcery.com>
5118
5119         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
5120         (arm_coproc_mem_operand): ... To this.
5121         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
5122         (arm_legitimate_index_p): Ditto.
5123         (vfp_mem_operand): Rename ...
5124         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
5125         (vfp_secondary_reload_class): Use it.
5126         (output_move_double): Use doubleword load/store instructions.
5127         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
5128         * config/arm/arm.h (TARGET_LDRD): Define.
5129         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
5130         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
5131         New splitter for invalid doubleword loads.
5132         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
5133         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
5134         * doc/md.texi: Document Uy constraint.
5135
5136 2004-05-05  Jan Hubicka  <jh@suse.cz>
5137
5138         PR opt/14980
5139         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
5140         inline clones.
5141
5142 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
5143
5144         PR target/15290
5145         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
5146         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
5147
5148 2004-05-05  Mike Stump  <mrs@apple.com>
5149
5150         * config/darwin-c.c (add_framework): Copy the directory name as it
5151         can be freed later.  Also, ensure we always allocate enough room
5152         for the cached framework information.
5153         (find_subframework_header): Keep track of the directory where the
5154         subframework header was found.
5155         (framework_construct_pathname): Speed up by not trying to re-add a
5156         framework.
5157         * cppfiles.c (search_path_exhausted): Arrange for the missing
5158         header callback to be able to set the directory where the header
5159         was found.
5160         (cpp_get_dir): Add.
5161         * cpplib.h (missing_header_cb): Add a parameter.
5162         (cpp_get_dir): Add.
5163
5164 2004-05-03  Mike Stump  <mrs@apple.com>
5165
5166         * doc/invoke.texi (Directory Options): Document -iquote.
5167         * doc/cpp.texi: Likewise.
5168         * doc/cppopts.texi: Likewise.
5169         * c-opts.c (c_common_missing_argument): Add -iquote processing.
5170         (c_common_handle_option): Likewise.
5171         * c.opt (iquote): Add.
5172         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
5173         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
5174
5175         * c-opts.c (case OPT_I): Deprecate -I- support.
5176         * doc/invoke.texi: Likewise.
5177         * doc/cpp.texi: Likewise.
5178         * doc/cppopts.texi: Likewise.
5179
5180 2004-05-05  Steven Bosscher  <stevenb@suse.de>
5181
5182         * basic-block.h (free_basic_block_vars): Update prototype.
5183         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
5184         argument.
5185         (life_analysis): Update call.
5186         * ifcvt.c (if_convert): Likewise.
5187         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
5188         * passes.c (rest_of_handle_final): Likewise.
5189         (rest_of_compilation): Likewise.
5190         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5191
5192         * emit-rtl.c (next_real_insn): Use INSN_P.
5193         (prev_real_insn): Likewise.
5194
5195 2004-05-05  Eric Christopher  <echristo@redhat.com>
5196
5197         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
5198         representation.
5199
5200 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
5201
5202         * config/rs6000/rs6000.c (build_opaque_vector_type):
5203         New function.
5204         (rs6000_init_builtins): Use it.
5205
5206 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
5207
5208         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
5209         (func_table): Change type from char ** to vms_func_ref.
5210         (write_rtnbeg):  Update to reflect func_table change.  Use
5211         fde->funcdef_number instead of rtnnum in output.
5212         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
5213
5214 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5215             Richard Henderson  <rth@redhat.com>
5216
5217         PR target/14899
5218
5219         * c-common.c (vector_types_convertible_p): New function.
5220         * c-typeck.c (comptypes): Recurse on vector types.
5221         (convert_for_assignment): Use vector_types_convertible_p.
5222         (digest_init): Use vector_types_convertible_p to check
5223         validness of constant vector initializers; otherwise treat
5224         them as scalars.
5225         * tree.c (make_or_reuse_type): New.
5226         (build_common_tree_nodes): Use it.
5227         * cp/call.c (standard_conversion): Likewise.
5228         * cp/typeck.c (comptypes): Recurse on vector types.
5229         (convert_for_assignment): Use vector_types_convertible_p.
5230
5231 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
5232
5233         * config/mips/mips.c (override_options): Default to no
5234         generation of branch-likely operations when tuning for
5235         CPUs where they tend to have a negative performance impact
5236         (e.g., SB-1).
5237
5238 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5239
5240         * expr.c (store_constructor_field): Don't call store_constructor
5241         if bitsize is not a multiple of a byte.
5242
5243 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
5244
5245         * reload1.c (inherit_piecemeal_p): New function.
5246         (emit_reload_insns): When reloading a group of hard registers, use
5247         inherit_piecemeal_p to decide whether the values of individual hard
5248         registers can be inherited.
5249
5250 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5251
5252         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
5253         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
5254         * config/t-linux (LIB2ADDEHDEP): Likewise.
5255
5256 2004-05-04  Paul Brook  <paul@codesourcery.com>
5257
5258         * config/arm/crti.asm: Push an even number of registers.
5259         * config/arm/crtn.asm: And restore them.  Load via sp.
5260
5261 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
5262
5263         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
5264         Collect overhead information.
5265         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
5266         parameter and pass it through.
5267         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
5268         MEM_STAT_DECL parameter and pass it through.
5269         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
5270         MEM_STAT_DECL parameter and pass it through.
5271
5272 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5273
5274         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
5275
5276         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
5277
5278         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
5279         rs6000_hard_regno_nregs.
5280
5281 2004-05-03  Eric Christopher  <echristo@redhat.com>
5282
5283         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
5284         prologue insn instead of setting up call.
5285         (s390_emit_epilogue): Ditto.
5286         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
5287         (define_constants): Add numbers for above patterns.
5288
5289 2004-05-03  Eric Christopher  <echristo@redhat.com>
5290
5291         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
5292         * config/s390/s390.c (s390_conditional_register_usage): ...here.
5293         * config/s390/s390-protos.h: Prototype.
5294
5295 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
5296
5297         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
5298         assignment.
5299
5300 2004-05-03  Eric Christopher  <echristo@redhat.com>
5301
5302         * config/mips/mips.md: Fix branch length attribute definition.
5303
5304 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
5305
5306         * config.gcc: Remove --enable-altivec support.
5307
5308         * config/rs6000/altivec-defs.h: Remove.
5309
5310 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5311
5312         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
5313         * fixinc/fixincl.x: Regenerate.
5314
5315 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5316
5317         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
5318         definition.
5319         (log?f2, log10?f2, log2?f2): Reimplement expanders with
5320         float_truncate insn.
5321         (*fxtractsf3, *fxtractdf3): Remove insn definition.
5322         (logb?f2): Reimplement expanders with float_truncate insn.
5323
5324 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
5325
5326         PR 14718
5327         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
5328         force_type_die for CONST_DECL.
5329
5330 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5331             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5332
5333         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
5334         tm-dwarf2.h to tm_file.
5335         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
5336         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
5337         (ASM_DEBUG_SPEC): Delete.
5338
5339 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
5340
5341         * optabs.h (enum optab_index): Add new OTI_expm1.
5342         (expm1_optab): Define corresponding macro.
5343         * optabs.c (init_optabs): Initialize expm1_optab.
5344         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
5345         patterns.
5346         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
5347         using expm1_optab.
5348         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
5349         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5350
5351         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
5352         to implement expm1, expm1f and expm1l built-ins as inline x87
5353         intrinsics.
5354
5355 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5356
5357         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5358         * config/frv/frv.md (*return_true, *return_false): New patterns.
5359
5360 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5361
5362         * rtl.h (PHI_NODE_P): Remove.
5363
5364 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
5365
5366         PR middle-end/14988
5367         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
5368         when passed -2 as 'align'.
5369         (put_var_into_stack): Use 'bool' as the type for the three local
5370         predicates.  Adjust calls to put_reg_into_stack.
5371         When passed a CONCAT, instruct put_reg_into_stack to use
5372         a consecutive stack slot for the second part.
5373         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
5374         'consecutive_p' parameter.  Turn the three predicates into 'bool'
5375         parameters.  Retrieve the register mode from 'reg'.
5376         When consecutive_p is true, instruct assign_stack_local_1 to use
5377         BITS_PER_UNIT alignment.
5378         (put_addressof_into_stack): Use 'bool' as the type for the two
5379         local predicates. Adjust call to put_reg_into_stack.
5380
5381 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5382
5383         * fold-const.c (fold_convert_const, fold): Add missing
5384         FIX_ROUND_EXPR case.
5385
5386 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
5387
5388         * configure.ac (FLEX, BISON): Only use tools from the build tree
5389         if build equals host.
5390         * configure: Rebuilt.
5391
5392         * config/frv/frv-protos.h (frv_expand_epilogue,
5393         frv_expand_fdpic_call): Add bool argument.
5394         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
5395         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
5396         (frv_expand_epilogue): Use new argument to decide whether to emit
5397         return instruction or copy the return address to LR.
5398         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
5399         sibcalls.
5400         (sibcall_operand): New.
5401         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
5402         PLUS nor LABEL_REF.  Add sibcall_operand.
5403         * config/frv/frv.md (call, call_value): Pass false to
5404         frv_expand_fdpic_call.
5405         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
5406         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
5407         sibcall_value_internal, sibcall_value_fdpicdi): New.
5408         (return_unsigned_true, return_unsigned_false): New.
5409         (epilogue): Adjust call to frv_expand_epilogue.
5410         (sibcall_epilogue): New.
5411
5412         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
5413         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
5414         before redefining them.
5415
5416 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5417
5418         * builtins.c (fold_fixed_mathfn): New function.
5419         (fold_builtin_lround, fold_builtin): Use it.
5420
5421 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
5422
5423         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
5424         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
5425
5426 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5427
5428         * config/cris/cris.h: Revert my "fix comment typos" patch.
5429
5430 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
5431
5432         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
5433
5434 2004-05-01  Falk Hueffner  <falk@debian.org>
5435
5436         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
5437         builtin_insll): Disallow 0 as first input operand.
5438
5439 2004-05-01  Falk Hueffner  <falk@debian.org>
5440
5441         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
5442
5443 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
5444
5445         PR middle-end/15054
5446         * expr.c (expand_expr_real): Do not call preserve_temp_slots
5447         on a TARGET_EXPR temp.
5448         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
5449         TARGET_EXPR temp slots.
5450
5451 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
5452
5453         * simplify-rtx.c (simplify_ternary_operation): When
5454         converting an IF_THEN_ELSE to a relational op, return
5455         correct mode.
5456
5457 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5458
5459         * builtins.c (fold_builtin_round): Fix comment typo.
5460         (fold_builtin_lround): New function.
5461         (fold_builtin): Use it.
5462
5463 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
5464
5465         PR target/11608
5466         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
5467         more like the one in config/dbxelf.h.
5468
5469 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
5470
5471         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
5472         and adjust definition accordingly.
5473         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
5474         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
5475         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
5476         VECTOR_TYPE.
5477
5478 2004-04-30  Jason Merrill  <jason@redhat.com>
5479
5480         PR c++/14587
5481         * config/i386/winnt.c (associated_type): Look for attributes on
5482         the TYPE_MAIN_VARIANT of *this.
5483         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
5484         apply the attributes to the variants.
5485
5486 2004-04-30  Paul Brook  <paul@codesourcery.com>
5487
5488         * config.gcc: Simplify arm --with-{cpu,tune} test.
5489         * config/arm/arm-cores.def: Document whitespace restrictions.
5490
5491 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5492
5493         PR other/1963
5494         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
5495
5496 2004-04-30  Brian Ford  <ford@vss.fsi.com>
5497             DJ Delorie  <dj@redhat.com>
5498
5499         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5500         (DWARF2_DEBUGGING_INFO): Define to enable.
5501         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
5502         DWARF2.
5503         * configure.ac (Target-specific assembler checks)
5504         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
5505         relocs.
5506         * configure: Regenerate.
5507         * config.in: Likewise.
5508
5509         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
5510         (ASM_OUPUT_DWARF_OFFSET): Define.
5511
5512 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
5513
5514         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
5515         (s390_emit_call): New function prototype added.
5516         (s390_tls_get_offset): Function removed.
5517         * config/s390/s390.c (s390_function_ok_for_sibcall,
5518         s390_call_saved_register_used_p): New functions.
5519         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
5520         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
5521         (s390_emit_tls_call_insn): New function.
5522         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
5523         emit_call_insn.
5524         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
5525         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
5526         added.
5527         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
5528         register number used to hold the target address for sibcalls.
5529         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
5530         New expanders.
5531         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
5532         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
5533         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
5534         Expanders removed.
5535         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
5536         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
5537         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
5538         ("epilogue"): Changed the call to s390_emit_epilogue to use the
5539         new parameter.
5540
5541 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5542
5543         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
5544         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
5545         reg-stack.c, varasm.c, config/alpha/ev4.md,
5546         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
5547         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
5548         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
5549         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
5550         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
5551         config/ia64/itanium2.md, config/ip2k/ip2k.c,
5552         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
5553         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
5554         comment typos.
5555
5556 2004-04-30  Paul Brook  <paul@codesourcery.com>
5557
5558         * config.gcc: Default ep9312 to hard-float.
5559         * config/arm/arm-cores.def: Add ARCH field.
5560         * config/arm/arm.c (FL_FOR_ARCH*): Define.
5561         (arm_arch_cirrus): New variable.
5562         (all_cores): Set and use arch.
5563         (all_architectures): Ditto.
5564         (arm_arch_name): New variable.
5565         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
5566         Set and use arm_arch_cirrus.
5567         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
5568         (enum processor_type): Update ARM_CORE define.
5569         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
5570         (CPP_SPEC): Remove %(cpp_cpu_arch).
5571         (CPP_ARCH_DEFAULT_SPEC): Remove.
5572         (CPP_CPU_ARCH_SPEC): Remove.
5573         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
5574         (FPUTYPE_DEFAULT): Don't define here.
5575
5576 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
5577
5578         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
5579         updates too.
5580
5581 2004-04-30  Paul Brook  <paul@codesourcery.com>
5582
5583         * arm.c (arm_needs_doubleword_align): Use mode alignment.
5584
5585 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
5586
5587         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
5588         vec_sububs.
5589         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
5590         duplicates.
5591
5592 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5593
5594         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5595         atan2?f3 expanders.
5596
5597 2004-04-29  Nick Clifton  <nickc@redhat.com>
5598
5599         Bug 14093
5600         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5601         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5602         Delete static from definition.
5603         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5604
5605 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5606
5607         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5608         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5609         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5610         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5611
5612 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5613
5614         * commom.opt (Wfatal-errors): Add it.
5615         * diagnostic.c (flag_fatal_errors): Define it.
5616         (diagnostic_action_after_output): Check for flag_fatal_errors.
5617         * flags.h (flag_fatal_errors): Declare it.
5618         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5619         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5620
5621 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5622
5623         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5624         blocks which have kill flag set.
5625
5626 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5627
5628         * configure.ac (--with-as): Abort if user-supplied assembler
5629         cannot be executed.
5630         (--with-ld): Likewise for the linker.
5631         * configure: Regenerate.
5632
5633 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5634
5635         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5636         isn't NULL before using it.
5637
5638 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5639
5640         PR target/15189
5641         * config/mips/mips.md (load_df_low): Use default length.
5642         (load_df_high, store_df_high): Likewise.
5643
5644 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5645
5646         * config/mips/mips.md, config/mips/sb1.md,
5647         config/rs6000/rs6000.c: Fix comment typos.
5648
5649 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5650
5651         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5652         Fix comment typos.
5653
5654 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5655
5656         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5657         (delete_if_ordinary): Use above macro.
5658         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5659         Update copyright.
5660         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5661
5662 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5663
5664         * c-decl.c (get_parm_info): Use the correct tag keywords when
5665         warning about type declarations in prototypes.
5666
5667 2004-04-29  Paul Brook  <paul@codesourcery.com>
5668
5669         * config.gcc: Pull list of cores from arm-cores.def.
5670
5671 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5672
5673         * combine.c (combine_simplify_rtx): Adjust call to use
5674         simplify_relational_operation.  Do not use SELECT_CC_MODE
5675         when a comparison already has a MODE_CC mode.
5676
5677 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5678
5679         (simplify_set): simplify_relational_operation may now
5680         return another relational expression.
5681         * cse.c (fold_rtx): simplify_relational_operation now
5682         takes of computing the comparison mode.
5683         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5684         remove dead code.
5685         (do_compare_rtx_and_jump): Likewise.
5686         * integrate.c (subst_constants): simplify_relational_operation
5687         may now return another relational expression.
5688         * simplify-rtx.c (simplify_gen_relational): Move most code to
5689         the new simplify_relational_operation and
5690         simplify_relational_operation_1 functions.
5691         (simplify_relational_operation): Rewritten.
5692         (simplify_relational_operation_1): New function.
5693         (simplify_ternary_operation): simplify_relational_operation
5694         may now return another relational expression.
5695         (simplify_rtx): Remove unnecessary temp variable.
5696
5697 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5698
5699         * reg-stack.c (swap_to_top): New function.
5700         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5701         swap_to_top().
5702         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5703         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5704         UNSPEC_FSCALE_EXP.
5705
5706         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5707         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5708         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5709         x87's fscale insn.
5710         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5711         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5712         patterns.
5713
5714 2004-04-28  Serge Belyshev  <1319@bot.ru>
5715
5716         PR 14944
5717         * coverage.c (read_counts_file): Fix usage of warning () call.
5718         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5719
5720 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5721
5722         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5723         options with "-" in the option index.
5724         (SPARC Options): Likewise.
5725         (M32R/D Options): Likewise.
5726
5727 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5728
5729         * convert.c (convert_to_integer): Convert (long)round -> lround,
5730         etc.
5731
5732 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5733
5734         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5735         Return false if we do not have fp register.
5736         (addrs_ok_for_quad_peep): Rename to ...
5737         (mems_ok_for_quad_peep): this.
5738         Add check for volatile memory.
5739         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5740         Rename to ...
5741         (mems_ok_for_quad_peep): this.
5742         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5743         to peephole2's.
5744         (lfq_power2): New instruction.
5745         (stfq_power2): Likewise.
5746
5747 2004-04-28  Jan Hubicka  <jh@suse.cz>
5748
5749         PR c/15004
5750         * function.c (do_warn_unused_parameter): Break out form ...
5751         (expand_function_end): ... here; warn only when not using cgraphunit.
5752         * function.h (do_warn_unused_parameter): Declare.
5753         * cgraphunit.c: Include function.h.
5754         (cgraph_finalize_function): Do unused parameter warning.
5755         * Makefile.in (cgraphunit.o): Depend on function.h
5756
5757 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5758
5759         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5760         calling install-info on $(DESTDIR)$(infodir)/dir already being
5761         present.
5762
5763 2004-04-28  Paul Brook  <paul@codesourcery.com>
5764
5765         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5766
5767 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5768
5769         * gcse.c (find_moveable_store): Do not accept store insns with
5770         REG_EH_REGION note.
5771
5772 2004-04-28  Paul Brook  <paul@codesourcery.com>
5773
5774         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5775         * function.c (assign_temp): Ditto.
5776         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5777
5778 2004-04-28  Paul Brook  <paul@codesourcery.com>
5779
5780         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5781
5782 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5783
5784         * var-tracking.c (variable_different_p): Add a parameter
5785         compare_current_location, compare current location of variable parts
5786         if it is true.
5787         (dataflow_set_different_1): Pass compare_current_location == false.
5788         (dataflow_set_different_2): Pass compare_current_location == false.
5789         (emit_notes_for_differences_1): Pass compare_current_location == true.
5790
5791 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5792
5793         * config/s390/s390.md ("casesi"): Mark jump table access as
5794         non-trapping and unchanging.
5795
5796 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5797
5798         PR debug/14829
5799         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5800         callers.
5801         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5802         number for indexing hard_regno_nregs array.
5803
5804 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5805
5806         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5807         * config/darwin-crt2.c: Only have contents on __ppc__.
5808
5809 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5810
5811         * config/xtensa/xtensa.c (call_insn_operand): Check
5812         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5813         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5814         * config/xtensa/xtensa.md (call, call_value): Likewise.
5815
5816 2004-04-27  Wu Yongwei  <adah@sh163.net>
5817
5818         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5819         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5820         (__gthread_mutex_init_function): Replace CreateMutex with
5821         initialization of custom mutex using CreateSemaphore.
5822         (__gthread_mutex_lock): Use InterlockedIncrement.
5823         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5824         (__gthread_mutex_unlock): Use InterlockedDecrement and
5825         ReleaseSemaphore to unlock
5826         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5827         __gthread_mutex_lock, __gthread_mutex_trylock,
5828         __gthread_mutex_unlock): Adjust to match inline versions in
5829         gthr-win32.h.
5830
5831 2004-04-27  Paul Brook  <paul@codesourcery.com>
5832
5833         * config/arm/arm.c (arm_promote_prototypes): New function.
5834         (TARGET_PROMOTE_PROTOTYPES): Use it.
5835
5836 2004-04-27  Paul Brook  <paul@codesourcery.com>
5837
5838         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5839
5840 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5841
5842         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5843         correctly output .pdesc directive before .end.
5844
5845 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5846
5847         Bug 14927
5848         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5849         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5850
5851 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5852
5853         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5854         * config/pa/pa-hpux10.h: Likewise.
5855         * config/pa/pa-hpux11.h: Likewise.
5856
5857 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5858
5859         * doc/invoke.texi (Overall Options): Document default for -o
5860         for PCH files.
5861
5862 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5863
5864         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5865         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5866         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5867
5868 2004-04-26  Paul Brook  <paul@codesourcery.com>
5869
5870         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5871
5872 2004-04-26  Paul Brook  <paul@codesourcery.com>
5873
5874         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5875
5876 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5877
5878         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5879         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5880         X % -1 as 0.
5881
5882 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5883
5884         PR bootstrap/15141
5885         * except.c (connect_post_landing_pads): Delete insns after the
5886         barrier when generating a unwind_resume_libfunc call.
5887
5888 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5889
5890         PR/c++ 15119
5891         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5892         for TARGET_EXPR.
5893
5894 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5895
5896         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5897         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5898         inhibit_libc is defined.
5899
5900 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5901
5902         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5903         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5904         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5905         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5906         (mips_adjust_cost): Move later in file, next to other sched hooks.
5907         (mips_macc_chains_last_hilo): New variable.
5908         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5909         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5910         * config/mips/mips.md (may_clobber_hilo): New attribute.
5911
5912 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5913             Bruce Korb  <bkorb@gnu.org>
5914
5915         * fixinc/inclhack.def (aix_syswait_2): New fix.
5916         * fixinc/fixincl.x: Regenerate.
5917         * fixinc/tests/base/sys/wait.h: Update for new test.
5918
5919 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5920
5921         PR target/14960
5922         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5923         to non_fixed_size, and leave out fixed_size from the sum.
5924         (generate_set_vrsave): Correct clobbers.
5925         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5926         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5927         (rs6000_libcall_value): Likewise.
5928         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5929         (FUNCTION_ARG_REGNO_P): Likewise.
5930
5931 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5932
5933         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5934         is a CONST_INT.
5935         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5936         with NARROW_OP1 instead of OP1.
5937
5938 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5939
5940         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5941         and __s390x__ hosts.
5942
5943 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5944
5945         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5946         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5947         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5948         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5949         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5950         * builtins.c (expand_builtin_fork_or_exec): New.
5951         (expand_builtin): Call it.
5952         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5953         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5954         * c-common.c (PID_TYPE): New macro.
5955         (c_common_nodes_and_builtins): Initialize pid_type_node.
5956         * calls.c (special_function_p): Do not handle fork and exec.
5957         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5958         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5959         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5960         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5961         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5962         * tree.h (enum tree_index): Add TI_PID_TYPE.
5963         (pid_type_node): New macro.
5964         (ECF_FORK_OR_EXEC): Removed.
5965
5966 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5967
5968         PR optimization/13985
5969         * cfgloopmanip.c (fix_loop_placements): New prototype.
5970         Call fix_bb_placements on the preheader of loops that have
5971         been reparented.
5972         (remove_path): Adjust call to fix_loop_placements.
5973
5974 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5975
5976         * config/darwin7.h: New file.
5977         * config.gcc (*-*-darwin*): Add darwin7.h if the
5978         version is greater than 6.
5979         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5980         (MATH_LIBRARY): Wrap in ifdefs.
5981
5982 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5983
5984         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5985         loading iWMMXt registers with a frame pointer.  Use post-increment
5986         without a frame pointer.
5987         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5988
5989 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5990
5991         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5992         mode" rather than "-funit-at-a-time" since -O2 enables it
5993         without requiring -f* options.  Refer to -fprofile-generate and
5994         -fprofile-use correctly.  Move -funit-at-a-time among options
5995         enabled by -O.  Add information about unit-at-a-time caveats.
5996
5997 2004-04-22  Per Bothner  <per@bothner.com>
5998
5999         * line-map.h (struct line_maps):  New field highest_line.
6000         (linemap_position_for_column):  Make non-inline function.
6001         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6002         * line-map.c (linemap_init):  Clear highest_line field.
6003         (linemap_add):  Set highest_line field.
6004         (linemap_line_start):  Minor optimization - use highest_line field.
6005         Reduce maximum column hint to 10000.  Update highest_line field.
6006         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
6007         * cpphash.h (struct cpp_reader):  Remove line field - instead use
6008         line_table->highest_line.
6009         (saved_line):  Remove unused field.
6010         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
6011         Use  line_table's highest_line field instead of cpp_reader's line.
6012         * cpplib.c (start_directive):  Likewise use highest_line field.
6013         (do_line, do_linemarker):  Likewise just use newest map.
6014         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
6015         * cpperror.c (cpp_error):  Likewise use highest_line field.
6016         * cppfiles.c (open_file_failed:  Likewise.
6017         (cpp_make_system_header):  Likewise use newest map and highest_line.
6018         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
6019         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
6020         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
6021         _cpp_lex_direct):  Likewise use highest_line.
6022         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
6023         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
6024         and use newest map.
6025         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
6026         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
6027         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
6028
6029 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
6030
6031         PR bootstrap/14992
6032         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
6033         * config/linux.h (USE_LD_AS_NEEDED): Define.
6034         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
6035         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
6036         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
6037         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
6038         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
6039         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
6040         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
6041
6042 2004-04-22  Per Bothner  <per@bothner.com>
6043
6044         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
6045         Fixes PR preprocessor/15067.
6046
6047 2004-04-23  Andreas Schwab  <schwab@suse.de>
6048
6049         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
6050         avoid aliasing warning.
6051
6052 2004-04-22  Jan Hubicka  <jh@suse.cz>
6053             Mostafa Hagog <mustafa@il.ibm.com>
6054
6055       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
6056       * cfgloopanal.c (expected_loop_iterations): Change the return value
6057
6058 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
6059
6060         * cselib.h (struct elt_loc_list): Remove canon_loc field.
6061         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
6062         (cselib_invalidate_mem): Remove all canon_loc and canon_x
6063         traces.
6064
6065 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
6066
6067         Revert
6068         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6069
6070                 * var-tracking.c (variable_part_different_p): Variable parts
6071                 differ when the most recent locations differ.
6072
6073 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
6074
6075         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
6076         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
6077         (embedded_pic_offset): Delete.
6078         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
6079         MASK_* constants.
6080         (TARGET_EMBEDDED_PIC): Delete.
6081         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
6082         (ASM_SPEC): Remove -membedded-pic.
6083         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
6084         (ASM_OUTPUT_CASE_LABEL): Likewise.
6085         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
6086         * config/mips/windiss.h (ASM_SPEC): Likewise.
6087         * config/mips/mips.c (struct machine_function): Remove
6088         embedded_pic_fnaddr_rtx.
6089         (TARGET_ENCODE_SECTION_INFO): Remove override.
6090         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
6091         (override_options): Remove -membedded-pic handling.
6092         (print_operand): Remove handling of '%S'.
6093         (mips_select_section: Remove -membedded-pic handling.
6094         (mips_encode_section_info): Delete.
6095         (mips_output_conditional_branch): Remove mention of -membedded-pic.
6096         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
6097         -membedded-pic handling.
6098         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
6099
6100 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
6101
6102         * var-tracking.c (frame_base_decl): Remove useless GTY.
6103
6104 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
6105
6106         * config/rs6000/rs6000.c (rs6000_override_options): Error when
6107         user wants altivec and e500 instructions.
6108
6109 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6110
6111         PR target/14813
6112         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
6113         in .init_array section to ...
6114         * config/ia64/crtbegin.asm: Here.
6115
6116         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
6117         and hidden if HAVE_INITFINI_ARRAY is defined.
6118
6119 2004-04-21  James E Wilson  <wilson@specifixinc.com>
6120
6121         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
6122         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
6123         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
6124         (fp_register_operand, lo_operand): New.
6125         (mips_rtx_costs): Add TUNE_SB1 support.
6126         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
6127         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
6128         (mips_multipass_dfa_lookahead): New.
6129         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
6130         TUNE_SB1): New.
6131         (TARGET_SWITCHES): Add -mfp-exceptions support.
6132         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
6133         (BRANCH_COST): Fix whitespace.
6134         * config/mips/mips.md: Include sb1.md.
6135         * config/mips/sb1.md: New file.
6136         * doc/invoke.texi: Document -mfp-exceptions.
6137
6138         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
6139         comment.
6140         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
6141         (fixincl.o-warn): Delete.
6142
6143 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6144
6145         * config/rs6000/rs6000 (print_operand) ['z']:
6146         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
6147
6148 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
6149
6150         * config.gcc: Support --with-arch=iwmmxt for ARM.
6151
6152 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6153
6154         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
6155         in two more places; remove unneeded force_reg
6156
6157 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
6158
6159         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
6160         for TARGET_MACHO.
6161         (print_operand): For TARGET_MACHO check to see if we need a stub
6162         and output one if we need it.
6163
6164         PR debug/15033
6165         * dwarf2out.c (rtl_for_decl_location): Check for NULL
6166         rtl.
6167
6168 2004-04-20  James E Wilson  <wilson@specifixinc.com>
6169
6170         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
6171         (vall_value_gp): Likewise.
6172
6173 2004-04-20  DJ Delorie  <dj@redhat.com>
6174
6175         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
6176         variables stored in word registers, then in memory.
6177
6178 2004-04-20  Eric Christopher  <echristo@redhat.com>
6179
6180         * cp/parser.c (cp_parser_declaration): Move translate
6181         up before tokens are lexed.
6182
6183 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
6184
6185         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
6186         (asin_optab, acos_optab): Define corresponding macros.
6187         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
6188         * genopinit.c (optabs): Implement asin_optab and acos_optab
6189         using asin?f2 and acos?f2 patterns.
6190         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
6191         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
6192         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
6193         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6194
6195         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
6196         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
6197         acos, acosf and acosl built-ins as inline x87 intrinsics.
6198
6199 2004-04-20  Paul Brook  <paul@codesourcery.com>
6200
6201         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
6202
6203 2004-04-20  Paul Brook  <paul@codesourcery.com>
6204
6205         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
6206
6207 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
6208
6209         Revert part of 2004-04-17 change that moved -frename-registers
6210         to -O1.  -frename-registers is buggy.
6211
6212         * toplev.c (flag_rename_registers): Initialize to 0.
6213         * doc/invoke.texi (Optimize options): Move -frename-registers
6214         to "Not triggered by any -O level" section.  Adjust commentary
6215         accordingly.
6216
6217 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
6218
6219         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
6220
6221 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
6222
6223         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
6224         for mflo and mfhi instructions.
6225         (mips_output_move): Remove mflo and mfhi handling.
6226         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
6227         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
6228         Likewise various define_peephole2s.
6229         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
6230         alternatives.
6231         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
6232         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
6233         (mfhilo_di, mfhilo_si): New patterns.
6234
6235 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6236
6237         * function.c (assign_parms): Force
6238         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
6239
6240 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
6241
6242         * var-tracking.c (variable_part_different_p): Variable parts differ
6243         when the most recent locations differ.
6244
6245 2004-04-19  James E Wilson  <wilson@specifixinc.com>
6246
6247         * rtl.h (reg_set_last): Delete declaration.
6248         * rtlanal.c (reg_set_last): Delete.
6249
6250 2004-04-19  Roger Sayle  <roger@eyesopen.com>
6251
6252         * fold-const.c (fold_convert): Make function extern/public.
6253         * tree.h (fold_convert): Prototype here.
6254         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
6255         expand_builtin_strrchr, expand_builtin_strpbrk,
6256         expand_builtin_mempcpy, expand_builtin_bcopy,
6257         expand_builtin_bzero, expand_builtin_memcmp,
6258         expand_builtin_strcmp, expand_builtin_strncmp,
6259         stabilize_va_list, expand_builtin_sprintf,
6260         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
6261         fold_builtin_exponent, fold_builtin_mempcpy,
6262         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
6263         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
6264         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
6265
6266 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
6267
6268         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
6269         (move_from_CR_gt_bit): New.
6270         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
6271         E500.
6272         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
6273         E500.
6274
6275         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
6276         (tstsfeq_gpr): Same.
6277         (cmpsfgt_gpr): Same.
6278         (tstsfgt_gpr): Same.
6279         (cmpsflt_gpr): Same.
6280         (tstsflt_gpr): Same.
6281         (e500_cceq_ior_compare): New.
6282         (e500_flip_gt_bit): New.
6283
6284         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
6285         (print_operand): Add 'c' and 'D'.
6286         (rs6000_generate_compare): Rewrite to generate correct rtl.
6287         (rs6000_emit_sCOND): Handle E500.
6288         (output_cbranch): Adjust for changes in rs6000_generate_compare.
6289         (output_e500_flip_gt_bit): New.
6290
6291         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
6292         Protoize.
6293
6294 2004-04-19  Eric Christopher  <echristo@redhat.com>
6295
6296         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
6297
6298 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
6299
6300         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
6301         fix information.
6302
6303 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6304
6305         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
6306         download URL.
6307
6308 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
6309
6310         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
6311         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
6312
6313 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
6314
6315         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
6316         (fold_builtin): Update caller to match.
6317
6318         PR bootstrap/15009
6319         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
6320
6321         PR bootstrap/14999
6322         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
6323
6324 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6325
6326         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
6327
6328         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
6329         (expand_mult_highpart_optab): Likewise.
6330         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
6331
6332 2004-04-19  Paul Brook  <paul@codesourcery.com>
6333
6334         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
6335         floatunssisf2, floatunssidf2): New patterns.
6336
6337 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
6338
6339         PR other/14918
6340         * doc/invoke.texi (-fprofile-generate): Document requirement to
6341         use -fprofile-generate when linking.
6342
6343         * doc/extend.texi (Strong Using): Warn users against using this
6344         feature.
6345
6346 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
6347
6348         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
6349         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
6350         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
6351         * config/mips/mips.c (struct mips16_constant): Renamed from struct
6352         constant.  Propogate change throughout file.
6353         (struct machine_function): Remove insns_len.
6354         (mips_string_length, mips16_strings, string_constants): Delete.
6355         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
6356         when generating mips16 code.  Remove special mips16 treatment of
6357         string constants.
6358         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
6359         to have the form LABEL+CONSTANT.
6360         (mips_symbolic_address_p): Fix comment.
6361         (m16_usym8_4, m16_usym5_4): Delete.
6362         (mips_output_function_epilogue): Remove mips16 string handling.
6363         (mips_output_mi_thunk): Call mips16_lay_out_constants.
6364         (mips_select_section, mips_encode_section_info): Remove mips16
6365         string handling.
6366         (struct mips16_constant_pool): New.
6367         (add_constant): Take a mips16_constant_pool structure.  Keep pool
6368         sorted into order of ascending mode size.  Keep track of the highest
6369         possible start address, taking padding and the masking of the base PC
6370         value into account.
6371         (dump_constants_1): New function, split out from dump_constants.
6372         Handle vector constants.  Use gen_consttable_{int,float} rather than
6373         separate functions for each mode.
6374         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
6375         rather than separate functions for each alignment.
6376         (mips_find_symbol): Delete.
6377         (mips16_insn_length): New function, split out from
6378         mips16_lay_out_constants.
6379         (mips16_rewrite_pool_refs): New function.
6380         (mips16_lay_out_constants): Rework. Remove string handling.
6381         Always create an inline constant pool.
6382         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
6383         (UNSPEC_ALIGN): New constants.
6384         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
6385         (UNSPEC_ALIGN_[248]): Delete.
6386         (consttable_int, consttable_float, align): New patterns.
6387         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
6388
6389 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
6390
6391         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
6392         __unn_args_eq.
6393
6394 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
6395
6396         PR target/14715
6397         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
6398         with STARTING_FRAME_OFFSET.
6399
6400 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6401
6402         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
6403         * config/mips/mips.c (macc_msac_operand): New function.
6404         * config/mips/mips.md (*msac): Move after *macc.
6405         (*msac2): New.  Generalize macc-related peepholes so that they apply
6406         to msac too.
6407
6408 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
6409
6410         * opts.c (decode_options): Do not enable flag_rename_registers
6411         and flag_web at -O3.
6412         * toplev.c (flag_rename_registers): Initialize
6413         flag_rename_registers and flag_web to
6414         AUTODETECT_FLAG_VAR_TRACKING.
6415         (default_debug_hooks): New global.
6416         (process_options): Initialize default_debug_hooks.  Warn if
6417         -fvar-tracking specified but not supported by the current
6418         debug format.  Do not run var tracking at -O0 or if not
6419         supported by the current debug format, even if
6420         -fvar-tracking was given.  If -fno-rename-registers
6421         is not specified, always run register renaming if var
6422         tracking is supported by the default debugging information
6423         format for the target, and we are at -O1 or higher; similarly
6424         for -fweb, but only at -O2 or higher.
6425         * doc/invoke.texi (Optimize Options): Document this.
6426
6427 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6428
6429         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
6430         * configure: Regenerate.
6431
6432 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
6433
6434         * gcc.c (used_arg): Check whether an option has been removed.
6435
6436 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6437
6438         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
6439         debugging on Solaris 7 and up.
6440
6441 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6442
6443         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
6444         IRIX 5 port.
6445         Remove -save-temps workaround, handled automatically.
6446         Require GNU binutils 2.15 for debugging.
6447         Remove SGI make warnings since GNU make is now required.
6448         (Specific, mips-sgi-irix6): Some markup fixes.
6449         Describe MIPSpro C problems and workarounds.
6450         Mention working O32 ABI support.
6451         Recommend GNU as 2.15 for O32 with debugging.
6452         Remove description of fixed structure pass/return bug.
6453
6454 2004-04-16  DJ Delorie  <dj@redhat.com>
6455
6456         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
6457         TYPE_FIELDS.
6458         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
6459
6460 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6461
6462         * pa.md: Remove unnecessary declarations for asm_out_file.
6463
6464         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
6465         SAR register.  Fix comment.
6466         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
6467         (%cr11).
6468
6469         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
6470
6471 2004-04-16  Nick Clifton  <nickc@redhat.com>
6472
6473         * config/arm/arm.c (arm_override_options): Revert previous patch.
6474         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
6475         be safely built.
6476
6477 2004-04-16  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
6478
6479         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
6480         bug.
6481         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
6482         TARGET_DEFAULT): Changed. Ditto.
6483         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
6484         TARGET_ENDIAN_DEFAULT): Added. Ditto.
6485         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
6486         (TARGET_ENDIAN_DEFAULT): Added.
6487
6488 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6489
6490         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
6491         ATTR_CONST_NOTHROW_LIST.
6492
6493 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6494
6495         PR/middle-end 14915
6496         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
6497         BITS_BIG_ENDIAN.
6498
6499 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
6500
6501         * ra-debug.c (ra_print_rtx): Add break's to case legs.
6502
6503 2004-04-14  James E Wilson  <wilson@specifixinc.com>
6504
6505         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
6506
6507 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
6508
6509         * libada-mk.in: New file.
6510         * configure.ac: Create libada-mk from libada-mk.in.
6511         * configure: Regenerate.
6512
6513 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
6514
6515         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
6516         (logb_optab, ilogb_optab): Define corresponding macros.
6517         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
6518         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
6519         using logb?f2 and ilogb?i2 patterns.
6520         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
6521         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
6522         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
6523         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6524
6525         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
6526         and UNSPEC_XTRACT_EXP.
6527
6528         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
6529         patterns to implement fxtract x87 instruction.
6530         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
6531         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
6532         intrinsics.
6533         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
6534         x87's fxtract insn.
6535
6536 2004-04-14  Eric Christopher  <echristo@redhat.com>
6537
6538         * config/mips/t-elf: Enable multilibs by default.
6539
6540 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
6541
6542         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
6543         previous fix to check HAVE_return at runtime too.
6544
6545 2004-04-14  Nick Clifton  <nickc@redhat.com>
6546
6547         * config/arm/arm.c (arm_override_options): If the user has not
6548         specified an ABI, then default to AAPCS for the iWMMXt processor.
6549         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
6550         * config/arm/t-xscale-coff: Likewise.
6551
6552 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6553
6554         * builtins.c (fold_builtin_isdigit): New.
6555         (fold_builtin): Handle BUILT_IN_ISDIGIT.
6556         * defaults.h: Add TARGET_DIGIT0 and sort.
6557         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
6558
6559 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6560
6561         * builtins.c (fold_builtin_cabs, fold_builtin): Use
6562         `mathfn_built_in' to determine the new builtin.
6563         * fold-const.c (fold): Likewise.
6564
6565 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
6566
6567         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
6568         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
6569         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
6570         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
6571         (ASM_SPEC): Update accordingly.
6572         * config/mips/mips.c: Update after above renaming.
6573         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
6574         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
6575
6576 2004-04-13  James E Wilson  <wilson@specifixinc.com>
6577
6578         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
6579         increment errorcount and return false instead of true.
6580
6581 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
6582
6583         * optabs.c (expand_twoval_unop): Reorder function arguments.
6584         * builtins.c (expand_builtin_mathfn_3): Update calls to
6585         expand_twoval_unop.
6586
6587         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
6588         and UNSPEC_TAN_TAN. Add missing comment.
6589
6590         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
6591         patterns to implement fptan x87 instruction.
6592         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6593         and tanl built-ins as inline x87 intrinsics. Define corresponding
6594         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6595         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6596         x87's fptan insn.
6597
6598 2004-03-13  Richard Henderson  <rth@redhat.com>
6599
6600         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6601         for LABEL_REFs.
6602
6603         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6604         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6605         * doc/invoke.texi: Update to match.
6606
6607         * varasm.c (unlikely_text_section): Use assemble_align instead of
6608         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6609         correct alignment argument.
6610
6611 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6612
6613         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6614         after setting reg_last_reload_reg for optional output reloads.
6615
6616 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6617
6618         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6619         Definition of these two macros are corrected by adding
6620         matchine right paren.
6621
6622 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6623
6624         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6625
6626 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6627
6628         * config/i386/i386.c (output_387_reg_move): New function.
6629         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6630         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6631         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6632         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6633         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6634
6635 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6636
6637         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6638         TYPE_DECL.
6639         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6640         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6641         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6642         Use skip_simple_arithmetic to find SAVE_EXPR.
6643         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6644         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6645         Properly chain multiple pointers.
6646         (copy_tree_r): Copy a TYPE_DECL.
6647         * tree.c (variably_modified_type_p): Add some missing tests and
6648         make some other minor changes.
6649         * tree.h (force_type_save_exprs): New declaration.
6650
6651 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6652
6653         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6654         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6655         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6656         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6657         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6658         x%-1 into 0 (or x&0 if x has side-effects).
6659
6660 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6661
6662         * config/rs6000/rs6000.md: Document why a pattern is not
6663         available.
6664
6665         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6666         of floats on the E500.
6667         (branch_positive_comparison_operator): Do not allow NE even on the
6668         E500.
6669
6670 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6671
6672         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6673         in_text_unlikely_section to in_unlikely_text_section.
6674
6675 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6676
6677         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6678         calling convention to allow a NULL_TREE to be returned.  Factor
6679         sanity checks from callers, return NULL_TREE when appropriate.
6680         (fold): Handle COMPOUND_EXPR operands of binary expressions
6681         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6682         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6683         calls to fold_binary_op_with_conditional_arg.
6684
6685 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6686
6687         * config/mips/iris5.h (current_section_flags):  Add
6688         in_unlikely_executed_text and default case.
6689
6690 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6691
6692         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6693         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6694         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6695         HAVE_return and place it around the place where it is needed.
6696
6697 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6698
6699         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6700         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6701         and NORMAL_TEXT_SECTION_NAME.
6702         (unlikely_text_section): Check targetm.have_named_sections
6703         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6704         instead of SECTION_FORMAT_STRING.
6705         * config/mips/iris5.h (current_section_name): Add
6706         in_unlikely_executed_text case and move the abort into the switch.
6707         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6708         (NORMAL_TEXT_SECTION_NAME): Remove.
6709         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6710         (SECTION_FORMAT_STRING): Remove.
6711         * defaults.h (SECTION_FORMAT_STRING): Remove.
6712         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6713         (SECTION_FORMAT_STRING): Remove.
6714
6715 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6716
6717         * c-typeck.c (common_type): Prefer long long to long when same
6718         precision.
6719
6720 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6721
6722         PR 14887
6723         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6724         mode argument.
6725         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6726         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6727
6728 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6729
6730         * simplify-rtx.c (mode_signbit_p): New function to check whether
6731         an RTX is an immediate constant that represents the most significant
6732         bit of a given machine mode.
6733         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6734         C is the sign bit.
6735         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6736         when C2 is the sign bit.
6737         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6738         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6739         sign bit.
6740
6741 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6742
6743         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6744         TYPE_MODE.
6745
6746 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6747
6748         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6749         of TREE_READONLY for types.
6750
6751 2004-04-09  Caroline Tice  <ctice@apple.com>
6752
6753         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6754         (struct basic_block_def):  Add new field, partition.
6755         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6756         definitions.
6757         (partition_hot_cold_basic_blocks): Add extern function
6758         declaration.
6759         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6760         include statements.
6761         (N_ROUNDS): Increase the maximum number of rounds by 1.
6762         (branch_threshold): Add array value for new round.
6763         (exec_threshold): Add array value for new round.
6764         (push_to_next_round_p): New function.
6765         (add_unlikely_executed_notes): New function.
6766         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6767         (mark_bb_for_unlikely_executed_section): New function.
6768         (add_labels_and_missing_jumps): New function.
6769         (add_reg_crossing_jump_notes): New function.
6770         (fix_up_fall_thru_edges): New function.
6771         (find_jump_block): New function.
6772         (fix_crossing_conditional_branches): New function.
6773         (fix_crossing_unconditional_branches): New function.
6774         (fix_edges_for_rarely_executed_code): New function.
6775         (partition_hot_cold_basic_blocks): New function.
6776         (find_traces):  Add an extra round for partitioning hot/cold
6777         basic blocks.
6778         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6779         and only cold blocks, into the last (extra) round of collecting traces.
6780         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6781         over crossing edges.
6782         (bb_to_key):  Add code to correctly identify cold blocks when
6783         doing partitioning.
6784         (connect_traces): Modify to connect all the non-cold traces first, then
6785         go back and connect up all the cold traces.
6786         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6787         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6788         entry and exit blocks.
6789         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6790         if we are doing hot/cold partitioning.
6791         * cfgcleanup.c (cfglayout.h): Add new include statement.
6792         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6793         that cross section boundaries.
6794         (try_forward_edges): Likewise.
6795         (merge_blocks_move_predecessor_nojumps): Likewise.
6796         (merge_blocks_move_successor_nojumps): Likewise.
6797         (merge_blocks_move): Likewise.
6798         (try_crossjump_to_edge): Modify to not attempt after we have done
6799         the block partitioning.
6800         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6801         cross section boundaries.
6802         (try_optimize_cfg): Likewise.
6803         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6804         jumps that cross section boundaries.
6805         * cfglayout.c (flags.h): Add new include statement.
6806         (update_unlikely_executed_notes):  New function.
6807         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6808         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6809         updated appropriately.
6810         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6811         introduced by this optimization.
6812         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6813         extern function declaration.
6814         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6815         list of notes that can be deleted.
6816         (create_basic_block_structure):  Add initialization for partition field.
6817         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6818         section boundaries.
6819         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6820         cross section boundaries.
6821         (commit_one_edge_insertion): Add code so newly created basic block
6822         ends up in correct (hot or cold) section.  Modify to disallow
6823         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6824         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6825         crosses section boundaries.
6826         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6827         cross section boundaries.
6828         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6829         ends up in correct section, with correct notes attached.
6830         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6831         optimization.
6832         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6833         the end of functions are written into the correct (hot or cold)
6834         section.
6835         (dbx_source_file): Add code so writing debug file information
6836         doesn't incorrectly change sections.
6837         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6838         in partitioning hot/cold basic blocks into separate sections.
6839         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6840         section partitioning.
6841         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6842         conditional branches can span all of memory.
6843         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6844         unconditional branches can span all of memory.
6845         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6846         (final_scan_insn):  Add code to check for NOTE instruction indicating
6847         whether basic block belongs in hot or cold section, and to make sure
6848         the current basic block is being written to the appropriate section.
6849         Also added code to ensure that jump table basic blocks end up in the
6850         correct section.
6851         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6852         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6853         one of the branches has a jump that crosses between sections.
6854         (find_if_case_2): Likewise.
6855         (ifcvt): Modify to not attempt to mark loop exit edges after
6856         hot/cold partitioning has occurred.
6857         * opts.c (decode_options): Code to handle new flag,
6858         flag_reorder_blocks_and_partition; also to turn it off if
6859         flag_exceptions is on.
6860         (common_handle_option): Code to handle new flag,
6861         flag_reorder_blocks_and_partition.
6862         * output.h (unlikely_text_section): New extern function declaration.
6863         (in_unlikely_text_section): New extern function declaration.
6864         * passes.c (rest_of_handle_stack_regs):  Add
6865         flag_reorder_blocks_and_partition as an 'or' condition for calling
6866         reorder_basic_blocks.
6867         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6868         as an 'or' condition for calling reorder_basic_blocks.
6869         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6870         * print-rtl.c (print_rtx): Add code for handling new note,
6871         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6872         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6873         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6874         cross between section boundaries.
6875         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6876         indicating the basic block containing it belongs in the cold section.
6877         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6878         between hot and cold sections.
6879         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6880         initialize this flag, and to tie it to the command-line option
6881         freorder-blocks-and-partition.
6882         * varasm.c (cfglayout.h):  Add new include statement.
6883         (unlikely_section_label_printed):  New global variable, used for
6884         determining when to output section name labels for cold sections.
6885         (in_section):  Add in_unlikely_executed_text to enum data structure.
6886         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6887         NORMAL_TEXT_SECTION_NAME macros.
6888         (unlikely_text_section):  New function.
6889         (in_unlikely_text_section):  New function.
6890         (function_section):  Add code to make sure beginning of function is
6891         written into correct section (hot or cold).
6892         (assemble_start_function):  Add code to make sure stuff is written to
6893         the correct section.
6894         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6895         to an if statement that was checking 'in_text_section'.
6896         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6897         condition to an if statement that was checking 'in_text_section'.
6898         (default_section_type_flags_1):  Add check: if in cold section
6899         flags = SECTION_CODE.
6900         * config/darwin.c (darwin_asm_named_section):  Modify to use
6901         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6902         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6903         specifically for the i386.
6904         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6905         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6906         text string to something more informative.
6907         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6908         (SECTION_FORMAT_STRING):  Add new definition.
6909         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6910         '!in_unlikely_text_section' as an 'and' condition to an if statement
6911         that was already checking '!in_text_section'.
6912         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6913         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6914         sure these are properly defined for linux on ppc.
6915         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6916         for this new flag.
6917         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6918         reg_note.
6919         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6920         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6921         these new macros.
6922
6923 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6924
6925         * function.c (gen_mem_addressof): When changing the RTX from a REG
6926         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6927
6928 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6929
6930         PR target/14888
6931         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6932         truncxfdf2_noop): Provide dummy "fmov" implementations.
6933
6934 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6935
6936         * gcc.c (default_compilers): Add missing initializers.
6937
6938         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6939         Return 1 if file was successfully mapped.
6940
6941 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6942
6943         PR pch/13419
6944         PR pch/14137
6945         Radar #: 3315288
6946         * doc/invoke.texi (Precompiled Headers): Suggest -o
6947         to put an output file in a particular place.  Be more detailed
6948         about which options affect PCH validity and which options
6949         might not work.
6950         * c-pch.c (pch_matching): New.
6951         (MATCH_SIZE): New.
6952         (struct c_pch_validity): New field 'match'.
6953         (pch_init): Handle pch_matching.
6954         (c_common_valid_pch): Check pch_matching.
6955
6956         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6957
6958 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6959
6960         * doc/invoke.texi (Precompiled Headers): Warn about known
6961         problems.
6962
6963 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6964
6965         PR c++/14808
6966         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6967         to 1 if ASM_OUTPUT_DEF is defined.
6968         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6969         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6970         Set to non-zero iff not a one_only decl.
6971
6972 2004-04-08  Paul Brook  <paul@codesourcery.com>
6973
6974         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6975
6976 2004-04-08  Paul Brook  <paul@codesourcery.com>
6977
6978         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6979         PROMOTE_FOR_CALL_ONLY.
6980         * config/arm/arm-protos.h (arm_function_value): Declare.
6981         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6982         (TARGET_PROMOTE_PROTOTYPES): Return false.
6983         (arm_function_value): New function.
6984         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6985         (FUNCTION_VALUE): Call arm_function_value.
6986         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6987         (PROMOTE_FUNCTION_MODE): ... to this.
6988         (PROMOTE_FOR_CALL_ONLY): Remove.
6989         * config/mmix/mmix.h: Likewise.
6990         * config/s390/s390.h: Likewise.
6991         * config/sparc/sparc.h: Likewise.
6992         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6993         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6994         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6995         (PROMOTE_FOR_CALL_ONLY): Remove.
6996
6997 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6998
6999         PR ada/14538
7000         * ada/5rosinte.adb: Remove fake mprotect() body.
7001         * ada/5rosinte.ads: Add SA_SIGINFO.
7002         * ada/5rtpopsp.adb: Rewrite to use new interface.
7003         * ada/init.c: Reorder so the simple single OS conditional __rtems__
7004         is tested before more complex ones which mix UNIX and embedded
7005         systems in the conditional.
7006
7007 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
7008
7009         PR ada/14665
7010         * ada/osint.adb (Find_Program_Name): Rework to properly handle
7011         filenames which end in .exe or have versioning suffixes like VMS.
7012
7013 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
7014
7015         PR target/10129
7016         * config/darwin.c (darwin_encode_section_info): When the decl has
7017         a DECL_INITIAL, it is only defined also when it is not a common.
7018
7019 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7020
7021         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
7022         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
7023
7024 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
7025
7026         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
7027         global register variables.
7028
7029 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
7030
7031         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
7032         rpc_xdr_lvalue_cast_b): New fixes.
7033         * fixinc/fixincl.x: Regenerate.
7034         * fixinc/tests/base/rpc/xdr.h: Add new tests.
7035
7036 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
7037
7038         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
7039         to power4 and power5 entries.
7040
7041 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
7042
7043         * c-common.h (pending_lang_change): Mark for PCH.
7044
7045 2004-04-07  Caroline Tice  <ctice@apple.com>
7046
7047         * gcc.c (main): Move 'break' in main loops (on an error)
7048         to wait until error processing has occurred.
7049
7050 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
7051
7052         * config.gcc: Stop changing enable_threads midstream.
7053         Replace uses of enable_threads_flag with enable_threads.
7054         * configure.ac: Replace uses of enable_threads_flag with
7055         enable_threads.  Improve autoconf quotation in one place.
7056         * configure: Regenerate.
7057
7058 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
7059
7060         * builtins.c: Implement support for sincos function.
7061         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
7062         BUILT_IN_COS{,F,L}.
7063         (expand_builtin_mathfn_3): New function.
7064         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
7065         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
7066         flag_unsafe_math_optimization is set.
7067
7068         * optabs.h (enum optab_index): Add new OTI_sincos.
7069         (sincos_optab): Define corresponding macro.
7070
7071         * optabs.c (init_optabs): Initialize sincos_optab.
7072         (expand_twoval_unop): New function.
7073
7074         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
7075         patterns.
7076
7077         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
7078         and UNSPEC_SINCOS_SIN.
7079
7080         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
7081         sincosxf3): New patterns to implement sincos, sincosf and sincosl
7082         built-ins as inline x87 intrinsics. Define splits for
7083         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
7084         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
7085         sincos patterns.
7086         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
7087         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
7088
7089         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
7090         x87's fsincos insn.
7091
7092 2004-04-06  Devang Patel  <dpatel@apple.com>
7093
7094         PR 14467
7095         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
7096
7097 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7098
7099         * doc/install.texi: Update HP-UX 11 installation procedure.
7100
7101 2004-04-06  Paul Brook  <paul@codesourcery.com>
7102
7103         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
7104
7105 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7106
7107         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
7108         when the TLS address is generated by a function call.
7109         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
7110         (tls_local_dynamic): Likewise.
7111
7112 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
7113
7114         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
7115         and TYPE_VOLATILE.
7116
7117 2004-04-05  Caroline Tice  <ctice@apple.com>
7118
7119         * gcc.c (combine_flag): New global variable, for new driver option.
7120         (struct compiler): Add two new fields, to be used when
7121         combining multiple input files in a single pass (IMA).
7122         (default_compilers):  Add values for the new fields to all
7123         compiler entries. Modify the "@c" compiler entry for doing IMA
7124         properly with "-save-temps" and the "combine" flag.
7125         (option_map):  Add new driver option, "--combine", to tell driver
7126         to pass multiple input files to compiler at one time.
7127         (have_o_argbuf_index): New global variable.
7128         (store_arg): Modify to assign value to have_o_argbuf_index.
7129         (struct infile):  Add three new fields, to help with IMA.
7130         (display_help): Add help for new "combine" option.
7131         (process_command): Remove local variable have_o; add code to check
7132         for new "combine" option; remove assignment to combine_inputs.
7133         (do_spec_1):  Modify to deal with IMA better.
7134         (main): Make variable 'lang_n_infiles' local to entire function
7135         rather than to a single block.  Use flag combine_flag to
7136         determine whether to do IMA or not; Modify loop initializing
7137         infiles to deal properly with linker files.
7138         Add code for doing preprocessing in presence of
7139         IMA with "-save-temps" flag.  Modify "main" loop to handle
7140         multiple input files, in multiple languages, with or without
7141         preprocessing,  gracefully.
7142         * toplev.c (set_src_pwd): Modify to not complain if attempting to
7143         re-set it to same directory it's previously been set to (avoid
7144         irritating, meaningless warning messages when doing IMA with
7145         save-temps).
7146         * doc/invoke.texi: Add "-combine" to list of Overall Options;
7147         remove documentation about IMA that is no longer accurate; Add
7148         documentation explaining what "-combine" does.
7149         * ada/lang-specs.h: Add initialization values for new fields in
7150         "struct compiler".
7151         * cp/lang-specs.h: Likewise.
7152         * f/lang-specs.h: Likewise.
7153         * java/lang-specs.h: Likewise.
7154         * objc/lang-specs.h: Likewise.
7155         * treelang/lang-specs.h: Likewise.
7156
7157 2004-04-05  David Edelsohn
7158
7159         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
7160         symbol handling.
7161
7162 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
7163             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7164
7165         PR optimization/13424 (hppa), bootstrap/14462, c/14828
7166         * pa.md: Use replace_equiv_address to retain the attributes of the
7167         memory operands used in the split and peephole2 patterns for optimizing
7168         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
7169
7170 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7171
7172         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
7173         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7174         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
7175         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
7176         PARM_DECL.
7177         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
7178         for a type.
7179         * print-tree.c (print_node): Properly handle side-effects, readonly,
7180         and constant flags.
7181         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
7182         and TREE_CONSTANT if not a type.
7183         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
7184         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
7185         (NON_TYPE_CHECK): New macro.
7186         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
7187
7188 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7189
7190         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
7191         to DWARF2_DEBUG unconditionally.
7192         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
7193
7194 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
7195             Nathanael Nerode  <neroden@gcc.gnu.org>
7196
7197         PR target/14548
7198         * config.host: Set the shell variable host_can_use_collect2.
7199         Set it to yes by default, and to no for alpha*-dec-*vms*,
7200         i[34567]86-*-mingw32*, and powerpc-*-beos*.
7201         * configure.ac: Set and substitute the shell variable collect2.
7202         Give an error if use_collect2 is yes and host_can_use_collect2 is
7203         no.
7204         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
7205         uses.  Initialize to @collect2@.
7206         (STAGESTUFF): Remove $(USE_COLLECT2).
7207         * config/alpha/x-vms (USE_COLLECT2): Don't set.
7208         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
7209         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
7210         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
7211         * configure: Regenerate.
7212
7213 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7214
7215         * simplify-rtx.c (simplify_binary_operation): Constant fold
7216         DIV, MOD, UDIV and UMOD using div_and_round_double.
7217
7218 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7219
7220         PR c++/14804
7221         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
7222         RECORD_TYPEs.
7223
7224 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
7225
7226         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
7227         documentation.
7228
7229 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7230
7231         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
7232         updating the REG_EQUAL note on an insn's libcall_insn.
7233
7234 2004-04-04  Roger Sayle  <roger@eyesopen.com>
7235
7236         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
7237
7238 2004-04-03  Roger Sayle  <roger@eyesopen.com>
7239
7240         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
7241         with reorder_operands_p.
7242
7243 2004-04-03  Jan Hubicka  <jh@suse.cz>
7244
7245         * md.texi (vec_set, vec_extract, vec_init): Document.
7246
7247 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
7248
7249        * opts.c (decode_options): Do function inlining with very small
7250        max-inline-insns-* parameters when optimizing for size.
7251
7252 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
7253
7254         * config/i386/i386.h (TARGET_NOCONA): New macro.
7255         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
7256         (processor_type): Add PROCESSOR_NOCONA.
7257
7258         * config/i386/i386.md (cpu): Add nocona to the attribute values.
7259
7260         * config/i386/i386.c (nocona_cost): New variable.
7261         (m_NOCONA): New macro.
7262         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7263         x86_branch_hints, x86_use_sahf, x86_single_stringop,
7264         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
7265         x86_integer_DFmode_moves, x86_partial_reg_dependency,
7266         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
7267         x86_decompose_lea, x86_arch_always_fancy_math_387,
7268         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
7269         x86_ext_80387_constants, x86_four_jump_limit):
7270         (override_options): Add nocona_cost to processor_target_table.
7271         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
7272         (incdec_operand): Prevent inc/dec generation for Nocona too.
7273         (ix86_issue_rate): Add PROCESSOR_NOCONA.
7274
7275 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
7276
7277         * rtlanal.c (find_reg_note): Manually
7278         unswitch the loop.
7279
7280 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
7281
7282         * genemit.c (gen_split): Change prototype of generated code.
7283         * genrecog.c (write_action): Adjust prototype for and calls to
7284         gen_split_*.
7285         * gensupport.c (struct queue_elem): Add split field.
7286         (queue_pattern): Return a value.  Clear the split field.
7287         (process_rtx): Maintain an association between an insn and the
7288         split generated from it for a define_insn_and_split.
7289         (process_one_cond_exec): Generate a new split for a
7290         define_insn_and_split.
7291         * config/arm/arm-protos.h (arm_split_constant): Add insn
7292         parameter.
7293         (emit_constant_insn): New function.
7294         (arm_gen_constant): Use it.
7295         * config/arm/arm.md: Adjust calls to arm_split_constant.
7296
7297 2004-04-02  Jan Hubicka  <jh@suse.cz>
7298
7299         * cgraph.c: Add overall comment.
7300         (cgraph_inline_hash): New global variable.
7301         (cgraph_create_node): Break out from ...
7302         (cgraph_node): ... here.
7303         (cgraph_edge): New function.
7304         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
7305         (cgraph_remove_edge): Accept edge, intead of source and destination.
7306         (cgraph_redirect_edge_callee): New.
7307         (cgraph_remove_node): Update all new datastructures.
7308         (cgraph_record_call, cgraph_remove_call): Kill.
7309         (dump_cgraph_node): Break out from ... ; dump new datastructures.
7310         (dump_cgraph): ... here.
7311         (cgraph_function_possibly_inlined_p): Use new hashtable.
7312         (cgraph_clone_edge, cgraph_clone_node): New.
7313         * cgraph.h: Include hashtab.h
7314         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
7315         fields, add inlined_to pointer.
7316         (cgraph_node): Add pointer to next_clone.
7317         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
7318         (cgraph_remove_call, cgraph_record_call): Kill.
7319         (cgraph_inline_hash): Declare.
7320         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
7321         cgraph_redirect_edge_callee): Declare.
7322         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
7323         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
7324         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
7325         * cgraphunit.c: Add overall comment.
7326         (cgraph_optimize_function): Kill.
7327         (cgraph_assemble_pending_functions): Do not assemble inline clones.
7328         (cgraph_finalize_function): Update call of cgraph_remove_node
7329         (record_call_1): Record call sites.
7330         (cgraph_create_edges): Accept node instead of decl argument.
7331         (error_found): New static variable.
7332         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
7333         (cgraph_analyze_function): Update for new datastructures.
7334         (cgraph_finalize_compilation_unit): Plug memory leak.
7335         (cgraph_optimize_function): Kill.
7336         (cgraph_expand_function): Do not use cgraph_optimize_function.
7337         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
7338         cgraph_inlined_callees): Kill.
7339         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
7340         clones.
7341         (estimate_growth): Simplify.
7342         (cgraph_clone_inlined_nodes): New function.
7343         (cgraph_mark_inline_edge): Re-implement.
7344         (cgraph_mark_inline): Likewise.
7345         (cgraph_check_inline_limits): Simplify.
7346         (cgraph_recursive_inlining_p): New.
7347         (update_callee_keys): Break out from ...
7348         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
7349         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
7350         Likewise.
7351         (cgraph_expand_all_functions):  Remove inline clones from the ordered
7352         list.
7353         (cgraph_preserve_function_body_p): New predicate.
7354         (cgraph_optimize): Verify cgraph.
7355         * function.h (struct function): Add fields saved_tree/saved_args.
7356         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
7357         * toplev.c (rest_of_compilation): Do not free cfun.
7358         * tree-inline.c: Include function.h
7359         (struct inline_data): Add saving_p field; replace decl/current_decl by
7360         node/current_node.
7361         (insert_decl_map): New function.
7362         (copy_body_r): Handle saving; update cgraph datastructure.
7363         (copy_body): Handle recursive inlining.
7364         (initialize_inlined_parameters): Likewise.
7365         (expand_call_inline): Propagate node attributes; update cgraph.
7366         (optimize_inline_calls): Verify that datastructure still match.
7367         (save_body): New function.
7368         * tree-inline.h (save_body): New.
7369         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
7370         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
7371         * langhooks.c (lang_hooks): Add update_decl_after_saving.
7372
7373 2004-04-01  Serge Belyshev  <1319@bot.ru>
7374
7375         PR target/14702
7376         * config/i386/i386.md: fix source operand constraints in
7377         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
7378
7379 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7380
7381         * fold-const.c (folda): Preserve types of comparisons.
7382
7383 2004-04-01  Richard Henderson  <rth@redhat.com>
7384
7385         * toplev.c (backend_init): Move init_optimization_passes call ...
7386         (lang_dependent_init): ... here.
7387
7388 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
7389             Jakub Jelinek  <jakub@redhat.com>
7390
7391         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
7392         -lgcc --as-needed -lgcc_s --no-as-needed by default.
7393         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
7394         * configure: Rebuilt.
7395         * config.in: Rebuilt.
7396         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
7397         (stage2-start, stage3-start, stage4-start): Likewise.
7398         (stageprofile-start, stagefeedback-start): Likewise.
7399
7400 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7401
7402         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
7403         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7404         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7405         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
7406         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
7407         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
7408         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
7409         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
7410         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
7411         * config/sparc/t-linux: Removed.
7412
7413 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
7414
7415         PR c++/14755
7416         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
7417         "bitfld++ == const" to "++bitfld == const + incr" transformations.
7418
7419 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7420
7421         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
7422         * stor-layout.c (layout_decl): Likewise.
7423         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
7424         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
7425         * print-tree.c (print_node): Handle various used of unsigned_flag.
7426         * tree.def (BIT_FIELD_REF): Update comment.
7427         * tree.h (TREE_UNSIGNED): Deleted.
7428         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
7429
7430 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7431
7432         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
7433         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
7434         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
7435         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
7436         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
7437         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
7438         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
7439         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
7440         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
7441         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
7442         REAL_TYPE, not INTEGER_TYPE.
7443         (layout_type, case VECTOR_TYPE): Simplify code.
7444         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
7445         * tree.h: Update comments.
7446         (STRIP_NOPS): Use TYPE_UNSIGNED.
7447         (TYPE_UNSIGNED): New macro.
7448         (TYPE_TRAP_SIGNED): Remove now redundant check.
7449         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
7450
7451 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7452
7453         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
7454
7455 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
7456
7457         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
7458         Add darwin-fpsave.asm, darwin-vecsave.asm,
7459         and darwin-world.asm.
7460         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
7461         as the asm files contain altivec instructions.
7462         * config/rs6000/darwin-fpsave.asm: New file.
7463         * config/rs6000/darwin-vecsave.asm: New file.
7464         * config/rs6000/darwin-world.asm: New file.
7465
7466 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
7467
7468         * gengtype-yacc.y (option, stringseq): Add missing
7469         terminating semicolon.
7470
7471 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
7472
7473         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
7474         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
7475         tls_dtprel_ha_32, tls_dtprel_ha_64,
7476         tls_dtprel_lo_32, tls_dtprel_lo_64,
7477         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
7478         tls_tprel_ha_32, tls_tprel_ha_64,
7479         tls_tprel_lo_32, tls_tprel_lo_64,
7480         tls_got_tprel_32, tls_got_tprel_64,
7481         tls_tls_32, tls_tls_64): Replace register_operand with
7482         gpc_reg_operand.
7483
7484 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
7485
7486         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
7487         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
7488         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
7489         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
7490         *ctrdi_internal6): Replace register_operand with
7491         nonimmediate_operand.
7492
7493 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
7494
7495         * fold-const.c (fold): Reassociate multiply expression
7496         with an adjacent non-multiply expression to use
7497         architecture's multiply-add instruction.
7498
7499 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
7500
7501         * gengtype.c (create_option): New function.
7502         * gengtype.h: Prototype it.
7503         * gengtype-yacc.y (stringseq): New rule.
7504         (option): Use create_option.  Add new bare ID production.  Use
7505         stringseq, not STRING directly.
7506
7507         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
7508         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
7509         * varray.h, config/alpha/alpha.c:
7510         Use new shorter form of GTY markers.
7511
7512         * doc/gty.texi: Rewrite.
7513
7514 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
7515
7516         * config/darwin.c (machopic_function_base_name):
7517         Remove current_name and getting the name of the
7518         current function.
7519
7520 2004-03-30  Nick Clifton  <nickc@redhat.com>
7521
7522         * config/arm/arm.md (thumb_jump): Reduce the backward branch
7523         range, and increase the forward branch range, to allow for
7524         the fact that the PC will be off by 4.
7525
7526 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
7527
7528         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
7529
7530 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7531
7532         * config/rs6000/rs6000.c (output_vec_const_move):
7533         Find all cases of EASY_VECTOR_15_ADD_SELF.
7534         (easy_vector_constant_add_self): Accept
7535         all vector constant loadable by vsplt* and vadd*.
7536         (easy_vector_same): Use easy_vector_splat_const.
7537         (easy_vector_const): Use easy_vector_splat_const.
7538         (easy_vector_splat_const): New function.
7539         (gen_easy_vector_constant_add_self): New function.
7540
7541         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
7542         New prototype.
7543
7544         * config/rs6000/altivec.md (movv4si splitter): Change to
7545         emit move insn with halfed vector constant.
7546         (*movv8hi splitter): Likewise.
7547         (*movv16qi splitter): Likewise.
7548
7549 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
7550
7551         PR 11591
7552         * config/rs6000/rs6000.c (rs6000_legitimate_address):
7553         Allow any offset to argument pointer in no-strict case.
7554
7555 2004-03-30  Jan Hubicka  <jh@suse.cz>
7556
7557         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
7558         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
7559         dump file in non-unit-at-a-time mode.
7560
7561 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
7562
7563         * config/cris/cris.h: Correct #ifdef to test for
7564         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
7565         HAVE_AS_MUL_BUG_ABORT_OPTION.
7566
7567 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7568
7569         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
7570         the address inside the old RTL.
7571
7572 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
7573
7574         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
7575         (struct c_binding, struct c_scope): Add chain_next
7576         attributes to GTY markers.
7577         (struct lang_identifier, struct lang_tree_node): Define
7578         here...
7579         * c-tree.h: ... not here.  No longer need to declare struct
7580         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7581         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
7582         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
7583
7584         PR 14734, 11944
7585         * c-decl.c (get_parm_info): If error_mark_node is encountered
7586         in the bindings chain, unbind and discard it; don't abort.
7587
7588 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
7589             Dorit Naishlos <dorit@il.ibm.com>
7590
7591         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7592         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7593
7594 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7595
7596         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7597
7598         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7599         (m68hc11_attribute_table): New attribute "page0" to mark a global
7600         variable as being allocated from within page0 section.
7601         (m68hc11_encode_label): New function.
7602         (m68hc11_strip_name_encoding): New function.
7603         (m68hc11_page0_symbol_p): New function.
7604         (m68hc11_indirect_p): Accept global variables marked in page0.
7605         (m68hc11_encode_section_info): Lookup "page0" attribute.
7606
7607         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7608         represents access to page0 variables.
7609
7610         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7611         ("*logicalsi3_silshl16_zext"): Likewise.
7612         ("*ashldi3_const32"): Likewise.
7613         (peephole2 ashift): Likewise.
7614
7615 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7616
7617         * c-tree.h (C_DECL_REGISTER): New.
7618         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7619         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7620         (build_array_ref, c_mark_addressable): Set and use it.
7621         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7622         Allow structures with volatile fields to be declared register.
7623         Don't check TREE_ADDRESSABLE before warning about taking address
7624         of register.
7625         * c-decl.c (finish_decl): Don't allow structures with volatile
7626         fields to be placed in named register.
7627         * doc/trouble.texi: Remove reference to structures with volatile
7628         fields in registers.
7629
7630 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7631
7632         * function.c (thread_prologue_and_epilogue): Move
7633         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7634         before the epilogue.
7635
7636 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7637
7638         * expr.c (store_constructor): Use gen_int_mode to correctly
7639         sign-extend CONST_INT value.
7640
7641 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7642
7643         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7644         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7645         * doc/extend.texi: Likewise.
7646
7647 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7648
7649         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7650           with TYPE_ORIG_SIZE_TYPE.
7651
7652 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7653
7654         PR 14219
7655         * c-typeck.c (build_binary_op): Do not allow comparisons of
7656         vectors.
7657
7658 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7659
7660         * config.gcc: Remove sparc-tti-*.
7661         * config/sparc/pbd.h: Delete.
7662
7663         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7664         * config/sparc/aout.h: Likewise.
7665
7666         * config/sparc/sparc.h: Remove if 0'd code.
7667         * config/sparc/sparc.md (call): Remove if 0'd code.
7668         (call_value): Likewise.
7669         (nonlocal_goto): Likewise.
7670         (unimp_insn): Delete.
7671
7672 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7673
7674         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7675         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7676
7677 2004-03-25  Richard Henderson  <rth@redhat.com>
7678
7679         PR 11527
7680         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7681         rather than later.
7682
7683 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7684
7685         * builtins.c (fold_builtin): Fix error in last change.
7686
7687 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7688
7689         * config/mips/mips.h: Formatting fix.
7690
7691 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7692
7693         * builtins.def: Add ctype builtins.
7694         * doc/extend.texi: Likewise.
7695
7696 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7697
7698         * builtins.c (fold_builtin): Add new builtin optimizations for
7699         sqrt and/or cbrt.
7700         * fold-const.c (fold): Likewise.
7701
7702 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7703
7704         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7705         (rs6000_sched_groups): New variable.
7706         (processor_target_table): Add power5.
7707         (rs6000_override_options): Set rs6000_sched_insert_nops,
7708         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7709         from rs6000_sched_groups.
7710         (output_cbranch): Use rs6000_always_hint.
7711         (rs6000_variable_issue): Use rs6000_sched_groups.
7712         (rs6000_adjust_cost): Add CPU_POWER5.
7713         (is_microcoded_insn): Use rs6000_sched_groups.
7714         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7715         Return 2 for POWER5 cracked instructions.
7716         (is_cracked_insn): Use rs6000_sched_groups.
7717         (is_branch_slot_insn): Use rs6000_sched_groups.
7718         (rs6000_issue_rate): Add CPU_POWER5.
7719         (rs6000_sched_finish): Use rs6000_sched_groups.
7720         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7721         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7722         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7723         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7724         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7725         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7726         * config/rs6000/power5.md: New file.
7727         * doc/invoke.texi: Add power5 option.
7728
7729 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7730
7731         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7732         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7733         * doc/invoke.texi: Fix a typo.
7734
7735 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7736
7737         PR optimization/9707.
7738         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7739         of recursing if both children are single-valued cases with no
7740         children.
7741
7742 2004-03-25  Paul Brook  <paul@codesourcery.com>
7743
7744         * config/arm/arm.c (vfp_print_multi): Remove.
7745         (arm_output_fldmx): New function.
7746         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7747         (arm_expand_prologue): Update to match.
7748         (arm_get_vfp_saved_size): New Function.
7749         (arm_get_frame_offsets): Use it.
7750         (arm_output_epilogue): Use new functions.
7751
7752 2004-03-24  Richard Henderson  <rth@redhat.com>
7753
7754         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7755         (reg_known_value, reg_known_value_size): Likewise; make static.
7756         (reg_known_equiv_p): Make static.
7757         (clear_reg_alias_info): Update for new indexing.
7758         (get_reg_known_value, set_reg_known_value): New.
7759         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7760         (canon_rtx): Use them.
7761         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7762         Don't play queer offsetting games with reg_known_value and
7763         reg_known_equiv_p.
7764         (end_alias_analysis): Free reg_known_value with gc.
7765         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7766         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7767         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7768         functions instead.
7769
7770 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7771
7772         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7773         config/i386/mmintrin.h: Update copyright.
7774
7775 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7776
7777         * configure.ac: Add --enable-werror-always (for top level bootstrap
7778         support).
7779         * configure: Regenerate.
7780
7781 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7782
7783         * objc/objc-act.c (objc_comptypes): Treat comparisons
7784         between 'Class' and '<class> *' as explicitly invalid.
7785
7786 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7787
7788         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7789         (-fprofile-values): Add enabled with profile-{generate,use}.
7790         (-fvpt): Same.
7791         (-ftracer): Add enabled with profile-use.
7792         (-funit-at-a-time): Add enabled at -O2,-O3.
7793         (-funroll-loops): Add enabled with profile-use.
7794         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7795         (max-gcse-passes): Mention default.
7796         (max-cse-path-length): Mention default.
7797
7798 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7799
7800         * Makefile.in (STRICT2_WARN): Reorder.
7801         * configure.ac: Check for -Wold-style-definition, and use it
7802         in strict1_warn if it's available.
7803         * configure: Regnerate.
7804
7805 2004-03-24  Paul Brook  <paul@nowt.org>
7806
7807         * config.gcc <arm>: Add --with-abi=
7808         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7809         thumb_far_jump_used): Remove prototypes.
7810         (arm_needs_doubleword_align): Add prototype.
7811         (thumb_compute_initial_elimination_offset): Ditto.
7812         * config/arm/arm.c (arm_get_frame_offsets): New function.
7813         (use_return_insn, output_return_instruction, arm_output_epilogue,
7814         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7815         arm_expand_prologue, thumb_expand_epilogue): Use it.
7816         (arm_abi, target_abi_name, all_arm_abis): New variables.
7817         (arm_override_options): Set them.  Set structure padding for AAPCS.
7818         (arm_return_in_memory): Update ABI check.
7819         (arm_init_cumulative_args): Initialize can_split.
7820         (arm_needs_doubleword_align): New function.
7821         (arm_function_arg): Don't split args after pushing to stack. Handle
7822         doubleword/even reg alignment.
7823         (arm_va_arg): Handle all doubleword aligned args.
7824         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7825         on ABI, not CPU.
7826         (arm_compute_save_reg0_reg12_mask): Fix comment.
7827         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7828         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7829         value for alignment.
7830         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7831         to match.
7832         (thumb_compute_initial_elimination_offset): New function.
7833         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7834         unneccessary rounding.
7835         * config/arm/arm.h (target_abi_name): Declare.
7836         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7837         arm_abi_type, ARM_DEFAULT_ABI): Define.
7838         (ARM_FLAG_ATPCS): Remove.
7839         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7840         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7841         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7842         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7843         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7844         Contitionalize on ABI, not CPU.
7845         (struct arm_stack_offsets): Define.
7846         (struct machine_function): Add stack_offsets.  Remove frame_size.
7847         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7848         pushed.
7849         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7850         doubleword alignment.
7851         (THUMB_INITIAL_ELIMINATION_OFFSET,
7852         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7853         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7854         * config/arm/arm.md (align_8): Enable for all targets.
7855         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7856         (ARM_DEFAULT_ABI): Define.
7857         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7858         -mstructure-size-boundary.
7859
7860 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7861
7862         * configure.ac: Check for -Wno-variadic-macros; don't use
7863         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7864         and if it's available, use it.  Also, clean up check for
7865         -Wno-long-long.
7866         * configure: Regenerate.
7867
7868 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7869
7870         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7871         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7872         (MULTILIB_DEFAULTS): Use it.
7873         (MIPS_CPU_STRING_DEFAULT): Remove.
7874         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7875         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7876         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7877         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7878         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7879         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7880         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7881         accordingly.
7882
7883 2004-03-24  DJ Delorie  <dj@redhat.com>
7884             Richard Sandiford  <rsandifo@redhat.com>
7885
7886         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7887         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7888         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7889         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7890         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7891         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7892         if TARGET_FIX_VR4122.
7893         * config/mips/mips.md (define_attr length): Account for nops inserted
7894         after macc and dmult when using -mfix-vr4122-bugs.
7895         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7896         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7897         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7898         * config/mips/vr4122-div.S: New file.
7899         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7900
7901 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7902
7903         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7904         (TARGET_MIPS4130): New macro.
7905         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7906         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7907         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7908         with PROCESSOR_R4130.
7909         * config/mips/mips.md (define_attr cpu): Add r4130.
7910         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7911
7912 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7913             Richard Sandiford  <rsandifo@redhat.com>
7914
7915         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7916
7917 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7918
7919         PR preprocessor/14438
7920         * cpplib.c (do_pragma): Remove line_change call after pragma
7921         handler.
7922
7923 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7924
7925         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7926         declarations.
7927
7928 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7929
7930         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7931         if flag_unsafe_math_optimizations.
7932         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7933         and TARGET_80387 expand using truncdfsf2_noop pattern.
7934         (truncxfsf2): Likewise using truncxfsf2_noop.
7935         (truncxfdf2): Likewise using truncxfdf2_noop.
7936         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7937
7938 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7939
7940         * hooks.c (hook_constcharptr_tree_null): New hook.
7941         * hooks.h (hook_constcharptr_tree_null): New prototype.
7942         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7943         * target.h (mangle_fundamental_type): New target hook.
7944         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7945         target hook at rs6000_mangle_fundamental_type.
7946         (rs6000_mangle_fundamental_type): New function.
7947         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7948
7949 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7950
7951         PR 12267, 12391, 12560, 13129, 14114, 14133
7952         * c-tree.h: Forward declare struct c_binding.  Declare
7953         c_override_bindings_to_false.  Update prototypes.
7954         (struct lang_identifier): Update comments.  Change fields to be
7955         struct c_binding *.
7956         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7957         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7958         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7959         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7960         * c-common.h: Update prototypes.
7961         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7962         names_last, parms, parms_last, tags, and shadowed fields.  Add
7963         bindings and depth fields.
7964         (scope_freelist): Move to more appropriate location.
7965         (c_print_identifier): Update for changes to struct lang_identifier.
7966         (objc_mark_locals_volatile): Update for new bindings structures.
7967         (global_bindings_p): Honor c_override_global_bindings_to_false.
7968         (pushlevel): Rename to push_scope; take no arguments; use the
7969         scope_freelist; initialize scope->depth and check for overflow.
7970         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7971         structures.
7972         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7973         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7974         Improve some commentary.  Adjust handling of forward parm decls.
7975         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7976         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7977         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7978         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7979         decls.  Rewrite for new bindings structures.  Improve commentary.
7980         Eliminate the copy_node call.
7981         (implicit_decl_warning): Use the "diag" idiom (as seen in
7982         locate_old_decl) to reduce code duplication; call locate_old_decl
7983         if appropriate.  Relocate to remove need for forward declaration.
7984         (implicitly_declare): Adjust for new bindings structures.  Kludge
7985         around Objective-C not-really-builtin functions.
7986         (undeclared_variable): Improve diagnostics.  If current_function_decl
7987         is nonnull but current_function_scope is null, use current_scope.
7988         Use bind.
7989         (lookup_tag): Adjust for new bindings structures.  Kludge around
7990         Objective-C's tag declarations that wind up in the external scope.
7991         (lookup_name): Adjust for new bindings structures.  Kludge around
7992         c-common.c's pseudo-typedefs that wind up in the external scope.
7993         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7994         second argument indicating the scope to examine; rewrite for
7995         new bindings structures.
7996         (c_init_decl_processing): Adjust for renamed functions.  Do not
7997         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7998         First scope pushed is the external scope, not the global scope.
7999         (builtin_function): Use bind, not pushdecl.  Adjust other bits
8000         for new data structures.  Keep track of builtins that should be
8001         made visible automatically.
8002         (start_decl): Adjust diagnostics.  Remove unnecessary call to
8003         expand_decl.
8004         (grokparms): Return 0 if arg_types is error_mark_node.
8005         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
8006         reversed sense.  Rewrite for new bindings structures.  Do not
8007         leave any decls in the scope, to prevent pop_scope from doing
8008         contradictory things with them.
8009         (finish_struct, finish_enum): Remove redundant diagnostics.
8010         (build_enumerator): Don't cascade diagnostics for error_mark_node.
8011         Mark location where -pedantic changes the meaning of the program.
8012         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
8013         parameter decls into the function's scope structure using bind.
8014         Warn here about function definitions in the wrong style.
8015         Adjust diagnostics.
8016         (store_parm_decls): Correct the determination of whether a
8017         function was defined with a prototype.
8018         (c_write_global_declarations): Operate on all file decls and on
8019         the external scope.  Split body of the loop to...
8020         (c_write_global_declarations_1): ... this new function, to avoid
8021         code duplication.
8022         (truly_local_externals, first_builtin_decl, last_builtin_decl)
8023         (make_scope, pop_scope, in_parm_level_p, set_block)
8024         (any_external_decl, record_external_decl, bind_label, getdecls)
8025         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
8026         (c_reset_state): Delete.
8027         (visible_builtins, c_override_global_bindings_to_false)
8028         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
8029         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
8030         (external_scope, binding_freelist, bind, free_binding_and_advance)
8031         (push_file_scope, pop_file_scope): New.
8032         (pushtag, pushdecl_top_level, lookup_label, declare_label)
8033         (define_label, c_make_fname_decl, finish_decl)
8034         (mark_forward_parm_decls, build_compound_literal)
8035         (grokdeclarator, start_function, check_for_loop_decls)
8036         (identifier_global_value, record_builtin_type): Minor adjustments
8037         for new bindings structures.  Improve diagnostics and commentary.
8038         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
8039         pushlevel/poplevel respectively.
8040         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
8041         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
8042         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
8043         correct loop over multiple translation units; call fatal_error if
8044         requested to compile more than one file at once.  (This disables
8045         IMA temporarily - an up-front error being preferable to a crash.)
8046         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
8047         (all actions): Adjust calls to pushlevel/poplevel.
8048         (parsing_iso_function_signature): Delete.
8049         (extdef_1): Fold into extdef.
8050         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
8051         warn here about function definitions in the wrong style.
8052         (after_tyle_declarator, parm_declarator_starttypename)
8053         (parm_declarator_nostarttypename, notype_declarator): Remove
8054         commented-out productions.
8055         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
8056         an empty TREE_LIST node.  Adjust calls to get_parm_info.
8057         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
8058         to suppress -Wold-style-definition after this error.
8059         (c_parse_file): Don't clear the binding stack or call
8060         finish_fname_decls here.  Correct comment.
8061         * c-typeck.c (same_translation_unit_p): Export.
8062         (common_type): Use c_override_global_bindings_to_false, not
8063         pushlevel/poplevel/declare_parm_level.
8064         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
8065         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
8066         and LANG_HOOKS_GETDECLS with do-nothing stubs.
8067         * objc/objc-lang.c: Likewise.
8068         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
8069         get_parm_info.
8070         (OBJC_VOID_AT_END): Delete; replace all uses
8071         with void_list_node.
8072         (generate_forward_declaration_to_string_table): Delete.
8073         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
8074
8075         * coverage.c (create_coverage): Don't pushdecl anything.
8076         * langhooks.c (lhd_clear_binding_stack): Call
8077         lang_hooks.decls.poplevel, not poplevel.
8078         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
8079         circular list rather than going into an infinite loop.
8080
8081 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
8082
8083         * optabs.c (expand_binop): When synthesizing double word rotates
8084         from single word shifts, use a new register target if the provided
8085         target is not a REG already.
8086
8087 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8088
8089         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
8090         * c-common.c (handle_mode_attribute): Add extra arg to
8091         build_pointer_type_for_mode and build_reference_type_for_mode.
8092         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
8093         for INTEGER_CST.
8094         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
8095         Chain pointers via TYPE_NEXT_PTR_TO.
8096         (build_reference_type_for_mode): Similarly.
8097         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
8098         and build_reference_type_for_mode.
8099         (tree_check4_failed): New function.
8100         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
8101         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
8102         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
8103         Add check.
8104
8105 2004-03-23  Roger Sayle  <roger@eyesopen.com>
8106
8107         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
8108         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
8109         when both A and B are nonnegative.
8110         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
8111         nonzero.
8112
8113 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8114
8115         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
8116         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
8117
8118 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
8119
8120         PR optimization/14669
8121         * fold-const.c (fold): Only unwiden integer comparisons for equality
8122         and inequality operators, or when the signedness doesn't change.
8123
8124 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
8125
8126         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
8127         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
8128         * config/sparc/t-linux: New file.
8129
8130 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
8131
8132         * gcse.c (can_assign_to_reg_p): New function, split out from...
8133         (want_to_gcse_p): ...here.
8134         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
8135         the rhs of a store.
8136
8137 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
8138
8139         * c-typeck.c (same_translation_unit_p): Fix pasto.
8140
8141 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
8142
8143         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
8144         (PARAM_MAX_SCHED_REGION_INSNS): New.
8145         * sched-rgn.c: Include params.h
8146         (MAX_RGN_BLOCKS): Delete.
8147         (MAX_RGN_INSNS): Delete.
8148         (too_large): Return bool.  Convert to PARAM_VALUE.
8149         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
8150         * doc/invoke.texi (param): Document max-sched-region-blocks and
8151         max-sched-region-insns.
8152
8153 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8154
8155         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
8156         for base types.
8157
8158 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
8159
8160         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
8161         change.
8162
8163 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
8164
8165         PR c/14069
8166         * c-decl.c (finish_struct): Change type of incorrect flexible array
8167         field into error_mark_node.
8168
8169 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
8170
8171         PR target/14580
8172         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
8173         who are not local for Darwin PIC.
8174
8175 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
8176
8177         * regrename.c (regrename_optimize): Set regs_ever_live for all
8178         registers introduced as replacement.
8179
8180 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8181
8182         PR middle-end/14470
8183         * expr.c (mark_queue): New function.
8184         (emit_insns_enqueued_after_mark): New function replacing
8185         emit_queue.  Clear the body of emitted queued insns.
8186         (emit_queue): Call emit_insns_enqueued_after_mark.
8187         (store_expr): Mark the increment queue on entry.  Emit
8188         only the incrementations queued when expanding the source.
8189
8190 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
8191
8192         * configure.ac: Allow --disable-coverage-flags (for the future benefit
8193         of top level bootstrap, and consistency).  Reindent.
8194         * configure: Regenerate.
8195
8196 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
8197
8198         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
8199         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
8200         unnecessary casts.
8201
8202 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
8203
8204         PR target/14291
8205         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
8206         __MINGW32__.
8207
8208 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8209
8210         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
8211         to nonimmediate_operand.
8212         ("*doloop_di"): Likewise.
8213
8214 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
8215
8216         * real.h (struct real_value): Use the same type for all
8217         bitfields.  Rename exp to uexp.
8218         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
8219         Adjust all uses of exp...
8220         * builtins.c: ... here, ...
8221         * emit-rtl.c: ... here, and ...
8222         * real.c: ... and here.
8223
8224 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8225
8226         * pretty-print.c (pp_base_maybe_space): New function.
8227         * pretty-print.h (pp_base_maybe_space): Declare.
8228         (pp_maybe_space): New macro.
8229
8230 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8231
8232         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
8233
8234 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
8235
8236         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
8237         of using register multiplication cost.
8238         (expand_mult): Adapt choose_mult_variant call.
8239         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
8240         of MODE; pass appropriate cost bound.  Adjust result when
8241         performing signed multiplication by a negative constant.
8242         Don't use intermediate modes larger than word_mode.
8243
8244 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8245
8246         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
8247         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
8248         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
8249         * explow.c (expr_size): Likewise.
8250         * expr.h (placeholder_list, find_placeholder): Deleted.
8251         * expr.c (store_constructor): Likewise.
8252         (get_inner_reference): Likewise.  Also don't call find_placeholder.
8253         (placeholder_list, find_placeholder): Deleted.
8254         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
8255         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
8256         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
8257         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
8258         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
8259         Likewise.
8260         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
8261         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
8262         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
8263         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
8264         Clean up by using first_rtl_op.
8265         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
8266         (substitute_placeholder_in_expr): New function.
8267         * tree.def (WITH_RECORD_EXPR): Deleted.
8268         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
8269         (substitute_placeholder_in_expr): New.
8270
8271 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
8272
8273         * dojump.c (prefer_and_bit_test): Fix which part of
8274         the and_test is replaced.
8275
8276 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
8277
8278         * frontends.texi: Add missing line.
8279
8280 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
8281             Chris Devers  <cdevers@pobox.com>
8282             Joseph S. Myers  <jsm@polyomino.org.uk>
8283
8284         * doc/frontends.texi: Rewrite.
8285         * doc/gcc.texi: Update last modification date.
8286
8287 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
8288
8289         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
8290         message before redirecting the edge.
8291
8292 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8293
8294         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
8295         flag.
8296         * explow.c (force_not_mem): Set REG_POINTER flag according to
8297         MEM_POINTER one.
8298         * rtl.h (MEM_POINTER): New macro.
8299         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
8300         for MEM_POINTER.
8301
8302 2004-03-20  Roger Sayle  <roger@eyesopen.com>
8303
8304         PR target/13889
8305         * cse.c (fold_rtx): Avoid substituting constants into unary
8306         conversion operations.
8307
8308 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8309
8310         * fold-const.c (fold): Replace "expr" with "t".
8311
8312 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
8313
8314         PR c/12373
8315         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
8316         DECL_ORIGINAL_TYPE if there isn't one.
8317
8318 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8319
8320         * fold-const.c (fold): Replace "final_type" with "type".
8321         Remove variable "final_type".
8322
8323 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8324
8325         * fold-const.c (fold): Constify "type".
8326         Replace "TREE_TYPE (t)" with "type".
8327
8328 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8329
8330         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
8331         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
8332         via (*targetm.foo) () with targetm.foo ().
8333
8334 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8335
8336         PR other/14630
8337         * doc/install.texi: Add info directory category and entry.
8338
8339 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8340
8341         * fold-const.c (fold): Replace "t" with "tem" where it is used
8342         as a temporary variable.  Remove "orig_t" and all of its uses.
8343
8344 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8345
8346         * fold-const.c (fold): Remove variable "invert".
8347         Move the handling of relational expressions that can be folded
8348         to a constant ...
8349         (fold_relational_const): ... here.
8350         (tree_expr_nonzero_p): New.
8351
8352 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
8353
8354         PR c/14635
8355         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
8356         DEF_GCC_BUILTIN.
8357
8358 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
8359
8360         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
8361         (GTFILES): Add $(srcdir)/dojump.h.
8362         (gt-dojump.h): New dependency.
8363         * dojump.c (and_reg, and_test, shift_test): New static variables.
8364         (prefer_and_bit_test): New function.
8365         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
8366
8367 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
8368
8369         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
8370         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
8371         reorg.c, tree.h: Fix comment typos.
8372
8373 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8374
8375         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
8376         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
8377         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
8378         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
8379         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
8380         vmsdbgout.c: Replace calls via (*targetm.foo) () with
8381         targetm.foo ().
8382
8383 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
8384
8385         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
8386         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
8387         always_inline attribute.
8388         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
8389         Treat expansion as completed even if literal argument is
8390         invalid (so that other expansions are not tried in vain).
8391
8392 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8393
8394         * loop-doloop.c (add_test): Replace GEN_INT (0) with
8395         const0_rtx.
8396
8397 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8398
8399         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
8400         ...
8401         (fold_abs_const): ... here.
8402
8403 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8404
8405         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
8406
8407 2004-03-19  Denis Chertykov  <denisc@overta.ru>
8408
8409         PR target/11520
8410         * config/avr/avr.md ("call_insn"): Handle explicit integer
8411         specially.
8412         (call_value_insn): Likewise.
8413
8414 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8415
8416         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
8417
8418 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
8419
8420         * fold-const.c (negate_expr): Move the handling of constants
8421         ...
8422         (fold_negate_const): ... here.
8423
8424 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8425
8426         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
8427         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
8428         * tree.c (debug_no_type_hash): Deleted.
8429         (type_hash_canon): Abort if passed a variant.
8430         Check lang_hooks.types.hash_types.
8431         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
8432         (build_array_type): Remove unnecessary allocation of pointer type.
8433         (build_complex_type): Properly qualify resulting type.
8434
8435 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
8436
8437         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
8438
8439 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
8440
8441         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
8442         (expand_mult): ...here.
8443         (extract_high_half): New, split out from expand_mult_highpart.
8444         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
8445         (expand_highpart): Evaluate the cost of a shift/add sequence,
8446         then see if any of the specialized optabs are cheaper.
8447
8448 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
8449
8450         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
8451
8452 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8453
8454         * convert.c (convert_to_real): Add more math builtins.
8455
8456 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8457
8458         * convert.c (convert_to_real): Reformat using switch stmt.
8459
8460 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8461
8462         * c-common.c (pointer_int_sum): Do not complain about using
8463         pointers to pointers-to-members.
8464
8465 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
8466
8467         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
8468         have moved to the target hooks structure".
8469
8470 2004-03-18  James E Wilson  <wilson@specifixinc.com>
8471
8472         * config/mips/mips.md (type): Split move into arith and fmove.  Split
8473         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
8474         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
8475         Likewise.
8476         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
8477         Likewise.
8478         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
8479         rm7_fp_quick): Likewise.
8480         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
8481         rm9k_fquick): Likewise.
8482         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
8483         Likewise.
8484         (ir_sr70_icmp): Delete.
8485
8486 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8487
8488         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
8489         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
8490         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
8491         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
8492         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
8493         Protect with proper check.
8494         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
8495         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
8496         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
8497         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
8498         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
8499         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
8500         not TYPE_FIELDS.
8501         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
8502
8503 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
8504
8505         * gcse.c (eliminate_partially_redundant_loads): Reject change if
8506         dest is set between beginning and current insn.
8507
8508 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
8509
8510         * c-decl.c (grokdeclarator): Do not complain about redeclaring
8511         visible "static" identifiers "extern" in a local scope.
8512         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
8513         post-increments/decrements.
8514
8515 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
8516
8517         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
8518         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
8519         (xtensa_va_start): Remove assignment to current_function_arg_words.
8520
8521 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
8522
8523         * alias.c (record_set): Detect the case where a register is assigned
8524         a new value that has the same base term as the old one.
8525
8526 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8527
8528         * doloop.c: Removed.
8529         * loop-doloop.c: New file.
8530         * Makefile.in (doloop.o): Remove.
8531         (loop-doloop.o): New.
8532         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
8533         * cfgloopanal.c (get_loop_level): New function.
8534         * loop-iv.c (iv_number_of_iterations): Handle case when loop
8535         is leaved immediatelly.
8536         * loop.c (strength_reduce): Do not call doloop optimization.
8537         * loop.h (LOOP_BCT): Removed.
8538         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
8539         (rest_of_handle_loop2): Call doloop_optimize_loops.
8540         (rest_of_compilation): Test for optimizations moved to
8541         rest_of_handle_loop2.
8542
8543 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
8544
8545         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
8546         for mixed mode.
8547         (rs6000_emit_prologue): Ditto.
8548         (rs6000_emit_epilogue): Ditto.
8549         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
8550         macro for mixed mode.
8551
8552 2004-03-18  Jan Hubicka  <jh@suse.cz>
8553
8554         * predict.c (propagate_freq): Compute correctly frequency of
8555         EXIT_BLOCK.
8556
8557 2004-03-17  Eric Christopher  <echristo@redhat.com>
8558
8559         * builtins.c (apply_args_size): Use reg_raw_mode.
8560         (apply_result_size): Ditto.
8561
8562 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8563
8564         PR target/14620
8565         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
8566
8567 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
8568
8569         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
8570         32-bit builds when defaulting to 32-bit.
8571
8572 2004-03-17  Jan Hubicka  <jh@suse.cz>
8573
8574         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
8575         array.
8576
8577 2004-03-17  James E Wilson  <wilson@specifixinc.com>
8578
8579         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
8580         (hazard_nop): Change type to nop.
8581         (type): Split arith into arith, shift, slt, clz.  Delete darith.
8582         Fix all uses.  Change arith to multi if more than one insn emitted.
8583         * config/mips/5400.md (ir_vr54_arith): Likewise.
8584         * config/mips/5500.md (ir_vr55_arith): Likewise.
8585         * config/mips/7000.md (rm7_int_other): Likewise.
8586         * config/mips/9000.md (rm9k_int): Likewise.
8587         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
8588
8589 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
8590
8591         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8592         to hold the subtype tree instead of recomputing it several times.
8593
8594 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8595
8596         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8597         CC_INVERT.
8598         * config/mn10300/mn10300.md (cc): Remove "invert".
8599
8600 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8601
8602         * builtins.c (integer_valued_real_p): Add builtin rint.
8603         (fold_builtin): Likewise.
8604         * convert.c (convert_to_real): Likewise.
8605
8606         * convert.c (convert_to_real): Fix typos in `long double'
8607         builtins.
8608
8609 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8610
8611         PR c++/14481
8612         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8613         generated COMPOUND_EXPRs.
8614
8615 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8616
8617         * config/h8300/t-rtems (h8300-*-rtems*): New.
8618
8619 2004-03-16  Eric Christopher  <echristo@redhat.com>
8620
8621         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8622
8623 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8624
8625         * config/i386/i386-protos.h: Add a prototype for
8626         ix86_reverse_condition.
8627         * config/i386/i386.c (ix86_reverse_condition): New.
8628         * config/i386/i386.h (REVERSE_CONDITION): Use
8629         ix86_reverse_condition.
8630         * config/i386/i386.md: Use ix86_reverse_condition instead of
8631         REVERSE_CONDITION.
8632
8633 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8634
8635         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8636
8637 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8638
8639         PR bootstrap/12974
8640         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8641
8642 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8643
8644         * c-common.c (c_common_type_for_mode): Build vector types on
8645         demand.
8646         (handle_mode_attribute): Deprecate using the mode attribute
8647         to create vector types.  Fix indentation.
8648         (vector_type_node_list): Remove.
8649         (handle_vector_size_attribute): Create vector types on demand.
8650         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8651         * c-typeck.c (comptypes): Make vector types compatible if they
8652         have the same underlying mode.
8653         (convert_for_assignment): Use comptypes to convert between
8654         vector types.
8655         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8656         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8657         vector types.
8658         * tree.h: Remove vector types.
8659         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8660         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8661         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8662         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8663         * doc/extend.texi (Vector Types): Document how to use the
8664         vector_size attribute to create vectors, rather than mode.
8665
8666         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8667         * config/i386/emmintrin.h: Likewise.
8668         * config/i386/mmintrin.h: Likewise.
8669         * config/i386/xmmintrin.h: Likewise.
8670         * config/sh/ushmedia.h: Likewise.
8671
8672 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8673
8674         * config/freebsd-spec.h, config/arc/arc-protos.h,
8675         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8676         config/arm/linux-gas.h, config/arm/semi.h,
8677         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8678         config/ia64/freebsd.h, config/mips/7000.md,
8679         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8680         config/sparc/pbd.h: Update copyright.
8681
8682 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8683
8684         PR target/14577
8685         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8686
8687 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8688
8689         * combine.c (combine_simplify_rtx): Remove the "last"
8690         parameter and its documentation.  Adjust recursive calls.
8691         (simplify_logical): Always perform the only simplification
8692         controlled by "last", if the simplified expression is
8693         actually different.
8694         (try_combine): Do not pass the "last" parameter to
8695         combine_simplify_rtx.
8696
8697 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8698
8699         PR target/14599
8700         * config/mips/mips.md (UNSPEC_GP): New constant.
8701         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8702         an UNSPEC instead of (reg $gp).
8703         (mips16_gp_pseudo_reg): Change accordingly.
8704         (print_operand): Print $gp directly when handling CONST_GP_P.
8705
8706 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8707
8708         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8709         * longlong.h: Make code 68060 clean when compiling for m68060.
8710
8711 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8712
8713         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8714         * doc/md.texi: Clarify description of "i" constraint.
8715
8716 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8717
8718         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8719         Split store into store, fpstore, fpidxstore.  Fix all uses.
8720         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8721         Likewise.
8722         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8723         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8724         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8725         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8726         ir_sr70_fstore): Likewise.
8727
8728 2004-03-15  Richard Henderson  <rth@redhat.com>
8729
8730         PR middle-end/14535
8731         * except.c (collect_one_action_chain): Record action for cleanup
8732         outer of exception spec.
8733
8734 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8735
8736         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8737         Fix the check for abort and only do the mmap if we can.
8738
8739 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8740
8741         * config/sparc/sparc.h: Rework comments about the code model
8742         in 64-bit environment and the mode 'Pmode'.
8743         * doc/invoke.texi (SPARC options): Rework description of the
8744         different code models supported in 64-bit environment.
8745
8746 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8747
8748         * defaults.h (REVERSIBLE_CC_MODE): Define.
8749         * jump.c (reversed_comparison_code_parts): Don't check if
8750         REVERSIBLE_CC_MODE is defined.
8751
8752 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8753
8754         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8755         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8756         hosthooks.h, params.h, ra-colorize.c, web.c,
8757         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8758         config/avr/avr-protos.h, config/avr/avr.md,
8759         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8760         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8761         config/i386/freebsd.h, config/i386/freebsd64.h,
8762         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8763         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8764         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8765         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8766         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8767         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8768         config/sparc/aout.h, config/sparc/freebsd.h,
8769         config/sparc/litecoff.h, config/vax/vax-protos.h,
8770         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8771         copyright.
8772
8773 2004-03-15  Paul Brook  <paul@codesourcery.com>
8774
8775         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8776
8777 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8778
8779         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8780         (pp_c_cv_qualifier): Document.
8781         (pp_c_space_for_pointer_operator): Likewise.
8782         (pp_c_integer_constant): Likewise.
8783         (pp_c_identifier): Likewise.
8784         (pp_c_init_declarator): Don't print function body.
8785
8786 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8787
8788         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8789         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8790         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8791         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8792         wording and grammar.
8793
8794 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8795
8796         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8797         with lang_hooks.foo ().
8798         * builtins.c (expand_builtin_va_arg): Likewise.
8799         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8800         c_common_type_for_mode, c_common_nodes_and_builtins,
8801         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8802         * c-convert.c (convert): Likewise.
8803         * c-format.c (check_format_types): Likewise.
8804         * c-objc-common.c (c_tree_printer): Likewise.
8805         * c-typeck.c (build_unary_op, build_conditional_expr,
8806         build_binary_op): Likewise.
8807         * calls.c (try_to_integrate, expand_call,
8808         emit_library_call_value_1): Likewise.
8809         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8810         Likewise.
8811         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8812         cgraph_expand_function): Likewise.
8813         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8814         * coverage.c (build_fn_info_type, build_ctr_info_type,
8815         build_gcov_info, create_coverage): Likewise.
8816         * dbxout.c (dbxout_init): Likewise.
8817         * diagnostic.c (diagnostic_report_current_function): Likewise.
8818         * dojump.c (do_jump): Likewise.
8819         * dwarf2out.c (dwarf2_name): Likewise.
8820         * except.c (init_eh): Likewise.
8821         * explow.c (expr_size, int_expr_size): Likewise.
8822         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8823         Likewise.
8824         * expr.c (store_expr, store_constructor, safe_from_p,
8825         expand_expr_real, do_store_flag, try_casesi): Likewise.
8826         * function.c (push_function_context_to, pop_function_context_from,
8827         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8828         put_var_into_stack, allocate_struct_function, current_function_name):
8829         Likewise.
8830         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8831         Likewise.
8832         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8833         lhd_print_error_function): Likewise.
8834         * opts.c (handle_option, decode_options): Likewise.
8835         * passes.c (open_dump_file): Likewise.
8836         * print-tree.c (print_node): Likewise.
8837         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8838         expand_decl_cleanup, emit_case_nodes): Likewise.
8839         * stor-layout.c (variable_size): Likewise.
8840         * toplev.c (announce_function, wrapup_global_declarations,
8841         check_global_declarations, compile_file, default_tree_printer,
8842         process_options, lang_dependent_init, finalize): Likewise.
8843         * tree-dump.c (dequeue_and_dump): Likewise.
8844         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8845         initialize_inlined_parameters, declare_return_variable,
8846         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8847         walk_tree, copy_tree_r): Likewise.
8848         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8849         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8850         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8851         variably_modified_type_p, dump_tree_statistics): Likewise.
8852         * varasm.c (assemble_variable, compare_constant, copy_constant,
8853         force_const_mem, compute_reloc_for_constant, output_constant,
8854         output_addressed_constants, initializer_constant_valid_p): Likewise.
8855
8856 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8857
8858         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8859
8860 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8861
8862         * doc/install.texi: Reflect autoconf and automake version for
8863         libffi. Update autoconf version to 2.59.
8864
8865 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8866
8867         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8868         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8869         make_range, build_range_check, fold_range_test, unextend,
8870         constant_boolean_node, fold_binary_op_with_conditional_arg,
8871         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8872         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8873         with lang_hooks.foo ().
8874
8875 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8876
8877         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8878
8879 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8880
8881         * doc/install.texi: Note status of -fnew-ra.
8882
8883 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8884
8885         PR middle-end/14470
8886         * expr.c (store_expr): Call emit_queue before generating the move
8887         from the temporary to the original target.  Protect the temporary
8888         from emit_queue.
8889
8890 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8891
8892         PR target/14533
8893         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8894         other than UNSPEC_GOTOFF.
8895
8896 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8897
8898         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8899         to arm_legitimate_index_p.  Update all callers with SET as default
8900         value.
8901         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8902         range if OUTER is a sign-extend operation on QImode.  Correctly
8903         reject shift operations on sign-extended QImode addresses.
8904         (bad_signed_byte_operand): Delete.
8905         (arm_extendqisi_mem_op): New function.
8906         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8907         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8908         constraints.
8909         (CONSTRAINT_LEN): New.
8910         (EXTRA_CONSTRAINT): Delete.  Replace with...
8911         (EXTRA_CONSTRAINT_STR): ... this.
8912         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8913         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8914         is now always default.
8915         (define_splits for bad sign-extend loads): Delete.
8916         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8917         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8918         Rework 'U' constraint to 'Uv'.
8919         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8920         arm_extendqisi_mem_op.
8921         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8922         Add Uq constraint.
8923
8924 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8925
8926         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8927         with targetm version.
8928
8929         PR target/14567
8930         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8931         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8932         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8933         Update all users of RS6000_ARG_SIZE.
8934         (function_arg_advance): Count fregno using mode size.
8935         (function_arg): Handle long double split over regs and memory.
8936         (function_arg_partial_nregs): Likewise.
8937         (rs6000_va_arg): Repackage complex args.
8938
8939 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8940
8941         PR target/14047
8942         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8943         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8944         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8945
8946 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8947
8948         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8949         prototype.
8950         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8951         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8952
8953 2003-03-12  Andrew Pinski  <apinski@apple.com>
8954
8955         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8956         Use ret instead of result. Use addr instead of base.
8957
8958 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8959
8960         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8961         fixes required by libstdc++ and update installation instructions
8962         for libstdc++.a.
8963
8964 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8965
8966         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8967         leading '@' on fastcall symbols before stripping suffix.
8968
8969 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8970
8971         * combine.c (unmentioned_reg_p): New function to check whether an
8972         expression is a "specialization" of another, i.e. that there are
8973         no registers or memory references mentioned in the first that don't
8974         appear in the second.
8975         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8976         (combine_instructions): Also try combining instructions using the
8977         REG_EQUAL note from a preceding log-linked instruction.
8978
8979 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8980
8981         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8982
8983 2004-03-12  Matt Austern  <austern@apple.com>
8984
8985         * target.h (struct gcc_target): New target hook, unwind_label.
8986         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8987         * output.h (default_emit_unwind_label): New function.
8988         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8989         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8990         (TARGET_SUPPORTS_HIDDEN): New target macro.
8991         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8992         that corresponds to this FDE.
8993         (FRAME_BEGIN_LABEL): Allow target to override default label.
8994         (output_call_frame_info): If FDEs are linknonce, then use extra
8995         indirection for FDE encoding, output a label for each FDE, and
8996         output an empty label for each function without an FDE.
8997         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8998         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8999         decls with DECL_ONE_ONLY set, if that macro is defined.
9000         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
9001         for a SUPPORTS_ONE_ONLY target.
9002         * config/darwin-protos.h (darwin_unique_section): Declare.
9003         (darwin_asm_named_section): Likewise.
9004         (darwin_section_type_flags): Likewise.
9005         (darwin_non_lazy_pcrel): Likewise.
9006         (darwin_emit_unwind_label): Likewise.
9007         (darwin_make_decl_one_only): Likewise.
9008         * config/darwin.c (machopic_finish): Get rid of tweak that
9009         eliminate stubs for symbols that are defined.
9010         (darwin_encode_section_info): Don't treat weak functions as defined.
9011         (darwin_make_decl_one_only): Define.
9012         (darwin_asm_named_section): Likewise.
9013         (darwin_section_type_flags): Likewise.
9014         (darwin_unique_section): Likewise.
9015         (darwin_emit_unwind_label): Likewise.
9016         (darwin_non_lazy_pcrel): Likewise.
9017         (darwin_asm_output_dwarf_delta): Difference between two labels is
9018         local only if both labels are local.
9019         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
9020         (ASM_MAKE_LABEL_LINKONCE): Likewise.
9021         (TARGET_SUPPORTS_HIDDEN): Likewise.
9022         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
9023         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
9024         (FRAME_BEGIN_LABEL): Likewise.
9025         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
9026         (ASM_DECLARE_FUNCTION_NAME): Likewise.
9027         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
9028         (TARGET_ASM_UNIQUE_SECTION): Define.
9029         (EH_FRAME_SECTION_NAME): Define.
9030         (EH_FRAME_SECTION_ATTR): Likewise.
9031         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
9032         (TARGET_ASM_NAMED_SECTION): Likewise.
9033         (TARGET_SECTION_TYPE_FLAGS): Likewise.
9034         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
9035         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
9036         TARGET_ASM_EMIT_UNWIND_LABEL.
9037
9038 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9039
9040         * builtins.c (expand_builtin_mathfn): Add pow10* to the
9041         existing exp10* case.
9042         (expand_builtin): Likewise.
9043
9044 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
9045
9046         * doc/tm.texi (registers) <Values in Registers>: Add
9047         entry for REGMODE_NATURAL_SIZE.
9048
9049 2004-03-12  Richard Henderson  <rth@redhat.com>
9050
9051         PR target/14547
9052         * target.h (struct gcc_target): Move calls substructure before
9053         booleans.  Add split_complex_arg.
9054         * function.c (assign_parms, split_complex_args): Use it.
9055         * calls.c (expand_call): Likewise.
9056         (split_complex_values): Likewise.  Check for splittable types
9057         before allocating memory.
9058         (split_complex_types): Likewise.
9059         * system.h (SPLIT_COMPLEX_ARGS): Poison.
9060         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
9061         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
9062         * config/alpha/alpha.c (alpha_split_complex_arg): New.
9063         (TARGET_SPLIT_COMPLEX_ARG): New.
9064         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
9065         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
9066         (rs6000_override_options): Zap it for non-AIX.
9067         (rs6000_function_value): Use targetm.calls.split_complex_arg.
9068         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
9069         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
9070         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
9071         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
9072         SPLIT_COMPLEX_ARGS entry.
9073
9074 2004-03-11  Richard Henderson  <rth@redhat.com>
9075
9076         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
9077         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
9078         (alpha_emit_xfloating_arith): Update to match.
9079         (alpha_emit_xfloating_compare): Likewise.
9080         (alpha_emit_xfloating_cvt): Likewise.
9081         (alpha_emit_xfloating_libcall): Take already built symbol,
9082         mark call const.
9083         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
9084         op1 in a register.
9085
9086 2004-03-11  Richard Henderson  <rth@redhat.com>
9087
9088         PR target/14539
9089         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
9090
9091         * simplify-rtx.c (simplify_relational_operation): Fix typo.
9092
9093 2004-03-11  Richard Henderson  <rth@redhat.com>
9094
9095         PR middle-end/14477
9096         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
9097
9098 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9099
9100         PR target/14262
9101         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
9102         defined, pass small BLKmode values in registers in the low-order part.
9103
9104 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9105
9106         * combine.c (if_then_else_cond): Check for NULL return value of
9107         simplify_gen_subreg.
9108
9109 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9110
9111         PR target/14496
9112         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
9113         TARGET_SINGLE_FLOAT.
9114
9115 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
9116
9117         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
9118         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
9119         * config/ia64/ia64.c (ia64_init_libfuncs): New.
9120         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
9121
9122 2004-03-11  Roger Sayle  <roger@eyesopen.com>
9123
9124         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
9125         -((int)X>>C) where C is an integer constant one bit less than the
9126         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
9127         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
9128
9129         * simplify-rtx.c (simplify_unary_operation): Also implement the
9130         above transformations at the RTL level.
9131
9132 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
9133
9134         * real.c (encode_ibm_extended): Do round low word.
9135
9136 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
9137
9138         * config/arm/arm.md (is_xscale): Comment this attribute and move
9139         it a bit further up in the file, closer to related attributes.
9140
9141 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
9142
9143         * config/host-solaris.c (sol_gt_pch_use_address): Add
9144         missing terminating marker to comment.
9145
9146 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
9147
9148         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
9149         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
9150         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
9151         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
9152         move_operand as source predicate in all cases.
9153         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
9154         Test reg_or_0_operand.  Use move_operand as source predicate.
9155         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
9156         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
9157         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
9158         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
9159         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
9160         Use move_operand as source predicate.  Remove 'K' constraint.
9161         (*movqi_internal): Likewise movqi_internal.
9162         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
9163         reg_or_0_operand.  Use move_operand as source predicate.
9164         (*movsf_softfloat): Likewise movsf_internal2.
9165         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
9166         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
9167         (*movdf_softfloat): Likewise movdf_internal2.
9168         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
9169         for DImode if !TARGET_64BIT.
9170         (mips_legitimize_move): Simplify accordingly.
9171
9172 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9173
9174         PR/14362
9175         * var-tracking.c (struct variable_def): Added field refcount.
9176         (variable_htab_free): Decrease the refcount and delete variable
9177         only if there are no more references.
9178         (unshare_variable): New function.
9179         (vars_copy_1): Increase refcount instead of copying the variable.
9180         (variable_union): Share the variables where possible, unshare
9181         the variables if needed.
9182         (variable_different_p): Return false if var1 and var2 are
9183         the same structure.
9184         (variable_was_changed): Init the refcount of new variable.
9185         (set_frame_base_location): Unshare variable if needed.
9186         (set_variable_part): Init the refcount of new variable.
9187         Unshare the variables if needed.
9188         (delete_variable_part): Unshare the variables if needed.
9189         (emit_notes_for_differences_1): Init the refcount of new variable.
9190         (vt_add_function_parameters): Do not add function parameters to
9191         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
9192         (vt_initialize): Do not add frame_base_decl to IN set of
9193         ENTRY_BLOCK_PTR because it is unused anyway.
9194
9195 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
9196
9197         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
9198         (vars_copy): Likewise.
9199         (variable_union): Likewise.
9200         (set_variable_part): Likewise.
9201         (delete_variable_part): Likewise.
9202
9203 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
9204
9205         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
9206         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
9207         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
9208         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
9209         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
9210         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
9211         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
9212         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
9213         config/stormy16/stormy16.c: Fix comment typos and formatting.
9214
9215 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9216
9217         * configure: Regenerate, since I forgot to while committing Paolo's
9218         changes.
9219
9220 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
9221
9222         PR ada/14131
9223         Move language detection to the top level.
9224         * configure.ac: Remove code to detect languages,
9225         it now lives exclusively in the top level.
9226         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
9227         top level, renamed to ACX_PROG_GNAT.
9228
9229 2004-03-10  Richard Henderson  <rth@redhat.com>
9230
9231         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
9232         extra arguments.
9233         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
9234         and host_xmake_file fragments.
9235         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
9236         (gt_pch_restore): Similarly for gt_pch_use_address.
9237         (default_gt_pch_get_address): New.
9238         (mmap_gt_pch_get_address): Split out of gt_pch_save.
9239         (default_gt_pch_use_address): Split out of gt_pch_restore.
9240         (mmap_gt_pch_use_address): Likewise.
9241         * hooks.c (hook_voidp_size_t_null): Remove.
9242         (hook_bool_voidp_size_t_false): Remove.
9243         * hooks.h: Likewise.
9244         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
9245         default_ or mmap_ definitions.
9246         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
9247         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
9248         and gt_pch_use_address.
9249         * config/host-linux.c, config/host-solaris.c: New files.
9250         * config/x-linux, config/x-solaris: New files.
9251         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
9252         Update for changed definition.
9253         (darwin_rs6000_gt_pch_use_address): Likewise.
9254         * doc/hostconfig.texi: Update docs.
9255
9256 2004-03-10  Richard Henderson  <rth@redhat.com>
9257
9258         PR c/14517
9259         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
9260         except for pedantic c90 mode.
9261
9262 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
9263
9264         * configure.ac: Bump AC_PREREQ to 2.59.
9265         * configure: Regenerate.
9266
9267 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
9268
9269         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
9270         (exp10_optab, exp2_optab): Define corresponding macros.
9271         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
9272         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
9273         using exp10?f2 and exp2?f2 patterns.
9274         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
9275         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
9276         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
9277         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9278
9279         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
9280         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
9281         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
9282
9283 2004-03-10  Anthony Green  <green@redhat.com>
9284
9285         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
9286
9287 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9288
9289         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
9290         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
9291         __LONGDOUBLE128.
9292         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
9293         TARGET_OS_AIX_CPP_BUILTINS.
9294         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
9295         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
9296         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
9297         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
9298         previous change.
9299
9300 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9301
9302         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
9303
9304 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
9305
9306         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9307         __LONGDOUBLE128 on AIX.
9308
9309 2004-03-10  Andrew Haley  <aph@redhat.com>
9310
9311         PR optimization/14381
9312         * function.c (expand_function_end): Emit a blockage insn before
9313         the epilogue when -fnon-call-exceptions is used.
9314
9315         * except.c (expand_start_all_catch): Make comment more accurate.
9316
9317 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9318
9319         PR target/14480
9320         * config/rs6000/t-rtems: Add missing file on branch.
9321
9322 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
9323
9324         * dbxout.c (dbxout_symbol_location): Do not output references
9325         to optimized-out constant pool symbols.
9326
9327 2004-03-10  Andreas Schwab  <schwab@suse.de>
9328
9329         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
9330         twon34_r.
9331
9332 2004-03-09  James E Wilson  <wilson@specifixinc.com>
9333
9334         * alias.c (alias_sets_might_conflict_p): New.
9335         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
9336         * common.opt (Wstrict-aliasing=): New.
9337         * flags.h (warn_strict_aliasing): Change type to int.
9338         * opts.c (warn_strict_aliasing): Change type to int.
9339         (common_handle_option): Handle OPT_Wstrict_aliasing_.
9340         * tree.h (alias_sets_might_conflict_p): Declare it.
9341         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
9342
9343 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
9344
9345         PR bootstrap/12371
9346         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
9347         (CALL_USED_REGISTERS): Likewise.
9348         (REG_CLASS_CONTENTS): Likewise.
9349         (REG_ALLOC_ORDER): New.
9350         (REGNO_REG_CLASS): Use regno_reg_class.
9351         * config/m68k/m68k.c: Add regno_reg_class array.
9352
9353 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
9354
9355         * config/ia64/ia64.md (divsi3): Fix algorithm.
9356           (udivsi3): Ditto.
9357           (setf_exp_xf): Remove '*' from name.
9358         * testsuite/gcc.dg/20040309-1.c: New test.
9359
9360 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
9361
9362         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
9363         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
9364         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
9365         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
9366         (sparc_aout_select_rtx_section): Don't check
9367         SUNOS4_SHARED_LIBRARIES.
9368         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
9369
9370 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
9371
9372         PR other/14474
9373         * doc/md.texi (Pattern Ordering, Dependent Patterns)
9374         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
9375         INTERNALS".
9376
9377 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9378
9379         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
9380         (LIBGCC_SPEC): Update to match.
9381
9382 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
9383
9384         * c-decl.c (last_function_parms, last_function_parm_tags)
9385         (last_function_parm_others, current_function_parms)
9386         (current_function_parm_tags, current_function_parm_others):
9387         Delete.
9388         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
9389         New macros.
9390         (grokdeclarator): For function definitions, save the arg-info
9391         block from the declarator in DECL_ARGUMENTS.
9392         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
9393         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
9394         contains only PARM_DECLs.  Improve diagnostics.
9395         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
9396         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
9397         (store_parm_decls_newstyle): Take the function to operate on,
9398         and an arg-info block, as arguments; don't get anything from
9399         current_function_* globals.
9400         (store_parm_decls_oldstyle): Likewise.
9401         (store_parm_decls): Pass fndecl and its arg-info block down to
9402         store_parm_decls_newstyle/oldstyle.  Send functions with empty
9403         argument lists through store_parm_decls_newstyle to reduce
9404         overhead.
9405         (pushdecl): Comment on the problems with the call to copy_node.
9406         Clear DECL_ARGUMENTS of the old node after copying it, if it
9407         is an arg-info block instead of a chain of decls.
9408         (start_function): Do not manipulate current_function_parm* or
9409         last_function_parm*.
9410
9411 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9412             Andrew Pinski  <pinskia@physics.uc.edu>
9413
9414         * ifcvt.c (noce_try_sign_mask): New function to transform
9415         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
9416         (noce_process_if_block): Call noce_try_sign_mask.
9417
9418 2004-03-09  Andrew Pinski  <apinski@apple.com>
9419
9420         * c-typeck.c (tagged_types_tu_compatible_p):
9421         Fix typo.
9422
9423 2004-03-09  Roger Sayle  <roger@eyesopen.com>
9424
9425         * simplify-rtx.c (simplify_const_relational_operation): New function
9426         renamed from simplify_relational_operation.
9427         (simplify_relational_operation): Change prototype to accept an
9428         additional mode argument.  Call simplify_const_relational_operation.
9429         (simplify_gen_relational): Update simplify_relational_operation call.
9430         (simplify_ternary_operation): Update simplify_relational_operation
9431         subroutine call to use simplify_const_relational_operation instead.
9432
9433         * rtl.h (simplify_const_relational_operation): Prototype here.
9434         (simplify_relational_operation): Add addtional mode argument.
9435
9436         * combine.c (combine_simplify_rtx): Update calls to
9437         simplify_relational_operation.
9438         (simplify_set): Likewise.
9439         (gen_binary): Likewise.
9440         * cse.c (fold_rtx): Likewise.
9441         * dojump.c (compare_from_rtx): Likewise.
9442         (do_compare_rtx_and_jump): Likewise.
9443         * integrate.c (subst_constants): Likewise.
9444         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
9445
9446 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
9447
9448         * config/m32r/m32r.md: Remove all define_peephole's.
9449
9450 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
9451
9452         * config/rs6000/rs6000.md: Remove trailing whitespace.
9453
9454 2004-03-08  Eric Christopher  <echristo@redhat.com>
9455
9456         * Makefile.in (site.exp): Add libiconv variable definition.
9457
9458 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
9459
9460         * configure: Regenerate for config/accross.m4 correction.
9461
9462 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
9463
9464         PR target/14480
9465         * config/rs6000/t-rtems: Add missing file on branch.
9466
9467 2004-03-08  Roger Sayle  <roger@eyesopen.com>
9468
9469         PR middle-end/14289
9470         * c-typeck.c (c_mark_addressable): A register variable should
9471         be considered global if its not automatic, i.e. TREE_PUBLIC,
9472         TREE_STATIC or DECL_EXTERNAL.
9473         * function.c (put_var_into_stack): Call abort when placing a
9474         hard register into the stack, if x_parm_reg_stack_loc is NULL.
9475
9476 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
9477
9478         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
9479         ("*extendqisi2_short_displ"): Likewise.
9480
9481 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
9482
9483         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
9484         (comp_operator): Likewise.
9485         * config/pdp11/pdp11-protos.h: Remove corresponding
9486         prototypes.
9487
9488 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
9489
9490         * expr.c (highest_pow2_factor_for_type): Rename into
9491         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
9492         TYPE_ALIGN when the target is a COMPONENT_REF.
9493         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
9494
9495 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9496
9497         * config/rs6000/rs6000.c: Formatting fix.
9498         (legitimate_offset_address_p): Correct offset range check.
9499
9500         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
9501         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
9502         and MASK_STRING.
9503
9504 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9505
9506         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
9507         for little endian.
9508         ("ashrdi3_no_power"): Disable for little endian.
9509         (ashrdi3): Same.
9510
9511 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9512
9513         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
9514         builtins.
9515
9516 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
9517
9518         PR target/14471
9519         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
9520         case, checking for -no-mul-bug-abort option.
9521         * configure, config.in: Regenerate.
9522         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
9523         and -mno-mul-bug-workaround.
9524         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
9525         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
9526         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
9527         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
9528         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
9529         sure mulu.d is not last on cache-line.
9530         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
9531         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
9532         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
9533         (TARGET_SWITCHES): New options -mmul-bug-workaround and
9534         -mno-mul-bug-workaround.
9535         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
9536         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
9537         * config/cris/cris.c (cris_operand_extend_operator): Clarify
9538         relation to MULT in head comment.
9539         (cris_op_str): Abort for MULT.
9540         (cris_print_operand) <case '!'>: New case.
9541
9542 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
9543
9544         PR debug/11983
9545         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
9546         dw_val_class_vec.  Replace use throughout file.
9547         (dw_float_const): Delete.
9548         (dw_vec_const): New.
9549         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
9550         throughout file.
9551         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
9552         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
9553         (size_of_die): Adjust dw_val_class_vec sizing.
9554         (output_die): Output dw_val_class_vec.
9555         (insert_int, extract_int, insert_float): New functions.
9556         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
9557         Handle CONST_VECTOR.
9558         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
9559
9560 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
9561
9562         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
9563         AltiVec abi cannot co-exist.
9564
9565         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
9566
9567 2004-03-07  Jan Hubicka  <jh@suse.cz>
9568
9569         * except.c (emit_to_new_bb_before):  Break fallthru edges.
9570
9571 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
9572
9573         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
9574         ("*lshrsi3"): Also accept an immediate for 68HC12.
9575         ("*ashrsi3_const"): Likewise.
9576         ("*ashrsi3"): Likewise.
9577         ("*ashlsi3_const"): Likewise.
9578         ("*ashlsi3"): Likewise.
9579         ("cmphi_1_hc12"): Compare two hard register by pushing them and
9580         comparing with a pop; don't use a split for that.
9581         ("cmphi split"): Disable compare split for 68HC12.
9582
9583         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
9584         the status operands if they have side effects.
9585
9586 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
9587
9588         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
9589         definition.
9590         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
9591         config/h8300/h8300.h, config/ia64/ia64.h,
9592         config/mcore/mcore.h, config/mmix/mmix.h,
9593         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9594         config/stormy16/stormy16.h, config/v850/v850.h,
9595         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9596         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9597         definition.
9598
9599 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9600
9601         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9602         <XOR_EXPR>: Fold x ^ x as zero.
9603         <AND_EXPR>: Fold x & x as x.
9604
9605 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9606
9607         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9608         "foo++ == const" into "++foo == const+incr".
9609
9610 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9611
9612         * config/mips/mips.c (mips_in_small_data_p): Return false if
9613         TARGET_ABICALLS.
9614
9615 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9616
9617         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9618         the stack register.
9619         (expand_prologue): Don't make an interrupt or a trap handler a far
9620         symbol.
9621         (m68hc11_initial_elimination_offset): Likewise.
9622
9623 2004-03-06  Richard Henderson  <rth@redhat.com>
9624
9625         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9626
9627 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9628
9629         * config/ns32k/ns32k-protos.h: Add a prototype for
9630         ns32k_notice_update_cc.
9631         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9632         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9633         ns32k_notice_update_cc.
9634
9635 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9636
9637         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9638         "*load_multiple_si"): Allow only if reload_completed.
9639         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9640         Likewise.
9641
9642 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9643
9644         * config/vax/vax-protos.h: Add a prototype for
9645         vax_notice_update_cc.
9646         * config/vax/vax.c (vax_notice_update_cc): New.
9647         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9648         vax_notice_update_cc.
9649
9650 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9651
9652         * collect2.c (main): Only export initfunc and finifunc if
9653         LD_INIT_SWITCH not defined.
9654         (scan_prog_file): Only export constructors and destructors if
9655         LD_INIT_SWITCH not defined.  Only export symbols not found in
9656         shared objects.
9657
9658 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9659
9660         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9661         last.
9662         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9663         from calls to gen_icacheflush.
9664
9665 2004-03-06  Richard Henderson  <rth@redhat.com>
9666
9667         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9668         (TARGET_LONG_DOUBLE_128): New.
9669         (TARGET_SWITCHES): Add long-double-{128,64}.
9670         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9671         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9672         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9673         (WIDEST_HARDWARE_FP_SIZE): New.
9674         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9675         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9676         if TARGET_VAX_FLOAT.
9677         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9678         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9679
9680 2004-03-06  Richard Henderson  <rth@redhat.com>
9681
9682         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9683         botched rtx class conversion.
9684
9685 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9686
9687         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9688         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9689
9690         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9691         macros.
9692         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9693
9694 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9695
9696         PR target/14343
9697         * config/i386/i386.md (movv2di_internal): Conditionalize on
9698         TARGET_SSE, not TARGET_SSE2.
9699
9700 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9701
9702         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9703         duplicated line.
9704
9705 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9706
9707         * builtins.c: Consistently use logN not log* in comments.
9708
9709 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9710
9711         * rtl.h (mem_expr_equal_p): Function prototype added.
9712         * cfgcleanup.c (merge_memattrs): New function.
9713         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9714         * emit-rtl.c (mem_expr_equal_p): New function.
9715
9716 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9717
9718         * objc/objc-act.c (synth_module_prologue): Const-qualify
9719         objc_selector type if using the GNU runtime; fix generated
9720         signatures for objc_msg_lookup and objc_msg_lookup_super
9721         to match what GNU ObjC headers provide; reformat and clean up.
9722         (synth_self_and_ucmd_args): Use previously constructed (and
9723         hence possibly const-qualified) objc_selector type.
9724
9725 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9726
9727         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9728
9729 2004-03-05  Jason Merrill  <jason@redhat.com>
9730
9731         * tree.h (TYPE_HASH): Use TYPE_UID.
9732         (TREE_HASH): New macro with old definition of TYPE_HASH.
9733         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9734         (build_array_type, build_function_type): Likewise.
9735         (build_method_type_directly): Likewise.
9736         (build_offset_type, build_complex_type): Likewise.
9737         (type_hash_list, attribute_hash_list): Likewise. Now static.
9738         * except.c: s/TYPE_HASH/TREE_HASH/.
9739
9740 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9741
9742         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9743         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9744         __va_ndx by 2 words when referencing an argument on the stack.
9745         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9746         words when an arg on the stack is first seen.
9747
9748 2004-03-05  Paul Brook  <paul@codesourcery.com>
9749
9750         * arm.h (ARM_FLAG_VFP): Remove.
9751         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9752         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9753
9754 2004-03-05  Paul Brook  <paul@codesourcery.com>
9755
9756         * function.c (assign_parms): Include pretend alignment offset.
9757
9758 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9759
9760         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9761         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9762
9763 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9764
9765         * configure.ac: When passing --enable-languages to subdir
9766         configure when host != build, make sure we don't pass an empty
9767         value.
9768         * configure: Regenerate.
9769
9770 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9771
9772         PR 13577
9773         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9774         options.
9775
9776 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9777
9778         * simplify-rtx.c (simplify_relational_operation): If
9779         flag_wrapv is set, do not move terms between the two
9780         side of a relational operator.
9781
9782 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9783
9784         * rtlanal.c: Include target.h and output.h
9785         (rtx_cost, address_cost, default_address_cost): Move from...
9786         * cse.c (rtx_cost, address_cost, default_address_cost):
9787         ... this file.
9788         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9789         * Makefile.in: Adjust dependencies.
9790
9791 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9792
9793         * cse.c (cse_end_of_basic_block): Make static.
9794         * local-alloc.c (function_invariant_p): Move to
9795         reload1.c.
9796         * loop.c (libcall_other_reg, record_excess_regs):
9797         Make static.
9798         * reload1.c (function_invariant_p): Moved here
9799         from local-alloc.c, made static.
9800         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9801         libcall_other_reg, record_excess_regs): Remove
9802         declarations.
9803
9804 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9805
9806         * config/m32r/m32r.c (signed_comparison_operator): Add a
9807         missing parenthesis.
9808
9809 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9810
9811         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9812         going to call mmap again.  Read the file into the right place.
9813         Give a fatal error if we have to relocate.
9814
9815 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9816
9817         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9818         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9819
9820 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9821
9822         PR other/14354
9823         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9824         round the same.  When rounding, clear bits that would cause a
9825         second rounding in pack_d.
9826         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9827
9828 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9829
9830         PR c++/14425, c++/14426
9831         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9832         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9833         Change C++ definitions to accept a 'const int' argument;
9834         the prototypes already do.
9835         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9836         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9837         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9838         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9839         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9840         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9841         end in ..._int; change them to accept an int instead of a char
9842         as the last parameter.
9843
9844 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9845
9846         * genmultilib:  Change '=' to '-' when translating option names
9847         to directory names.
9848
9849 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9850
9851         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9852         stack slot for temp used for result of BLKmode but in integral mode.
9853
9854 2004-03-04  Jan Hubicka  <jh@suse.cz>
9855
9856         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9857
9858         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9859         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9860
9861 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9862
9863         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9864         * testsuite/gcc.dg/20040303-1.c: New test.
9865
9866 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9867
9868         * ppro.md: Rewrite as a DFA pipeline description.
9869         * i386.md: Remove all uses of the ppro_uops attribute.
9870         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9871         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9872         ix86_sched_reorder, ix86_variable_issue,
9873         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9874         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9875         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9876         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9877         * athlon.md (athlon_ssecmp_load): Fix comment
9878
9879 2004-03-04  Stuart Hastings  <stuart@apple.com>
9880
9881         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9882
9883 2004-03-04  Stuart Hastings  <stuart@apple.com>
9884
9885         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9886         686, tell Darwin assembler to allow prefetch insns, non-empty def
9887         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9888
9889 2004-03-04  DJ Delorie  <dj@redhat.com>
9890
9891         PR optimization/14282
9892         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9893         between a call and the assignment of its return value.
9894
9895 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9896
9897         * config/h8300/h8300.c: Put a comment for every function.
9898
9899 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9900
9901         * config/h8300/h8300.md: Add comments about peephole2's.
9902
9903 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9904
9905         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9906
9907 2004-03-04  Jan Hubicka  <jh@suse.cz>
9908
9909         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9910         * cselib.c (cselib_record_memory): New static variable.
9911         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9912         Give up on memories when asked for.
9913         (cselib_init): Accept new argument.
9914         * cselib.h (cselib_init): Update prototype.
9915         * gcse.c (local_cprop_pass): Update call of cselib_init.
9916         * loop.c (load_mems): Update call of cselib_init.
9917         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9918         * sched-deps.c (sched_analyze): Update call of cselib_init.
9919
9920 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9921             GP <gp@qnx.com>
9922
9923         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9924         when compiling PIC.
9925
9926 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9927
9928         PR/14362
9929         * var-tracking.c (track_expr_p): Do not track variables which
9930         should be ignored for debugging purposes.
9931
9932 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9933
9934         * real.c (encode_ibm_extended): Don't bother rounding low double.
9935         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9936         when fmt->pnan < fmt->p.
9937
9938 2004-03-04  Eric Christopher  <echristo@redhat.com>
9939
9940         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9941         only range of valid arg registers and fixed_regs.
9942
9943 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9944
9945         PR target/14406
9946         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9947         (abstf2, abstf2_internal): New define_expand.
9948
9949 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9950
9951         PR optimization/14235
9952         * expr.c (convert_move): Copy the source to a new pseudo
9953         when converting from a sub-word source to a larger-than-word
9954         register which conflicts with the source.
9955
9956 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9957
9958         PR 13728
9959         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9960         parameters with the same name, unless one is a forward decl.
9961         Do not issue a redundant-redeclaration warning for forward
9962         decls of parameters.
9963
9964 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9965
9966         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9967         configuration.
9968
9969 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9970
9971         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9972
9973 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9974
9975         * target-def.h (TARGET_OPTF): Delete.
9976         * c-opts.c (TARGET_OPTF): Define.
9977
9978 2004-03-04  Jan Hubicka  <jh@suse.cz>
9979
9980         * cselib.c (cselib_finish): Fix another miss-application of my previous
9981         patch.
9982
9983 2004-03-03  Mike Stump  <mrs@apple.com>
9984
9985         Add framework support for darwin.
9986
9987         * c-incpath.c: Include target.h and machmode.h.
9988         (add_path): Use a consistent style for cpp_dir.  Initialize
9989         p->construct to 0.
9990         (add_cpp_dir_path): New.
9991         (register_include_chains): Add use of extra_includes callback.
9992         (hook_void_int): Add.
9993         (target_c_incpath): Add.
9994         * c-incpath.h (add_cpp_dir_path): New.
9995         (target_c_incpath_s): Add.
9996         (target_c_incpath): Add.
9997         (C_INCPATH_INIT): Add.
9998         * c-opts.c (c_common_missing_argument,
9999         c_common_handle_option): Add -F argument processing.
10000         * c.opt: Add -F argument processing.
10001         * gcc.c (trad_capable_cpp): Add -F argument processing.
10002         * cppfiles.c (find_file_in_dir): Update to use construct
10003         callback.
10004         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
10005         cpp_get_prev): New.
10006         (_cpp_find_file): Use search_path_exhausted.
10007         (make_cpp_dir): Initialize construct to 0.
10008         * cpplib.h (missing_header_cb
10009         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
10010         (cpp_callbacks): Add missing_header
10011         (cpp_dir): Add construct.
10012         * target-def.h: (TARGET_OPTF): New.
10013         * hooks.c (hook_void_int, hook_void_charptr): Add.
10014         * hooks.h (hook_void_int, hook_void_charptr): Add.
10015         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
10016         $(MACHMODE_H) dependencies.
10017         * doc/invoke.texi (Darwin Options): Document -F.
10018         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
10019         (TARGET_OPTF): Add.
10020         * fix-header.c (target_c_incpath): Add.
10021
10022         * config/darwin-c.c: Add c-incpath.h include.
10023         (using_frameworks, find_subframework_file,
10024         find_subframework_header, add_system_framework_path,
10025         frameworks_in_use, num_frameworks, max_frameworks,
10026         add_framework, find_framework, struct framework_header,
10027         framework_header_dirs, framework_construct_pathname,
10028         find_subframework_file, add_system_framework_path,
10029         add_framework_path, framework_defaults,
10030         darwin_register_frameworks, find_subframework_header): Add.
10031         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
10032         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
10033         (CPP_SPEC): Add __APPLE_CC__ support.
10034         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
10035
10036 2004-03-04  Jan Hubicka  <jh@suse.cz>
10037
10038         * cselib.c (cselib_finish): Fix miss-application of my previous
10039         patch.
10040
10041 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10042
10043         * hooks.c (hook_tree_tree_identity): New.
10044         * hooks.h: Add a prototype for hook_tree_tree_identity.
10045         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
10046         instead of MD_ASM_CLOBBERS.
10047         * system.h (MD_ASM_CLOBBERS): Poison.
10048         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
10049         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
10050         * target.h (gcc_target): Add md_asm_clobbers.
10051         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
10052         (ix86_md_asm_clobbers): New.
10053         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
10054         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
10055         TARGET_MD_ASM_CLOBBERS.
10056
10057 2004-03-03  Stuart Hastings  <stuart@apple.com>
10058
10059         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
10060
10061 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10062
10063         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
10064
10065         * config/sparc/sparc.h (ASM_FLOAT): Delete.
10066         (ASM_DOUBLE): Likewise.
10067         (ASM_LONGDOUBLE): Likewise.
10068         * config/sparc/pbd.h (ASM_INT_OP): Delete.
10069
10070 2003-03-03  Richard Henderson  <rth@redhat.com>
10071
10072         PR opt/13862
10073         * cselib.c (cselib_record_sets): Don't record multiple sets in
10074         asm insns.
10075
10076 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
10077
10078         * common.opt: Add description of the new -fgcse-after-reload flag.
10079
10080         * flags.h (flag_gcse_after_reload): Declaration of global variable.
10081
10082         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
10083         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
10084         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10085         get_bb_avail_insn, hash_scan_set_after_reload,
10086         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
10087         gcse_after_reload, get_bb_avail_insn): New functions to implement
10088         gcse-after-reload.
10089         (gcse_after_reload_main): New function, the main entry point to
10090         gcse-after-reload.
10091
10092         * rtl.h (gcse_after_reload_main): Declaration of the new function.
10093
10094         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
10095
10096         * toplev.c (flag_gcse_after_reload): Initialization.
10097
10098         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
10099
10100         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10101         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
10102         the gcse after reload optimization.
10103
10104         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
10105         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
10106         parameters.
10107
10108         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
10109
10110 2004-03-03  Nicolas Pitre <nico@cam.org>
10111
10112         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
10113         small negative values.
10114
10115 2004-03-03  Jan Hubicka  <jh@suse.cz>
10116
10117         * cselib.c (hash_table):  Remove GTY marker.
10118         (reg_values): Turn into array.
10119         (used_regs): Likewise.
10120         (n_used_regs): New static variable.
10121         (reg_values_old): Kill.
10122         (clear_table): Update uses of arrays.
10123         (cselib_lookup): Likewise.
10124         (cselib_record_set): Likewise.
10125         (cselib_init): Likewise.
10126         (cselib_finish): Likewise.
10127         (cselib_udpate_varray_sizes): Kill.
10128         * cselib.h (cselib_update_varray_sizes): Kill.
10129
10130 2004-03-03  Paul Brook  <paul@codesourcery.com>
10131
10132         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
10133
10134 2004-03-03  Jan Hubicka  <jh@suse.cz>
10135
10136         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
10137         Rename from ...; make statistics transparent.
10138         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
10139         (loc_descriptor): New structure.
10140         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
10141         add_statistics):
10142         New static function.
10143         (ggc_record_overhead, dump_statistics): New global function.
10144         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10145         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
10146         from ...; accept locations
10147         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10148         ggc_realloc, ggc_alloc_typed):  ... this one.
10149         from ...; accept locations
10150         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
10151         ggc_alloc_stat): Rename from ... ; pass locations
10152         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
10153         ... this one.
10154         (ggc_alloc_stat): Record overehead.
10155         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
10156         ggc_realloc, ggc_alloc_typed):  Turn to macros
10157         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
10158         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
10159         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
10160         * langhooks.h (lhd_make_node): Declare.
10161         (LANG_HOOKS_MAKE_TYPE): Default to new function,
10162         * langhooks.c (lhd_make_node): New.
10163         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
10164         locations.
10165         (rtx_alloc, swallow_copy_rtx): ... this one.
10166         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
10167         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
10168         * toplpev.c (finalize): Dump stats.
10169         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
10170         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10171         Rename from ... ; pass locators.
10172         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10173         build?,  build_decl): Declare.
10174         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
10175         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
10176         Declare.
10177         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
10178         build?,  build_decl): New macros.
10179         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
10180         * statistics.h: New file.
10181
10182 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10183             Richard Sandiford  <rsandifo@redhat.com>
10184
10185         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10186         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
10187         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
10188         * config/mips/mips.c (mips_output_division): Fill the branch delay
10189         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
10190         TARGET_FIX_R4400.
10191         (mips_output_division): Adjust accordingly.
10192         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
10193         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
10194
10195 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
10196
10197         * alias.c (rtx_equal_for_memref_p): Use predicates
10198         to test rtx classes and new rtx class codes, possibly
10199         splitting conditionals that tested against '<' and 'o'.
10200         * caller-save.c (save_call_clobbered_regs): Likewise.
10201         * combine.c (contains_muldiv, find_split_point, subst,
10202         combine_simplify_rtx, simplify_if_then_else,
10203         simplify_set, simplify_logical, expand_compound_operation,
10204         make_compound_operation, if_then_else_cond, known_cond,
10205         apply_distributive_law, cached_nonzero_bits,
10206         cached_num_sign_bit_copies, simplify_shift_const,
10207         gen_binary, simplify_comparison, update_table_tick,
10208         record_value_for_reg, get_lsat_value_validate): Likewise.
10209         * cse.c (mention_regs, find_best_addr, find_comparison_args,
10210         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
10211         Likewise.
10212         * emit-rtl.c (copy_insn_1): Likewise.
10213         * expr.c (force_operand): Likewise.
10214         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
10215         * flow.c (notice_stack_pointer_modification_1,
10216         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
10217         and_reg_cond, elim_reg_cond): Likewise.
10218         * function.c (update_epilogue_consts): Likewise.
10219         * genattrtab.c (attr_rtx_1): Likewise.
10220         * genopinit.c (gen_insn): Likewise.
10221         * integrate.c (subst_constants): Likewise.
10222         * jump.c (reversed_comparison_code_parts,
10223         reversed_comparison_code, delete_related_insns,
10224         rtx_renumbered_equal_p): Likewise.
10225         * local-alloc.c (block_alloc): Likewise.
10226         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
10227         canonicalize_condition): Likewise.
10228         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
10229         Likewise.
10230         * optabs.c (add_equal_node, expand_binop): Likewise.
10231         * predict.c (estimate_probability): Likewise.
10232         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
10233         * recog.c (validate_replace_rtx_1, comparison_operator,
10234         offsettable_address_p, constrain_operands): Likewise.
10235         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
10236         Likewise.
10237         * regclass.c (scan_one_insn): Likewise.
10238         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
10239         * regrename.c (kill_autoinc_value): Likewise.
10240         * reload.c (find_reusable_reload, find_reloads,
10241         reg_overlap_mentioned_for_reload_p): Likewise.
10242         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
10243         * rtl.c (copy_rtx): Likewise.
10244         * rtl.h (CONSTANT_P, INSN_P): Likewise.
10245         * rtlanal.c (commutative_operand_precedence): Likewise.
10246         * sched-deps.c (conditions_mutex_p): Likewise.
10247         * sched-rgn.c (is_cfg_nonregular): Likewise.
10248         * simplify-rtx.c (simplify_gen_binary,
10249         simplify_gen_relational, simplify_replace_rtx,
10250         simplify_unary_operation, simplify_binary_operation,
10251         simplify_ternary_operation, simplify_rtx): Likewise.
10252         * unroll.c (reg_dead_after_loop): Likewise.
10253         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
10254         print_operand): Likewise.
10255         * config/arc/arc.c (proper_comparison_operator): Likewise.
10256         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
10257         Likewise.
10258         * config/avr/avr.c (_reg_unused_after): Likewise.
10259         * config/frv/frv.c (frv_ifcvt_modify_tests,
10260         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
10261         * config/i386/i386.c (ix86_comparison_operator,
10262         ix86_carry_flag_operator, fcmov_comparison_operator,
10263         arith_or_logical_operator, print_operand,
10264         ix86_expand_binary_operator, ix86_binary_operator_ok):
10265         Likewise.
10266         * config/i386/i386.md: Likewise.
10267         * config/ia64/ia64.c (not_postinc_memory_operand,
10268         ia64_print_operand, update_set_flags, errata_emit_nops):
10269         Likewise.
10270         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
10271         CONSTRAINT_OK_FOR_S): Likewise.
10272         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
10273         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
10274         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
10275         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
10276         Likewise.
10277         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
10278         eqne_comparison_operator, signed_comparison_operator):
10279         Likewise.
10280         * config/mips/mips.c (cmp_op, symbolic_expression_p):
10281         Likewise.
10282         * config/mmix/mmix (mmix_foldable_comparison_operator,
10283         mmix_comparison_operator): Likewise.
10284         * config/pa/pa.c (hppa_legitimize_address): Likewise.
10285         * config/rs6000/rs6000.c (stmw_operation,
10286         branch_comparison_operator, trap_comparison_operator,
10287         ccr_bit): Likewise.
10288         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
10289         * config/s390/s390.c (s390_alc_comparison,
10290         s390_slb_comparison):L Likewise.
10291         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
10292         Likewise.
10293         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
10294         noov_compare_op, noov_compare64_op, v9_regcmp_op,
10295         emit_hard_tfmode_operation, reg_unused_after)
10296         * doc/md.texi, doc/rtl.texi: Likewise.
10297
10298         * ra-debug.c: Add 2004 to list of copyright years.
10299         * unroll.c: Likewise.
10300
10301         * combine.c (simplify_logical): Remove dummy test,
10302         (apply_distributive_law): Fix typo in comment.
10303         GET_CODE (x) == AND so x is a commutative binary op.
10304         * jump.c (delete_related_insns): simplify loop
10305         condition, move testing of RTX codes inside the loop.
10306         (rtx_renumbered_equal_p): do not use RTX_CODE.
10307         * rtl.c (rtx_class): Declare as enum rtx_class.
10308         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
10309         Move to RTX_COMM_COMPARE class.
10310         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
10311         Move to RTX_CONST_OBJ class.
10312         * rtl.h (enum rtx_class): New declaration,
10313         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
10314         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
10315         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
10316         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
10317         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
10318         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
10319         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
10320         OBJECT_P): New macros.
10321         * config/sparc/sparc.c (noov_compare_op): Remove register
10322         from parameter.
10323
10324 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
10325
10326         * target.h: Remove texi jargons in comments.
10327
10328 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10329
10330         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
10331         threshold to 0x4f.
10332
10333         Revert:
10334         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10335         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10336         as well.
10337         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10338         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10339
10340 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10341
10342         * doc/md.texi (cbranchmode4): New.
10343
10344 2004-03-02  Eric Christopher  <echristo@redhat.com>
10345
10346         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
10347         fix_trunc.
10348         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
10349         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
10350         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
10351         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
10352
10353 2004-03-02  Richard Henderson  <rth@redhat.com>
10354
10355         PR middle-end/11767
10356         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
10357         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
10358         before the compare, if flag_non_call_exceptions.
10359
10360 2004-03-02  Richard Henderson  <rth@redhat.com>
10361
10362         PR middle-end/14327
10363         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
10364         emitting the label, not after.
10365
10366 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10367
10368         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
10369         (m68hc11_mov_addr_mode): Likewise.
10370         (m68hc11_override_options): Initialize them based on target.
10371         (register_indirect_p): Allow a MEM for indirect addressing modes and
10372         use flags to control what is allowed.
10373         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
10374         supported addressing modes.
10375         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
10376         (go_if_legitimate_address_internal): Likewise.
10377         (m68hc11_indirect_p): Likewise and check the mode.
10378         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
10379
10380 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10381
10382         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
10383         (expand_builtin_setjmp_setup): Use
10384         targetm.builtin_setjmp_frame_value instead of
10385         BUILTIN_SETJMP_FRAME_VALUE.
10386         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
10387         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
10388         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10389         * target.h (gcc_target): Add builtin_setjmp_frame_value.
10390         * targhooks.c (default_builtin_setjmp_frame_value): New.
10391         * targhooks.h: Add a prototype for
10392         default_builtin_setjmp_frame_value.
10393         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
10394         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
10395
10396 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10397
10398         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
10399         sequences of moves.
10400         (add peepholes): New peepholes to optimize sequences adding small
10401         constants.
10402         (bset peepholes): New peepholes to transform an OR in a bset form
10403         (bclr peepholes): Likewise for bclr form.
10404         (cmp peepholes): New peepholes to avoid register copies when comparing.
10405
10406 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10407
10408         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
10409         to separate push from moves.
10410         ("*pushdf_internal"): Likewise.
10411         ("*pushsf_internal"): Likewise.
10412         ("*pushsi_internal"): Likewise.
10413         ("movdi_internal"): Use define_insn_and_split; non push operand.
10414         ("movdf_internal"): Likewise.
10415         ("movsf_internal"): Likewise.
10416         ("movsi_internal"): Likewise.
10417         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
10418         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
10419         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
10420
10421 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10422
10423         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
10424         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
10425         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
10426         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
10427         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
10428         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
10429         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
10430         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
10431         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
10432         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
10433         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
10434
10435 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10436
10437         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
10438         (SOFT_XY_REGNUM): Define.
10439         (cmp split): Use the above instead of hard coded numbers.
10440         (8-bit op split): No need to check the mode; allow Q_REG.
10441         (ashift split): Adjust the first operand if it uses the SP and we
10442         are pushing the shifted value.
10443         (plus shift split): Fix when a source is in register D+X.
10444         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
10445
10446 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
10447
10448         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
10449         comparing with Z register.
10450
10451 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10452
10453         * cfgloop.h (struct loop_desc): Removed.
10454         (struct loop): Fields simple, desc and has_desc removed.
10455         (simple_loop_p, count_loop_iterations): Declaration removed.
10456         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
10457         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
10458         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
10459         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
10460         simple_loop_exit_p, variable_initial_value, variable_initial_values,
10461         simple_condition_p, simple_increment, count_strange_loop_iterations,
10462         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
10463         Removed.
10464         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
10465
10466 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10467
10468         * genattrtab.c: Don't handle MATCH_INSN.
10469         * genrecog.c: Likewise.
10470         * gensupport.c: Likewise.
10471         * rtl.def (match_insn): Remove.
10472         * doc/md.texi (match_insn, match_insn2): Remove.
10473
10474 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
10475
10476         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
10477         macro results in memory allocation.
10478
10479 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
10480
10481         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
10482         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
10483         %(fbsd_dynamic_linker),
10484         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
10485         config/i386/freebsd.h
10486         * config/arm/freebsd.h: Ditto.
10487         * config/i386/freebsd.h: Ditto.
10488         * config/i386/freebsd64.h: Ditto.
10489         * config/ia64/freebsd.h: Ditto.
10490         * config/rs6000/sysv4.h: Ditto.
10491         * config/sparc/freebsd.h: Ditto.
10492
10493 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
10494
10495         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
10496
10497 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10498
10499         * rtl.def (define_combine): Remove.
10500
10501 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10502
10503         * config/h8300/h8300.md: Tweak formatting.
10504
10505 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10506
10507         * config/h8300/h8300.md (*cmphi_h8300): Rename to
10508         *cmphi_h8300_znvc.
10509         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
10510
10511 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
10512
10513         PR bootstrap/14356
10514         * gcc.c (process_command): Remove const-qualification from argv.
10515         (main): Likewise.
10516
10517 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
10518
10519         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
10520         pushqi1_h8300hs_advanced.  Adjust its caller.
10521         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
10522         Adjust its caller.
10523
10524 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
10525
10526         * Makefile.in (install-libgcc, install-multilib): Pass
10527         mkinstalldirs var to libgcc.mk.
10528
10529 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10530
10531         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
10532         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
10533
10534 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
10535
10536         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
10537         * config/h8300/h8300.md: Split several peephole2's, each into
10538         two.
10539
10540 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10541
10542         * dominance.c (recount_dominator): Handle postdominators.
10543
10544 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10545
10546         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
10547         (NUM_SYMBOL_TYPES): Likewise.
10548         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
10549         (mips_unspec_address): Declare.
10550         (mips_gotoff_page, mips_gotoff_global): Delete.
10551         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
10552         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
10553         (mips_symbolic_constant_p, mips_symbolic_address_p)
10554         (mips_symbol_insns): Handle new symbol types.
10555         (general_symbolic_operand): New predicate.
10556         (mips_unspec_address): Make extern.
10557         (mips_gotoff_page, mips_gotoff_global): Delete.
10558         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
10559         Handle new symbol types.
10560         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
10561         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
10562         mips_unspec_address directly.
10563         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
10564         the documentation of -mexplicit-relocs.
10565
10566 2004-03-01  Jeff Law  <law@redhat.com>
10567
10568         * fold-const.c (fold): An equality comparison of a non-weak object
10569         against zero has a known result.  Similarly an equality comparison
10570         of the address of two non-weak, unaliased symbols has a known result.
10571
10572         * ggc-page.c (struct page_entry): New field PREV.
10573         (ggc_alloc): Update PREV field appropriately.
10574         (sweep_pages): Likewise.
10575         (ggc_free): Likewise.  Use PREV field rather than loop to
10576         improve ggc_free performance.
10577
10578 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
10579
10580         * config/mips/mips.c (mips_output_division): Use the division
10581         instruction to fill the delay slot of a zero check.
10582         (mips_idiv_insns): Adjust accordingly.
10583
10584 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
10585
10586         * config.gcc: Create a default tmake_file for linux, and use
10587         it in all but two linux clauses.  Comment those two.
10588
10589 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
10590
10591         * combine.c (try_combine):  Do not refer to is_replaced.
10592         (gen_lowpart_for_combine):  Perverse subregs now have a
10593         more politically correct name.
10594         * cse.c (cse_insn): Likewise.
10595         * jump.c: Fix bogus reference to delete_insn.
10596
10597 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10598
10599         PR debug/14328
10600         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10601         constants as signed values.
10602
10603         PR middle-end/13448
10604         * c-tree.h (readonly_warning): Rename to ...
10605         (readonly_error): ... this.
10606         * c-typeck.c (build_unary_op): Adjust accordingly.
10607         (readonly_warning): Rename to ...
10608         (readonly_error): ... this and issue errors, not warnings.
10609         (build_modify_expr): Call readonly_error, not readonly_warning.
10610         (c_expand_asm_operands): Likewise.
10611         * tree-inline.c (optimize_inline_calls): Do not inline functions
10612         after errors have occurred.
10613
10614 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10615
10616         * configure.ac: Rearrange some threading code for clarity;
10617         add section comment.
10618         * configure: Regenerate.
10619
10620 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10621
10622         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10623         typos.
10624         * doc/cppopts.texi: Fix a typo.
10625
10626 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10627
10628         * config/i386/i386.md: Fix formatting.
10629
10630 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10631
10632         * configure.ac: Add some comments delineating sections of code.
10633
10634         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10635
10636         * doc/install.texi: Fix idiot typo in previous commit.
10637
10638         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10639
10640 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10641
10642         * config/h8300/h8300.md: Add comments about peephole2's.
10643
10644 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10645
10646         * config/h8300/h8300.md: Tweak operand numbers of some
10647         peephole2's.
10648
10649 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10650
10651         * config/h8300/h8300.md: Tweak comments about peephole2's.
10652
10653 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10654
10655         PR middle-end/14203
10656         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10657         instead of testing whether DECL_RTL is not NULL.
10658
10659 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10660
10661         * config/sh/sh.c: Fix formatting.
10662
10663 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10664
10665         * config/sh/sh.c: Convert to ISO-C.
10666
10667 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10668
10669         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10670         my previous patch.
10671
10672         * config/darwin.h (machopic_finish): Output stub even if the
10673         symbol is already defined.
10674
10675 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10676
10677         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10678
10679 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10680
10681         * genattr.c (main): Don't define
10682         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10683         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10684         (DFA_PIPELINE_INTERFACE): Likewise.
10685         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10686         (DFA_PIPELINE_INTERFACE): Likewise.
10687
10688 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10689
10690         * config/mips/mips.md (tstsi, tstdi): Delete.
10691
10692 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10693
10694         * config/mips/mips.c (override_options): Remove an obsolete
10695         duplicate definition of the "e" constraint.
10696         * config/mips/mips.h: Update a comment accordingly.
10697
10698 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10699
10700         * config/mips/mips.md: Complete the unfinished R4000
10701         multiply/shift errata workaround.  Improve documentation.
10702         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10703         has a hilo hazard.
10704         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10705         (muldi3, muldi3_internal): Likewise.
10706         (muldi3_internal2): Remove, replacing with...
10707         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10708         (mulsidi3): Take the errata into account.
10709         (mulsidi3_32bit): Remove, replacing with...
10710         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10711         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10712         (umulsidi3): Take the errata into account.
10713         (umulsidi3_32bit): Remove, replacing with..
10714         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10715         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10716         TARGET_FIX_R4000.
10717         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10718         (smuldi3_highpart, umuldi3_highpart): Likewise.
10719         * doc/invoke.texi: Document the errata workaround.
10720
10721 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10722
10723         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10724         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10725         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10726         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10727         * config/mips/mips.c (mips_idiv_insns): New function.
10728         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10729         (mips_output_division): Add a workaround for the R4000 divide/shift
10730         errata.
10731         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10732         the length of an "idiv" instruction.
10733         * doc/invoke.texi: Document the new switches.
10734
10735 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10736
10737         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10738         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10739
10740 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10741
10742         PR optimization/14229
10743         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10744
10745 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10746
10747         * fold-const.c (fold): Strip NOPs that change the signedness
10748         for RSHIFT too.  Expand comment.
10749
10750 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10751
10752         PR optimization/7871
10753         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10754         from or to call insns.
10755
10756 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10757
10758         PR optimization/7871
10759         * flow.c (propagate_one_insn): Interpret calls as setting global
10760         registers, not merely clobbering them.
10761
10762 2004-02-27  Dale Johannesen  <dalej@apple.com>
10763
10764         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10765         config/darwin-protos.h:  Ditto.
10766         config/darwin.h:  Remove call to it.
10767         * combine.c (distribute_notes): Do not place a REG_DEAD note
10768         when value is both set and used.
10769
10770 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10771
10772         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10773         as well.
10774         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10775         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10776
10777 2004-02-27  Andrew Pinski  <apinski@apple.com>
10778
10779         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10780         Speedup common case of the type values being in the same order.
10781
10782 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10783
10784         * config/ia64/ia64.h (no-inline-float-divide): New option.
10785         * config/ia64/ia64.h (no-inline-int-divide): New option.
10786         * config/ia64/ia64.h (no-inline-sqrt): New option.
10787         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10788         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10789         * config/ia64/ia64.c (ia64_override_options): Modify error
10790         checking for inlined division/sqrt.
10791
10792 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10793
10794         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10795         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10796         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10797         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10798         copyright.
10799
10800 2004-02-27  Paul Brook  <paul@codesourcery.com>
10801
10802         * function.c (assign_parms): Don't count pretend args for alignment.
10803
10804 2004-02-27  Richard Henderson  <rth@redhat.com>
10805
10806         * passes.c: New file.
10807         * Makefile.in (OBJS-common): Add it.
10808         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10809         * flags.h (rtl_dump_and_exit): ... here.
10810         * output.h (size_directive_output, last_assemble_variable_decl):
10811         Move from toplev.c.
10812         * rtl.h (reg_alloc): Move from toplev.c.
10813         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10814         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10815         open_dump_file, close_dump_file, rest_of_decl_compilation,
10816         rest_of_type_compilation, rest_of_handle_final,
10817         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10818         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10819         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10820         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10821         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10822         rest_of_handle_tracer, rest_of_handle_if_conversion,
10823         rest_of_handle_if_after_combine, rest_of_handle_web,
10824         rest_of_handle_branch_prob,
10825         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10826         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10827         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10828         rest_of_handle_null_pointer, rest_of_handle_combine,
10829         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10830         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10831         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10832         (decode_d_option): Use enable_rtl_dump_file.
10833         (compile_file, finalize, do_compile): Move profile+combine+graph
10834         cleanup to finish_optimization_passes.
10835         * toplev.h (init_optimization_passes, finish_optimization_passes,
10836         enable_rtl_dump_file): Declare.
10837
10838 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10839             Roger Sayle  <roger@eyesopen.com>
10840
10841         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10842         operands to build a tree with swapped operands.
10843         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10844         'unsignedp' predicate to specify the signedness.
10845
10846 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10847
10848         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10849         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10850         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10851         comment typos and formatting.  Follow spelling conventions.
10852
10853 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10854
10855         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10856         fix_truncsfsi2.
10857
10858         * config/rs6000/spe.md: Delete spe_efsctuiz.
10859         Add spe_fixuns_truncsfsi2.
10860         Add spe_fix_truncsfsi2.
10861
10862 2004-02-26  Eric Christopher  <echristo@redhat.com>
10863
10864         * c-lex.c (c_lex_string_translate): New variable.
10865         (lex_string): Use to determine string translation.
10866         * c-pragma.h: Prototype.
10867         * c-parse.in (start_string_translation): New. Set above.
10868         (stop_string_translation): Ditto.
10869         (attribute, attribute_list, asm_def, asm_stmt,
10870         asm_operand): Use above functions.
10871         * cp/parser.c (cp_parser_declaration): Translate strings
10872         unless token is RID_EXTERN. Set c_lex_string_translate
10873         for recursive use.
10874         (cp_parser_asm_definition): Only translate argument strings
10875         to asms.
10876         (cp_parser_asm_operand_list): Ditto.
10877         (cp_parser_attribute_list): Do not translate attribute strings.
10878
10879 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10880
10881         * stmt.c (expand_start_case_dummy): Remove.
10882         * tree.h: Remove the corresponding prototype.
10883
10884 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10885
10886         * builtins.c (apply_args_register_offset): Remove.
10887         * tree.h: Remove the corresponding prototype.
10888
10889 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10890
10891         * stor-layout.c (is_pending_size): Remove.
10892         * tree.h: Remove the corresponding prototype.
10893
10894 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10895
10896         * recog.c (validate_replace_src): Remove.
10897         * recog.h: Remove the corresponding prototype.
10898
10899 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10900
10901         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10902         MAYBE_REG_PARM_STACK_SPACE.
10903         * function.c: Likewise.
10904         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10905         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10906         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10907         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10908
10909 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10910
10911         * c-decl.c (c_expand_deferred_function): Remove.
10912         * c-tree.h: Remove the corresponding prototype.
10913
10914 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10915
10916         * postreload.c (reload_cse_move2add): Generate just a PLUS
10917         instead of an entire SET.
10918
10919 2004-02-26  Jan Hubicka  <jh@suse.cz>
10920
10921         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10922         /pentium4m.
10923         * i386.c (override_options): Add support for new CPUs.
10924         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10925         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10926         constants.
10927         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10928
10929 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10930
10931         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10932
10933 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10934
10935         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10936         (sparc_emit_fixunsdi): New prototype.
10937         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10938         (sparc_emit_fixunsdi): New function.
10939         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10940         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10941         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10942         to sparc_emit_floatunsdi.
10943         (fixuns_truncsfdi2): New expander.
10944         (fixuns_truncdfdi2): Likewise.
10945
10946 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10947
10948         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10949         unless HAVE_cc0.
10950
10951 2004-02-25  Richard Henderson  <rth@redhat.com>
10952
10953         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10954         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10955         use (op0-op1) == 0 if op0 is a pointer.
10956         * config/alpha/alpha.md (cmpdi): Use some_operand.
10957         (three comparison combine splits): Remove.
10958
10959 2004-02-25  Richard Henderson  <rth@redhat.com>
10960
10961         PR c/12794
10962         * c-common.c (handle_alias_attribute): Reject the attribute if
10963         current_function_decl is set.
10964
10965 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10966
10967         * config.gcc: Add comment describing extra_gcc_objs.
10968         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10969         * configure.ac (extra_gcc_objs): New substitution variable.
10970         (host_extra_gcc_objs): Don't substitute.
10971         * configure: Regenerate.
10972         * Makefile.in: Use extra_gcc_objs.
10973
10974 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10975
10976         * doc/contrib.texi: Add an entry for myself.
10977
10978 2004-02-25  Jan Hubicka  <jh@suse.cz>
10979
10980         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10981         * cfgbuild.c (make_eh_edge):  Make global.
10982         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10983         * except.c (build_post_landing_pads, connect_post_landing_pads,
10984         dw2_build_landing_pads, sjlj_emit_function_enter,
10985         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10986         sjlj_build_landing_pads): Update CFG.
10987         (emit_to_new_bb_before): New function.
10988         (finish_eh_generation): Do not rebuild the CFG.
10989
10990 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10991
10992         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10993         target_cpu_default defines.
10994         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10995         * pa.h (TARGET_DEFAULT): Likewise.
10996
10997 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10998
10999         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
11000         comparisons with regard to signedness.
11001
11002 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11003
11004         * arm.c (thumb_legitimize_address): New function.
11005         * arm-protos.h: Prototype it.
11006         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
11007         (LEGITIMIZE_ADDRESS): Use it.
11008
11009 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
11010
11011         * reload1.c (reload): Only spill eliminable register with multiple
11012         adjacent elimination alternatives if all alternatives fail.
11013
11014 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
11015
11016         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
11017         is -4095...+4095 inclusive.
11018
11019 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
11020
11021         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
11022         the bootstrap failure with Sun CC 5.4 and 5.5.
11023
11024 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11025
11026         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
11027         which modifies NEWREG.
11028         (cse_condition_code_reg): Update the mode of CC_REG in
11029         CC_SRC_INSN on our own.
11030
11031 2004-02-24  Michael Matz  <matz@suse.de>
11032
11033         * config/i386/i386.c (ix86_comp_type_attributes): Check for
11034         regparm attributes.
11035
11036 2004-02-24  Richard Henderson  <rth@redhat.com>
11037
11038         * toplev.c (dump_file_tbl): Rename from dump_file.
11039         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
11040         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
11041         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
11042         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
11043         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
11044         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
11045         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
11046         s/rtl_dump_file/dump_file/g.
11047
11048 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
11049
11050         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
11051         (spe_fixuns_truncsfsi2): Delete.
11052
11053         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
11054         (fixuns_truncsfsi2): Delete.
11055
11056 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
11057
11058         PR/14240
11059         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
11060
11061 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
11062
11063         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
11064
11065 2004-02-24  Jason Merrill  <jason@redhat.com>
11066
11067         * tree.c (check_qualified_type): New fn.
11068         (get_qualified_type): Use it.  If type already has the desired
11069         quals, just return it.
11070         * tree.h: Declare it.
11071
11072 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
11073
11074         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
11075         TARGET_SCHED_FINISH_GLOBAL): New macros.
11076
11077         * target.h (md_init_global, md_finish_global): Function
11078         declarations corresponding to new target macros.
11079
11080         * haifa-sched.c (sched_init, sched_finish): Allow target to
11081         call the new schedular hooks.
11082
11083         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
11084         call to update_life_info.
11085
11086         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
11087         flag_schedule_insns for SH4.
11088
11089         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
11090         find_set_regmode_weight, find_insn_regmode_weight,
11091         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
11092         sh_variable_issue, high_pressure, ready_reorder,
11093         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
11094         functions used to throttle the insn movement in first
11095         scheduling pass for SH.
11096
11097         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
11098         TARGET_SCHED_FINISH_GLOBAL.
11099
11100 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
11101
11102         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
11103         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
11104         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
11105         symbols in sections named by the user.
11106         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
11107         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
11108         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
11109         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
11110         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
11111         the above.
11112         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
11113         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
11114         one more pseudo to further improve code generation.
11115         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
11116         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
11117         inside UNSPEC.
11118         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
11119         * config/frv/frv.c (frv_legitimate_address_p): Added
11120         allow_double_reg_p argument.  Adjust all callers.  Use it to
11121         decide whether to enable double-register indirect addressing.
11122         (frv_funcdesc_alias_set): Remove.
11123         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
11124         register.  Emit movdi_ldd.
11125         (ldd_address_operand): New.
11126         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
11127         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
11128         (PREDICATE_CODES): Add ldd_address_operand.
11129         * config/frv/frv.md (movdi_ldd): New.
11130         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
11131         intermediate computations if possible.
11132         (symGOTOFF2reg_i): Fix harmless typo.
11133         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
11134         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
11135         relocated p_vaddr to vaddr type.
11136         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
11137         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
11138         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
11139         MEM, or use a funcdesc alias set.  Use regular move instead of
11140         ldd.
11141         (dbl_memory_one_insn_operand): Recognize function descriptors by
11142         type or by alias set, and don't split them.
11143         * config/frv/frv.md (call, call_value): Never use call_internal
11144         for fdpic.
11145         (call_internal, call_value_internal): Never match for FDPIC.
11146         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
11147         call_value_fdpicsi): Require FDPIC.
11148         (ldd): Removed.
11149         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
11150         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
11151         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
11152         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
11153         FDPIC.  Compute data base address.
11154         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
11155         before the other self-specs are processed.
11156         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
11157         Build with -fPIC.
11158         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
11159         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
11160         inhibit_libc is defined.
11161         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
11162         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
11163         __FRV_FDPIC__.
11164         (__RELOC_POINTER): Define.
11165         (_Unwind_IteratePhdrCallback): Use it.
11166         * config/frv/frv.h (Twrite): Define.
11167         (TRANSFER_FROM_TRAMPOLINE): Use it.
11168         * config/frv/linux.h (INVOKE__main): Undefine.
11169         (Twrite): Override.
11170         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
11171         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
11172         (-mlibrary-pic): Emphasize that this option generates EABI code.
11173         (-mcpu): Add fr550.
11174         (-mpack): Remove.
11175         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
11176         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
11177         and CONSTs in FDPIC mode.
11178         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
11179         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11180         * config/frv/frv.c (move_source_operand): Don't accept symbolic
11181         constants.
11182         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
11183         rather than 'i' constraint for the 2-instruction alternative.
11184         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
11185         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
11186         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
11187         EXTRA_CONSTRAINT_FOR_Y.
11188         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
11189         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
11190         (addsi3): Change 'Y' constraint to 'Q'.
11191         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
11192         * reload.c (CONST_POOL_OK_P): New macro.
11193         (find_reloads): Use it to decide whether a constant can be forced
11194         into memory.
11195         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
11196         constant satisfies got12_operand.
11197         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
11198         (frv_legitimate_address_p): Check for valid unspec offsets using
11199         got12_operand rather than frv_legitimate_fdpic_operand_p.
11200         (frv_legitimate_fdpic_operand_p): Delete.
11201         (frv_emit_movsi): Abort if we try to use the FDPIC register during
11202         or after reload.
11203         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
11204         TARGET_FDPIC.
11205         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
11206         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
11207         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
11208         (frv_fdpic_fptr_operand): Don't declare here.
11209         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
11210         rather than fdpic_got12_operand.
11211         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
11212         got12_operand and const_unspec_operand.
11213         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
11214         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
11215         (symbolic_operand): Remove.
11216         (const_unspec_operand): New predicate.
11217         * config/frv/frv.md (*movsi_got): Use got12_operand.
11218         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
11219         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
11220         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
11221         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
11222         * config/frv/frv.c (frv_unspec): New structure.
11223         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
11224         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
11225         validate CONST indices.  Use frv_output_const_unspec to print them.
11226         (frv_print_operand): Update call to unspec_got_name.  Use
11227         frv_output_const_unspec to print constant unspecs.
11228         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
11229         Reject UNSPECs otherwise.
11230         (unspec_got_name): Take the relocation number as argument, not an
11231         rtx containing it.
11232         (frv_output_addr_const_extra): Remove, replacing with...
11233         (frv_output_const_unspec): ...this new function.
11234         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
11235         (gpr_or_int12_operand): Use fdpic_got12_operand.
11236         (dbl_memory_one_insn_operand): Likewise.
11237         (fdpic_got12_operand): Use frv_const_unspec_p.
11238         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
11239         are already legitimate.  Use frv_small_data_reloc_p when deciding
11240         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
11241         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
11242         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
11243         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
11244         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11245         label, for real this time.
11246         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
11247         representation of visibility.
11248         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
11249         such.
11250         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
11251         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
11252         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
11253         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
11254         it was explicitly disabled.
11255         (frv_stack_info): There is no need to save the link register in every
11256         frame unless TARGET_LINKED_FP is true.
11257         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
11258         frame pointer if the stack pointer might change value.
11259         (frv_return_addr_rtx): Check and process "count" argument.
11260         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
11261         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
11262         (frv_find_base_term): Declare.
11263         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
11264         (FIND_BASE_TERM): Define.
11265         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
11266         small_data_register_operand, small_data_symbolic_operand.  Add
11267         symbolic_operand.
11268         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
11269         (frv_print_operand_memory_reference, output_move_single): Remove
11270         special handling for unlegitimized sdata addresses.
11271         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
11272         and symbolic addresses.
11273         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
11274         (frv_find_base_term): New function.
11275         (int_2word_operand): Check specifically for symbolic address constants.
11276         (pic_register_operand, pic_symbolic_operand): Delete.
11277         (small_data_register_operand, small_data_symbolic_operand): Delete.
11278         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
11279         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
11280         (move_source_operand): Only accept CONSTs if they're a two-insn
11281         symbolic constant.
11282         (fdpic_got12_operand): Don't require TARGET_FDPIC.
11283         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
11284         using gen_symGOTOFF2reg*.
11285         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
11286         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
11287         themselves a cost of 3 insns.
11288         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
11289         Change predicate to symbolic_operand.
11290         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
11291         (*movsi_lda_sdata): Delete.
11292         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
11293         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
11294         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
11295         frv-*-*linux*.
11296         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
11297         label.
11298         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
11299         -multilib-library-pic.
11300         (LINK_SPEC): Add -z text for -mfdpic.
11301         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
11302         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
11303         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
11304         Override.
11305         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
11306         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
11307         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
11308         crtstuff-generated files.
11309         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
11310         * config.gcc: Add frv-*-*linux*.
11311         * config/frv/linux.h, config/frv/t-linux: New.
11312         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
11313         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
11314         when -mfdpic even if a linker script is explicitly listed.
11315         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11316         * config/frv/frv.c (frv_override_options): Clear asm_out
11317         unaligned_op for SImode on FDPIC.
11318         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
11319         argument passed to decl_readonly_section.
11320         (frv_assemble_integer): Revert 2003-09-30's change, but make the
11321         whole block run with FDPIC even with -fno-PIC.
11322         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
11323         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
11324         symbol or label plus offset to memory.
11325         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
11326         GOTOFF and GPREL for LABEL_REF.
11327         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
11328         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
11329         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
11330         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
11331         * doc/invoke.texi: Document them.
11332         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
11333         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
11334         (frv_splittable_got_operand): Removed.
11335         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
11336         LO_SUM.  Add comments.
11337         (frv_override_options): Moved enabling of FDPIC to
11338         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
11339         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
11340         (frv_legitimize_fdpic_address): Don't duplicate logic in
11341         frv_emit_movsi.
11342         (frv_gen_GPsym2reg): New.
11343         (unspec_got_name): Added gprel.
11344         (frv_expand_fdpic_call): Add support for inlining PLTs.
11345         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
11346         (gpr_or_int12_operand): Added GPREL12.
11347         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
11348         (small_data_symbolic_operand): Fail if FDPIC.
11349         (fdpic_splittable_got_operand): Removed.
11350         (fdpic_got12_operand): Added GPREL12.
11351         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
11352         when appropriate.  Fix sdata GOTOFF.
11353         (frv_legitimate_constant_p): Require legitimate PIC operand for
11354         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
11355         (frv_assemble_integer): Move FDPIC funcdesc handling out of
11356         flag_pic case.
11357         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
11358         frv_assemble_integer fails.
11359         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
11360         (SUBTARGET_DRIVER_SELF_SPECS): New.
11361         (ASM_SPEC): Don't pass -mno-fdpic.
11362         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
11363         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
11364         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
11365         -multilib-library-pic.
11366         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
11367         condexec_si_media_operator, condexec_sf_add_operator and
11368         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
11369         and condexec_sf_unary_operator.
11370         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
11371         New.
11372         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
11373         movsi_internal.  Give them internal names.  movsi_got has type
11374         int.
11375         (fdpic got splitters): Remove.
11376         (symGPREL2reg, symGPREL2reg_hilo): New.
11377         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
11378         to -mlibrary-pic.  Map -multilib-library-pic to it.
11379         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
11380         Document.
11381         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
11382         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
11383         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
11384         (frv_cannot_force_const_mem): New function.
11385         (const_small_data_p, plus_small_data_p): Update comments on sdata
11386         on FDPIC.
11387         (frv_override_options): Set flag_pie for FDPIC too.
11388         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
11389         call-saved registers on FDPIC.
11390         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
11391         don't force LR to be preserved.
11392         (frv_expand_prologue): Likewise.
11393         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
11394         (frv_frame_pointer_required): Don't force it just because the
11395         FDPIC register is used.
11396         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
11397         operand only if !condexec_p.
11398         (frv_legitimize_address): Return the FDPIC-legitimized address.
11399         Don't match small data here on FDPIC.
11400         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
11401         symbols.  Use TRUE/FALSE instead of 1/0.
11402         (frv_local_funcdesc_p): New.
11403         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
11404         immediates when possible.
11405         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
11406         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
11407         an UNSPEC_GOT.
11408         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
11409         12-bit immediates when possible.
11410         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
11411         are not legitimate pic operands.
11412         (frv_in_small_data_p): Re-enable for FDPIC.
11413         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
11414         (FRV_GLOBAL_P): Removed.
11415         * config/frv/frv.md: Add modes to CONSTs.
11416         (movsi_got): New.
11417         (movsi_lo_sum_got): Use separate matches instead of match_dup.
11418         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
11419         (fdpic splittable operations): Match on flag_pic != 1.
11420         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
11421         * config/frv/frv.c (frv_asm_out_constructor,
11422         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
11423         bytes, not bits.
11424         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
11425         * config/frv/frv.c (frv_assemble_integer): Reject complex
11426         expressions referencing function SYMBOL_REFs.
11427         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
11428         (move_source_operand): Reject CONSTs that reference function
11429         SYMBOL_REFs on FDPIC.
11430         (frv_emit_movsi): If we get such a CONST, break it up.
11431         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
11432         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
11433         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
11434         MEM.
11435         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
11436         (frv_trampoline_size): Increase for FDPIC.
11437         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
11438         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
11439         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
11440         Disable use of GOTOFF for now.
11441         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
11442         Disable use of small data in FDPIC for now.
11443         (frv_asm_output_mi_thunk): Implement for FDPIC.
11444         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
11445         * config/frv/frv.c (frv_asm_out_constructor): Use
11446         frv_assemble_integer for FDPIC pointers.
11447         (frv_asm_out_destructor): Likewise.
11448         * config/frv/frv.md (ldd): Fix order of operands.  Use
11449         address_operand for input.
11450         2003-09-18  DJ Delorie  <dj@redhat.com>
11451         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
11452         (unspec_got_name): Correct typo.
11453         (frv_emit_movsi): Pre-expand splittable GOTs.
11454         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
11455         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
11456         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
11457         * config/frv/t-frv: Add -mfdpic multilibs.
11458         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
11459         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
11460         * config/frv/frv.c (frv_override_options): -mfdpic assumes
11461         flag_pic, default to 32-bit pics, require DWORD ops.
11462         (frv_override_options): Add W and Z constraints.
11463         (frv_expand_prologue): No pic prologue for -mfdpic.
11464         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
11465         (frv_print_operand_memory_reference): Handle GOT constants.
11466         (frv_legitimate_address_p): Allow GOT constants.
11467         (frv_legitimize_address): Handle GOT addresses too.
11468         (frv_legitimate_fdpic_operand_p): New.
11469         (frv_legitimize_fdpic_address): New.
11470         (unspec_got_name): New.
11471         (frv_output_addr_const_extra): New.
11472         (frv_expand_fdpic_call): New.
11473         (frv_fdpic_fptr_operand): New.
11474         (gpr_or_int12_operand): Handle GOT operands.
11475         (int_2word_operand): Handle GOT operands.
11476         (fdpic_operand): New.
11477         (fdpic_splittable_got_operand): New.
11478         (fdpic_got12_operand): New.
11479         (frv_emit_movsi): Handle GOT operands.
11480         (frv_assemble_integer): -mfdpic doesn't use rofixups.
11481         (frv_print_operand): Support 'g' code for GOT operands.
11482         * config/frv/frv-protos.h: Add prototypes as needed.
11483         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
11484         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
11485         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
11486         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
11487         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
11488         R_FRV_GOTOFFLO): New.
11489         (movsi_high_got, movsi_lo_sum_got): New.
11490         (*movsi_pic): Don't use this splitter for -mfdpic.
11491         (addsi3): Allow GOT references also.
11492         (call, call_value): Handle -mfdpic separately.
11493         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
11494         call_value_fdpicsi): New.
11495         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
11496         symGOTOFF2reg_i): New.
11497         * config/frv/frv.h (MASK_FDPIC): New.
11498         (TARGET_FDPIC): New.
11499         (TARGET_SWITCHES): Add -mfdpic.
11500         (FDPIC_FPTR_REGNO): New.
11501         (FDPIC_REGNO): New.
11502         (OUR_FDPIC_REG): New.
11503         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
11504         FDPIC_CALL_REGS.
11505         (REG_CLASS_NAMES): Likewise.
11506         (REG_CLASS_CONTENTS): Likewise.
11507         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
11508         (EXTRA_CONSTRAINT): Add it here.
11509         (FRV_GLOBAL_P): New.
11510         (OUTPUT_ADDR_CONST_EXTRA): New.
11511
11512 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11513
11514         * config/sparc/sparc.h: Remove commented-out definitions of
11515         TARGET_EDOM and GEN_ERRNO_RTX.
11516
11517 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
11518
11519         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
11520         df_analyse with df_analyze.
11521
11522 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
11523
11524         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
11525         beginning of block.
11526
11527 2004-02-23  James E Wilson  <wilson@specifixinc.com>
11528
11529         * calls.c (precompute_arguments): Update comment.
11530
11531 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11532
11533         * et-forest.c: Replace et_occurences with et_occurrences.
11534
11535 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11536
11537         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
11538         with iv_analyze.
11539
11540 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
11541
11542         * config/i386/i386.c: Rename pni to sse3.
11543         * config/i386/i386.h: Likewise.
11544         * config/i386/i386.md: Likewise.
11545         * config/i386/pmmintrin.h: Likewise.
11546         * doc/extend.texi: Likewise.
11547         * doc/invoke.texi: Likewise.
11548
11549 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
11550             Kazu Hirata  <kazu@cs.umass.edu>
11551
11552         Remove -fwritable-strings.
11553         * c-common.c (fix_string_type): Don't check
11554         flag_writable_strings.
11555         (fix_string_type): Likewise.
11556         * c-opts.c (set_std_c89): Don't initialize
11557         flag_writable_strings.
11558         (set_std_c99): Likewise.
11559         * common.opt (fwritable-strings): Remove.
11560         * flags.h: Remove the external declaration of
11561         flag_writable_strings.
11562         * opts.c (common_handle_option) <OPT_fwritable_strings>:
11563         Remove.
11564         * toplev.c (flag_writable_strings): Remove.
11565         (f_options): Remove an entry for writable-strings.
11566         * varasm.c (const_hash_1) <STRING_CST>: Don't check
11567         flag_writable_strings.
11568         (compare_constant) <STRING_CST>: Likewise.
11569         (build_constant_desc): Likewise.
11570         * config/darwin.c (machopic_select_section): Likewise.
11571         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
11572         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
11573         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
11574         * config/mips/mips.c (mips_select_section): Likewise.
11575         (mips_encode_section_info): Likewise.
11576         * config/pa/pa.c (pa_select_section): Likewise.
11577         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
11578         * config/v850/v850.c (v850_select_section): Likewise.
11579         * doc/invoke.texi (-fwritable-strings): Remove.
11580         (-fno-const-strings): Don't mention -fwritable-strings.
11581         * doc/trouble.texi: Don't mention -fwritable-strings.
11582
11583 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
11584
11585         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
11586
11587 2004-02-23  Dale Johannesen  <dalej@apple.com>
11588
11589         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
11590         (movdf_hardfloat64):  Ditto.
11591         (movdf_softfloat64):  Ditto.
11592
11593 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11594         * config/rs6000/rs6000.c (function_arg): call to
11595         rs6000_mixed_function_arg for DFmode moved to allow
11596         normal DFmode incoming register assignment.
11597
11598 2004-02-23  Dale Johannesen  <dalej@apple.com>
11599
11600         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11601         (movdf_hardfloat64):  Ditto.
11602
11603 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11604
11605         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11606         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11607         copyright.
11608
11609 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11610
11611         PR c/14156
11612         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11613         to use DECL_P instead.
11614
11615         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11616         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11617
11618 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11619
11620         * Makefile.in (opts.o): Depend on target.h.
11621         * opts.c (decode_options): Use targetm.default_short_enums
11622         instead of DEFAULT_SHORT_ENUMS.
11623         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11624         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11625         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11626         * target.h (gcc_target): Add default_short_enums.
11627         * config/cris/cris.h: Remove a comment about
11628         DEFAULT_SHORT_ENUMS.
11629         * config/ip2k/ip2k.h: Likewise.
11630         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11631         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11632
11633 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11634             Falk Hueffner  <falk@debian.org>
11635
11636         PR c/14188
11637         * builtins.c (expand_builtin_va_arg): Emit an informative message
11638         if a trap is generated.
11639         * c-typeck.c (build_function_call): Likewise.
11640
11641 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11642
11643         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11644         fopen.
11645         * libgcov.c: Include sys/stat.h.
11646         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11647         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11648         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11649         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11650
11651 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11652
11653         * reorg.c: Remove comments about dead ports.
11654
11655 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11656
11657         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11658         extra host object file when targetting cygwin rather than generic
11659         object files.
11660
11661 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11662
11663         Merge from tree-ssa:
11664         2003-11-20  Richard Henderson  <rth@redhat.com>
11665
11666                 * tree-inline.c (insert_decl_map): New.
11667                 (remap_decl, remap_type, remap_block, copy_body_r,
11668                 initialize_inlined_parameters, declare_return_variable,
11669                 remap_save_expr): Use it.
11670
11671         * function.c (copy_body_r): Add mapping from id->ret_label to
11672         id->ret_label.  Revert test for ret_label.
11673
11674 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11675
11676         * genoutput.c (process_template): Strip trailing whitespace in @
11677         templates and issue a warning if there was any.
11678
11679 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11680
11681         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11682         object file when targetting cygwin.
11683         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11684         overridden by top-level Makefile.
11685
11686 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11687
11688         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11689         the x87's load constant instructions when optimizing for size.
11690
11691 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11692
11693         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11694         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11695         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11696         * fold-const.c: Likewise.
11697         * simplify-rtx.c: Likewise.
11698
11699 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11700
11701         * combine.c (can_combine_p): Don't ignore SETs marked with
11702         REG_EH_REGION notes.
11703         (try_combine): When attemting to fix unrecognized insns, don't
11704         split a PARALLEL that contains the original i2.
11705
11706 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11707
11708         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11709         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11710         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11711         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11712         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11713         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11714         portion of header.
11715         (__altivec_link_error_invalid_argument): Remove prototype; will use
11716         __builtin_altivec_compiletime_error("vec_*") instead.
11717         (vec_*): Fix/complete set of available operation overloads given the
11718         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11719         cv-correctness of pointer arguments; in C, always check for correct
11720         argument types before macro expansion.
11721         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11722         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11723         '-W[no-]altivec-long-deprecated' switches.
11724         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11725         '__vector', '__pixel' and '__bool' macros using
11726         '__attribute__((altivec(...)))' types.
11727         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11728         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11729         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11730         New type nodes.
11731         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11732         handling '-W[no-]altivec-long-deprecated'.
11733         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11734         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11735         altivec_expand_dst_builtin): Remove casts from integer literals.
11736         (altivec_expand_builtin): Likewise; handle expansion of new
11737         '__builtin_altivec_compiletime_error' function.
11738         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11739         types, and make them distinct from other vector types; register
11740         '__builtin_altivec_compiletime_error' function.
11741         (print_operand): For 'P', print a full target register name instead of
11742         merely its number.
11743         (rs6000_attribute_table): Add "altivec" attribute.
11744         (rs6000_handle_altivec_attribute): New function.
11745         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11746         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11747         maps to).
11748         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11749         declare.
11750         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11751
11752 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11753
11754         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11755         check.
11756         (shift_mix4left+2): Delete redundant pattern.
11757
11758 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11759
11760         * alias.c (OUTGOING_REGNO): Don't define the default.
11761         * builtins.c (OUTGOING_REGNO): Likewise.
11762         (INCOMING_REGNO): Likewise.
11763         (apply_args_register_offset): Always use OUTGOING_REGNO.
11764         * combine.c (OUTGOING_REGNO): Likewise.
11765         * sibcall.c (OUTGOING_REGNO): Likewise.
11766         * defaults.h (INCOMING_REGNO): Provide the default.
11767         (OUTGOING_REGNO): Likewise.
11768
11769 2004-02-21  Jan Hubicka  <jh@suse.cz>
11770
11771         * params.def (max-peeled-insns, max-completely-peeled-insns,
11772         max-once-peeled-insns): Set to 400.
11773
11774 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11775
11776         PR c++/12007
11777         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11778         are set for parameters before outputing debugging information.
11779
11780 2004-02-20  Falk Hueffner  <falk@debian.org>
11781
11782         PR target/14201
11783         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11784         numbers.
11785
11786 2004-02-20  Per Bothner  <per@bothner.com>
11787
11788         * input.h:  Don't #include line-map.h.  It may cause link problems
11789         with undefined linemap_line_start when line-map.h is included but
11790         line-map.o is not linked, as currently happens with gengtype on
11791         compilers that don't support inline.
11792         * toplev.c:  So we do have to explicitly #include line-map.h here.
11793
11794 2004-02-20  Richard Henderson  <rth@redhat.com>
11795
11796         * doc/invoke.texi: Add -Wvariadic-macros.
11797
11798 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11799
11800         * haifa-sched.c (sched_emit_insn): Remove.
11801         * sched-int.h: Remove the corresponding prototype.
11802
11803 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11804
11805         Revert:
11806         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11807         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11808         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11809         * config/cris/cris.h: Remove a comment about
11810         DEFAULT_SHORT_ENUMS.
11811         * config/ip2k/ip2k.h: Likewise.
11812         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11813
11814 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11815             Tom Tromey  <tromey@redhat.com>
11816
11817         * doc/install.texi: Moved --disable-libgcj and
11818         --with-system-zlib documentation to new section for
11819         Java-specific options.
11820         Added explicit Cross-Compiler-Specific Options subheading.
11821         Added section for Java-specific options.
11822
11823 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11824
11825         * doc/install.texi (Building the Ada compiler): Remove
11826         example.
11827
11828 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11829
11830         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11831
11832 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11833
11834         * gcc.c (process_command): Allow translation of the copyright
11835         symbol but not the rest of the copyright message.
11836         * gcov.c (print_version): Likewise.  Allow translation of the
11837         message about warranty.
11838
11839 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11840
11841         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11842         predicate.
11843         ("*andsi_clear"): Tweak constraints to not match postincrement.
11844         Adjust the predicate to exclude a volatile memory reference.
11845         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11846         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11847
11848 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11849
11850         * move-if-change: Remove.
11851         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11852         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11853         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11854         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11855         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11856         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11857
11858 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11859
11860         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11861         for operand2.  Add condition that requires register_operand operand2
11862         before reload.
11863
11864 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11865             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11866
11867         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11868         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11869
11870 2004-02-19  Richard Henderson  <rth@redhat.com>
11871
11872         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11873         * tree.c (build0, build1, build2, build3, build4): Split out from...
11874         (build): ... here.  Call them.
11875         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11876
11877         * convert.c (convert_to_integer): Remove extra build argument.
11878         * tree-inline.c (expand_call_inline): Likewise.
11879
11880 2004-02-19  Richard Henderson  <rth@redhat.com>
11881
11882         * c-opts.c (warn_variadic_macros): New.
11883         (c_common_handle_option): Set it.
11884         (sanitize_cpp_opts): Copy it to cpp_opts.
11885         * c.opt (Wvariadic-macros): New.
11886         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11887         * cppinit.c (cpp_create_reader): Initialize it.
11888         * cppmacro.c (parse_params): Check it.
11889
11890 2004-02-19  David Daney <ddaney@avtrex.com>
11891
11892         PR preprocessor/14198
11893         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11894         builtin_assert ("machine=mips")
11895
11896 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11897
11898         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11899         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11900         * config/cris/cris.h: Remove a comment about
11901         DEFAULT_SHORT_ENUMS.
11902         * config/ip2k/ip2k.h: Likewise.
11903         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11904
11905 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11906
11907         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11908         when passing single SFmode quantities in general registers,
11909         put them in the high half.
11910
11911 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11912
11913         * doc/md.texi (Standard Names): Document additional dependency on
11914         fix pattern.
11915
11916         * optabs.c (ftruncify): Remove.
11917         (expand_fix): Manually inline ftruncify above.
11918         (can_fix_p): Add FIXME note.
11919
11920 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11921
11922         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11923         spe_fixuns_truncsfsi2.
11924
11925         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11926         fixuns_truncsfsi2.
11927
11928 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11929
11930         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11931         * testsuite/gcc.dg/20040219-1.c: New test.
11932
11933 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11934
11935         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11936         "*subsf3_cconly"): Subtraction is not commutative.
11937
11938 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11939
11940         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11941         (sdbout_symbol): If called before sdbout_init, queue DECL for
11942         later and return.
11943         (sdbout_init): Set sdbout_initialized true, process decls
11944         queued earlier by sdbout_symbol.
11945         (sdbout_finish): Use size_t for index variable.
11946
11947 2004-02-19  Jeff Law  <law@redhat.com>
11948
11949         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11950         for unordered comparison codes.
11951
11952 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11953
11954         * reload1.c (reload): Correct comment.
11955         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11956         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11957         register variables are not used by reload.
11958
11959 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11960
11961         PR target/14209
11962         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11963         constraints to not match postincrement.  Adjust the predicate to
11964         exclude a volatile memory reference.
11965
11966 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11967
11968         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11969
11970 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11971
11972         * hooks.c (hook_void_tree_int): Remove.
11973         (hook_void_constcharptr): Likewise.
11974         (hook_int_void_0): Likewise.
11975         * hooks.h: Remove the prototypes for the above three
11976         functions.
11977         * targhooks.c (hook_bool_machine_mode_true): Remove.
11978         * targhooks.h: Remove the prototype for
11979         hook_bool_machine_mode_true.
11980
11981 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11982
11983         * emit-rtl.c (subreg_realpart_p): Remove.
11984         (reorder_insns_with_line_notes): Likewise.
11985         (end_full_sequence): Likewise.
11986         * rtl.h: Remove the prototype for the above functions.
11987
11988 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11989
11990         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11991         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11992         config/iq2000/iq2000.h, config/m32r/m32r.h,
11993         config/pdp11/pdp11.h, config/sparc/sparc.h,
11994         config/xtensa/xtensa.h: Remove commented-out or useless
11995         definitions of CASE_VECTOR_PC_RELATIVE.
11996
11997 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11998
11999         * loop.c (all_sets_invariant_p): Remove.
12000
12001 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
12002
12003         PR target/12916
12004         * config/sparc/sparc.h (NPARM_REGS): Delete.
12005         (BASE_RETURN_VALUE_REG): Likewise.
12006         (BASE_OUTGOING_VALUE_REG): Likewise.
12007         (BASE_PASSING_ARG_REG): Likewise.
12008         (BASE_INCOMING_ARG_REG): Likewise.
12009         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
12010         TARGET_ARCH64, not TARGET_V9.
12011         (function_arg_slotno): Dispatch based on the mode class.
12012         Handle vector modes like floating-point modes.
12013         (function_arg_record_value_1): Handle vector types like
12014         floating-point types.
12015         (function_arg_record_value_2): Likewise.
12016         Calculate regno after mode transformation.
12017         (function_arg): Handle vector modes like floating-point modes.
12018         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
12019         If ARCH64, do not recheck alignment.
12020         (function_arg_pass_by_reference): Reorder the conditions.
12021         (sparc_return_in_memory): Move after function_arg_padding.
12022         Implement calling conventions for vector modes.
12023         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
12024         (function_value): Move scope of 'regbase'.
12025         Implement calling conventions for vector modes.
12026         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
12027         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
12028         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
12029         the argument is passed by reference.
12030         (sparc_type_code): Handle vector types.
12031
12032 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
12033
12034         * function.c (assign_parms): When building decl_rtl for
12035         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
12036
12037 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
12038
12039         * expr.c (is_aligning_offset): Check if we are aligning the
12040         expressions's address over BIGGEST_ALIGNMENT in bytes, not
12041         in bits.
12042
12043 2003-02-18  Matt Austern  <austern@apple.com>
12044
12045         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
12046         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
12047         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
12048         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
12049         spec string.
12050         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
12051
12052 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
12053
12054         * dwarf2out.c (loclabel_num): Move outside #ifdef
12055         DWARF2_DEBUGGING_INFO and mark with GTY(()).
12056         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
12057         Mark with GTY(()).
12058         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
12059         Allocate memory with ggc_alloc.  No need to copy anything.
12060         (ia64_hpux_file_end): Update to match.
12061
12062 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12063
12064         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
12065         by default.
12066
12067 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12068
12069         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
12070         ("divmodtisi3"): Likewise.
12071         ("udivmoddi4", "udivmodtidi3"): Likewise.
12072         ("divmodsi4", "divmoddisi3"): Likewise.
12073         ("udivmodsi4", "udivmoddisi3"): Likewise.
12074         ("udivsi3", "umodsi3"): Likewise.
12075
12076 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
12077
12078         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
12079         placeholder insn when chunkifying the pool.
12080
12081 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12082
12083         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
12084         generating PIC code.
12085
12086 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12087
12088         * config/h8300/h8300-protos.h: Add a prototype for
12089         h8300_expand_branch.
12090         * config/h8300/h8300.c (h8300_expand_branch): New.
12091         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
12092         bgtu, beq, bne): Call h8300_expand_branch().
12093
12094 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12095
12096         * config/h8300/h8300-protos.h: Add prototypes for
12097         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
12098         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
12099         (h8300_hard_regno_mode_ok): Likewise.
12100         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
12101         h8300_hard_regno_nregs().
12102         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
12103
12104 2004-02-18  Per Bothner  <per@bothner.com>
12105
12106         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
12107         partly reverts my 2003-10-01 change, because we're back to logically
12108         including <command line> inside the main line.
12109         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
12110         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
12111         Fixes PR preprocessor/14103.
12112
12113         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
12114         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
12115         (cpp_push_include):  Don't need to increment pfile's line field.
12116         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
12117
12118         * c-ppoutput.c (print struct):  New first_time field.
12119         (init_pp_output):  Set print.first_time.
12120         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
12121         which is set also for (say) <command line>.  Clear print.first_time.
12122
12123         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
12124         does not match the code, so fix both.
12125         (should_stack_file):  Inline include_pch_p function.
12126         (include_pch_p):  Remove pointless function.
12127
12128         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
12129
12130 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12131
12132         * config/h8300/h8300.md (four define_peephole2's): Use
12133         h8300_regs_ok_for_stm().
12134
12135 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12136
12137         * config/h8300/h8300-protos.h: Update the prototype for
12138         expand_a_rotate().
12139         * config/h8300/h8300.c (expand_a_rotate): Remove the first
12140         argument.
12141         * config/h8300/h8300.md: Update all callers.
12142
12143 2004-02-18  Jan Hubicka  <jh@suse.cz>
12144
12145         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
12146         floats.
12147         (simplify_binary_operation): Deal with logicals on floats.
12148
12149         * i386.md (SSE fabs splitters): Emit new patterns.
12150         (SSE cmov splitters): Likewise.
12151         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
12152         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
12153         subregs.
12154         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
12155         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
12156
12157 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12158
12159         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
12160         by hand.
12161         (output_a_rotate): Tweak a comment.
12162         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
12163         (*rotlhi3_1): Change to rotlhi3_1.
12164         (*rotlsi3_1): Change to rotlsi3_1.
12165
12166 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
12167
12168         PR target/13866
12169         * arm.c (load_multiple_operation): Don't insist that the source reg
12170         of a post-increment component is the same as the destination.
12171         (store_multiple_operation): Likewise.
12172
12173 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12174
12175         * config/h8300/h8300.md: Move movsf patterns into one section
12176         of the file.
12177
12178 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12179
12180         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
12181         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
12182         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
12183         config/mips/linux64.h, config/pa/pa-64.h,
12184         config/rs6000/aix51.h, config/rs6000/aix52.h,
12185         config/rs6000/spe.md, config/sparc/linux.h,
12186         config/sparc/linux64.h: Update copyright.
12187
12188 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
12189
12190         * config/h8300/h8300.md: Move push patterns into one
12191         section of the file.
12192
12193 2004-02-18  Mark Mitchell <mark@codesourcery.com>
12194
12195         PR c++/11326
12196         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
12197         fntype.
12198
12199 2004-02-18  Paul Brook  <paul@codesourcery.com>
12200
12201         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
12202
12203 2004-02-18  Paul Brook  <paul@codesourcery.com>
12204
12205         PR debug/12934
12206         * dwarf2out.c (loc_descriptor_from_tree): Handle
12207         EXPR_WITH_FILE_LOCATION.
12208
12209 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
12210
12211         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
12212         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
12213         trailing whitespace from instructions.
12214
12215 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
12216
12217         * configure.ac: When generating auto-build.h, pass
12218         --enable-languages to the sub-configure.
12219         Put quotes around ${program_transform_name} when generating
12220         name of as, ld, nm, objdump.
12221         * configure: Regenerate.
12222
12223 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
12224
12225         * Makefile.in (s-check, s-config, s-conditions, s-flags)
12226         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
12227         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
12228         (s-preds, s-iov): Do not depend on move-if-change.
12229
12230 2004-02-17  James E Wilson  <wilson@specifixinc.com>
12231
12232         * caller-save.c (insert_restore): Pass mem through copy_rtx.
12233         (insert_save): Likewise.
12234
12235 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12236
12237         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
12238         warning.
12239
12240 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12241
12242         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
12243         *one_cmplsi2_h8300.
12244         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
12245
12246 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12247
12248         * config/h8300/h8300-protos.h: Update the prototype of
12249         fix_bit_operand().
12250         * config/h8300/h8300.c (fix_bit_operand): Remove the second
12251         argument "what".
12252         * config/h8300/h8300.md: Update all callers.
12253
12254 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12255
12256         * config/h8300/h8300.c (fix_bit_operand): Change the name of
12257         the last argument to "code" from "type".
12258
12259 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12260
12261         * config/h8300/h8300.c: Remove an extern declaration of
12262         rtx_equal_function_value_matters.
12263
12264 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12265
12266         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
12267         by hand.
12268         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
12269         (*iorqi3_1): Change to iorqi3_1.
12270         (*xorqi3_1): Change to xorqi3_1.
12271
12272 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12273
12274         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
12275         typos.
12276
12277 2004-02-17  Jan Hubicka  <jh@suse.cz>
12278
12279         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
12280
12281 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
12282
12283         PR optimization/14119
12284         * combine.c (try_combine): When attemting to fix unrecognized insns,
12285         don't delete SETs marked with REG_EH_REGION notes.
12286
12287 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
12288
12289         * combine.c (simplify_if_then_else): Do not replace
12290         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
12291         modes differ.
12292
12293 2004-02017  Steven Bosscher  <stevenb@suse.de>
12294
12295         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
12296         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
12297         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
12298         * ada/utils.c: Likewise.
12299         * cp/decl.c: Likewise.
12300         * f/com.c: Likewise.
12301         * java/class.c: Likewise.
12302
12303 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12304
12305         * config/h8300/h8300.md: Fix comment typos.
12306
12307 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12308
12309         * config/mips/t-iris6gld: Renamed to ...
12310         * config/mips/t-irix-gld: ... this.
12311         * config.gcc (mips-sgi-irix6*): Reflect this
12312         (mips-sgi-irix5*): Use it with GNU ld.
12313
12314         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
12315         to ...
12316         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
12317         * config/mips/t-irix-gld: Reflect this.
12318         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12319
12320         * config/mips/iris5gld.h: New file.
12321         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
12322         Only use collect2 without gas.
12323
12324         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
12325         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12326         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
12327         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
12328
12329         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
12330         * config/mips/iris5.h: ... here.
12331
12332         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
12333         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
12334         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
12335
12336         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
12337         using irix_startfile_spec, irix_endfile_spec.
12338
12339 2004-02-16  Gunther Nikl  <gni@gecko.de>
12340
12341         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
12342
12343 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12344
12345         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
12346         insns by hand.
12347
12348 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12349
12350         * cfghooks.c (split_edge): Speed up updating of dominators.
12351
12352 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
12353
12354         PR c++/11326
12355         * c-common.c (flag_abi_version): Remove.
12356         * c-common.h (flag_abi_version): Likewise.
12357         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
12358         * c.opt (fabi-version): Remove.
12359         * calls.c (expand_call): Always pass a function type to
12360         struct_value_rtx.  Use convert_memory_address.
12361         * common.opt (fabi-version): Add it.
12362         * flags.h (flag_abi_version): Likewise.
12363         (abi_version_at_least): New macro.
12364         * opts.c (common_handle_option): Add OPT_fabi_version.
12365         * toplev.c (flag_abi_version): Define it.
12366         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
12367         New function.
12368         (ia64_output_mi_thunk): Use it.
12369         (ia64_struct_value_rtx): Likewise.
12370
12371 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12372
12373         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
12374         Don't generate insns by hand.
12375
12376 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
12377
12378         PR c++/14178
12379         * doc/invoke.texi (fabi-version): The default is 2 now.
12380
12381 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12382
12383         * loop-iv.c: New file.
12384         * Makefile.in (loop-iv.o): New.
12385         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
12386         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
12387         num_loop_branches): New functions.
12388         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
12389         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
12390         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
12391         get_simple_loop_desc, free_simple_loop_desc): Declare.
12392         (simple_loop_desc): New inline function.
12393         (struct rtx_iv, struct niter_desc): New.
12394         * cfgloopmanip.c (loopify): Specify semantics more precisely.
12395         * expr.c (force_operand): Handle subregs of expressions created by
12396         loop unroller.
12397         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
12398         parts of the initialization to toplev.c
12399         * loop-unroll.c (loop_exit_at_end_p): New.
12400         (unroll_and_peel_loops): Call iv_analysis_done.
12401         (decide_peel_once_rolling, decide_peel_completely,
12402         decide_unroll_stupid, decide_unroll_constant_iterations,
12403         decide_unroll_runtime_iterations, decide_peel_simple,
12404         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
12405         unroll_loop_runtime_iterations): Use new simple loop analysis.
12406         * loop-unswitch.c (compare_and_jump_seq): New.
12407         (may_unswitch_on_p): Renamed to ...
12408         (may_unswitch_on): Use new iv analysis.
12409         (reversed_condition): Export.
12410         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
12411         * predict.c (estimate_probability): Use new simple loop analysis.
12412         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
12413         canon_condition, simplify_using_condition): Declare.
12414         * stor-layout.c (get_mode_bounds): New.
12415         * toplev.c (rest_of_handle_loop2): Some parts of
12416         initialization/finalization moved here from loop-init.c.
12417
12418 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
12419
12420         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
12421         pointer.
12422         (CALL_USED_REGISTERS): Likewise.
12423         (REG_ALLOC_ORDER): Likewise.
12424         (REG_CLASS) <GENERAL_REGS>: Likewise.
12425
12426 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
12427
12428         * doc/md.texi (Insn Canonicalizations): Document left-chaining
12429         in associative operators.
12430         * rtlanal.c (commutative_operand_precedence): Create some new
12431         variables.  Prefer a commutative operand on the left, then
12432         binary expressions, then NEG and NOT.
12433
12434 2004-02-16  Matthias Klose  <doko@debian.org>
12435
12436         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
12437         in terms of SHLIB_SOVERSION.
12438         * config/m68k/t-slibgcc-elf-ver: New file.
12439         * config/pa/t-slibgcc-elf-ver: New file.
12440         * config.gcc (m68k-linux, parisc-linux): Use them when not
12441         sjlj exceptions are not configured.
12442
12443 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
12444
12445         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
12446
12447 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
12448
12449         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
12450
12451 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
12452
12453         * doc/sourcebuild.texi: Mention backends.html.
12454
12455 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
12456
12457         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
12458         line-map.c, line-map.h, var-tracking.c: Fix comment
12459         formatting.
12460
12461 2004-02-16  Richard Henderson  <rth@redhat.com>
12462
12463         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
12464
12465         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
12466
12467 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12468
12469         * config/h8300/h8300.md: Remove unnecessary parallels from
12470         all define_insn and define_split patterns.
12471
12472 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12473
12474         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
12475         "clobber").
12476
12477 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
12478
12479         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
12480         '%#'.
12481
12482 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
12483
12484         * config/ia64/ia64.c, config/mips/mips.c,
12485         config/mmix/mmix-modes.def: Fix comment typos.
12486
12487 2004-02-15  Roger Sayle  <roger@eyesopen.com>
12488
12489         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
12490         (get_directive_line): Remove unused function prototype.
12491
12492 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12493
12494         * tree-inline.c (copy_body_r): Do not replace ret_label.
12495
12496 2004-02-14  Jan Hubicka  <jh@suse.cz>
12497
12498         * i386.c (x86_four_jump_limit): New variable.
12499         (k8_avoid_jump_misspredicts): Rename to ...
12500         (ix86_avoid_jump_misspredicts): .. this one.
12501         (ix86_pad_returns): Break out from ...
12502         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
12503         to.
12504         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
12505
12506 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
12507
12508         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
12509         PARALLEL is NULL.
12510
12511 2004-02-14  Per Bothner  <per@bothner.com>
12512
12513         * fix-header.c (line_table):  Move local variable in main to global.
12514         * scan.h (line_table):  Use it.
12515         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
12516         line (recently renamed to src_loc) before calling recognized_function.
12517
12518 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
12519
12520         * Makefile.in: Fix comment typos.
12521
12522 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
12523
12524         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
12525         for start_value when it is directly moved into reg, and factorize
12526         the retrieval of GET_MODE (reg).
12527
12528 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12529
12530         * config/mips/mips-protos.h (mips_load_got_page): Delete.
12531         (mips_load_got_global): Delete.
12532         (mips_gotoff_page): Declare.
12533         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
12534         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
12535         UNSPEC_LOAD_GOT pattern rather than a MEM.
12536         (*load_got[sd]i): New patterns.
12537         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
12538         (mips_load_got_page, mips_load_got_global): Delete.
12539         (mips_gotoff_page): New function.
12540         (override_options): Don't initialize mips_got_alias_set.
12541
12542 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
12543
12544         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
12545         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
12546         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
12547         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
12548         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
12549         * config/mips/mips.c: Fix some overly-long lines.
12550         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
12551         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
12552
12553 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12554
12555         * configure.ac: Search for as, ld below libexec/gcc.
12556         * configure: Regenerate.
12557
12558 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12559
12560         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
12561         __builtin_arm_setwcx ().
12562         * config/arm/arm.c (arm_expand_builtin): Generate operands
12563         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
12564
12565 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
12566
12567         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
12568         and "wmuluh" to "wmulsm" and "wmulum", respectively.
12569         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
12570         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
12571         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
12572         (_mm_mulhi_pu16): Likewise.
12573
12574 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
12575
12576         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
12577         DECL_NAME != 0 before dereferencing.
12578
12579 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12580
12581         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
12582         (s390_output_addr_const_extra): Declare.
12583         (s390_output_pool_entry): Remove FILE * argument.
12584         * config/s390/s390.c (s390_output_symbolic_const): Remove.
12585         (s390_output_addr_const_extra): New function.
12586         (print_operand_address): Call output_addr_const instead of
12587         s390_output_symbolic_const.
12588         (print_operand): Likewise.
12589         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
12590         Remove FILE * argument.
12591         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12592         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12593         call.
12594
12595 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12596
12597         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12598         (struct edge, struct vertex, struct graph): New.
12599         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12600         free_graph): New functions.
12601
12602 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12603
12604         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12605         Use ".set macro" to avoid warnings about multi-instruction
12606         macros, since they're intentional.
12607
12608 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12609
12610         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12611         comment about STANDARD_EXEC_PREFIX.
12612
12613         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12614         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12615         for installing .1 manpages.  Add rules for installing cpp
12616         and gcov manpages under their installed names.
12617
12618 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12619
12620         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12621         host, but try LD_FOR_TARGET first.
12622         * configure: Rebuilt.
12623
12624 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12625
12626         * dbxout.c: Move declaration of dbxout_type_decl outside
12627         #ifdef DBX_DEBUGGING_INFO.
12628         * c-parse.in: Don't give the asmdef production a type.
12629
12630 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12631
12632         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12633         (debug_nothing_tree_int): Prototype.
12634         (dwarf_debug_hooks): Delete, unused.
12635         * debug.c (do_nothing_debug_hooks): Update.
12636         (debug_nothing_tree_int): New function.
12637         * langhooks.h (struct lang_hooks_for_decls):
12638         Remove builtin_type_decls field.
12639         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12640         (LANG_HOOKS_DECLS): Update.
12641         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12642         Use debug_hooks->type_decl.
12643         * dbxout.c (preinit_symbols): New static.
12644         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12645         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12646         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12647         for symbols to output.
12648         (dbxout_type_decl): New function.
12649         (dbxout_symbol): If called before dbxout_init has run, queue
12650         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12651         to TYPE_DECLs before emitting them.
12652         * xcoffout.c (assign_type_number): Delete.
12653         (xcoff_type_numbers): New static table.
12654         (xcoff_assign_fundamental_type_number): New function.
12655         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12656         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12657         * sdbout.c: Include varray.h.
12658         (deferred_global_decls): New static.
12659         (sdb_debug_hooks): Update.
12660         (sdbout_global_decl): If we can't emit something right now,
12661         remember it in deferred_global_decls.
12662         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12663         (sdbout_init): Initialize deferred_global_decls.
12664         * Makefile.in: Update dependencies of sdbout.o.
12665         * dwarf2out.c (dwarf2out_type_decl): New function.
12666         (dwarf2_debug_hooks): Update.
12667         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12668         * c-decl.c (getdecls): Just return 0.
12669         (check_for_loop_decls): Don't use getdecls.
12670         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12671         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12672
12673 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12674
12675         * config/s390/s390.c (s390_sched_reorder2): Remove.
12676         (TARGET_SCHED_REORDER2): Do not redefine.
12677
12678 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12679
12680         * c-parse.in (maybe_type_qual): Delete.
12681         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12682         (asm_argument): New grammar rules.
12683         (extdef_1): Use asmdef.
12684         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12685         (xexpr): Move up with other expression rules.
12686         (stmt): Use asm_stmt.
12687
12688         * c-typeck.c (build_asm_expr): New function - body mostly
12689         pulled from build_asm_stmt.
12690         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12691         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12692
12693 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12694
12695         PR bootstrap/13617
12696         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12697         (mips_declare_object): Make variadic.
12698         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12699         mips_output_aligned_decl_common.
12700         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12701         (mips_declare_object): Make variadic.
12702
12703 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12704
12705         * function.c (update_epilogue_consts): Teach about binary operations.
12706
12707         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12708         previous MEM_VOLATILE in REF.
12709         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12710         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12711
12712 2004-02-12  Gunther Nikl  <gni@gecko.de>
12713
12714         * config.gcc: Restore support for m68k-openbsd.
12715
12716 2004-02-12  Jan Hubicka  <jh@suse.cz>
12717
12718         * tree-optimize.c (tree_rest_of_compilation): Do not release
12719         DECL_ARGUMENTS.
12720
12721 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12722
12723         * doc/install.texi: Fix the spelling of "explicitly".
12724
12725 2004-02-11  Eric Christopher  <echristo@redhat.com>
12726
12727         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12728         duplicate argument structure of cpp_interpret_string.
12729         * cpphash.h: Move prototype...
12730         * cpplib.h: Here.
12731         * cpplib.c: Fix calls to match new function signature.
12732
12733 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12734
12735         PR c/456
12736         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12737         constant expressions at all outside C99 mode if pedantic.
12738
12739 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12740
12741         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12742         (log10_optab, log2_optab): Define corresponding macros.
12743         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12744         * genopinit.c (optabs): Implement log10_optab and log2_optab
12745         using log10?f2 and log2?f2 patterns.
12746         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12747         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12748         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12749         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12750
12751         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12752         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12753         log2, log2f and log2l built-ins as inline x87 intrinsics.
12754
12755 2004-02-11  Richard Henderson  <rth@redhat.com>
12756
12757         PR target/1532
12758         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12759         dead insn after reload.
12760
12761 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12762
12763         * tree.h (frame_base_decl): Add GTY marker.
12764         * var-tracking.c (frame_base_decl): Likewise.
12765
12766 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12767
12768         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12769         incorrect, hunk.
12770         (add_location_or_const_value_attribute): Use text_section_label,
12771         not TEXT_SECTION_NAME.
12772
12773 2004-02-11  Per Bothner  <per@bothner.com>
12774
12775         Represent column numbers using line-map's source_location.
12776         The "next available source_location" is now managed internally by
12777         line-maps.c rather than by clients.
12778         * line-map.h (struct line_map):  New field column_bits.
12779         <from_line>:  Rename field to start_location.
12780         (struct line_maps):  New fields highest_location and max_column_hint.
12781         (linemap_check_files_exited):  New declaration.
12782         (linemap_line_start):  New declaration.
12783         (linemap_add):  Remove from_line parameter; use highest_location field.
12784         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12785         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12786         (CURRENT_LINE_MAP):  Remove macro.
12787         (linemap_position_for_column):  New inline function.
12788         * line-map.c (linemap_init):  Clear new fields.
12789         (linemap_check_files_exited):  New function, extracted from ...
12790         (linemap_free):  Use linemap_check_files_exited.
12791         (linemap_add):  Remove from_line parameter.  Various updates.
12792         (linemap_line_start):  New function.
12793         (linemap_lookeup):  Update for new field names.
12794         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12795         linemap_position_for_column may unpredictably change the current map,
12796         it is cleaner and simpler for us to not cache it in cpp_reader.
12797         (struct cpp_buffer):  New sysp field.
12798         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12799         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12800         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12801         current map using linemap_lookup.
12802         (do_linemarker):  Also set buffer's sysp field.
12803         (destringize_and_run):  No longer need to decrement current line.
12804         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12805         (search_path_head, open_file_failed):  Use buffer's sysp.
12806         (cpp_make_system_header):  Get current map using linemap_lookup.
12807         Also set buffer's sysp flag.
12808         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12809         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12810         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12811         (struct cpp_reader):  ... and adding saved_line_base field.
12812         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12813         Update accordingly.  Don't adjust line.
12814         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12815         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12816         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12817         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12818         * cpplex.c (_cpp_lex_direct):  Likewise.
12819         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12820         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12821         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12822         Remove col field as it is now subsumed by src_loc.
12823         * cpperror.c:  Update various field, parameter, and macro names.
12824         (print_location):  If col==0, try SOURCE_COLUMN of line.
12825         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12826         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12827         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12828         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12829         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12830         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12831         (_cpp_lex_direct):  Use linemap_position_for_column.
12832         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12833         parameter.  Instead get it from the line_table global.  Adjust callers.
12834         (print):  Remove map field.  Replace line field to src_line.
12835         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12836         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12837         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12838         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12839         * cpptrad.c (copy_comment):  Rename variable.
12840         * c-lex.c (map):  Remove static variable, for same reason we removed
12841         cpp_reader's map field.
12842         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12843         to call linemap_lookup.
12844         (cb_line_change):  Token's line field replaced by src_loc.
12845         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12846         Don't save new_map.
12847
12848         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12849         source_location.
12850
12851 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12852
12853         * config/rs6000/altivec.md (*movv4si_internal): At least one
12854         operand must be register_operand.
12855         (*movv8hi_internal1): Likewise.
12856         (*movv16qi_internal1): Likewise.
12857         (*movv4sf_internal1): Likewise.
12858
12859 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12860
12861         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12862         operand.
12863         (movv4hi_internal): Same.
12864         (movv2sf_internal): Same.
12865         (movv1di_internal): Same.
12866
12867 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12868
12869         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12870         TARGET_OLDABI consistently.
12871         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12872         mips_va_arg,override_options,compute_frame_size,
12873         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12874         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12875         and TARGET_OLDABI consistently.
12876         * config/mips/mips.md (exception_receiver): Likewise.
12877         * config/mips/linux64.h: Likewise.
12878
12879 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12880
12881         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12882         Set AltiVec ABI and vrsave as default for ppc64 linux.
12883         (init_cumulative_args): Post error, if try to return
12884         value in AltiVec register without enable AltiVec.
12885         (function_arg_advance): Ditto for passing arguments.
12886
12887 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12888
12889         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12890         a label before updating its usage count.
12891
12892 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12893
12894         * doc/install.texi: Remove extra cd.
12895
12896 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12897
12898         * c-common.c (vector_size_helper): Remove; call
12899         reconstruct_complex_type() instead.
12900         * tree.c (reconstruct_complex_type): New function
12901         (formerly vector_size_helper() in c-common.c).
12902         (make_vector): Make externally visible.
12903         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12904
12905 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12906
12907         * config/h8300/h8300-protos.h: Add a prototype for
12908         h8300_regs_ok_for_stm.
12909         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12910         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12911         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12912         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12913         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12914         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12915         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12916         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12917         h8300_regs_ok_for_stm().
12918
12919 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12920
12921         PR c/14088
12922         * real.c (real_from_string): Look for 'X' as well as 'x' in
12923         hexfloat strings.
12924
12925 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12926
12927         * config/h8300/h8300.md: Remove an incorrect comment about
12928         peephole2.  Add comments.
12929
12930 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12931
12932         PR/14058
12933         * emit-rtl.c (set_decl_incoming_rtl): New.
12934         * tree.h (set_decl_incoming_rtl): New.
12935         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12936         DECL_INCOMING_RTL.
12937         * ada/misc.c (adjust_decl_rtl): Likewise.
12938
12939 2004-02-10  Per Bothner  <per@bothner.com>
12940
12941         * c-opts.c (c_common_post_options):   Don't emit working directory
12942         in cpp output if -P was specified.
12943
12944 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12945
12946         PR c/14092
12947         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12948         negate_expr back to the original type.
12949
12950 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12951
12952         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12953         bump retaddr here.
12954
12955 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12956
12957         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12958         gen_lowpart_SUBREG): Move under the file in which they
12959         are actually declared.
12960
12961 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12962
12963         * doc/sourcebuild.texi: Add libada documentation.
12964
12965         * doc/install.texi: Update documentation on Ada build, now
12966         that the GNAT lib and tools are built automatically.
12967
12968 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12969
12970         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12971         && TARGET_IRIX.
12972
12973 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12974
12975         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12976         boundaries outside build_component_ref() call (a macro in ObjC++).
12977
12978 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12979
12980         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12981         (init_cumulative_args): Likewise.
12982         (a7_overlap_mentioned_p): Delete prototype.
12983         * config/xtensa/xtensa.c (struct machine_function): Replace
12984         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12985         Add set_frame_ptr_insn field.
12986         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12987         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12988         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12989         at the function entry and replace the operand with the pseudo.
12990         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12991         argument and record this flag in CUMULATIVE_ARGS.
12992         (function_arg): Remove result_mode and special-case code to handle
12993         arguments in a7.  Instead, set need_a7_copy flag when there is an
12994         incoming argument in a7.
12995         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12996         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12997         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12998         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12999         special-case code.
13000         (a7_overlap_mentioned_p): Delete.
13001         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
13002         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
13003         arguments to init_cumulative_args and pass "incoming" flag instead.
13004         (BLOCK_REG_PADDING): Delete.
13005         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
13006         checks for reload_in_progress and reload_completed.  Update calls to
13007         xtensa_copy_incoming_a7.
13008         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
13009         to call xtensa_copy_incoming_a7.
13010
13011 2004-02-09  DJ Delorie  <dj@redhat.com>
13012
13013         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
13014         longer modify standard_exec_prefix, standard_bindir_prefix, or
13015         standard_startfile_prefix.
13016
13017 2004-02-09  James E Wilson  <wilson@specifixinc.com>
13018
13019         PR c++/11295
13020         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
13021         to expand_expr_real call, and pass in alt_rtl as last argument.
13022
13023         PR libstdc++/5625
13024         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
13025         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
13026         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
13027         * except.c (expand_builtin_extend_pointer): New.
13028         * except.h (expand_builtin_extend_pointer): Declare.
13029
13030 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
13031
13032         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
13033         unaligned loads and stores.
13034
13035 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13036
13037         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
13038         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
13039
13040         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
13041         * config/mips/iris5.h: ... here.
13042         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
13043
13044         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
13045         * config/mips/iris5.h: ... here.
13046
13047 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13048
13049         * configure.ac: Remove default executable files before AC_PROG_CC.
13050         * configure: Regenerate.
13051
13052 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
13053
13054         PR target/13721
13055         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
13056         print a operand other than a register.
13057
13058 2004-02-09  Roger Sayle  <roger@eyesopen.com>
13059
13060         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
13061         tree code rather than call fold_convert, which doesn't specify a
13062         default floating point to integer conversion.
13063
13064 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
13065
13066         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
13067         code to support SGS assembler.  Reformat adjacent code where possible.
13068         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
13069         definition.
13070         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
13071         for '%#'.
13072         * config/m68k/linux.h, config/m68k/m68k.c,
13073         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
13074         macros and asm_printf() format strings.
13075         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
13076         * config/m68k/linux.h: Update copyright.
13077         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
13078
13079 2004-02-08  Andreas Schwab  <schwab@suse.de>
13080             Bernardo Innocenti  <bernie@develer.com>
13081
13082         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
13083         REGISTER_PREFIX.
13084         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
13085         frame pointer register, overridable by OS targets.
13086         * (M68K_REGNAME): Macro to obtain register name for asm output,
13087         eventually replacing %a6 with M68K_FP_REG_NAME.
13088         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
13089         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
13090         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
13091         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
13092         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
13093
13094 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13095
13096         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
13097         hook_rtx_tree_int_null.
13098         * targhooks.c (default_struct_value_rtx): Remove.
13099         * targhooks.h: Remove the prototype for
13100         default_struct_value_rtx.
13101         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13102         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
13103         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13104         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
13105         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
13106         config/rs6000/rs6000.c, config/s390/s390.c,
13107         config/stormy16/stormy16.c, config/v850/v850.c,
13108         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
13109         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
13110
13111 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
13112
13113         * README.Portability: Change "ISO C89" to "ISO C90".
13114         * c-parse.in (primary, initelt): Likewise.
13115
13116 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
13117
13118         * real.c (encode_ibm_extended): Normalize the input value before
13119         converting it to a double.  Handle the case where a normal value
13120         rounds to infinity.
13121
13122 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
13123
13124         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
13125         warning.
13126         * cse.c (preferrable): Change to preferable. Update all of its
13127         callers.
13128         * genautomata.c (ainsn): Change
13129         first_ainsn_with_given_equialence_num to
13130         first_ainsn_with_given_equivalence_num.  Update all of its
13131         references.
13132
13133 2004-02-08  Jan Hubicka  <jh@suse.cz>
13134
13135         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
13136
13137 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
13138
13139         * function.c (assign_parms): Fix formatting.
13140
13141 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13142
13143         * default.h (PROMOTE_PROTOTYPES): Remove.
13144         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
13145         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
13146         EXPAND_BUILTIN_SAVEREGS): Poison.
13147         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
13148         hook_bool_tree_false.
13149         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13150         * target.h: Replace SETUP_INCOMING_VARARGS with
13151         targetm.calls.setup_incoming_varargs().
13152         * targhooks.c (default_promote_function_return): Remove.
13153         (default_promote_prototypes): Likewise.
13154         (default_struct_value_rtx): Always abort().
13155         (default_expand_builtin_saveregs): Always print an error
13156         message.
13157         (default_setup_incoming_varargs): Do nothing.
13158         (default_pretend_outgoing_varargs_named): Don't depend on
13159         SETUP_INCOMING_VARARGS.
13160         * targhooks.h: Remove the prototype for
13161         default_promote_function_return and
13162         default_promote_prototypes.
13163
13164 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13165
13166         * system.h (SHARED_SECTION_ASM_OP): Poison.
13167         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
13168         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
13169
13170 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13171
13172         Bug 13856
13173         * c-decl.c (diagnose_mismatched_decls): Only give special
13174         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
13175         is also true.
13176         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
13177         DECL_FUNCTION_CODE when defining a built-in function.
13178         Don't update DECL_ESTIMATED_INSNS.
13179         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
13180         FUNCTION_DECLs.
13181         * tree.h: Delete DECL_ESTIMATED_INSNS.
13182         * tree-inline.c (struct inline_data): Delete inlined_insns field.
13183         (expand_call_inline, optimize_inline_calls): Don't update
13184         DECL_ESTIMATED_INSNS nor inlined_insns.
13185         * cgraphunit.c (cgraph_analyze_function): Don't update
13186         DECL_ESTIMATED_INSNS.
13187
13188 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
13189
13190         * c-common.c (shadow_warning): Delete.
13191         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
13192         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
13193         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
13194         * c-parse.in (free_parser_stacks): Delete.
13195
13196 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
13197
13198         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
13199         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
13200         Use the top level mkinstalldirs, not the one in the gcc subdir.
13201         * mkinstalldirs: Remove (from the gcc subdir).
13202
13203 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13204
13205         PR middle-end/13696
13206         * fold-const.c (fold_convert): New function to provide type
13207         conversion to the middle-end without using convert.
13208         (negate_expr, associate_trees, size_diffop, omit_one_operand,
13209         operand_equal_for_comparison_p, pedantic_omit_one_operand,
13210         invert_truthvalue, optimize_bit_field_compare, range_binop,
13211         decode_field_reference, make_range, build_range_check, unextend,
13212         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
13213         fold_binary_op_with_conditional_arg, fold_inf_compare,
13214         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
13215         convert with calls to fold_convert.
13216
13217 2004-02-07  Jan Hubicka  <jh@suse.cz>
13218
13219         * genrecog.c (find_operand): add extra argument stop.
13220         (validate_pattern): Verify that mach_dup is duplicating operand
13221         defined lexically earlier.
13222
13223 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13224
13225         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
13226         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13227         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
13228         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
13229         config/ia64/ia64.h, config/ip2k/ip2k.h,
13230         config/iq2000/iq2000.h, config/mips/iris5.h,
13231         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
13232         config/rs6000/aix51.h, config/rs6000/aix52.h,
13233         config/rs6000/darwin.h, config/rs6000/rs6000.h,
13234         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
13235         config/sparc/linux.h, config/sparc/linux64.h,
13236         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
13237         config/xtensa/xtensa.h: Remove the definitions of
13238         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
13239         MAX_WCHAR_TYPE_SIZE.
13240         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
13241         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
13242
13243 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
13244
13245         PR bootstrap/13990
13246         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
13247         gen_rtx_NE.
13248
13249 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
13250
13251         * var-tracking.c (vt_add_function_parameters): Surround checkings by
13252         #ifdef ENABLE_CHECKING and #endif.
13253
13254 2004-02-07  Roger Sayle  <roger@eyesopen.com>
13255
13256         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
13257         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
13258         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
13259         integer types and floating point with unsafe_math_optimizations.
13260         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
13261         Optimize A - B as A + (-B), if B is easily negated.
13262
13263 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13264
13265         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
13266         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
13267         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
13268         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
13269         Update copyright.
13270
13271 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
13272
13273         * c-ppoutput.c, var-tracking.c: Fix comment typos.
13274
13275 2004-02-06  James E Wilson  <wilson@specifixinc.com>
13276
13277         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
13278         glibc 2.3 or better.
13279
13280 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13281
13282         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
13283         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
13284
13285 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
13286
13287         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
13288         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
13289         (SHLIB_MKMAP_OPTS): Delete.
13290         (TARGET_LIBGCC2_CFLAGS): Add -specs.
13291         (bispecs): Add rule.
13292         * config/rs6000/libgcc-ppc64.ver: New file.
13293         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
13294         (__floatdidf, __floatdisf): Optimize multiply.
13295         (__fixunstfdi): New function.
13296         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
13297         real and imag parts larger than one register.
13298         (function_arg): Correct type of reg used when fp arg split partially
13299         to stack.
13300         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
13301         and __MACH__ or __powerpc64__.
13302
13303 2004-02-06  Roger Sayle  <roger@eyesopen.com>
13304             Ulrich Weigand  <uweigand@de.ibm.com>
13305
13306         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
13307         of gen_highpart or gen_lowpart when the floating point format is
13308         wider than the result mode.
13309
13310 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
13311
13312         * dwarf2out.c (loclabel_num): Move into #ifdef
13313         DWARF2_DEBUGGING_INFO.
13314
13315 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
13316
13317         * objc/objc-act.c (build_super_template) the 'class' field of
13318         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
13319         (get_super_receiver): Likewise.
13320
13321 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13322
13323         * reload1.c (check_eliminable_occurrences): Optimize the reset
13324         of can_eliminate.
13325         (eliminate_regs_in_insn): Likewise.
13326
13327 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
13328             Josef Zlomek  <zlomekj@suse.cz>
13329
13330         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
13331         at the beginning of function, call dwarf2out_var_location for
13332         NOTE_INSN_VAR_LOCATION note.
13333         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
13334         decl_loc_table): New.
13335         (lookup_decl_loc): New function.
13336         (add_var_loc_to_decl): New function.
13337         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
13338         only if can_use_fbreg.
13339         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
13340         functions.
13341         (loc_descriptor): Likewise. Process VAR_LOCATION.
13342         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
13343         (loc_descriptor_from_tree): Call mem_loc_descriptor with
13344         can_use_fbreg == true.
13345         (add_location_or_const_value_attribute): Added parameter enum
13346         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
13347         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
13348         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
13349         with attr == DW_AT_location.
13350         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
13351         if frame_base_decl is defined and has a location list.
13352         (gen_variable_die): Call add_location_or_const_value_attribute with
13353         attr == DW_AT_location.
13354         (dwarf2out_var_location): New function.
13355         (dwarf2out_begin_function): New function.
13356         (dwarf2out_init): Create decl_loc_table.
13357
13358 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13359
13360         * loop.c (force_movables): Transitively increase the priorities of
13361         all insns forces by an insn, not just the first one.
13362
13363 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
13364             Daniel Berlin <dberlin@dberlin.org>
13365
13366         Josef Zlomek  <zlomekj@suse.cz>
13367         * Makefile.in (var-tracking.o): New.
13368         * common.opt (fvar-tracking): New.
13369         * flags.h (flag_var_tracking): New.
13370         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
13371         * opts.c (common_handle_option): Add OPT_fvar_tracking.
13372         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
13373         * rtl.c (note_insn_name): Likewise.
13374         * rtl.def (VAR_LOCATION): New.
13375         * rtl.h (NOTE_VAR_LOCATION): New.
13376         (NOTE_VAR_LOCATION_DECL): New.
13377         (NOTE_VAR_LOCATION_LOC): New.
13378         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
13379         (variable_tracking_main): New exported function.
13380         * timevar.def (TV_VAR_TRACKING): New.
13381         * toplev.c (enum dump_file_index): Added DFI_vartrack.
13382         (dump_file): "vartrack" was added (-dV).
13383         (flag_var_tracking): New.
13384         (f_options): "var-tracking" was added.
13385         (rest_of_handle_variable_tracking): New function.
13386         (rest_of_compilation): Run variable tracking.
13387         (process_options): If user has not specified flag_var_tracking set it
13388         according to optimize, debug_info_level and debug_hooks.
13389         * tree.h (frame_base_decl): New.
13390         * var-tracking.c: New file.
13391         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
13392         (ia64_override_options): Set flags to run variable tracking in machine
13393         dependent reorg instead of toplev.c.
13394         (ia64_reorg): Run variable tracking if wanted.
13395         * doc/invoke.texi: Mention variable tracking in -dV,
13396         add and -fvar-tracking.
13397         * doc/passes.texi: Added variable tracking pass.
13398
13399         Daniel Berlin <dberlin@dberlin.org>
13400         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
13401         * dbxout.c (dbx_debug_hooks): Likewise.
13402         (xcoff_debug): Likewise.
13403         * debug.c (do_nothing_debug_hooks): Likewise.
13404         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
13405         * dwarfout.c (dwarf_debug_hooks): Likewise.
13406         * sdbout.c (sdb_debug_hooks): Likewise.
13407         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
13408         * final.c (final_scan_insn): Call var_location debug hook for each
13409         NOTE_INSN_VAR_LOCATION.
13410
13411 2004-02-06  Jan Hubicka  <jh@suse.cz>
13412
13413         * flow.c (update_life_info): Allocate reg_deaths when called from
13414         scheudler.
13415         (attempt_auto_inc):  Update life ranges accordingly.
13416
13417 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13418
13419         PR debug/11816
13420         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
13421
13422 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13423
13424         * cfganal.c (flow_call_edges_add): Never split a libcall block.
13425
13426 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
13427
13428         * dwarf2out.c (output_loc_list): Don't use deltas if we have
13429         a separate line info table in use.
13430         Use the correct size for terminators.
13431         (output_die): Use offset, not delta.
13432
13433 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
13434
13435         * doc/invoke.texi: Remove the pni option from -mfpmath=.
13436
13437 2004-02-06  Jan Hubicka  <jh@suse.cz>
13438
13439         * recog.c (split_all_insns): Do not update reg info.
13440         * regrename.c (regrename_optimize): Likewise.
13441         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
13442         * flow.c (struct propagate_block_info): Add insn_num field.
13443         (reg_deaths): New array.
13444         (life_analysis): Free reg_deaths info.
13445         (allocate_reg_life_data): Allocate reg_deaths array.
13446         (propagate_one_insn): Use new array.
13447         (init_propagate_block): Initialize it.
13448         (free_propagate_block_info): Finish compuation of
13449         REG_LIVE_LENGTH
13450         (attempt_auto_inc): Sanity check that REG_INFO is not
13451         computed at same time.
13452         (mark_used_regs): Update new array.
13453
13454         * reg-stack.c (subst_stack_regs): Unshare clobbers before
13455         substitution.
13456
13457 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13458
13459         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
13460         *extendqisi2_short_displ.
13461
13462 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
13463
13464         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
13465         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
13466         (emit_library_call_value_1): Likewise pass nargs.
13467         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
13468         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
13469         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
13470         parameter instead of scanning TYPE_ARGS_TYPES to count args.
13471         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
13472         prototype.
13473         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
13474         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
13475         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
13476         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
13477         INIT_CUMULATIVE_ARGS.
13478         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
13479         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
13480         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
13481         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
13482         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
13483         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
13484         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
13485         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
13486         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
13487         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
13488         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
13489         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
13490
13491 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13492
13493         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
13494         possible.
13495
13496 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13497
13498         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
13499         note containing (plus (reg) (const_int)), where reg is an
13500         eliminable reg, then perform the register elimination without
13501         depending on eliminate_regs().
13502
13503 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13504
13505         * config/arc/arc.c (arc_return_in_memory): Check the return
13506         value of int_size_in_bytes against -1.  Don't check
13507         TREE_ADDRESSABLE.
13508         * config/avr/avr.c (avr_return_in_memory): Check the return
13509         value of int_size_in_bytes against -1.
13510         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
13511         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
13512         Likewise.
13513         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
13514         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
13515         Likewise.
13516
13517 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13518
13519         * config/frv/frv-protos.h: Remove the prototype for
13520         frv_setup_incoming_varargs.
13521         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
13522         (frv_setup_incoming_varargs): Make it static.
13523         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
13524
13525 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13526
13527         * config/fr30/fr30-protos.h: Remove the prototype for
13528         fr30_setup_incoming_varargs.
13529         Update the prototypes for fr30_num_arg_regs and
13530         fr30_function_arg_partial_nregs.
13531         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
13532         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13533         (fr30_setup_incoming_varargs): Make it static.
13534         Add argument second_time.  Don't do anything when second_time
13535         is nonzero.
13536         (fr30_num_arg_regs): Change the type of the first argument to
13537         enum machine_mode.
13538         (fr30_function_arg_partial_nregs): Change the type of the
13539         second argument to enum machine_mode.
13540         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
13541         (SETUP_INCOMING_VARARGS): Remove.
13542
13543 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
13544
13545         * config/arc/arc-protos.h: Remove the prototype for
13546         arc_setup_incoming_varargs.
13547         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13548         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13549         (arc_setup_incoming_varargs): Make it static.
13550         (arc_external_libcall): Likewise.
13551         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
13552         Remove the commented-out definition of
13553         ASM_OUTPUT_EXTERNAL_LIBCALL.
13554
13555 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13556
13557         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
13558         to $$(slibdir) in the installation commands.
13559
13560 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13561
13562         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
13563         with inner_regno, not regno.
13564         * rtlanal.c (refers_to_regno_p): Same.
13565
13566 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13567
13568         * config.gcc: Remove i370 support.
13569
13570 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13571
13572         * doc/install.texi:  Update automake and autoconf version
13573         requirements.  Note where to find gcj automake version.
13574
13575 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13576
13577         * Makefile.in (generate-manpages): Move dependencies to ...
13578         (man): here.
13579         * doc/makefile.texi: Document new targets.
13580         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
13581
13582 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
13583
13584         PR/13485
13585         Makefile.in (srcextra):  Add a level of indirection to ...
13586         (gcc.srcextra): ... here.
13587         (po-generated): Delete.
13588         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
13589         options.c.
13590         (start.encap): Remove superfluous lang.srcextra dependency.
13591         objc/Make-lang.in (po-generated):  Delete.
13592
13593 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13594
13595         * config/ia64/ia64.c (REG_GP): Remove.
13596
13597 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13598
13599         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13600
13601 2004-02-05  Devang Patel  <dpatel@apple.com>
13602
13603         * dwarf2out.c (force_type_die): Look up input type itself
13604         instead of root_type() of type.
13605
13606 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13607
13608         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13609         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13610         pre-reload splitters are transformed to post-reload
13611         define_insn_and_split patterns.
13612         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13613
13614 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13615
13616         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13617         TARGET_PROMOTE_PROTOTYPES.
13618
13619 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13620
13621         PR middle-end/13750
13622         Revert:
13623         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13624         PR pch/13361
13625         * c-typeck.c (constructor_asmspec): Delete.
13626         (struct initializer_stack): Delete field 'asmspec'.
13627         (start_init): Delete saving of asmspec.
13628         (finish_init): Don't update constructor_asmspec.
13629         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13630         * stmt.c (expand_asm): Duplicate strings from tree.
13631         (expand_asm_operands): Likewise.
13632         * tree.c (tree_size): Update computation of size of STRING_CST.
13633         (make_node): Don't make STRING_CST nodes.
13634         (build_string): Allocate string with tree node.
13635         * tree.def (STRING_CST): Update comment.
13636         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13637         (tree_string): Place contents of string in tree node.
13638         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13639         from tree.
13640
13641 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13642
13643         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13644         msgid.
13645
13646 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13647
13648         * config/rs6000/altivec.md (*movv4si_internal): At least one
13649         operand must be altivec_register_operand.
13650         (*movv8hi_internal1): Likewise.
13651         (*movv16qi_internal1): Likewise.
13652         (*movv4sf_internal1): Likewise.
13653
13654 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13655
13656         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13657         * configure: Regenerate.
13658
13659 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13660
13661         * doc/install.texi: Update description of --gxx-include-dir to
13662         give correct default value.
13663
13664 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13665
13666         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13667         8 with MAC_REG.
13668
13669 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13670
13671         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13672         gen_rtx_PARALLEL.
13673
13674 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13675
13676         * emit-rtl.c: Update the comment about the file.
13677
13678 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13679
13680         * sourcebuild.texi (Test Idioms): Update testcase naming
13681         conventions.
13682
13683 2004-02-04  Per Bothner  <per@bothner.com>
13684
13685         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13686         * c-ppoutput.c (pp_dir_change):  New function.
13687         * c-common.h (pp_dir_change):  New declaration.
13688         * cpplib.h (struct cpp_options):  Remove working_directory field.
13689         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13690         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13691         Don't handle -fworking_directory here, but in c_common_post_options.
13692         (read_original_directory): Don't back up when done.
13693         Don't clear no-longer used working_directory flag.
13694         * cpplib.h:  Update declarations to match.
13695         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13696         (init_c_lex):  Don't set dir_change callback here, since we want
13697         to set it even if flag_preprocess_only.
13698         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13699         (c_common_post_options):  Set dir_change callback.
13700         Call pp_dir_change if approporiate.
13701         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13702         unneeded parameter and result. Do LC_RENAME for <built-in>.
13703         (c_common_post_options):  Call cpp_read_main_file here instead.
13704         (c_common_init):  Update accordingly.
13705         (push_command_line_include):  Don't cpp_push_main_file.
13706         Do LC_RENAME rather than LC_LEASE to get back to main file.
13707         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13708         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13709         files, but call finish_options for all files.
13710         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13711         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13712         cpp_find_main_file + cpp_push_main_file.
13713         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13714         * opts.c (handle_options):  Only set main_input_filename first time.
13715
13716 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13717
13718         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13719
13720 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13721
13722         * reload.c (find_equiv_reg): When checking for register overlap,
13723         don't index hard_regno_nregs with a pseudo-reg.
13724
13725 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13726
13727         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13728
13729 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13730
13731         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13732         against FIRST_PSEUDO_REGISTER.
13733
13734 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13735
13736         * Makefile.in: Move target, host overrides after per-language
13737         fragments.
13738
13739         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13740         (GNATLIBCFLAGS): Remove -g.
13741
13742 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13743
13744         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13745         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13746         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13747         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13748         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13749         config/sparc/sparc.c, config/vax/vax.c: Revert the
13750         replacements of "FALLTHRU" with "Fall through" done in the
13751         previous patch.
13752
13753 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13754
13755         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13756         config/arm/arm.c, config/arm/arm.md,
13757         config/cris/cris-protos.h, config/fr30/fr30.c,
13758         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13759         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13760         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13761         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13762         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13763         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13764         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13765         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13766         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13767         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13768         config/s390/s390.md, config/sparc/netbsd-elf.h,
13769         config/sparc/openbsd.h, config/sparc/sparc.c,
13770         config/xtensa/lib2funcs.S: Fix comment formatting.
13771
13772 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13773
13774         * config/alpha/alpha.c, config/arc/arc.c,
13775         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13776         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13777         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13778         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13779         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13780         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13781         config/iq2000/iq2000.c, config/m32r/m32r.c,
13782         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13783         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13784         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13785         config/rs6000/rs6000.h, config/sparc/sparc.c,
13786         config/vax/vax.c: Fix comment typos.  Follow spelling
13787         conventions.
13788
13789 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13790
13791         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13792         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13793         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13794         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13795         config/arm/fpa.md, config/arm/iwmmxt.md,
13796         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13797         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13798         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13799         config/sparc/netbsd-elf.h: Update copyright.
13800
13801 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13802
13803         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13804         for all modes whose size is greater than 8 bytes if ARCH32.
13805         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13806         by reference if ARCH32.
13807
13808 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13809
13810         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13811
13812 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13813
13814         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13815         to before adddi3 insn patterns.
13816         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13817         "reload_insi"): Move to before addsi3 insn patterns.
13818
13819 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13820
13821         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13822         parameter.  Use it instead of current_function_is_thunk.
13823         * function.h (struct function): Update documentation for is_thunk.
13824         * tree.h (CALL_FROM_THUNK_P): New macro.
13825         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13826         no_new_pseudos when testing current_function_is_thunk.
13827         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13828
13829 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13830
13831         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13832         TARGET_SETUP_INCOMING_VARARGS.
13833
13834 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13835
13836         * emit-rtl.c (gen_rtx): Remove.
13837         * genattrtab.c: Don't mention gen_rtx in a comment.
13838         * rtl.h: Remove the prototype for gen_rtx.
13839         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13840
13841 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13842
13843         * config/arc/arc.h, config/fr30/fr30.h
13844         (SETUP_INCOMING_VARARGS): Remove the target-independent
13845         comments.
13846         * doc/tm.texi: Don't mention deprecated target macros.
13847
13848 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13849
13850         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13851         target-independent comment.
13852
13853 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13854
13855         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13856         mention deprecated target macros.
13857
13858 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13859
13860         * config.gcc: Remove obsolete ports and configurations.
13861         * config/linux-aout.h, config/netware.h,
13862         config/t-linux-gnulibc1, config/d30v/abi,
13863         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13864         config/d30v/d30v.h, config/d30v/d30v.md,
13865         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13866         config/dsp16xx/dsp16xx-modes.def,
13867         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13868         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13869         config/i370/README, config/i370/i370-c.c,
13870         config/i370/i370-protos.h, config/i370/i370.c,
13871         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13872         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13873         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13874         config/i386/moss.h, config/i386/netware.h,
13875         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13876         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13877         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13878         config/i960/i960-c.c, config/i960/i960-coff.h,
13879         config/i960/i960-modes.def, config/i960/i960-protos.h,
13880         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13881         config/i960/rtems.h, config/i960/t-960bare,
13882         config/m68k/hp310.h, config/m68k/hp320.h,
13883         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13884         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13885         Remove.
13886         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13887         doc/md.texi: Remove mentions of obsolete ports.
13888
13889 2004-02-04  Jan Hubicka  <jh@suse.cz>
13890
13891         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13892         pointer when all VALUE's locations has been invalidated.
13893         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13894
13895 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13896
13897         * doc/invoke.texi (x86 options): Fix spelling/wording.
13898
13899 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13900
13901         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13902         put the original string in a comment.
13903         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13904         * config/mips/mips.c (mips_output_ascii): Likewise.
13905         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13906
13907 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13908
13909         * system.h (GIV_SORT_CRITERION): Poison.
13910         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13911         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13912
13913 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13914
13915         PR target/9348
13916         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13917         multiplies with a multiplication of the wrong signedness, its the
13918         signedness of the multiplication that we've performed that needs to
13919         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13920         if expand_mult_highpart_adjust places the result in target.
13921
13922 2004-02-03  Richard Henderson  <rth@redhat.com>
13923
13924         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13925
13926 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13927
13928         * config.gcc (sh[234]l): Use little endian fragments.
13929
13930 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13931
13932         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13933         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13934         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13935         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13936         floating point format.
13937         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13938         the above functions.
13939         (output_move_quad): Output float values in correct target format.
13940         (legitimate_const_double_p): New function.
13941         * config/pdp11/pdp11.h: Fix typos.
13942         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13943         (TARGET_FLOAT_FORMAT): Ditto.
13944         (pdp11_f_format, pdp11_d_format): Add external declarations.
13945         (MAX_REGS_PER_ADDRESS): Corrected.
13946         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13947         (PRINT_OPERAND): Output float literals in target format.
13948
13949 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13950
13951         PR c++/13975
13952         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13953         TI_PRIVATE.
13954         (access_public_node): Redefine.
13955         (access_protected_node): Likewise.
13956         (access_private_node): Likewise.
13957         * tree.c (build_common_tree_nodes): Create access_public_node,
13958         access_protected_node, and access_private_node.
13959
13960 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13961
13962         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13963         (MASK_INLINE_INT_DIV_THR): Ditto.
13964         (MASK_INLINE_SQRT_LAT): Ditto.
13965         (MASK_INLINE_SQRT_THR): Ditto.
13966         (MASK_DWARF2_ASM): Ditto.
13967         (MASK_EARLY_STOP_BITS): Ditto.
13968
13969 2004-02-02  Paul Brook  <paul@codesourcery.com>
13970
13971         Merge from csl-arm-branch.
13972
13973         2004-01-30  Paul Brook  <paul@codesourcery.com>
13974
13975         * aof.h (REGISTER_NAMES): Add vfp reg names
13976         (ADDITIONAL_REGISTER_NAMES): Ditto.
13977         * aout.h (REGISTER_NAMES): Ditto.
13978         (ADDITIONAL_REGISTER_NAMES): Ditto.
13979         * arm-protos.h: Update/Add Prototypes.
13980         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13981         Only allow 0.0 for VFP.
13982         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13983         (values_fp): Rename from values_fpa.  Update Users.
13984         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13985         Update users.  Only check valid constants for this hardware.
13986         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13987         Only allow consts for FPA.
13988         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13989         Only allow consts for FPA.
13990         (use_return_insn): Check for saved VFP regs.
13991         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13992         (arm_legitimize_address): Ditto.
13993         (arm_general_register_operand): New function.
13994         (vfp_mem_operand): New function.
13995         (vfp_compare_operand): New function.
13996         (vfp_secondary_reload_class): New function.
13997         (arm_float_compare_operand): New function.
13998         (vfp_print_multi): New function.
13999         (vfp_output_fstmx): New function.
14000         (vfp_emit_fstm): New function.
14001         (arm_output_epilogue): Output VPF reg restore code.
14002         (arm_expand_prologue): Output VFP reg save code.
14003         (arm_print_operand): Add 'P'.
14004         (arm_hard_regno_mode_ok): Return modes for VFP regs.
14005         (arm_regno_class): Return classes for VFP regs.
14006         (arm_compute_initial_elimination_offset): Include space for VFP regs.
14007         (arm_get_frame_size): Ditto.
14008         * arm.h (FIXED_REGISTERS): Add VFP regs.
14009         (CALL_USED_REGISTERS): Ditto.
14010         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
14011         (FIRST_VFP_REGNUM): Define.
14012         (LAST_VFP_REGNUM): Define.
14013         (IS_VFP_REGNUM): Define.
14014         (FIRST_PSEUDO_REGISTER): Include VFP regs.
14015         (HARD_REGNO_NREGS): Handle VFP regs.
14016         (REG_ALLOC_ORDER): Add VFP regs.
14017         (enum reg_class): Add VFP_REGS.
14018         (REG_CLASS_NAMES): Ditto.
14019         (REG_CLASS_CONTENTS): Ditto.
14020         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
14021         (REG_CLASS_FROM_LETTER): Add 'w'.
14022         (EXTRA_CONSTRAINT_ARM): Add 'U'.
14023         (EXTRA_MEMORY_CONSTRAINT): Define.
14024         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
14025         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14026         (REGISTER_MOVE_COST): Ditto.
14027         (PREDICATE_CODES): Add arm_general_register_operand,
14028         arm_float_compare_operand and vfp_compare_operand.
14029         * arm.md (various): Rename as above.
14030         (divsf3): Enable when TARGET_VFP.
14031         (divdf3): Ditto.
14032         (movdfcc): Ditto.
14033         (sqrtsf2): Ditto.
14034         (sqrtdf2): Ditto.
14035         (arm_movdi): Disable when TARGET_VFP.
14036         (arm_movsi_insn): Ditto.
14037         (movsi): Only split with general regs.
14038         (cmpsf): Use arm_float_compare_operand.
14039         (push_fp_multi): Restrict to TARGET_FPA.
14040         (vfp.md): Include.
14041         * vfp.md: New file.
14042         * fpa.md (various): Rename as above.
14043         * doc/md.texi: Document ARM w and U constraints.
14044
14045         2004-01-15  Paul Brook  <paul@codesourcery.com>
14046
14047         * config.gcc: Add with_fpu.  Allow with-float=softfp.
14048         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
14049         Break out of loop when we find a float-abi.  Fix typo.
14050         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
14051         Set -mfloat-abi=.
14052         * doc/install.texi: Document --with-fpu.
14053
14054         2003-01-14  Paul Brook  <paul@codesourcery.com>
14055
14056         * config.gcc (with_arch): Add armv6.
14057         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
14058         * config/arm/arm.c (arm_overrride_options): Ditto.
14059
14060         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
14061
14062         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
14063         (FL_ARCH6): Renamed from FL_ARCH6J.
14064         (arm_arch3m): Renamed from arm_fast_multiply.
14065         (arm_arch6): Renamed from arm_arch6j.
14066         * arm.h: Update all uses of above.
14067         * arm-cores.def: Likewise.
14068         * arm.md: Likewise.
14069
14070         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
14071         not arm6j.  Add entry for arch armv6.
14072
14073         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
14074
14075         * arm.c (arm_emit_extendsi): Delete.
14076         * arm-protos.h (arm_emit_extendsi): Delete.
14077         * arm.md (zero_extendhisi2): Also handle zero-extension of
14078         non-subregs.
14079         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
14080         (thumb_zero_extendhisi2): Only match if not v6.
14081         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
14082         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
14083         (thumb_extendqisi2): Likewise.
14084         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
14085         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
14086         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
14087         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
14088         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
14089         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
14090         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
14091         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
14092         (arm_extendqisi2addsi): Likewise.
14093
14094         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
14095
14096         Revert this change:
14097         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14098         + REG addressing modes.
14099
14100         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
14101         + REG addressing modes.
14102
14103         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
14104
14105         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
14106         CONSTANT_P_RTX.
14107
14108         2003-30-12  Paul Brook  <paul@codesourcery.com>
14109
14110         * longlong.h: protect arm inlines with !defined (__thumb__)
14111
14112         2003-30-12  Paul Brook  <paul@codesourcery.com>
14113
14114         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
14115
14116         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
14117
14118         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
14119         change.
14120
14121         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14122
14123         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
14124         to the virtual incoming args pointer for downward stacks.
14125
14126         2003-12-29  Paul Brook  <paul@codesourcery.com>
14127
14128         * config/arm/arm-cores.def: Add cost function.
14129         * config/arm/arm.c (arm_*_rtx_costs): New functions.
14130         (arm_rtx_costs): Remove
14131         (struct processors): Add rtx_costs field.
14132         (all_cores, all_architectures): Ditto.
14133         (arm_override_options): Set targetm.rtx_costs.
14134         (thumb_rtx_costs): New function.
14135         (arm_rtx_costs_1): Remove cases handled elsewhere.
14136         * config/arm/arm.h (processor_type): Add COSTS parameter.
14137
14138         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
14139
14140         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
14141         (arm926ejs.md): Include it.
14142         * config/arm/arm926ejs.md: New pipeline description.
14143
14144         2003-12-24  Paul Brook  <paul@codesourcery.com>
14145
14146         * config/arm/arm.c (arm_arch6j): New variable.
14147         (arm_override_options): Set it.
14148         (arm_emit_extendsi): New function.
14149         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
14150         * config/arm/arm.h (arm_arch6j): Declare.
14151         * config/arm/arm.md: Add sign/zero extend insns.
14152
14153         2003-12-23  Paul Brook  <paul@codesourcery.com>
14154
14155         * config/arm/arm.c (all_architectures): Add armv6.
14156         * doc/invoke.texi: Document it.
14157
14158         2003-12-19  Paul Brook  <paul@codesourcery.com>
14159
14160         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
14161         insn patterns to match.
14162         * config/arm/arm-generic.md: Ditto.
14163         * config/arm/cirrus.md: Ditto.
14164         * config/arm/fpa.md: Ditto.
14165         * config/amm/iwmmxt.md: Ditto.
14166         * config/arm/arm1026ejs.md: Ditto.
14167         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
14168         for 11_loadb.
14169
14170         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
14171
14172         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
14173         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
14174         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
14175         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
14176         arm_no_early_mul_dep): Correctly deal with conditional execution,
14177         parallels and single shift operations.
14178         (arm_no_early_alu_shift_value_dep): Define.
14179         * arm.md (attr type): Replace 'normal' with 'alu',
14180         'alu_shift' and 'alu_shift_reg'.
14181         (attr core_cycles): Adjust.
14182         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
14183         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
14184         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
14185         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
14186         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
14187         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
14188         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
14189         attribute appropriately.
14190         * config/arm/arm1026ejs.md (alu_op): Adjust.
14191         (alu_shift_op, alu_shift_reg_op): New.
14192         * config/arm/arm1136.md: Add better bypasses for early
14193         registers. Remove load[234] and store[234] bypasses.
14194         (11_alu_op): Adjust.
14195         (11_alu_shift_op, 11_alu_shift_reg_op): New.
14196
14197         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
14198
14199         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
14200         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
14201         * config/arm/arm.c (arm_no_early_store_addr_dep,
14202         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
14203         * config/arm/arm1026ejs.md: Add load-store bypass.
14204         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
14205         Add bypasses between instructions.
14206
14207         2003-12-10  Paul Brook  <paul@codesourcery.com>
14208
14209         * config/arm/arm.c (arm_fpu_model): New variable.
14210         (arm_fload_abi): New variable.
14211         (target_fpe_name): Rename from target_fp_name.
14212         (target_fpu_name): New variable.
14213         (arm_is_cirrus): Remove.
14214         (fpu_desc): New struct.
14215         (all_fpus): Define.
14216         (pf_model_for_fpu): Define.
14217         (all_loat_abis): Define.
14218         (arm_override_options): Set fp arch flags based on -mfpu=
14219         and -float-abi=.
14220         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14221         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14222         (*): Use new TARGET_* flags.
14223         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
14224         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
14225         (TARGET_SOFT_FLOAT): Ditto.
14226         (TARGET_SOFT_FLOAT_ABI): New.
14227         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
14228         TARGET_HARD_FLOAT.
14229         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
14230         (TARGET_OPTIONS): Add -mfpu=.
14231         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
14232         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
14233         (arm_pf_model): Define.
14234         (arm_float_abi_type): Define.
14235         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
14236         * config/arm/arm.md: Use new TARGET_* flags.
14237         * config/arm/cirrus.md: Ditto.
14238         * config/arm/fpa.md: Ditto.
14239         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
14240         * config/arm/semi.h (ASM_SPEC): Ditto.
14241         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
14242         (FPUTYPE_DEFAULT): Set to VFP.
14243         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
14244
14245         2003-11-22  Phil Edwards  <phil@codesourcery.com>
14246
14247         PR target/12476
14248         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
14249         'bx' instead of 'b' to avoid branch range restrictions.  Output
14250         the thunk immediately before the thunked-to function.
14251         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
14252         .thumb_func if a thunk is being generated.  Emit .code 16 along
14253         with .thumb_func if a thunk is not being generated.
14254
14255         2003-11-15  Nicolas Pitre <nico@cam.org>
14256
14257         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
14258         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
14259         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
14260         (lshrdi3_iwmmxt): Renamed from lshrdi3.
14261         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
14262
14263         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
14264             Ian Lance Taylor  <ian@wasabisystems.com>
14265
14266         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
14267         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
14268
14269         2003-11-05  Phil Edwards  <phil@codesourcery.com>
14270
14271         * config/arm/arm.md (insn):  Add new V6 instruction names.
14272         (generic_sched):  New attr.
14273         * config/arm/arm-generic.md:  Use generic_sched here.
14274         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
14275         stages of pipeline.  Adjust latency counts accordingly.
14276         * config/arm/arm1136jfs.md:  New file.
14277
14278         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
14279
14280         * config/arm/arm.h (processor_type): New enumeration type.
14281         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
14282         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
14283         (CPP_CPU_ARCH_SPEC): Likewise.
14284         * config/arm/arm.c (arm_tune): New variable.
14285         (all_cores): Use cores.def.
14286         (all_architectures): Add representative processor.
14287         (arm_override_options): Restructure way in which tuning
14288         information is deduced.
14289         * arm.md: Update "insn" and "type" attributes throughout.
14290         (insn): New attribute.
14291         (type): Compute "mult" from "insn" attribute.  Add load2,
14292         load3, load4 alternatives.
14293         (arm automaton): Move to arm-generic.md.
14294         * config/arm/arm-cores.def: New file.
14295         * config/arm/arm-generic.md: Likewise.
14296         * config/arm/arm1026ejs.md: Likewise.
14297
14298 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
14299
14300         * doc/invoke.texi (SPARC options): Remove -mflat and
14301         all -mxxx (xxx:chip) options.
14302         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
14303         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
14304         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
14305         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
14306         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
14307         * config/sparc/sparc.c: Likewise.
14308         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
14309         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
14310         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
14311         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
14312         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
14313         (sparc_flat_must_save_register_p): Likewise.
14314         (sparc_flat_compute_frame_size): Likewise.
14315         (sparc_flat_save_restore): Likewise.
14316         (sparc_flat_function_prologue): Likewise.
14317         (sparc_flat_function_epilogue): Likewise.
14318         (sparc_flat_epilogue_delay_slots): Likewise.
14319         (sparc_flat_eligible_for_epilogue_delay): Likewise.
14320         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
14321         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
14322         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
14323         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
14324         (CONDITIONAL_REGISTER_USAGE): Likewise.
14325         (FRAME_POINTER_REQUIRED): Likewise.
14326         (INITIAL_ELIMINATION_OFFSET): Likewise.
14327         (BASE_RETURN_VALUE_REG): Likewise.
14328         (BASE_OUTGOING_VALUE_REG): Likewise.
14329         (BASE_PASSING_ARG_REG): Likewise.
14330         (BASE_INCOMING_ARG_REG): Likewise.
14331         (INCOMING_REGNO): Likewise.
14332         (OUTGOING_REGNO): Likewise.
14333         (LOCAL_REGNO): Likewise.
14334         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
14335         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
14336         (EPILOGUE_USES): Likewise.
14337         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
14338         ("flat" attribute): Delete.
14339         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
14340         handling.
14341         (call followed by jump define_peephole's): Delete.
14342         (exception_receiver): Likewise.
14343         (builtin_setjmp_receiver): Likewise.
14344         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
14345
14346 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
14347
14348         PR c/11658
14349         PR c/13994
14350         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
14351         on langhooks.h.
14352         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
14353         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
14354         Include langhooks.h.  Replace c_common_truthvalue_conversion
14355         with the truthvalue_conversion language hook throughout.
14356         (expr_no_commas): Call default_conversion before save_expr
14357         for the first term of the production 'x ? : y'.
14358         * c-common.c (c_common_truthvalue_conversion): Remove
14359         obsolete block.  Invoke recursively the hook instead
14360         of this function.
14361         * c-convert.c (convert): handle ERROR_MARK_NODE.
14362         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
14363         returned by the truthvalue_conversion language hook.
14364         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14365         c_objc_common_truthvalue_conversion.
14366         * c-objc-common.c (c_objc_common_truthvalue_conversion):
14367         New function.
14368         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
14369         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
14370         c_objc_common_truthvalue_conversion.
14371
14372 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14373
14374         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
14375         of gen_rtx.
14376         (LIBCALL_VALUE): Likewise.
14377         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
14378         gen_rtx_CC0 instead of gen_rtx.
14379         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
14380         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
14381         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
14382         gen_rtx.
14383         (m68hc11_emit_logical): Likewise.
14384
14385 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14386
14387         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
14388         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
14389         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
14390         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
14391         config/mips/mips.md, config/mmix/mmix.c,
14392         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
14393         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
14394         config/rs6000/altivec.md, config/s390/s390.c,
14395         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
14396         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
14397         Use const0_rtx instead of GEN_INT (0).  Do the same for other
14398         constants that are readily available.
14399
14400 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14401
14402         * doloop.c, optabs.c, regmove.c, sched-deps.c,
14403         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
14404         instead of GEN_INT (0).  Do the same for other constants that
14405         are readily available.
14406
14407 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
14408
14409         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
14410         gen_rtx.
14411         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
14412         instead of gen_rtx.
14413         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
14414         gen_rtx.
14415         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
14416         gen_rtx_ASHIFT instead of gen_rtx.
14417         (udivmodqi4): Likewise.
14418
14419 2004-02-02  Richard Henderson  <rth@redhat.com>
14420
14421         PR target/13789
14422         * expr.c (store_expr): Use force_operand before emit_move_insn.
14423
14424 2004-02-02  Jeff Law  <law@redhat.com>
14425             Roger Sayle  <roger@eyesopen.com>
14426
14427         * tree.c (commutative_tree_code, associative_tree_code): New
14428         functions.
14429         (iterative_hash_expr): Use commutative_tree_code.
14430         * tree.h (commutative_tree_code, associative_tree_code): Declare.
14431         * fold-const.c (operand_equal_p): Use commutative_tree_code
14432         rather than inlining the commutativity check.
14433         (fold): Likewise.
14434
14435 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14436
14437         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
14438         * config/frv/frv-protos.h: Remove the prototype for
14439         frv_function_arg_keep_as_reference.
14440         * config/frv/frv.c (frv_function_arg_keep_as_reference):
14441         Remove.
14442         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
14443         * config/stormy16/stormy16.h: Remove the commented-out
14444         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
14445
14446 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
14447
14448         PR target/13914
14449         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
14450         for retaddr_column.
14451
14452 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14453
14454         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
14455         gen_rtx.
14456
14457 2004-02-02  Eric Christopher  <echristo@redhat.com>
14458             Zack Weinberg  <zack@codesourcery.com>
14459
14460         * c-opts.c (c_common_handle_option): Add -finput-charset.
14461         * c.opt: Ditto.
14462         * cppcharset.c (one_iso88591_to_utf8): Remove.
14463         (convert_iso88591_utf8): Ditto.
14464         (conversion_tab): Remove 8859-1 converter.
14465         (_cpp_input_to_utf8): Remove.
14466         (_cpp_init_iconv_buffer): Ditto.
14467         (_cpp_close_iconv_buffer): Ditto.
14468         (_cpp_convert_input): New function.
14469         (_cpp_default_encoding): Ditto.
14470         * cpphash.h: Add/remove prototypes for above.
14471         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
14472         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
14473         for narrow execution and input character sets.
14474         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
14475         * doc/cppopts.texi: Document -finput-charset.
14476
14477 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
14478
14479         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
14480         against FIRST_PSEUDO_REGISTER.
14481
14482 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14483
14484         * doc/invoke.texi (SPARC options): Further improve.
14485
14486 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14487
14488         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
14489         config/h8300/h8300.c, config/ip2k/ip2k.md,
14490         config/iq2000/iq2000.c, config/mips/mips.c,
14491         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
14492         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
14493         config/v850/v850.md: Fix indentation.
14494
14495 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14496
14497         * config/sparc/sparc.c (function_arg_slotno): Align TImode
14498         arguments on a 16-byte boundary in the parameter array if ARCH64.
14499         Split handling of TFmode.
14500
14501 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
14502
14503         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
14504         Don't test CONSTANT_P (x).
14505         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
14506         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
14507         Fix misindentation.
14508
14509 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
14510
14511         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
14512
14513 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
14514
14515         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
14516         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
14517         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
14518         config/iq2000/iq2000.c, config/m32r/m32r.c,
14519         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
14520         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
14521         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
14522         config/stormy16/stormy16.c, config/v850/v850.md,
14523         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
14524
14525 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14526
14527         * config/mcore/mcore.c (block_move_sequence): Replace
14528         gen_rtx_CONST_INT with GEN_INT.
14529
14530 2004-02-02  Jan Hubicka  <jh@suse.cz>
14531
14532         * alias.c (record_set): Use hard_regno_nregs.
14533         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
14534         * builtins.c (apply_args_size): Likewise.
14535         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
14536         mark_set_regs, add_stored_regs, mark_referenced_regs,
14537         insert_restore, insert_save, insert_one_insn): Likewise.
14538         * cfgcleanup.c: Include regs.h
14539         (mark_effect, mentions_nonequal_regs): Likewise.
14540         * cfgrtl.c (mark_killed_regs): Likewise
14541         * combine.c (update_table_tick, record_value_for_reg,
14542         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
14543         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
14544         reg_bitfield_target_p, distribute_notes): Likewise.
14545         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
14546         exp_equiv_p, cse_insn): Likewise.
14547         * cselib.c (cselib_lookup): Likewise.
14548         (cselib_invalidate_regno, cselib_record_set): Likewise.
14549         * df.c (df_ref_record): Likewise.
14550         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
14551         Likewise.
14552         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
14553         count_or_remove_death_notes_bb): Likewise.
14554         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
14555         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
14556         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
14557         * integrate.c (mark_stores): Likewise.
14558         * jump.c (delete_prior_computation): Likewise.
14559         * lcm.c (reg_dies, reg_becomes_live): Likewise.
14560         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
14561         * loop.c (LOOP_REGNO_NREGS): Likewise.
14562         * postreload.c (reload_combine, reload_combine_note_store,
14563         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
14564         * ra-colorize.c (combine, color_usable_p, get_free_reg,
14565         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
14566         try_recolor_web, insert_coalesced_conflicts, check_colors,
14567         break_precolored_alias): Likewise.
14568         * ra-debug.c: Include regs.h
14569         (ra_print_rtx_object): Likewise.
14570         * ra-rewrite (choose_spill_colors): Likewise.
14571         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
14572         * ra.c (init_ra): Likewise.
14573         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
14574         peep2_find_free_register): Likewise.
14575         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
14576         * regclass.c (hard_regno_nregs): New array.
14577         (init_reg_modes_once): Initialize it.
14578         (choose_hard_reg_mode): Use it.
14579         (record_reg_classes): Likewise.
14580         * regmove.c (mark_flags_life_zones): Likewise.
14581         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
14582         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
14583         copy_value, maybe_mode_change, find_oldest_value_reg,
14584         copyprop_hardreg_forward_1):
14585         * regs.h (hard_regno_nregs): Declare.
14586         * realod.c (reload_inner_reg_of_subreg): Use it.
14587         (push_reload, combine_reloads, find_dummy_reload,
14588         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
14589         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
14590         reload_adjust_reg_for_mode): Likewise.
14591         * reload1.c (compute_use_by_pseudos, count_pseudo,
14592         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14593         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14594         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14595         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14596         delete_output_reload): Likewise.
14597         * resource.c (update_live_status, mark_referenced_resources,
14598         mark_set_resources, mark_target_live_regs): Likewise.
14599         * rtlanal.c:  Include regs.h
14600         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14601         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14602         subreg_regno_offset, subreg_offset_representable_p,
14603         hoist_test_store): Likewise.
14604         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14605         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14606         * stmt.c: Include regs.h
14607         (decl_conflicts_with_clobbers_p): Likewise.
14608         * varasm.c (make_decl_rtl): Likewise.
14609         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14610
14611 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14612
14613         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14614         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14615         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14616         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14617         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14618         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14619         config/iq2000/iq2000.h, config/m32r/m32r.c,
14620         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14621         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14622         config/mcore/mcore.c, config/mcore/mcore.h,
14623         config/mcore/mcore.md, config/mips/mips.c,
14624         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14625         config/rs6000/rs6000.c, config/s390/s390.c,
14626         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14627         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14628         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14629
14630 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14631
14632         * config/h8300/h8300.md (two peephole2's): New.
14633
14634 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14635
14636         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14637         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14638         (ASM_CPU_SPEC): Likewise
14639         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14640         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14641
14642 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14643
14644         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14645         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14646         (expand_builtin): Always call expand_builtin_pow.
14647
14648 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14649
14650         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14651         BUILT_IN_SIGNBITL): New GCC builtins.
14652         * builtins.c (expand_builtin_signbit): New function to RTL expand
14653         calls to signbit, signbitf and signbitl as inline intrinsics.
14654         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14655         (fold_builtin_signbit): New function to perform constant folding
14656         of signbit, signbitf and signbitl.
14657         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14658
14659         * doc/extend.texi: Document new signbit{,f,l} builtins.
14660
14661 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14662
14663         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14664
14665 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14666
14667         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14668         "mips_const_double_ok" and "simple_memory_operand", which were
14669         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14670         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14671         for removal of simple_memory_operand.
14672
14673 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14674
14675         * config/c4x/c4x.md: Use GEN_INT instead of
14676         gen_rtx (CONST_INT, ...).
14677
14678 2004-01-31  Richard Henderson  <rth@redhat.com>
14679
14680         * varasm.c (output_constant_pool): Don't zap the pool.
14681
14682 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14683
14684         * genrecog.c (decision_type): Add DT_const_int.
14685         (write_cond) [DT_const_int]: Print a comparison against small
14686         constant.
14687         (write_node): Simplify comparisons against small constants
14688         before printing tests.
14689
14690 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14691
14692         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14693         instead of gen_rtx_CONST_INT.
14694
14695 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14696
14697         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14698         instead of gen_rtx_CONST_INT.
14699
14700 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14701
14702         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14703         hook_bool_CUMULATIVE_ARGS_false.
14704         * targhooks.c (default_strict_argument_naming): Rename to
14705         hook_bool_CUMULATIVE_ARGS_false.
14706         * targhooks.h: Update the prototype for
14707         default_strict_argument_naming.
14708
14709 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14710
14711         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14712         * config/sh/sh.h: Likewise.
14713         * config/sh/sh.md: Likewise.
14714
14715 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14716
14717         * doc/invoke.texi (SPARC options): Restructure and update.
14718
14719 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14720
14721         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14722         STRICT_ARGUMENT_NAMING): Poison.
14723         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14724         hook_bool_tree_false.
14725         * targhooks.c (default_promote_function_args): Remove.
14726         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14727         Don't check incoming.
14728         (default_strict_argument_naming): Don't use
14729         STRICT_ARGUMENT_NAMING.
14730         * targhooks.h: Remove the prototype for
14731         default_promote_function_args.
14732
14733 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14734
14735         * config/i386/i386-protos.h: Remove the prototype for
14736         ix86_setup_incoming_varargs.
14737         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14738         (ix86_setup_incoming_varargs): Make it static.
14739         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14740
14741 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14742
14743         * alloc-pool.c: Fix comment typos.
14744         * builtin-types.def: Likewise.
14745         * builtins.def: Likewise.
14746         * c-pretty-print.c: Likewise.
14747         * df.h: Likewise.
14748         * reload1.c: Likewise.
14749
14750 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14751
14752         * doc/invoke.texi: Follow spelling conventions.
14753         * doc/tm.texi: Likewise.
14754
14755 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14756
14757         * doc/install.texi: Fix typos.
14758         * doc/invoke.texi: Likewise.
14759
14760 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14761
14762         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14763         registers as pointers.
14764         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14765
14766 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14767
14768         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14769         and restore it to gen_lowpart_general on exit.
14770         (gen_lowpart_for_combine): Adjust all callers to go through
14771         gen_lowpart.
14772         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14773         and restore it to gen_lowpart_general on exit.
14774         (gen_lowpart_if_possible): Adjust all callers to go through
14775         gen_lowpart.
14776         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14777         (gen_lowpart): Declare as pointer to function, initialized to
14778         gen_lowpart_general.
14779         * rtl.h (gen_lowpart): Declare as pointer to function.
14780
14781 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14782
14783         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14784         * calls.c: Likewise.
14785         * emit-rtl.c: Likewise.
14786         * function.c: Likewise.
14787         * reload1.c: Likewise.
14788         * config/i386/cygming.h: Likewise.
14789         * config/i386/i386.c: Likewise.
14790         * config/i386/winnt.c: Likewise.
14791
14792 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14793
14794         PR bootstrap/9249
14795         * doc/install.texi: document --enable-__cxa_atexit option.
14796         * configure.ac: Disable __cxa_atexit if not supported.
14797         * configure: Regenerate.
14798
14799 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14800
14801         * ggc-zone.c (ggc_free): New function.
14802
14803 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14804
14805         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14806         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14807         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14808         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14809         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14810         config/alpha/alpha.c, config/alpha/alpha.h,
14811         config/alpha/alpha.md, config/alpha/unicosmk.h,
14812         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14813         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14814         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14815         config/frv/frvend.c, config/i386/cygming.h,
14816         config/i386/djgpp.h, config/i386/emmintrin.h,
14817         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14818         config/i386/i386-protos.h, config/i386/openbsd.h,
14819         config/i386/winnt.c, config/i386/xm-mingw32.h,
14820         config/i386/xmmintrin.h, config/ia64/ia64.md,
14821         config/iq2000/iq2000.md, config/m32r/m32r.md,
14822         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14823         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14824         config/mips/iris5gas.h, config/mips/iris6.h,
14825         config/mips/iris6gas.h, config/mips/linux.h,
14826         config/mips/mips.md, config/mips/netbsd.h,
14827         config/mips/openbsd.h, config/mips/windiss.h,
14828         config/pa/fptr.c, config/rs6000/aix.h,
14829         config/rs6000/altivec.h, config/rs6000/darwin.h,
14830         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14831         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14832         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14833         config/sparc/sol2.h: Update copyright.
14834
14835 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14836
14837         * Makefile.in (abs_docdir, abs_srcdir): Define.
14838         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14839
14840 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14841
14842         * genconfig.c (main): Have CC0_P check its operand even on a
14843         target without cc0.
14844
14845 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14846
14847         * config/alpha/alpha.c: Remove mentions of deprecates macros
14848         in comments, remove some target-independent comments about target
14849         macros, and/or add minimal function comments for target hook
14850         implementations.
14851         * config/avr/avr.c: Likewise.
14852         * config/ia64/ia64.h: Likewise.
14853         * config/ip2k/ip2k.c: Likewise.
14854         * config/iq2000/iq2000.c: Likewise.
14855         * config/m32r/m32r.h: Likewise.
14856         * config/m68hc11/m68hc11.c: Likewise.
14857         * config/mcore/mcore.c: Likewise.
14858         * config/mmix/mmix.c: Likewise.
14859         * config/mn10300/mn10300.c: Likewise.
14860         * config/pa/pa.c: Likewise.
14861         * config/pdp11/pdp11.c: Likewise.
14862         * config/rs6000/rs6000.h: Likewise.
14863         * config/sh/sh.c: Likewise.
14864         * config/sh/sh.h: Likewise.
14865         * config/sparc/sparc.c: Likewise.
14866         * config/sparc/sparc.h: Likewise.
14867         * config/stormy16/stormy16.c: Likewise.
14868         * config/xtensa/xtensa.c: Likewise.
14869
14870 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14871
14872         PR optimization/12147
14873         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14874         RELOAD_FOR_OPADDR_ADDR.
14875         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14876         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14877
14878 2004-01-30  Jan Hubicka  <jh@suse.cz>
14879
14880         * reload.c (get_secondary_mem): Fix updating of
14881         secondary_memlocs_elim_used.
14882
14883 2004-01-30  Richard Henderson  <rth@redhat.com>
14884
14885         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14886         (MAX_RTX_HASH_TABLE): Remove.
14887         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14888         (first_pool, last_pool, pool_offset): Remove.
14889         (struct rtx_constant_pool): Split out from ...
14890         (struct varasm_status): ... here.  Reference one via pointer.
14891         (struct constant_descriptor_rtx): Merge struct pool_constant.
14892         (SYMHASH): Remove.
14893         (decode_rtx_const): Remove.
14894         (const_hash_rtx, compare_constant_rtx): Remove.
14895         (record_constant_rtx): Remove.
14896         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14897         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14898         (const_rtx_hash_1, const_rtx_hash): New.
14899         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14900         (simplify_subtraction): Use simplify_rtx.
14901         (force_const_mem): Rewrite to use new data structures.
14902         (find_pool_constant): Likewise.
14903         (get_pool_constant, get_pool_constant_mark,
14904         get_pool_constant_for_function, get_pool_mode,
14905         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14906         (output_constant_pool_2): Split out from output_constant_pool.
14907         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14908         (output_constant_pool): Zap entire pool datastructure.
14909         (mark_constant): Use new pool datastructures.
14910         (mark_constants): Use for_each_rtx.
14911         (mark_constant_pool): Use new pool datastructures.
14912
14913 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14914
14915         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14916         Copy operands[1] to pseudo for simplify_gen_subreg.
14917
14918 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14919
14920         * gcse.c (bypass_block): Fix a typo in the previous check-in
14921         to the file.
14922
14923 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14924
14925         * toplev.c: Include alloc-pool.h.
14926         * Makefile.in (toplev.c): Update dependencies.
14927
14928 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14929
14930         * combine.c (simplify_shift_const, case XOR): Be careful when
14931         commuting XOR with ASHIFTRT.
14932
14933 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14934             Eric Botcazou  <ebotcazou@libertysurf.fr>
14935
14936         * config/sparc/sparc-protos.h: Remove the prototype for
14937         sparc_builtin_saveregs.
14938         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14939         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14940         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14941         (TARGET_STRUCT_VALUE_RTX): Likewise.
14942         (TARGET_RETURN_IN_MEMORY): Likewise.
14943         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14944         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14945         (sparc_builtin_saveregs): Make it static.
14946         (sparc_promote_prototypes): New.
14947         (sparc_struct_value_rtx): Likewise.
14948         (sparc_return_in_memory): Likewise.
14949         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14950         (PROMOTE_FUNCTION_RETURN): Likewise.
14951         (RETURN_IN_MEMORY): Likewise.
14952         (STRUCT_VALUE): Likewise.
14953         (STRUCT_VALUE_INCOMING): Likewise.
14954         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14955         (STRICT_ARGUMENT_NAMING): Likewise.
14956         (PROMOTE_PROTOTYPES): Likewise.
14957
14958         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14959
14960 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14961
14962         PR c/12818
14963         * varasm.c (const_hash_1) <STRING_CST>: Use the
14964         address to compute the hash value if flag_writable_strings.
14965         (compare_constant) <STRING_CST>: Compare the addresses
14966         if flag_writable_strings.
14967         (build_constant_desc): Do not copy the expression for a
14968         STRING_CST if flag_writable_strings.
14969
14970 2004-01-30  Jan Hubicka  <jh@suse.cz>
14971
14972         * alloc-pool.c: Include hashtab.h
14973         (alloc_pool_descriptor): New structure
14974         (alloc_pool_hash): New global variable.
14975         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14976         (create_alloc_pool): Update statistics.
14977         (free_alloc_pool): Likewise.
14978         (pool_alloc): Likewise.
14979         (output_info): New structure
14980         (print_statistics, dump_alloc_pool_statistics): New function.
14981         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14982         (dump_alloc_pool_statistics): Declare.
14983         * toplev.c (finalize):  Dump statistics.
14984
14985         * reload.c (secondary_memlocs_elim_used): New static variable.
14986         (get_secondary_mem): Update it.
14987         (find_reloads): Use it.
14988
14989 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14990
14991         * toplev.c: Fix broken checkin of 2003-12-30, again.
14992
14993 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14994
14995         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14996         s390*-*-* targets by specifying a 'nop' insn.
14997         * configure: Regenerate.
14998
14999 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
15000
15001         PR target/11475
15002         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
15003
15004 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15005
15006         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
15007         of addr when creating MEM copy.
15008
15009 2004-01-29  Devang Patel  <dpatel@apple.com>
15010
15011         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
15012
15013 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15014
15015         PR inline-asm/6162
15016         * reload.c (find_reloads): Only support one pair of commutative
15017         operands.
15018
15019 2004-01-29  Roger Sayle  <roger@eyesopen.com>
15020
15021         PR java/13824
15022         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
15023         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
15024         recursion.
15025
15026 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15027
15028         * config/frv/frv.c: Don't mention deprecated macros in
15029         comments.  Remove some target-independent comments about
15030         target macros.
15031         * config/frv/frv.h: Likewise.
15032
15033 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15034
15035         * cfghooks.c (split_block): Set probability and count of the
15036         new edge.
15037
15038 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
15039
15040         * dwarf2out.c (struct die_struct): Added field decl_id.
15041         (decl_die_table): Changed to hash table.
15042         (decl_die_table_allocated): Deleted.
15043         (decl_die_table_in_use): Deleted.
15044         (DECL_DIE_TABLE_INCREMENT): Deleted.
15045         (decl_die_table_hash): New function.
15046         (decl_die_table_eq): New function.
15047         (lookup_decl_die): Lookup in a hash table.
15048         (equate_decl_number_to_die): Insert into a hash table.
15049         (dwarf2out_init): Init hash table decl_die_table.
15050
15051 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
15052
15053         PR optimization/13424
15054         * expr.c (store_constructor): Revert 2003-12-03 change.
15055
15056         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
15057         expected before returning early.  Avoid sharing RTL if they
15058         need to be changed.
15059
15060         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
15061         handling so that memory attributes are preserved.  Don't call
15062         ix86_set_move_mem_attrs.
15063         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
15064         (ix86_expand_clrstr): Rename src argument to
15065         dst.  Rework rep_stos and strset handling so that memory attributes
15066         are preserved.
15067         (ix86_expand_strlen): Pass src argument to
15068         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
15069         memory attributes are preserved.
15070         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
15071         change_address instead of gen_rtx_MEM.
15072         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
15073         expanders.
15074         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
15075         strmovqi, strmovqi_rex64): Remove.
15076         (rep_mov*, strmov*): Prefix insn names with *.
15077         (strset, strset_singleop, rep_stos): New expanders.
15078         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
15079         strsetqi, strsetqi_rex64): Remove.
15080         (rep_stos*, strset*): Prefix insn names with *.
15081         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
15082         to SImode.
15083         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
15084         are preserved.
15085         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
15086         Prefix insn names with *.
15087         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
15088         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
15089         (strlenqi_1): New expander.
15090         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
15091
15092 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15093
15094         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
15095         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
15096         verify_flow_info): Declaration removed.
15097         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
15098         (debug_bb, debug_bb_n): Add argument to dump_bb call.
15099         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
15100         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
15101         instead of delete_block.
15102         * cfghooks.c: Include timevar.h and toplev.h.
15103         (cfg_hooks): Define here.
15104         (verify_flow_info, dump_bb): Moved from cfg.c.
15105         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15106         split_block, split_block_after_labels, move_block_after,
15107         delete_basic_block, split_edge, create_basic_block,
15108         create_empty_bb, can_merge_blocks_p, merge_blocks,
15109         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15110         New functions.
15111         * cfghooks.h (struct cfg_hooks): Added fields name,
15112         make_forwarder_block, tidy_fallthru_edge and
15113         move_block_after. Changed type of verify_flow_info, dump_bb,
15114         split_block fields. Renamed cfgh_split_edge and delete_block
15115         fields.
15116         (redirect_edge_and_branch, redirect_edge_and_branch_force,
15117         split_block, delete_block, split_edge, create_basic_block,
15118         can_merge_blocks_p, merge_blocks): Macros removed.
15119         (cfg_hooks): Do not export.
15120         (verify_flow_info, dump_bb, redirect_edge_and_branch,
15121         redirect_edge_and_branch_force, split_block, split_block_after_labels,
15122         move_block_after, delete_basic_block, split_edge, create_basic_block,
15123         create_empty_bb, can_merge_blocks_p, merge_blocks,
15124         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
15125         Declare.
15126         (cfg_layout_rtl_cfg_hooks): Declare.
15127         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
15128         New functions.
15129         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
15130         (redirect_edge_with_latch_update): Removed.
15131         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
15132         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
15133         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
15134         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
15135         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
15136         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
15137         cfghooks.c.
15138         (rtl_create_basic_block): Coding style fix.
15139         (rtl_tidy_fallthru_edge, rtl_move_block_after,
15140         rtl_make_forwarder_block): New functions.
15141         (update_cfg_after_block_merging): Removed.
15142         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
15143         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
15144         to dump_bb.
15145         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
15146         find_if_case_2): Don't update dominators.
15147         * timevar.def (TV_CFG_VERIFY): New.
15148         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
15149         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
15150         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
15151         (remove_bbs): Don't call remove_bbs.
15152         (create_preheader): Use make_forwarder_block.
15153         (mfb_keep_just, mfb_update_loops): New static functions.
15154
15155 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
15156
15157         * config/avr/avr.h: Remove target-independent comments about
15158         target macros.
15159
15160 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
15161
15162         * timevar.c (timevar_print): Mention when checking is enabled.
15163
15164 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
15165
15166         * c-lex.c (c_lex): Rename to...
15167         (c_lex_with_flags): Add new parameter to get CPP flags.
15168         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
15169         * c-pragma.h (c_lex_with_flags): Declare.
15170
15171 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15172
15173         * config/mcore/mcore.c (mcore_external_libcall): Add a
15174         comment.
15175         (mcore_return_in_memory): Likewise.
15176
15177 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15178
15179         * config/mcore/mcore-protos.h: Remove the prototype for
15180         mcore_setup_incoming_varargs.
15181         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15182         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15183         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15184         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15185         (TARGET_STRUCT_VALUE_RTX): Likewise.
15186         (TARGET_RETURN_IN_MEMORY): Likewise.
15187         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15188         (mcore_setup_incoming_varargs): Make it static.  Receive the
15189         first argument by reference.  Add argument second_time.
15190         (mcore_external_libcall): New.
15191         (mcore_return_in_memory): Likewise.
15192         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
15193         (PROMOTE_FUNCTION_RETURN): Likewise.
15194         (STRUCT_VALUE): Likewise.
15195         (RETURN_IN_MEMORY): Likewise.
15196         (SETUP_INCOMING_VARARGS): Likewise.
15197         (PROMOTE_PROTOTYPES): Likewise.
15198         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15199
15200 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15201
15202         * config/m32r/m32r-protos.h: Remove the prototype for
15203         m32r_setup_incoming_varargs.
15204         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
15205         (TARGET_STRUCT_VALUE_RTX): Likewise.
15206         (TARGET_RETURN_IN_MEMORY): Likewise.
15207         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15208         (m32r_return_in_memory): New.
15209         (m32r_setup_incoming_varargs): Make it static.
15210         * config/m32r/m32r.h: Remove #undef of
15211         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
15212         definitions of PROMOTE_FUNCTION_ARGS and
15213         PROMOTE_FUNCTION_RETURN.
15214         (PROMOTE_PROTOTYPES): Remove.
15215         (RETURN_IN_MEMORY): Likewise.
15216         (STRUCT_VALUE): Likewise.
15217
15218 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15219
15220         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
15221         (TARGET_STRUCT_VALUE_RTX): Likewise.
15222         (m68k_struct_value_rtx): Likewise.
15223         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
15224         STRUCT_VALUE_REGNUM.
15225         (PROMOTE_PROTOTYPES): Remove.
15226         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
15227         STRUCT_VALUE_REGNUM.
15228         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
15229         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
15230
15231 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15232
15233         * config/stormy16/stormy16.c
15234         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
15235         TARGET_BUILD_BUILTIN_VA_LIST.
15236
15237 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15238
15239         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
15240         (TARGET_STRUCT_VALUE_RTX): Likewise.
15241         (TARGET_RETURN_IN_MEMORY): Likewise.
15242         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15243         (v850_return_in_memory): Likewise.
15244         (v850_setup_incoming_varargs): Likewise.
15245         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
15246         (SETUP_INCOMING_VARARGS): Likewise.
15247         (RETURN_IN_MEMORY): Likewise.
15248         (STRUCT_VALUE): Likewise.
15249
15250 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15251
15252         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
15253         (fr30_setup_incoming_varargs): Don't use
15254         STRICT_ARGUMENT_NAMING.
15255         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
15256         (STRICT_ARGUMENT_NAMING): Likewise.
15257
15258 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15259
15260         * config/frv/frv-protos.h: Remove the prototype for
15261         frv_expand_builtin_saveregs.
15262         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
15263         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15264         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
15265         STRUCT_VALUE_REGNUM.
15266         (frv_expand_builtin_saveregs): Make it static.
15267         (frv_struct_value_rtx): New.
15268         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
15269
15270 2004-01-29  Jan Hubicka  <jh@suse.cz>
15271
15272         PR c++/12850
15273         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
15274         initial pointers.
15275         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
15276         for functions that will be only inlined.
15277         (cgraph_mark_function_to_output): Likewise.
15278         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
15279         do not clear function body.
15280         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
15281         (tree_rest_of_compilation): Reorganize the logic releasing function
15282         body to use callgraph datastructure.
15283
15284 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15285
15286         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
15287         to register_operand.
15288
15289 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15290
15291         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
15292         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
15293         match_operand expressions so that all match_dups appear
15294         lexically after their corresponding match_operands.
15295
15296 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15297
15298         * config/h8300/h8300.c (WORD_REG_USED): Use
15299         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
15300         (compute_saved_regs): Likewise.
15301         (h8300_expand_prologue): Likewise.  Allocate locals after
15302         saving registers.
15303         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
15304         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
15305         registers.
15306         (h8300_initial_elimination_offset): Adjust for the new frame
15307         layout, which swaps flips the order of locals and saved
15308         registers.
15309         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
15310         (HARD_FRAME_POINTER_REGNUM): New.
15311         (ELIMINABLE_REGS): Add an elimination rule from
15312         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
15313         (REGISTER_NAMES): Add fp.
15314         * config/h8300/h8300.md (FP_REG): Change to 11.
15315         (HFP_REG): New.
15316
15317 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15318
15319         * genrecog.c (write_node): Remove a useless local variable.
15320
15321 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
15322
15323         * Makefile.in (options.c options.h): Use stamp file s-options to
15324         avoid unnecessary rebuilds.
15325         (options.o): New target listing dependencies.
15326         (gtyp-gen.h): Use stamp file s-gtyp-gen.
15327         (STAGESTUFF): Add s-gtyp-gen.
15328
15329 2004-01-28  Richard Henderson  <rth@redhat.com>
15330
15331         * ggc.h (ggc_free): Declare.
15332         * ggc-common.c (ggc_realloc): Use it.
15333         * ggc-page.c: Remove lots of inline markers.
15334         (globals): Add free_object_list.
15335         (ggc_alloc): Tidy.
15336         (ggc_free, validate_free_objects): New.
15337         (poison_pages): Provide default.
15338         (ggc_collect): Call validate_free_objects; emit markers to
15339         the debug file.
15340
15341 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
15342             Jim Wilson  <wilson@specifixinc.com>
15343
15344         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
15345         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
15346         scratch pointer.
15347         (ia64_secondary_reload_class): Delete case GR_REGS.
15348         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
15349         Do not allocate a scratch register.
15350         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
15351
15352 2004-01-28  Jan Hubicka  <jh@suse.cz>
15353
15354         * gcse.c (bypass_block): Prevent edges to be unified when we are
15355         about to emit compenstation code.
15356
15357 2004-01-28  Nick Clifton  <nickc@redhat.com>
15358
15359         * config/arm/arm.c (arm_expand_builtin): Force second argument of
15360         the setcwx insn into a register.
15361
15362 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
15363
15364         * config/fp-bit.c (pack_d): When using paired doubles to implement
15365         a long double, round the high part separately.
15366         (unpack_d): Fix the case in which the high part is a power of two
15367         and the low part is a nonzero value of the opposite sign.
15368
15369 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15370
15371         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
15372         (TARGET_STRUCT_VALUE_RTX): Likewise.
15373         (c4x_external_libcall): Likewise.
15374         (c4x_struct_value_rtx): Likewise.
15375         * config/c4x/c4x.h: Remove.
15376         (STRUCT_VALUE_REGNUM): Likewise.
15377         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
15378
15379 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
15380
15381         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
15382         (TARGET_STRUCT_VALUE_RTX): Likewise.
15383         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
15384         (STRUCT_VALUE): Likewise.
15385         (PROMOTE_PROTOTYPES): Likewise.
15386
15387 2004-01-27  Roger Sayle  <roger@eyesopen.com>
15388
15389         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
15390         CONST_INT before using INTVAL.
15391
15392 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
15393
15394         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
15395         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
15396         frame if !TARGET_BACKCHAIN.
15397         * config/s390/s390.md ("allocate_stack"): Use pattern only if
15398         TARGET_BACKCHAIN.
15399         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
15400
15401 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15402
15403         * ia64.c (ia64_function_arg): When placing HFAs in integer
15404         registers, do not special case the mode used for complex
15405         types.  Do not advance int_regs until the current register
15406         is full.
15407
15408 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
15409
15410         PR target/7297
15411         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
15412
15413 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15414
15415         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
15416         slow, unaligned loads and stores while debugging.  Fix formatting.
15417
15418 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
15419
15420         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
15421         of computing wmode.
15422         (restore_stack_nonlocal): Same.
15423
15424 2004-01-27  Devang Patel <dpatel@apple.com>
15425
15426         * Makefile.in (dwarf2out.o): Depend on input.h
15427         * dbxout.c (dbx_debug_hooks): Add new empty hook for
15428         imported_module_or_decl.
15429         (xcoff_debug_hooks): Same.
15430         * sdbout.c (sdb_debug_hooks): Same.
15431         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
15432         * debug.c (do_nothing_debug_hooks): Same.
15433         (debug_nothing_tree_tree): New function.
15434         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
15435         * dwarf2out.c: Include input.h.
15436         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
15437         (remove_child_TAG): New function.
15438         (dwarf_tag_name): Handle DW_TAG_imported_module.
15439         (gen_subprogram_die): Equate decl number to declaration die. Do not
15440         remove all children dies while reusing declaration die for definition.
15441         Instead, selectively remove only formal parameters.
15442         (gen_variable_die): Equate variable decl to declaration die.
15443         (gen_field_die): Equate field decl to line number.
15444         (force_namespace_die): Replace it with ...
15445         (force_decl_die): ... this.
15446         (force_type_die): New function.
15447         (setup_namespace_context): Replace use of force_namespace_die() with
15448         force_decl_die().
15449         (gen_namespace_die): Same.
15450         (dwarf2out_imported_module_or_decl): New function.
15451
15452 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
15453
15454         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
15455         on CQImode and CHImode incoming arguments in register a7.
15456         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
15457         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
15458         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
15459         xtensa_copy_incoming_a7 before reload.
15460
15461 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15462
15463         * coverage.c (get_coverage_counts): Give a different message
15464         if flag_guess_branch_prob is set.
15465         * predict.c (counts_to_freqs): Return an int.
15466         (estimate_bb_frequencies): If counts_to_freqs returns zero,
15467         calculate estimates.
15468
15469 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
15470
15471         * config/iq2000/iq2000-protos.h: Remove the prototype for
15472         iq2000_setup_incoming_varargs.
15473         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15474         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15475         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15476         (TARGET_STRUCT_VALUE_RTX): Likewise.
15477         (TARGET_RETURN_IN_MEMORY): Likewise.
15478         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15479         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15480         (iq2000_return_in_memory): Likewise.
15481         (iq2000_setup_incoming_varargs): Make it static.  Receive the
15482         first argument by reference.
15483         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
15484         (PROMOTE_FUNCTION_RETURN): Likewise.
15485         (PROMOTE_PROTOTYPES): Likewise.
15486         (RETURN_IN_MEMORY): Likewise.
15487         (STRUCT_VALUE): Likewise.
15488         (SETUP_INCOMING_VARARGS): Likewise.
15489         (STRICT_ARGUMENT_NAMING): Likewise.
15490
15491 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
15492
15493         * fixinc/fixinc.c (test_test): Initialize res.
15494         (start_flexer): Initialize pz_cmd_save.
15495
15496 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15497
15498         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
15499         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
15500
15501 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
15502
15503         PR 7198
15504         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
15505         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
15506         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
15507         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
15508         Possibly rename pattern for consistency.
15509         Remove ??? comments suggesting that this be done.
15510         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
15511         New patterns.
15512         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
15513         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
15514         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
15515         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
15516         Update to match.
15517
15518 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
15519
15520         * config/arm/arm.c (output_return_instruction): Only restore IP
15521         into SP if frame_pointer_needed.
15522
15523 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15524
15525         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
15526         for SCmode and DCmode if ARCH32.
15527         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
15528         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
15529         if ARCH32.
15530         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
15531         if ARCH32.
15532         (BASE_OUTGOING_VALUE_REG): Likewise.
15533
15534 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
15535
15536         PR target/10904
15537         PR target/13058
15538         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
15539         Forbid mode changes from SImode for lower FP regs if ARCH64.
15540
15541 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
15542
15543         * Makefile.in (bt-load.o): Depend on except.h.
15544         * bt-load.c (except.h): #include.
15545         (compute_defs_uses_and_gen): If insn at end of BB can throw
15546         within this function, consider registers used by it unavailable for
15547         btr migration.
15548         (move_btr_def): If insn at end of BB can throw, insert before rather
15549         than after.
15550
15551         * flags.h (flag_btr_bb_exclusive): Declare.
15552         * toplev.c (flag_btr_bb_exclusive): New variable.
15553         (f_options): Add btr-bb-exclusive.
15554         * bt-load.c (augment_live_range): Restore old behaviour if
15555         flag_btr_bb_exclusive is set.
15556         * common.opt: Add entry for -fbtr-bb-exclusive.
15557         * opts.c (common_handle_options): Same.
15558         * doc/invoke.texi: Document -fbtr-bb-exclusive.
15559
15560         * bt-load.c (btrs_live_at_end): New variable.
15561         (compute_defs_uses_and_gen): Compute its pointed-to array.
15562         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
15563         (augment_live_range): When augmenting with a new dominator,
15564         use only its btrs_live_at_end set, but also add in the full set
15565         of the old dominator.
15566         (btr_def_live_range): Use btrs_live_at_end.
15567         (move_btr_def): Set other_btr_uses_before_def, and move new set
15568         to the end of the basic block, if appropriate.
15569         (migrate_btr_defs): Allocate and free btrs_live_at_end.
15570
15571         * bt-load.c (basic_block_freq): Remove outdated comment.
15572
15573 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
15574
15575         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
15576         (PREDICATE_CODES): Remove duplicate.
15577         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
15578         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
15579         (MASK_PROFILE_KERNEL): Adjust define.
15580
15581 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
15582
15583         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
15584         of long string literals from 32 bytes to sizeof (void *) when !-Os
15585         and to 1 with -Os.
15586
15587 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15588
15589         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
15590         constant addresses in the normal mode.
15591
15592 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15593
15594         * system.h (CHAR_BITFIELD): Delete.
15595         (BOOL_BITFIELD): New.
15596         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15597         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15598
15599 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15600
15601         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15602         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15603         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15604         (TARGET_STRUCT_VALUE_RTX): Likewise.
15605         (TARGET_RETURN_IN_MEMORY): Likewise.
15606         (arc_return_in_memory): Likewise.
15607         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15608         (PROMOTE_FUNCTION_RETURN): Likewise.
15609         (RETURN_IN_MEMORY): Likewise.
15610         (STRUCT_VALUE): Likewise.
15611
15612 2004-01-26  Richard Henderson  <rth@redhat.com>
15613
15614         * c-parse.in (extension): Use itype.
15615         (SAVE_EXT_FLAGS): Don't allocate a tree.
15616         (RESTORE_EXT_FLAGS): Don't read a tree.
15617
15618 2004-01-26  Jan Hubicka  <jh@suse.cz>
15619
15620         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15621         to datastructure to be recycled.
15622
15623 2004-01-25  Jan Hubicka  <jh@suse.cz>
15624
15625         * genextract.c (main): Do not output the memset when not checking.
15626
15627 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15628
15629         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15630         switch statement instead of a chain of if statements.
15631
15632 2004-01-26  Jeff Law  <law@redhat.com>
15633
15634         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15635         acute accents for Petur Runolfsson's entry.
15636
15637 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15638
15639         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15640         (TARGET_RETURN_IN_MEMORY): Likewise.
15641         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15642         (RETURN_IN_MEMORY): Likewise.
15643
15644 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15645
15646          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15647          unaligned load/store into smaller loads and stores.
15648
15649 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15650
15651         * function.c (assign_parms): Do not assign
15652         long long argument to memory in prologue if
15653         is it loaded into register.
15654
15655 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15656
15657          PR middle-end/13779
15658          * expr.c (emit_group_load): split constant
15659          correctly into register components of PARALLEL insn.
15660
15661 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15662
15663         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15664         Use adjust_address_nv directly with appropriate mode.
15665         (restore_stack_nonlocal): Ditto.
15666
15667 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15668
15669         * config/xtensa/xtensa-protos.h: Remove the prototype for
15670         xtensa_builtin_saveregs.
15671         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15672         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15673         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15674         (TARGET_STRUCT_VALUE_RTX): Likewise.
15675         (TARGET_RETURN_IN_MEMORY): Likewise.
15676         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15677         (xtensa_builtin_saveregs): Make it static.
15678         (xtensa_return_in_memory): New.
15679         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15680         (PROMOTE_FUNCTION_RETURN): Likewise.
15681         (PROMOTE_PROTOTYPES): Likewise.
15682         (STRUCT_VALUE): Likewise.
15683         (RETURN_IN_MEMORY): Likewise.
15684         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15685
15686 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15687
15688         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15689         (arm_setup_incoming_varargs): Likewise.
15690         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15691
15692 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15693
15694         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15695         (cris_setup_incoming_varargs): Likewise.
15696         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15697
15698 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15699
15700         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15701         (ns32k_struct_value_rtx): Likewise.
15702         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15703         NS32K_STRUCT_VALUE_REGNUM.
15704
15705 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15706
15707         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15708         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15709         (TARGET_STRUCT_VALUE_RTX): Likewise.
15710         (arm_struct_value_rtx): Likewise.
15711         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15712         (STRUCT_VALUE): Likewise.
15713         (STRUCT_VALUE_REGNUM): Likewise.
15714         (PROMOTE_PROTOTYPES): Likewise.
15715
15716 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15717
15718         * config/ia64/ia64-protos.h: Remove the prototype for
15719         ia64_setup_incoming_varargs and ia64_return_in_memory.
15720         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15721         (TARGET_RETURN_IN_MEMORY): Likewise.
15722         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15723         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15724         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15725         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15726         (ia64_return_in_memory): Make it static.  Change the return
15727         type to bool from int.  Add an argument.
15728         (ia64_struct_value_rtx): New.
15729         * config/ia64/ia64.h: Remove commented-out definitions of
15730         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15731         PROMOTE_PROTOTYPES.
15732         (RETURN_IN_MEMORY): Remove.
15733         (STRUCT_VALUE_REGNUM): Likewise.
15734         (STRICT_ARGUMENT_NAMING): Likewise.
15735
15736 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15737
15738         PR target/13666
15739         * config/sparc/sparc.c (function_arg_union_value): New function.
15740         (function_arg): Use it to deal with unions.
15741         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15742         Replace a conditional statement by a simpler one.
15743
15744 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15745
15746         * config/mips/mips.c (mips16_optimize_gp): Delete.
15747         (mips_reorg): Don't call it.
15748
15749 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15750
15751         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15752         (floatunsqihf2): Remove operand 6.
15753         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15754         fix patterns.
15755         (ldi_conditional, ldf_conditional): Validate operands.
15756
15757 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15758
15759         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15760         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15761
15762 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15763
15764         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15765         memory references if TARGET_EXPOSE_LDP nonzero.
15766
15767 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15768
15769         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15770
15771 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15772
15773         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15774         invalid operand combinations.
15775
15776 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15777
15778         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15779         c4x_legitimate_address_p.  Fix post_modify check.
15780
15781         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15782         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15783
15784 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15785
15786         * config/pa/pa-protos.h: Remove the prototype for
15787         hppa_builtin_saveregs.  Add a prototype for
15788         pa_return_in_memory.
15789         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15790         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15791         (TARGET_STRUCT_VALUE_RTX): Likewise.
15792         (TARGET_RETURN_IN_MEMORY): Likewise.
15793         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15794         (pa_struct_value_rtx): Likewise.
15795         (pa_return_in_memory): Likewise.
15796         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15797         PA_STRUCT_VALUE_REGNUM.
15798         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15799         (EXPAND_BUILTIN_SAVEREGS): Remove.
15800         (PROMOTE_PROTOTYPES): Likewise.
15801         (PROMOTE_FUNCTION_RETURN): Likewise.
15802
15803 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15804
15805         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15806         (TARGET_STRUCT_VALUE_RTX): Likewise.
15807         (vax_struct_value_rtx): Likewise.
15808         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15809         VAX_STRUCT_VALUE_REGNUM.
15810         (PROMOTE_PROTOTYPES): Remove.
15811
15812 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15813
15814         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15815
15816 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15817
15818         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15819         and MIPS64 have HI/LO interlocks.  Update comment.
15820
15821 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15822
15823         * config/stormy16/stormy16-protos.h: Remove the prototype for
15824         xstormy16_setup_incoming_varargs.
15825         * config/stormy16/stormy16.c
15826         (xstormy16_setup_incoming_varargs): Remove.
15827         (xstormy16_return_in_memory): New.
15828         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15829         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15830         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15831         (TARGET_STRUCT_VALUE_RTX): Likewise.
15832         (TARGET_RETURN_IN_MEMORY): Likewise.
15833         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15834         (PROMOTE_FUNCTION_RETURN): Likewise
15835         (PROMOTE_PROTOTYPES): Likewise
15836         (RETURN_IN_MEMORY): Likewise
15837         (STRUCT_VALUE): Likewise
15838         (SETUP_INCOMING_VARARGS): Likewise
15839
15840 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15841
15842         * config/mips/mips.c (mips_offset_within_object_p): New function.
15843         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15844         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15845         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15846
15847 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15848
15849         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15850         (PROMOTE_FUNCTION_RETURN): Likewise.
15851
15852 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15853
15854         * config/mn10300/mn10300-protos.h: Remove the prototype for
15855         mn10300_builtin_saveregs.
15856         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15857         (TARGET_STRUCT_VALUE_RTX): Likewise.
15858         (TARGET_RETURN_IN_MEMORY): Likewise.
15859         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15860         (mn10300_return_in_memory): Likewise.
15861         (mn10300_builtin_saveregs): Make it static.
15862         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15863         (RETURN_IN_MEMORY): Likewise.
15864         (STRUCT_VALUE): Likewise.
15865         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15866
15867 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15868
15869         PR bootstrap/13853
15870         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15871
15872 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15873
15874         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15875         using ccr.
15876
15877 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15878
15879         * config/i860/i860-protos.h: Remove the prototype for
15880         i860_saveregs.
15881         * config/i860/i860.c (i860_saveregs): Make it static.
15882         (i860_struct_value_rtx): New.
15883         (TARGET_STRUCT_VALUE_RTX): Likewise.
15884         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15885         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15886         I860_STRUCT_VALUE_REGNUM.
15887         (EXPAND_BUILTIN_SAVEREGS): Remove.
15888
15889 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15890
15891         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15892         (TARGET_RETURN_IN_MEMORY): Likewise.
15893         (m68hc11_struct_value_rtx): Likewise.
15894         (m68hc11_return_in_memory): Likewise.
15895         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15896         of PROMOTE_PROTOTYPES.
15897         (RETURN_IN_MEMORY): Remove.
15898         (STRUCT_VALUE_REGNUM): Likewise.
15899
15900 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15901
15902         * config/mmix/mmix-protos.h: Remove the prototype for
15903         mmix_setup_incoming_varargs.
15904         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15905         (TARGET_STRUCT_VALUE_RTX): Likewise.
15906         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15907         (mmix_setup_incoming_varargs): Make it static.
15908         (mmix_struct_value_rtx): New.
15909         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15910         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15911         (STRUCT_VALUE_REGNUM): Remove.
15912         (SETUP_INCOMING_VARARGS): Likewise.
15913
15914 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15915
15916         * config/mips/mips-protos.h: Remove the prototypes for
15917         mips_setup_incoming_varargs and mips_return_in_memory.
15918         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15919         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15920         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15921         (TARGET_STRUCT_VALUE_RTX): Likewise.
15922         (TARGET_RETURN_IN_MEMORY): Likewise.
15923         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15924         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15925         (mips_setup_incoming_varargs): Match the prototype for
15926         TARGET_SETUP_INCOMING_VARARGS.
15927         (mips_return_in_memory): Make it static.  Add argument fntype.
15928         (mips_strict_argument_naming): New.
15929         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15930         (PROMOTE_FUNCTION_ARGS): Likewise.
15931         (PROMOTE_FUNCTION_RETURN): Likewise.
15932         (STRUCT_VALUE): Likewise.
15933         (RETURN_IN_MEMORY): Likewise.
15934         (SETUP_INCOMING_VARARGS): Likewise.
15935         (STRICT_ARGUMENT_NAMING): Likewise.
15936
15937 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15938
15939         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15940         (TARGET_RETURN_IN_MEMORY): Likewise.
15941         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15942         (ip2k_return_in_memory): Likewise.
15943         (ip2k_setup_incoming_varargs): Likewise.
15944         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15945         (STRUCT_VALUE): Likewise.
15946         (STRUCT_VALUE_INCOMING): Likewise.
15947         (SETUP_INCOMING_VARARGS): Likewise.
15948
15949 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15950
15951         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15952         (TARGET_RETURN_IN_MEMORY): Likewise.
15953         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15954         (avr_return_in_memory): Remove.
15955         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15956         (STRUCT_VALUE): Likewise.
15957         (STRUCT_VALUE_INCOMING): Likewise.
15958         (STRICT_ARGUMENT_NAMING): Likewise.
15959
15960 2004-01-25  Jan Hubicka  <jh@suse.cz>
15961
15962         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15963
15964 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15965
15966         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15967         (mips_regno_mode_ok_for_base_p): Declare.
15968         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15969         (FRAME_POINTER_REGNUM): Renumber to 78.
15970         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15971         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15972         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15973         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15974         (REG_MODE_OK_FOR_BASE_P): Likewise.
15975         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15976         entry for 77 to "$arg" and entry for 78 to "$frame".
15977         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15978         (mips_reg_mode_ok_for_base_p): Remove.
15979         (mips_regno_mode_ok_for_base_p): New function, derived from old
15980         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15981         restrictions unless we're being strict.
15982         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15983
15984 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15985
15986         * c-common.h: Fix comment typos.
15987         * c-decl.c: Likewise.
15988         * cgraphunit.c: Likewise.
15989         * combine.c: Likewise.
15990         * et-forest.c: Likewise.
15991         * flow.c: Likewise.
15992         * function.c: Likewise.
15993         * ifcvt.c: Likewise.
15994         * integrate.c: Likewise.
15995         * jump.c: Likewise.
15996         * postreload.c: Likewise.
15997         * varray.c: Likewise.
15998
15999 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16000
16001         * doc/frontends.texi: Update copyright.
16002         * doc/gcov.texi: Likewise.
16003         * doc/gty.texi: Likewise.
16004         * doc/sourcebuild.texi: Likewise.
16005         * doc/standards.texi: Likewise.
16006
16007 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
16008
16009         PR target/12978
16010         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
16011         Remove movstrqi_small because it conflicts with movstrqi_large.
16012
16013 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16014
16015         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
16016         (TARGET_STRUCT_VALUE_RTX): Likewise.
16017         (cris_struct_value_rtx): Likewise.
16018         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
16019         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
16020         STRUCT_VALUE_REGNUM.
16021         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
16022
16023 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
16024
16025         PR bootstrap/13848
16026         * cse.c (cse_cc_succs): Change the mode of the source expression
16027         as soon as decide we need a new mode.  Don't permit changing modes
16028         if we found a match in a successor block.
16029         (cse_condition_code_reg): Save original mode of source expression
16030         so that we know whether we have to change the mode in other
16031         insns.
16032
16033 2004-01-24  Jan Hubicka  <jh@suse.cz>
16034
16035         * emit-rtl.c (change_address, adjust_address_1, offset_address,
16036         widen_memory_access):  Return early when there is nothing to change.
16037
16038 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
16039
16040         * simplify-rtx.c (simplify_relational_operation): Don't
16041         simplify address == constant into address + -constant == 0.
16042
16043 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16044
16045         * gcc.c (process_command): Don't internationalize the
16046         Copyright message.
16047         * mips-tfile.c (main): Likewise.
16048
16049 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
16050
16051         * cse.c: (cse_cc_succs) Fix comparison warning.
16052
16053 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16054
16055         * config/h8300/h8300.md: Remove extraneous USE in expanders.
16056
16057 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16058
16059         * config/h8300/h8300-protos.h: Provide prototypes for
16060         h8300_legitimate_constant_p and h8300_legitimate_address_p.
16061         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
16062         (h8300_rtx_ok_for_base_p): Likewise.
16063         (h8300_legitimate_address_p): Likewise.
16064         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
16065         h8300_legitimate_constant_p.
16066         (RTX_OK_FOR_BASE_P): Remove.
16067         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
16068
16069 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
16070
16071         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
16072         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
16073         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
16074         (REG_OK_FOR_BASE_STRICT_P): Likewise.
16075         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
16076         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
16077         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
16078         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
16079
16080 2004-01-24  Jan Hubicka  <jh@suse.cz>
16081
16082         * cselib.c (remove_useless_values):  Do not access discarded values.
16083
16084 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
16085
16086         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
16087         arrays.
16088
16089 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
16090
16091         * recog.c: Fix a typo in copyright.
16092
16093 2004-01-23  Andrew Pinski  <apinski@apple.com>
16094
16095         * config/rs6000/rs6000.md (call): Fix misappiled patch.
16096         (call_value): Likewise.
16097
16098 2004-01-23  Richard Henderson  <rth@redhat.com>
16099
16100         PR opt/12941
16101         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
16102         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
16103         if SHIFT_COUNT_TRUNCATED is set.
16104
16105 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
16106
16107         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
16108         separate real and imaginary parts.
16109         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
16110
16111 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
16112
16113         PR target/13674
16114         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
16115         loading into GPR.
16116
16117 2004-01-23  Jan Hubicka  <jh@suse.cz>
16118
16119         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
16120         change.
16121
16122         * alloc-pool.c (align_four): Kill.
16123         (create_alloc_pool): Align size to eight.
16124         (free_alloc_pool, free_pool): Invalidate deallocated data.
16125
16126 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
16127
16128         PR gcc/1532
16129         * cse.c (cse_change_cc_mode): New static function.
16130         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
16131         (cse_condition_code_reg): New function.
16132         * rtl.h (cse_condition_code_reg): Declare.
16133         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
16134         * target.h (struct gcc_target): Add fixed_condition_code_regs and
16135         cc_modes_compatible.
16136         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16137         (TARGET_CC_MODES_COMPATIBLE): Define.
16138         (TARGET_INITIALIZER): Add new initializers.
16139         * targhooks.c (default_cc_modes_compatible): New function.
16140         * targhooks.c (default_cc_modes_compatible): Declare.
16141         * hooks.c (hook_bool_intp_intp_false): New function.
16142         * hooks.h (hook_bool_intp_intp_false): Declare.
16143         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
16144         (TARGET_CC_MODES_COMPATIBLE): Define.
16145         (ix86_fixed_condition_code_regs): New static function.
16146         (ix86_cc_modes_compatible): Likewise.
16147         * doc/tm.texi (Condition Code): Document new hooks.
16148
16149 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16150
16151         * fixinc/inclhack.def (bad_lval): Renamed to ...
16152         (alpha_bad_lval): ... this.
16153         Removed file list.
16154         Restrict to alpha*-dec-osf*.
16155         * fixinc/fixincl.x: Regenerate.
16156         * fixinc/tests/base/dirent.h: Remove, moving test ...
16157         * fixinc/tests/base/testing.h: ... here, reflecting new name.
16158
16159 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
16160
16161         PR c/13814
16162         * c-decl.c (diagnose_mismatched_decls): Also discard a
16163         built-in if we encounter an old-style definition with the
16164         same name.
16165
16166 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
16167
16168         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
16169         set to default{32,64}.
16170
16171 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16172
16173         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
16174         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
16175
16176 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
16177             Olivier Hainque  <hainque@act-europe.fr>
16178
16179         * fold-const.c (fold_binary_op_with_conditional_arg): Only
16180         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
16181
16182 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
16183
16184         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
16185         size for minipool references.
16186
16187 2004-01-23  Roger Sayle  <roger@eyesopen.com>
16188
16189         * real.c (real_floor, real_ceil): Tweak to allow input and output
16190         arguments to overlap.
16191         (real_round): New function to implement round(3m) semantics.
16192         * real.h (real_round): Prototype here.
16193         * builtins.c (fold_builtin_round): New function to constant fold
16194         round, roundf and roundl.
16195         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
16196
16197 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
16198
16199         PR optimization/13819
16200         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
16201         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
16202         (sh_handle_sp_switch_attribute): Remove warning.
16203
16204 2003-11-30  Jan Hubicka  <jh@suse.cz>
16205
16206         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
16207
16208 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
16209
16210         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
16211         may or may not return non-NIL.
16212         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
16213         check CANNOT_CHANGE_MODE_CLASS
16214
16215 2004-01-23  Jan Hubicka  <jh@suse.cz>
16216
16217         * basic-block.h (PROP_POSTRELOAD): New macro.
16218         (CLEANUP_LOG_LINKS): New.
16219         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
16220         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
16221
16222         * cselib.c (value_pool): New.
16223         (new_cselib_val): Use pool.
16224         (cselib_init): Initialize value_pool
16225         (cselib_finish): Free pool.
16226
16227 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
16228
16229         * config/sparc/sparc.c (scan_record_type): New function.
16230         (function_arg_slotno): Use it to determine which kinds of
16231         registers the record can be passed in.
16232
16233 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
16234
16235         * config/pa/fptr.c: Fix old-style definition.
16236
16237 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
16238
16239         PR optimization/13724
16240         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
16241         represents the zero bits produced by a ZERO_EXTEND operation.
16242
16243 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16244
16245         PR optimization/13821
16246         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
16247         correctly calculate the lowpart offset of the contracted subreg.
16248
16249 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
16250
16251         * doc/invoke.texi (Optimize Options): Note that --param arguments
16252         are subject to change without notice.
16253
16254 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16255
16256         * config.gcc (mips-sgi-irix6*o32): Removed.
16257         * config/mips/iris6-o32-as.h: Likewise.
16258         * config/mips/iris6-o32-gas.h: Likewise.
16259         * config/mips/iris6-o32.h: Likewise.
16260
16261 2004-01-22  Jan Hubicka  <jh@suse.cz>
16262
16263         * cfgcleanup.c (first_pass): New static variable.
16264         (try_forward_edges):  Add work limiting check for threading.
16265         (try_crossjump_bb):  Add work limiting check for crossjumping.
16266         (try_optimize_cfg):  Maintain first pass variable.
16267
16268 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
16269
16270         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
16271         handles complex and vector modes.
16272
16273 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16274
16275         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
16276         (REG_OK_FOR_BASE_P_STRICT): Likewise.
16277         (STRICT): Likewise.
16278
16279 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16280
16281         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
16282         (genrtl_for_stmt): Remove emit_nop calls.
16283
16284 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16285
16286         PR target/13713
16287         PR target/13324
16288         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
16289         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
16290         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
16291
16292 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
16293
16294         * config/arm/arm.c: Include "debug.h".
16295         (thumb_pushpop): Take two new arguments.  Add some commentary.
16296         Output frame information when pushing.
16297         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
16298         thumb_pushpop.
16299         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
16300         offset, and pass it to thumb_pushpop.  Output CFI information.
16301         (thumb_expand_prologue): Add some frame-related markers and notes.
16302
16303 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
16304
16305         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
16306         for TARGET_64BIT.
16307         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
16308         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
16309
16310 2004-01-22  Roger Sayle  <roger@eyesopen.com>
16311             Paolo Bonzini  <bonzini@gnu.org>
16312
16313         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
16314         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
16315         * rtl.h (subreg_lsb_1): Prototype here.
16316         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
16317         sign extensions.
16318
16319 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
16320
16321         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
16322         macro need not be defined if jump-tables should contain
16323         relative addresses only when -fPIC or -fPIC is in effect.
16324
16325 2004-01-22  Jan Hubicka  <jh@suse.cz>
16326
16327         * alias.c (reg_base_value): Turn into varray.
16328         (reg_base_value_size): Kill.
16329         (old_reg_base_value): New deletable varray.
16330         (alias_invariant_size): New variable.
16331         (REG_BASE_VALUE): Update to use varray.
16332         (find_base_value): Likewise.
16333         (record_set): Likewise.
16334         (record_base_value): Likewise.
16335         (memrefs_conflict_p): Likewise.
16336         (record_set): Likewise
16337         (record_base_value): Likewise.
16338         (memrefs_conflict_p): Use alias_invariant_size.
16339         (init_alias_analysis): Use varray; set alias_invariant_size;
16340         rescale other arrays to be sized by maxreg.
16341         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
16342
16343 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16344
16345         * config/sparc/sparc.c (function_arg_slotno): Use
16346         FLOAT_TYPE_P to detect FP fields in structures.
16347         (function_arg_record_value_1): Likewise.
16348         (function_arg_record_value_2): Likewise.
16349
16350 2004-01-22  Jan Hubicka  <jh@suse.cz>
16351
16352         * function.c (allocate_struct_function): Do not initialize expr, emit
16353         and varasm.
16354         (prepare_function_start): Do it here.
16355         * c-parse.in (maybe_type_qual): Do not produce line number notes.
16356
16357 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
16358
16359         PR target/13559
16360         * config/sparc/sparc.c (function_arg_record_value_3): Revert
16361         to 'word_mode' once the first slot has been filled.
16362
16363 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
16364
16365         * config/sparc/sparc.c (function_arg_record_value_1): Fix
16366         computation of the number of integer registers required.
16367
16368 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16369
16370         * config/i386/i386.md: Simplify certain comparisons of
16371         const_int.
16372
16373 2004-01-21  Andrew Pinski  <apinski@apple.com>
16374
16375         PR target/13785
16376         * config/rs6000/rs6000.md (call_value): Force operand
16377         1 not operand 0 into a register.
16378
16379 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16380
16381         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
16382         unwind-dw2-fde.h: Update copyright.
16383
16384 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16385
16386         * pa-protos.h: Update copyright.
16387         * pa.h: Likewise.
16388         * pa.md: Likewise.
16389
16390 2004-01-21  Caroline Tice  <ctice@apple.com>
16391
16392         PR target/12308
16393         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
16394         flags register.
16395         (fix_truncdfdi2): Likewise.
16396         (fix_truncsfdi2): Likewise.
16397         (*fix_truncdi_1): Likewise.
16398         (fix_truncxfsi2): Likewise.
16399         (fix_truncdfsi2): Likewise.
16400         (fix_truncsfsi2): Likewise.
16401         (*fix_truncsi_1): Likewise.
16402         (fix_truncxfhi2): Likewise.
16403         (fix_truncdfhi2): Likewise.
16404         (fix_truncsfhi2): Likewise.
16405         (*fix_trunchi_1): Likewise.
16406
16407 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16408
16409         * alias.c, basic-block.h, c-common.c, c-common.h,
16410         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
16411         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
16412         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
16413         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
16414         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
16415         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
16416         genautomata.c, genconditions.c, genemit.c, genflags.c,
16417         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
16418         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
16419         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
16420         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
16421         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
16422         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
16423         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
16424         unwind.h, varray.c, varray.h: Update copyright.
16425
16426 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
16427
16428         * config/h8300/coff.h: Update copyright.
16429         * config/h8300/elf.h: Likewise.
16430         * config/h8300/h8300-protos.h: Likewise.
16431         * config/h8300/h8300.c: Likewise.
16432         * config/h8300/h8300.h: Likewise.
16433         * config/h8300/h8300.md: Likewise.
16434
16435 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16436
16437         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
16438         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
16439         ultrix_unistd): New hacks.
16440         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
16441         ULTRIX_CONST2_CHECK): Add checks.
16442         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
16443         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
16444         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
16445         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
16446         * fixinc/tests/base/locale.h: New file.
16447         * fixinc/fixincl.x: Rebuilt.
16448
16449 2004-01-21  Andreas Jaeger  <aj@suse.de>
16450             Michael Matz  <matz@suse.de>
16451
16452         * doc/extend.texi (Extended Asm): Clarify memory clobber.
16453
16454 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
16455
16456         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
16457         _Jv_RegisterClasses through a function pointer.
16458
16459 2004-01-21  Falk Hueffner  <falk@debian.org>
16460
16461         PR target/12898
16462         * config/alpha/alpha.c (alpha_emit_set_const_1): If
16463         no_new_pseudos, use gen_rtx_SET directly for SImode constants
16464         which need multiple instructions to emit.
16465
16466 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
16467
16468         * config/m32r/m32r.h (CPP_SPEC): Define.
16469
16470 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
16471
16472         * c-decl.c (merge_decls): Kill different_binding_level and
16473         different_tu arguments; simplify throughout.
16474         (duplicate_decls): Likewise.
16475         (pushdecl, merge_translation_unit_decls): Update calls to
16476         duplicate_decls.
16477
16478 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16479
16480         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
16481         $(SYSTEM_H).
16482         (print-rtl1.o): Depend on $(SYSTEM_H).
16483
16484 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16485
16486         PR bootstrap/12730
16487         * configure.ac: Delete definition and subsitution of docdir.
16488         Add info, man, srcman and srcinfo to target hooks. Create doc/
16489         directory.
16490         * configure: Regenerate.
16491         * Makefile.in: Don't substitute docdir and delete all references
16492         throughout.
16493         (MAKEINFOFLAGS): Define.
16494         (stmp-docobjdir): Delete.
16495         (INFOFILES, MANFILES): Define.
16496         (info): Call lang.info, srcinfo and lang.srcinfo.
16497         (generated-manpages): Call lang.man, srcman and lang.srcman.
16498         (srcinfo, srcman): New rules to copy back files to source directory.
16499         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
16500         (install-man): Revamp rule.
16501         (clean): Update dvi directory.
16502         (distclean): Delete TAGS from front end directorys.
16503         (maintainer-clean): Delete all document files in source directory.
16504
16505         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
16506         (objc.srcman, objc.srcinfo): Likewise.
16507
16508 2004-01-20  Bruce Korb  <bkorb@gnu.org>
16509
16510         * fixinc/inclhack.def(math_exception): bypass only for glibc.
16511         (matherr_decl): rename & relocate as exception_structure.
16512         This fix must precede the math_exception fix.
16513
16514 2004-01-20  Roger Sayle  <roger@eyesopen.com>
16515
16516         * fold-const.c (fold_convert): Rename to fold_convert_const.
16517         (fold_convert_const): Change arguments to take a tree_code,
16518         a type and the operand/expression to be converted.  Return
16519         NULL_TREE if no simplification is possible.  Add support for
16520         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
16521         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
16522         Adjust call to fold_convert to match new fold_convert_const.
16523         Avoid modifying the tree passed to fold in-place.
16524
16525 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
16526
16527         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
16528         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
16529         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
16530
16531 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16532
16533         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
16534         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
16535         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
16536         (emit_move_sequence): Check scratch_reg first in various if statements.
16537         Extend source simplification to handle all 64-bit CONST_INTs.
16538         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
16539         frame size.
16540         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
16541         frame offset calculations.
16542         * pa.h (NEW_HP_ASSEMBLER): Add comment.
16543         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
16544         LEGITIMATE_64BIT_CONST_INT_P): Define.
16545         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
16546         any CONST_INT as legitimate during and after reload.
16547         (VAL_32_BITS_P, INT_32_BITS): Define.
16548         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
16549
16550 2004-01-20  Jan Hubicka  <jh@suse.cz>
16551
16552         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
16553         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
16554         containing hard regs are shared.
16555         (gen_hard_reg_clobber): New function.
16556         (hard_reg_clobbers): New array.
16557         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
16558         (copy_rtx): Do not copy clobbers containing hard regs.
16559         * rtl.h (gen_hard_reg_clobber): Declare.
16560
16561 2004-01-20  Jan Hubicka  <jh@suse.cz>
16562
16563         * varray.c:  Include hashtab.h
16564         (varray_descriptor): New structure.
16565         (hash_descriptor, eq_descriptor, varray_descriptor,
16566         print_statistics): New static functions
16567         (varray_init, varray_grow): Update statistics
16568         (dump_varray_statistics): New function.
16569         * varray.h (dump_varray_statistics): Declare.
16570         * toplev.c (finalize): Call it.
16571         * Makefile.in (varray.o): Add dependency.
16572
16573 2004-01-20  Jan Hubicka  <jh@suse.cz>
16574
16575         * cselib.c: Include alloc-pool.h
16576         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
16577         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
16578         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
16579         unchain_one_elt_loc_list_pool, unchain_one_value,
16580         new_cselib_val): Simplify using allocpool.
16581         (cselib_init): Initialize allocpools.
16582         (cselib_finish): Finish allocpools.
16583         * Makefile.in (cselib.o): Depend on alloc-pool.h
16584
16585 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
16586
16587         * config/mips/mips.c (mips_load_call_address): Make the call insn
16588         use $gp if it could be calling a lazy binding stub.
16589
16590 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
16591
16592         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16593         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16594         (TARGET_STRUCT_VALUE_RTX): Likewise.
16595         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16596         (PROMOTE_FUNCTION_RETURN): Remove.
16597         (STRUCT_VALUE): Remove.
16598
16599 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16600
16601         PR bootstrap/13735
16602         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16603         register as pointer after reload.
16604
16605 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16606
16607         PR optimization/12440
16608         * loop.c: Include ggc.h.
16609         (loop_optimize): Run garbage collector between optimization of loops.
16610         * Makefile.in (loop.o): Add GGC_H dependency.
16611
16612 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16613
16614         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16615         vector register special in function without prototype.
16616         (function_arg_advance): Vector parameters get always
16617         GPRs allocated for the linux64 target.
16618
16619 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16620
16621         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16622         not TARGET_M32RX_MASK.
16623
16624 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16625
16626         PR target/13557
16627         * config/sparc/sparc.c (function_arg): Reorder the cases.
16628
16629 2004-01-19  Per Bothner  <per@bothner.com>
16630
16631         Move cpp_reader's line_maps field to a shared global.
16632         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16633         and change the type to a pointer rather than a struct.
16634         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16635         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16636         Likewise.
16637         * cppfiles.c (validate_pch):  Likewise.
16638         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16639         Likewise.
16640         * cpperror.c (print_location):  Likewise.
16641         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16642         * cppinit.c (cpp_create_reader):  Handle new parameter.
16643         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16644         * input.h (line_table):  New variable.
16645         * toplev.c (line_table):  Declare variable.
16646         (general_init):  Initialize line_table.
16647         * c-opts.c (c_common_init_options):  Pass line_table to
16648         cpp_create_reader.
16649         * fix-header.c (read_scan_file):  New local variable line_table.
16650         Initialize, and pass it to cpp_create_reader.
16651         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16652         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16653
16654 2004-01-19  Per Bothner  <per@bothner.com>
16655
16656         Implement a cache for linemap_lookup.
16657         * line-map.h (struct_line_maps):  Add cache field.
16658         * line-map.c (linemap_init):  Zero cache field.
16659         (linemap_add):  Set cache field to offset of newly allocated map.
16660         (linemap_lookup):  Use and set cache field.
16661
16662 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16663
16664         PR optimization/13567
16665         * cse.c (cse_basic_block): Call cse_insn with a non-null
16666         libcall_insn for the last SET insn of a no-confilict block.
16667
16668 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16669
16670         * Makefile.in (target_noncanonical, program_transform_name): Use
16671         immediate define instead of deferred.
16672         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16673         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16674         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16675         deferred backquote.
16676
16677 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16678
16679         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16680         true unconditionally.
16681         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16682         Remove.
16683         (build_unary_op, build_modify_expr): Don't handle extended
16684         lvalues.
16685         (build_component_ref, build_conditional_expr): Call non_lvalue
16686         instead of pedantic_non_lvalue.
16687         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16688         * fold-const.c (fold): Don't check pedantic directly for
16689         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16690         passed to pedantic_non_lvalue.
16691         * doc/extend.texi: Remove documentation of extended lvalues.
16692
16693 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16694
16695         PR optimization/5263
16696         * simplify-rtx.c (associative_constant_p): Delete.
16697         (simplify_associative_operation): Rewrite to linearize terms, and
16698         attempt to simplify new term against both left and right subterms.
16699         (simplify_binary_operation): Call swap_commutative_operands_p on
16700         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16701         trueop0 and trueop1 down to where first needed.
16702         (simplify_relational_operation): Likewise.
16703         * rtlanal.c (commutative_operand_precedence): Also order constant
16704         operands using avoid_constant_pool_reference.
16705
16706 2004-01-19  Richard Henderson  <rth@redhat.com>
16707
16708         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16709         don't check memory mode.
16710         (unaligned_memory_operand): Likewise.
16711         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16712         abort for op0 not MEM.
16713
16714         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16715         is not a reg, copy to a scratch first.
16716         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16717         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16718         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16719         (reload_inqi, reload_inhi): Fix mode of op0.
16720         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16721         reload_outhi_help): Likewise.  Use define_insn_and_split.
16722
16723         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16724         as well as $29 dead.
16725
16726 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16727
16728         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16729         "tls_object" for thread-local objects.
16730         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16731         "#tls" for thread-local sections.
16732         * configure.ac (thread-local checks): Specify --fatal-warnings in
16733         every binutils-specific checks.  For sparc*-*-*, test whether the
16734         OS is Solaris and the tools are native and act accordingly.
16735         * configure: Rebuild.
16736
16737 2004-01-19  Jeff Law  <law@redhat.com>
16738
16739         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16740         Jerry Quinn and Petur Runolfsson.
16741
16742 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16743
16744         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16745         size, don't use the larger zero-extending loads.
16746
16747 2004-01-19  Richard Henderson  <rth@redhat.com>
16748
16749         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16750         * alpha.md (UNSPEC_NT_LDA): Remove.
16751         (UNSPEC_CVTLQ, cvtlq): New.
16752         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16753         (extendsidi2_fix): Remove.
16754         (extendsidi2 splitter): Use cvtlq.
16755         (extendsidi2 fp peepholes): Remove.
16756         (cvtql): Use SFmode instead of SImode.
16757         (fix_trunc?fsi): Update to match.
16758         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16759         (movsi): Rename from movsi_nofix, remove f alternatives.
16760         (movsi_nt_vms): Similarly.
16761         (movsi_fix, movsi_nt_vms_fix): Remove.
16762         (nt_lda): Remove.
16763         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16764
16765 2004-01-19  Jan Hubicka  <jh@suse.cz>
16766
16767         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16768         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16769         list.
16770         (cgraph_remove_unreachable_nodes): New function
16771         (cgraph_decide_inlining_of_small_function): Fix pasto.
16772         (cgraph_decide_inlining_incrementally): Fix pasto.
16773         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16774
16775 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16776
16777         * gengtype.c (header_file): Make it static.
16778         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16779         * gengtype.h (header_file): No longer extern.
16780
16781 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16782
16783         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16784         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16785         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16786
16787 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16788
16789         * stmt.c (HAVE_casesi): Define it not already defined.
16790         (HAVE_tablejump): Likewise.
16791         (expand_end_case_type): Resort to the binary tree method if
16792         neither casesi or tablejump is available.
16793
16794 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16795
16796         * final.c (final_scan_insn): Make non-static again.
16797         * output.h (final_scan_insn): Re-add prototype.
16798         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16799         to final_scan_insn call.
16800         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16801         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16802         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16803         * config/sh/sh.c (print_slot): Likewise.
16804         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16805         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16806
16807 2004-01-18  Jan Hubicka  <jh@suse.cz>
16808
16809         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16810         * cfgcleanup.c (try_optimize_cfg): Use it.
16811         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16812         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16813         Kill hack.
16814         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16815
16816         Revert:
16817         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16818
16819                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16820                 even after reload, just don't remove the actual jump tables.
16821
16822 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16823
16824         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16825
16826 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16827
16828         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16829         the size of a pointer in bytes.
16830
16831 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16832
16833         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16834         live "next" variable, which could lead to an infinite loop.
16835
16836 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16837
16838         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16839         block.
16840
16841         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16842         Check for NULL in the chain and remove repeated code.
16843
16844 2004-01-18  Jan Hubicka  <jh@suse.cz>
16845
16846         * coverage.c (checksum_string): Rename to ...
16847         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16848         names containing random number and zero the number out in order to get
16849         match.
16850
16851 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16852
16853         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16854
16855 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16856
16857         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16858         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16859         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16860         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16861         doc/trouble.texi: Remove trailing whitespace.
16862
16863 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16864
16865         PR target/7618
16866         * config/mips/mips.c: Include cfglayout.h.
16867         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16868         (mips_unspec_offset_high): Add temporary register argument.
16869         (mips_load_call_address): New function, split out from...
16870         (mips_expand_call): ...here.
16871         (mips_output_cplocal): New function.
16872         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16873         (mips_emit_loadgp): New function, split out from...
16874         (mips_expand_prologue): ...here.
16875         (mips_output_mi_thunk): New function.
16876
16877 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16878
16879         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16880         mcpu32): Remove redundant checks for implied target predefines.
16881
16882 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16883
16884         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16885         Return type is unsigned int not int.
16886         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16887         Likewise.
16888
16889 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16890
16891         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16892         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16893         "GNU/Linux" and "Microsoft Windows" terminology.
16894
16895 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16896
16897         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16898         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16899         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16900         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16901         @smallexample instead of @example.
16902
16903 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16904
16905         * objc/objc-act.c (build_objc_method_call): Use target
16906         hooks instead of macros to determine if ..._stret
16907         dispatchers should be used (NeXT runtime only).
16908
16909 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16910
16911         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16912         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16913
16914 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16915
16916         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16917         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16918         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16919         macros.
16920         * reload1.c (emit_reload_insns): Use them.
16921         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16922         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16923         for NULL PATTERN.
16924
16925 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16926
16927         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16928         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16929         a line note after the prologue.  Make static.
16930         (line_note_exists): Remove.
16931         (final): Don't initialize line_note_exists.  Update call to
16932         final_scan_insn.
16933         * output.h (final_scan_insn): Remove prologue.
16934         * function.c (set_insn_locators): Update comment.
16935         (thread_prologue_and_epilogue_insns): Add a comment.
16936
16937 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16938
16939         PR target/10781
16940         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16941         Prototype.
16942         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16943         New function.
16944         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16945         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16946         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16947
16948 2004-01-17  Jan Hubicka  <jh@suse.cz>
16949
16950         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16951         commit.
16952
16953         * toplev.c (HAVE_conditional_execution): Provide default.
16954         (rest_of_handle_reorder_blocks): For conditional_execution target
16955         update liveness once after all transformations
16956         (rest_of_compilation): Do crossjumping before ce3.
16957
16958 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16959
16960         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16961         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16962         for PCH.
16963         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16964         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16965         (get_TOC_alias_set): Mark 'set' for PCH.
16966
16967 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16968
16969         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16970         even after reload, just don't remove the actual jump tables.
16971
16972 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16973
16974         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16975         Remove checks for is_ada() and TREE_UNSIGNED.
16976         (subrange_type_die): Emit a byte_size attribute if the subrange
16977         type size is different from the base type size.
16978         (modified_type_die): Replace call to is_ada_subrange_type() by
16979         call to is_subrange_type().
16980
16981 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16982
16983         * config/sh/sh.c: Include ggc.h.
16984
16985 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16986
16987         * Makefile.in (MD5_H): New.
16988         (fold-const.o): Depend on md5.h.
16989         (dwarf2out.o): Likewise.
16990         (cppfiles.o): Likewise.
16991         * cppfiles.c: Include md5.h.
16992         (should_stack_file): Check against list read from PCH file.
16993         (struct pchf_data): New.
16994         (pchf): New variable.
16995         (struct pchf_adder_info): New.
16996         (pchf_adder): New.
16997         (pchf_save_compare): New.
16998         (_cpp_save_file_entries): New.
16999         (_cpp_read_file_entries): New.
17000         (struct pchf_compare_data): New.
17001         (pchf_compare): New.
17002         (check_file_against_entries): New.
17003         * cpphash.h (_cpp_save_file_entries): Prototype.
17004         (_cpp_read_file_entries): Prototype.
17005         * cpppch.c (cpp_write_pch_state): Write the list of headers.
17006         (cpp_read_state): Read the list of headers.
17007
17008 2004-01-17  Jan Hubicka  <jh@suse.cz>
17009
17010         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
17011         builtin_expect specially.
17012         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
17013         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
17014         * invoke.texi (max-inline-insns-single): Set to 100.
17015         (large-function-insns): Set to 3000.
17016
17017 2004-01-16  Eric Christopher  <echristo@redhat.com>
17018             Chandrakala Chavva <cchavva@redhat.com>
17019
17020         * cppcharset.c (one_iso88591_to_utf8): New function.
17021         (convert_iso88591_utf8): Ditto. Use.
17022         (conversion_tab): Use.
17023         (_cpp_input_to_utf8): New function.
17024         (_cpp_init_iconv_buffer): Ditto.
17025         (_cpp_close_iconv_buffer): Ditto.
17026         * cpphash.h: Prototype new functions.
17027         (cpp_buffer): Add input_cset_desc.
17028         * cppinit.c: Add input_charset default.
17029         * cpplib.c (cpp_push_buffer): Support init and
17030         close of iconv.
17031         * cpplib.h (cpp_options): Add input_charset.
17032
17033 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17034
17035         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
17036         * config/alpha/unicosmk.h: Remove a commented-out definition
17037         of ASM_OUTPUT_SECTION_NAME.
17038         * config/stormy16/stormy16.h: Likewise.
17039
17040 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17041
17042         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
17043         (alpha___extern_prefix_sys_stat): ... this.
17044         Apply to <sys/mount.h>, too.
17045         Tweak to match more variations.
17046         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
17047
17048         * fixinc/inclhack.def (alpha___extern_prefix,
17049         alpha___extern_prefix_standards): New hacks to obey
17050         __PRAGMA_EXTERN_PREFIX.
17051         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
17052         test.
17053         * fixinc/tests/base/standards.h: Likewise.
17054
17055         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
17056         variations.
17057         New testcase.
17058         * fixinc/tests/base/pthread.h: Handle it.
17059
17060         * fixincl/inclhack.def (bad_lval): Sort file list.
17061         Add many missing files up to Tru64 UNIX V5.1B.
17062         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
17063         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
17064         order.
17065
17066         * fixinc/fixincl.x: Regenerate.
17067
17068 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
17069
17070         * version.c (version_string): Change to 3.5.0.
17071         * doc/include/gcc-common.texi (version-GCC): Likewise.
17072
17073 2004-01-16  Jan Hubicka  <jh@suse.cz>
17074
17075         * i386.md (load_tp_di): Fix pasto.
17076
17077         PR opt/13608
17078         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
17079
17080         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
17081         pp_c_character_constant, pp_c_floating_constant,
17082         pp_c_additive_expression, pp_c_shift_expression,
17083         pp_c_equality_expression, pp_c_and_expression,
17084         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
17085         pp_c_logical_and_expression): Remove inline modifier.
17086         * dwarf2out.c (get_AT): Likewise.
17087         * et-forest.c (et_splay): Likewise.
17088         * ra.h (ra_alloc, ra_calloc): Likewise
17089
17090 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17091
17092         * config/frv/frv-protos.h: Fix comment formatting.
17093         * config/frv/frv.c: Likewise.
17094         * config/frv/frv.h: Likewise.
17095         * config/frv/frv.md: Likewise.
17096         * config/frv/frvbegin.c: Likewise.
17097         * config/frv/frvend.c: Likewise.
17098
17099 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
17100
17101         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
17102         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
17103         LINKER_DOES_NOT_WORK_WITH_DWARF2.
17104         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
17105
17106 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
17107
17108         PR 11864
17109         * postreload.c (reload_cse_simplify_operands): Don't remove
17110         implicit extension from LOAD_EXTEND_OP.
17111
17112 2004-01-16  Jan Hubicka  <jh@suse.cz>
17113
17114         PR opt/11350
17115         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
17116         after reload.
17117         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
17118         rtl_try_redirect_by_replacing_branch): Likewise.
17119
17120 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
17121
17122         PR pch/13689
17123         * alias.c (struct alias_set_entry): Mark for GC.
17124         (alias_sets): Make static, mark for GC.
17125         (record_alias_subset): Use GC to allocate alias structures.
17126         * varray.c (element): Make generic varrays GCed.
17127
17128         PR pch/13361
17129         * c-typeck.c (constructor_asmspec): Delete.
17130         (struct initializer_stack): Delete field 'asmspec'.
17131         (start_init): Delete saving of asmspec.
17132         (finish_init): Don't update constructor_asmspec.
17133         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
17134         * stmt.c (expand_asm): Duplicate strings from tree.
17135         (expand_asm_operands): Likewise.
17136         * tree.c (tree_size): Update computation of size of STRING_CST.
17137         (make_node): Don't make STRING_CST nodes.
17138         (build_string): Allocate string with tree node.
17139         * tree.def (STRING_CST): Update comment.
17140         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
17141         (tree_string): Place contents of string in tree node.
17142         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
17143         from tree.
17144
17145         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
17146         altivec operands.
17147
17148 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17149
17150         * c-common.h: Fix comment formatting.
17151         * c-cppbuiltin.c: Likewise.
17152         * c-pragma.c: Likewise.
17153         * calls.c: Likewise.
17154         * collect2.c: Likewise.
17155         * cppcharset.c: Likewise.
17156         * cpptrad.c: Likewise.
17157         * dbxout.c: Likewise.
17158         * defaults.h: Likewise.
17159         * dwarf2out.c: Likewise.
17160         * fold-const.c: Likewise.
17161         * genautomata.c: Likewise.
17162         * genconditions.c: Likewise.
17163         * genflags.c: Likewise.
17164         * gengtype.c: Likewise.
17165         * integrate.c: Likewise.
17166         * loop.c: Likewise.
17167         * predict.c: Likewise.
17168         * sdbout.c: Likewise.
17169
17170 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
17171
17172         * config/ia64/ia64.md (*movti_internal): C output template
17173         extracted to ia64.c.
17174         (*movti_internal_reg): Delete.
17175         (reload_inti, reload_outti): Use the correct mode on operand 2
17176         in the first place, don't fix it up in the output template.
17177         (movtf, reload_ointf, reload_outtf): New expanders.
17178         (*movtf_internal): New define_insn_and_split.
17179         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
17180         make static; do not hand TFmode CONST_DOUBLEs to split_double.
17181         (ia64_split_tmode_move): New function, body mostly pulled
17182         from ia64.md:*movti_internal.
17183         (ia64_function_arg_words): New function, extracted common
17184         logic from ia64_function_arg et seq.
17185         (ia64_function_arg_offset): Likewise.  Handle correctly the
17186         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
17187         (ia64_function_arg, ia64_function_arg_partial_nregs)
17188         (ia64_function_arg_advance): Use ia64_function_arg_words and
17189         ia64_function_arg_offset.
17190         (ia64_function_value): TCmode does not go in float regs.
17191         (ia64_secondary_reload_class): Also handle TFmode.
17192         * config/ia64/ia64-protos.h: Remove prototype for
17193         ia64_split_timode; add prototype for ia64_split_tmode_move.
17194
17195 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17196
17197         * Makefile.in (MAINT): Make it an immediate assignment.
17198
17199 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17200
17201         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
17202
17203 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17204
17205         * config/h8300/coff.h: Replace Hitachi with Renesas.
17206         * config/h8300/elf.h: Likewise.
17207         * config/h8300/h8300-protos.h: Likewise.
17208         * config/h8300/h8300.c: Likewise.
17209         * config/h8300/h8300.h: Likewise.
17210         * config/h8300/h8300.md: Likewise.
17211         * config/h8300/lib1funcs.asm: Likewise.
17212
17213 2004-01-15  Andrew Pinski  <apinski@apple.com>
17214
17215         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
17216         around it.
17217
17218 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17219
17220         * config/h8300/h8300.c (h8300_return_in_memory): New.
17221         (TARGET_STRUCT_VALUE_RTX): Likewise.
17222         (TARGET_RETURN_IN_MEMORY): Likewise.
17223         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
17224         (RETURN_IN_MEMORY): Likewise.
17225
17226 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17227
17228         PR optimization/13375
17229         * gcse.c (handle_avail_expr): Just return if the source is not a
17230         single set.
17231
17232 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
17233             Daniel Jacobowitz  <drow@mvista.com>
17234
17235         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
17236         (EQUIV): Define.
17237         (ARM_FUNC_ALIAS): New macro.
17238         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
17239         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
17240
17241 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17242
17243         PR optimization/12372
17244         * calls.c (expand_call): Add call_fusage data for stack arguments in
17245         constant calls.
17246
17247 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
17248
17249         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
17250         (rs6000_elf_declare_function_name): Formatting.
17251         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
17252
17253 2004-01-15  Jan Hubicka  <jh@suse.cz>
17254
17255         PR bootstrap/13692
17256         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
17257         previous patch.
17258
17259 2004-01-15  Richard Henderson  <rth@redhat.com>
17260
17261         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
17262         integer regs of the same call-savedness.
17263
17264 2004-01-15  Andreas Schwab  <schwab@suse.de>
17265
17266         PR bootstrap/13562
17267         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
17268         status for NOTB/NOTW/NEGW methods.
17269
17270 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17271
17272         * doc/invoke.texi: Update dump file names.  Fix a typo.
17273
17274 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17275
17276         * builtins.c (expand_builtin_va_end): Don't use
17277         EXPAND_BUILTIN_VA_END.
17278         * system.h (EXPAND_BUILTIN_VA_END): Poison.
17279         * config/d30v/d30v.h: Remove a commented-out definition of
17280         EXPAND_BUILTIN_VA_END.
17281         * config/stormy16/stormy16.h: Likewise.
17282
17283 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
17284
17285         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
17286         * targhooks.c (default_struct_value_rtx): Don't use
17287         STRUCT_VALUE_INCOMING_REGNUM.
17288
17289 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
17290
17291         PR bootstrap/12744
17292         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
17293         GENINSRC and not parsedir.  Define srcextra as a langhook.
17294         * configure: Regenerate.
17295         * Makefile.in: Suppress default .l.c rule.  Don't substitute
17296         parsedir and delete all references throughout.  Conditionally define
17297         rule for srcextra dependent on GENINSRC.
17298         (stmp-docobjdir): Delete.
17299         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
17300         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
17301         and gengtype-yacc.h back to source directory.
17302         (maintainer-clean): Delete all parse files in source directory.
17303         (distclean): Delete generated files.
17304
17305         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
17306         (objc-parse.c, objc-parse.y): Don't use parsedir.
17307         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
17308         directory if requested.
17309         (po-generated): Don't use parsedir.
17310         (objc.maintainer-clean): Delete above files from source directory.
17311
17312 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17313
17314         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
17315
17316 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17317
17318         * doc/tm.texi: Replace RETURN_IN_MEMORY with
17319         TARGET_RETURN_IN_MEMORY.
17320
17321 2004-01-15  Jan Hubicka  <jh@suse.cz>
17322
17323         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
17324         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
17325         functions accepting SSE arguments
17326         (function_arg): Warn only when asked to warn.
17327         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
17328
17329 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
17330
17331         * c-parse.in (stmts_and_decls): Make label at end of compound
17332         statement a hard error.
17333
17334 2004-01-14  Jan Hubicka  <jh@suse.cz>
17335
17336         * cgraph.c (create_edge): Use local.redefined_extern_inline.
17337         * cgraph.h (cgraph_local_info): Sort fields by size; add
17338         redefined_extern_inline
17339         (cgraph_global_info): Sort fields by size.
17340         (cgraph_node): Likewise.
17341         * cgraphunit.c (cgraph_finalize_function): Se
17342         local.redefined_extern_inline on redefinition.
17343         (cgraph_analyze_function): Use it; fix formating.
17344
17345 2004-01-14  Jan Hubicka  <jh@suse.cz>
17346
17347         PR c++/10776
17348         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
17349         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
17350         bitmaps
17351         (cache_size): New variable
17352         (add_dependence): Update use; canonize early memory locations
17353         (sched_analyze_1): Likewise.
17354         (sched_analyze_2): Likewise.
17355         (init_dependency_caches): Initialize bitmaps.
17356         (free_dependency_caches): Free bitmaps
17357
17358 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17359
17360         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
17361         targetm.calls.strict_argument_naming().
17362         * target.h: Likewise.
17363
17364 2004-01-14  Richard Henderson  <rth@redhat.com>
17365
17366         PR debug/13231
17367         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
17368         instructions.
17369
17370 2004-01-14  Richard Henderson  <rth@redhat.com>
17371
17372         PR c++/12491
17373         * except.c (struct eh_region): Add u.fixup.resolved.
17374         (resolve_one_fixup_region): Split out from ...
17375         (resolve_fixup_regions): ... here.
17376
17377 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17378
17379         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
17380
17381 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17382
17383         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
17384         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
17385         (STRUCT_VALUE): Remove.
17386
17387 2004-01-14  Steven Bosscher  <stevenb@suse.de>
17388
17389         * system.h: Poison PROMOTED_MODE
17390         * integrate.c (expand_inline_function): Don't mention the
17391         PROMOTED_MODE.
17392         * loop.c (update_giv_derive): Same.
17393         * tree.h (DECL_RTL): Same.
17394
17395 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
17396
17397         PR target/9365
17398         * sh.c (gen_block_redirect): Add special handling of RETURN.
17399         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
17400         far branch target (i.e. it's a return).
17401
17402 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17403
17404         * regrename.c (find_oldest_value_reg): Fix a warning.
17405
17406 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17407
17408         PR bootstrap/12527
17409         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
17410         Move linux-gas.h and linux-elf.h before aout.h.
17411         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
17412         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
17413
17414 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
17415
17416         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
17417         (CONST_INT, VOIDmode, ...).
17418
17419 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
17420
17421         * regrename.c (find_oldest_value_reg): If the replacement uses
17422         multiple hard registers, check that all of them are in CLASS.
17423
17424 2004-01-14  Jan Hubicka  <jh@suse.cz>
17425
17426         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
17427         impossible.
17428
17429 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
17430
17431         * Makefile.in: Define MAINT from --enable-maintainer-mode.
17432
17433 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17434
17435         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
17436         Calculate always vrsave_mask if TARGET_ALTIVEC.
17437         (rs6000_emit_prologue): Emit code for vrsave
17438         only if TARGET_ALTIVEC_VRSAVE.
17439         (rs6000_emit_epilogue): Likewise.
17440
17441 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
17442
17443         * config/sparc/sparc.md (tie_add32): Fix pasto.
17444         (tie_add64): Likewise.
17445
17446 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17447
17448         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
17449
17450 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17451
17452         * config/iq2000/iq2000-protos.h: Fix comment formatting.
17453         * config/iq2000/iq2000.c: Likewise.
17454         * config/iq2000/iq2000.md: Likewise.
17455
17456 2004-01-14  J. Brobecker  <brobecker@gnat.com>
17457
17458         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
17459         (subrange_type_die): Add handle for nameless subrange types.
17460
17461 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17462
17463         * config/h8300/h8300-protos.h: Replace do_movsi with
17464         h8300_expand_movsi.
17465         * config/h8300/h8300.c (do_movsi): Change to
17466         h8300_expand_movsi.
17467         * config/h8300/h8300.md (movsi): Replace do_movsi with
17468         h8300_expand_movsi.
17469         (movsf): Likewise.
17470
17471 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17472
17473         * config/h8300/h8300.c (dosize): Change to
17474         h8300_emit_stack_adjustment.  Update callers.
17475
17476 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17477
17478         * config/h8300/h8300.md (movstrictqi): Add an alternative with
17479         the source being post_inc.  Tighten the predicate for the
17480         destination to register_operand.
17481         (movstricthi): Likewise.
17482
17483 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17484
17485         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
17486         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
17487         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
17488
17489 2004-01-14  Jan Hubicka  <jh@suse.cz>
17490
17491         Partial fix PR c++/12850
17492         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
17493         at zero nest level.
17494
17495 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
17496
17497         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
17498         pseudo-register.
17499
17500 2004-01-13  Devang Patel <dpatel@apple.com
17501
17502         PR debug/7078
17503         * dbxout.c (dbxout_symbol_name): Emit mangled names for
17504         NAMESPACE_DECL memebers.
17505
17506 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
17507
17508         PR c++/12709
17509         * c-common.c (finish_fname_decls): Use the chain only if the
17510         tree is an expr_stmt.
17511
17512 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
17513
17514         * rtl.def: Add comment about new option in automata_option.
17515
17516         * genautomata.c (PROGRESS_OPTION): New macro.
17517         (progress_flag): New global variable.
17518         (gen_automata_option): Process `progress'.
17519         (transform_insn_regexps, check_unit_distributions_to_automata,
17520         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
17521         expand_automata, write_automata): Print about the progress only if
17522         progress_flag.  Remove fflush.
17523         (initiate_automaton_gen): Process command line flag `-progress'.
17524
17525         * doc/md.texi: Describe the new option.
17526
17527 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17528
17529         * cfg.c (dump_bb): Dump entry edges.
17530
17531 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
17532
17533         * arm.c (thumb_legitimate_address_p): Only allow constant pool
17534         references from SImode.
17535         * arm.md (thumb_movhi_insn): Don't allow minipool references.
17536
17537 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
17538
17539         * system.h (TEXT_SECTION): Poison.
17540         * varasm.c (text_section): Don't use TEXT_SECTION.
17541         * config/sh/sh.c (sh_file_start): Fix a comment typo.
17542         * doc/tm.texi (TEXT_SECTION): Remove.
17543
17544 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
17545
17546         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
17547
17548 2004-01-12  James E Wilson  <wilson@specifixinc.com>
17549
17550         * unwind-libunwind.c: Delete.
17551
17552 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17553
17554         PR 13656
17555         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
17556         oldtype is set, set *newtypep or *oldtypep too.  Do not set
17557         them at the very end.
17558         (validate_proto_after_old_defn): Restructure for comprehensibility;
17559         make error messages clearer.
17560
17561 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
17562
17563         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
17564         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
17565         * varray.c: No need to prototype error.
17566         (varray_check_failed): Wrap long string onto two lines.
17567         (varray_underflow): New function.
17568
17569 2004-01-13  Steven Bosscher  <stevenb@suse.de>
17570
17571         PR c++/13376
17572         * function.h (struct function): Kill `name' field.
17573         (current_function_name): Make it an extern function.
17574         * function.c (current_function_name): New function.
17575         * graph.c: Update all uses of current_function_name.
17576         * gcse.c: Likewise.
17577         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
17578         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
17579         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
17580         instead of a strcmp with "main".
17581
17582 2004-01-13  Jan Hubicka  <jh@suse.cz>
17583
17584         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
17585
17586         * cgraphunit.c (cgraph_optimize_function):  Always do
17587         optimize_inline_calls when there is always_inline callee.
17588         (cgraph_decide_inlining): Fix formating.
17589         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
17590         functions.
17591         (expand_call_inline): Likewise.
17592         * toplev.h (sorry): Fix prototype.
17593
17594 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17595
17596         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17597         conditional jumps that drop through to unconditional jumps or the
17598         end of the sequence.
17599
17600 2004-01-13  Jan Hubicka  <jh@suse.cz>
17601
17602         * alias.c (new_alias_set): Construct the alias_set varray.
17603         (init_alias_once): Don't do it here.
17604
17605 2004-01-12  Marc Espie <espie@openbsd.org>
17606
17607         * system.h: handle YYBYACC like YYBISON.
17608
17609 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17610
17611         PR target/10847
17612         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17613         building on sparc64-*-openbsd*.
17614
17615 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17616
17617         PR debug/13539
17618         * dbxout.c (dbxout_type): Protected inheritance is not
17619         private but protected.
17620
17621 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17622
17623         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17624
17625 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17626
17627         PR optimization/12508.
17628         * combine.c (try_combine): Remove a dead set in a parallel
17629         even if its destination is a subreg.
17630
17631         Revert:
17632         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17633         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17634         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17635
17636 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17637
17638         * real.c: Update copyright date.
17639         * emit-rtl.c: Likewise.
17640         * rtl.h: Likewise.
17641         * dwarf2out.c: Likewise.
17642         * config/rs6000/darwin-ldouble.c: Likewise.
17643         * config/rs6000/rs6000.md: Likewise.
17644
17645 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17646
17647         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17648         TFmode to SImode libfuncs.
17649
17650 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17651
17652         PR middle-end/11397
17653         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17654
17655 2004-01-12  Jan Hubicka  <jh@suse.cz>
17656
17657         PR opt/12826
17658         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17659         stored.
17660
17661         PR opt/12863
17662         * cfgcleanup.c (label_is_jump_target_p): Move to...
17663         * rtlanal.c (label_is_jump_target_p): ... here.
17664         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17665         edges unified with branch edges.
17666
17667 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17668
17669         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17670         high word of an integral CONST_DOUBLE.
17671
17672 2004-01-12  Paul Brook  <paul@codesourcery.com>
17673
17674         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17675
17676 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17677
17678         PR target/13585
17679         * sh-protos.h (check_use_sfunc_addr): Declare.
17680         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17681         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17682
17683 2004-01-12  Jan Hubicka  <jh@suse.cz>
17684
17685         * alias.c:  Invlude varray.h
17686         (alias_sets): Turn into varray.
17687         (get_alias_set_entry): Use VARRAY; mark inline.
17688         (mems_in_disjoint_alias_sets_p): Mark inline.
17689         (record_alias_subset): Use varray.
17690         (init_alias_once): Initialize varray.
17691         (new_alias_set): Grow array.
17692         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17693
17694 2004-01-12  Jan Hubicka  <jh@suse.cz>
17695
17696         Partial fix for PR opt/10776 II
17697         * cselib.c: Include params.h
17698         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17699         locations.
17700         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17701         * Makefile.in (cselib.o): Depend on params.h
17702
17703 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17704
17705         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17706         simplify_unary_operation if the operand has a known mode.
17707
17708 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17709
17710         PR target/13534
17711         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17712         predicate to handle 'ld' conform addresses.
17713         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17714         contraint.
17715         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17716         are memory contraints.
17717         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17718         New prototype.
17719         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17720         Change 'o' to 'Y' constraint.
17721         (*movdf_softfloat64): Ditto.
17722
17723 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17724
17725         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17726         brace-enclosed syntax in all C output statements.
17727
17728 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17729
17730         PR target/13401
17731         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17732         Objective-C language type value is 14.
17733
17734 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17735
17736         PR c/12148
17737         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17738         `int' in a number of places to make sure we always have a SImode
17739         and not a HImode.  Add a 'L' suffix to a number of constants.
17740
17741 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17742
17743         * pa.c: Don't include obstack.h.
17744
17745         * pa.md: Correct constraint in pattern for loading PIC label address.
17746
17747 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17748
17749         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17750          before defining.
17751
17752 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17753
17754         PR fortran/9972
17755         * toplev.c (rest_of_handle_inline): Also consider functions
17756         for deferral if the language is GNU F77.
17757
17758 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17759
17760         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17761         diagnostic messages.
17762
17763 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17764
17765         PR middle-end/13392
17766         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17767         to drop through label.  Don't fall back to SCC even when conditional
17768         jump has not been found.
17769
17770 2004-01-11  Jan Hubicka  <jh@suse.cz>
17771
17772         * invoke.texi: Fix syntax error in previous patch.
17773
17774         Partial fix for PR opt/10776
17775         * Makefile.in (reload.o): Include param.h
17776         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17777         * reload.c: Include params.h.
17778         (find_equiv_reg): Work limiting check.
17779         * invoke.texi: Document.
17780
17781 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17782
17783         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17784         out-of-bounds accesses to string constants.  Simplify mips16
17785         case accordingly.
17786
17787 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17788
17789         PR optimization/13469
17790         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17791         reload_cse_regs (-fnon-call-exceptions only).
17792
17793 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17794
17795         * config/mcore/lib1.asm: Fix comment formatting.
17796         * config/mcore/mcore-elf.h: Likewise.
17797         * config/mcore/mcore.c: Likewise.
17798         * config/mcore/mcore.h: Likewise.
17799         * config/mcore/mcore.md: Likewise.
17800
17801 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17802
17803         * c-decl.c (duplicate_decls): Break apart into...
17804         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17805         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17806         ... these new functions.  Restructure for comprehensibility.
17807         Remove various archaic special cases.  Always report the
17808         location of the previous declaration when a diagnostic is issued.
17809         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17810         (match_builtin_function_types): Delete unnecessary forward declaration.
17811
17812 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17813
17814         * genautomata.c (make_automaton, NDFA_to_DFA):
17815         Print progress bars with '.' characters instead of '*'.
17816         (build_automaton): Change notes to match.
17817
17818 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17819
17820         * config/m32r/m32r.md: Use define_constants for unspec and
17821         unspec_volatile.
17822
17823 2004-01-10  Jan Hubicka  <jh@suse.cz>
17824
17825         PR opt/11635
17826         * expr.c (expand_expr_real):  More curefully expand union casts.
17827
17828 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17829
17830         * config/m32r/m32r.md (flush_icache): Use 1 for
17831         unspec_volatile.
17832
17833 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17834             James E Wilson  <wilson@specifixinc.com>
17835
17836         PR debug/12860
17837         * dbxout.c (dbxout_symbol): Remove initialization of
17838         current_sym_code, current_sym_value, and current_sym_addr.
17839         (dbxout_symbol_location): Same.
17840         (dbxout_prepare_symbol): Zero current_sym_code,
17841         current_sym_value, and current_sym_addr.
17842
17843 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17844
17845         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17846         check is done first.
17847
17848 2004-01-09  Eric Christopher  <echristo@redhat.com>
17849
17850         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17851         if we're running mark_constant_function.
17852
17853 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17854
17855         PR target/12561
17856         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17857
17858 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17859
17860         PR debug/11231
17861         * dbxout.c (dbxout_type_fields): Return if any item is
17862         error_mark_node or the type is error_mark_node.
17863
17864 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17865
17866         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17867         exactly what is expected as a 'long double'.
17868         (_xlqadd): When a value to be returned is representable as a
17869         'double', just return it directly, do not construct it using a union.
17870         Also, correct final fixup.
17871         (_xlqmul): Likewise.
17872         (_xlqdiv): Likewise.
17873         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17874
17875         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17876
17877 2004-01-09  Richard Henderson  <rth@redhat.com>
17878
17879         * recog.c (constrain_operands): Validate mem operands.
17880
17881 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17882
17883         * gcc.c (init_spec): Remove -lunwind from shared case.
17884         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17885
17886 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17887
17888         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17889         * configure: Regenerate
17890
17891 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17892
17893         PR c/11234
17894         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17895         between function and object pointers.
17896         (digest_init): When comparing a pointer to function type to the
17897         target type, only apply TREE_TYPE once to the pointer to function
17898         type.
17899         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17900         function pointer rather than casting it to a function pointer.
17901         (for_each_eh_label): Update caller.
17902         * recog.h (struct insn_data): Use a struct or union for output.
17903         * genoutput.c (output_insn_data): Update.
17904         * final.c (get_insn_template): Update.
17905
17906 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17907
17908         * expr.h (expand_expr): Make it a macro, not a function.
17909         (expand_expr_real): New function.
17910         * expr.c (store_expr): Adjust logic for deciding whether or not to
17911         copy the value returned by expand_expr.
17912         (expand_expr): Rename to ...
17913         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17914         calls to language hooks.
17915         * c-common.h (c_expand_expr): Adjust prototype.
17916         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17917         * langhooks-def.h (lhd_expand_expr): Change prototype.
17918         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17919         * langhooks.h (lang_hooks): Change type of expand_expr.
17920         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17921         (last_expr_alt_rtl): Likewise.
17922         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17923         (clear_last_expr): Clear it.
17924         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17925         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17926         * tree.def (RTL_EXPR): Give it an additional operand.
17927         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17928
17929 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17930
17931         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17932         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17933
17934 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17935
17936         PR target/13380.
17937         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17938         or (ne:SI (reg:CC 17) (const_int 0)).
17939         Be specific about modes wherever possible.
17940
17941 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17942
17943         * config/m32r/m32r.c (m32r_expand_block_move): Call
17944         gen_movestrsi_internal with two more arguments.
17945         (m32r_output_block_move): Adjust operand numbers.
17946         Properly update the source and destination pointers.
17947         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17948         'r+'.  Change the set detinations to match_operand.
17949
17950 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17951
17952         * final.c (FIRST_INSN_ADDRESS): Remove.
17953         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17954         * system.h (FIRST_INSN_ADDRESS): Poison.
17955         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17956         * config/m32r/m32r-protos.h: Remove the prototype for
17957         m32r_first_insn_address.
17958         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17959         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17960         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17961
17962 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17963
17964         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17965         we just created.
17966         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17967         emitted as subrange types too.
17968         (subrange_type_die): Add handling of enumeration subtypes.
17969
17970 2004-01-08  Richard Henderson  <rth@redhat.com>
17971
17972         PR opt/12441
17973         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17974         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17975         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17976         (ix86_address_cost): Be prepared for SUBREGed registers.
17977         (legitimate_address_p): Accept SUBREGed registers.
17978
17979 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17980
17981         * Makefile.in: Rename configure.in to configure.ac
17982         * doc/sourcebuild.texi: Likewise.
17983         * configure: Regenerate.
17984         * config.in: Regenerate.
17985
17986 2004-01-08  Stuart Hastings  <stuart@apple.com>
17987
17988         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17989
17990 2004-01-08  Jan Hubicka  <jh@suse.cz>
17991
17992         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17993
17994 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17995
17996         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17997         (UNSPEC_FIX_TRUNC_TF): New constant.
17998         (movtf_internal): Make splitter active only when insn is active.
17999         (extenddftf2): Rewrite to properly load zero into low part.
18000         (extenddftf2_internal): New.
18001         (extendsftf2): Rewrite.
18002         (truncdftf2): Correct length.
18003         (floatditf2): Delete.
18004         (fix_trunc_helper): New.
18005         (fix_trunctfdi2): Use fix_trunc_helper.
18006         (fix_trunctfsi2): Likewise.fix_trunc
18007         (fix_trunctfsi2_internal): New.
18008
18009         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
18010         addresses are legitimate on Darwin even when flag_pic.
18011         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
18012         non-offsettable addresses for loads of TFmode constants.
18013
18014 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18015
18016         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
18017         variables in the appropriate bss section.
18018
18019 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
18020
18021         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
18022         target_flags has MASK_POWERPC64 when -m64.
18023         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
18024         to 620, 630, power3, power4 and rs64a entries.
18025         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
18026
18027 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
18028
18029         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
18030         floating-point constants.
18031
18032 2004-01-08  J. Brobecker  <brobecker@gnat.com>
18033
18034         * dwarf2out.c (subrange_type_die): Add context_die parameter.
18035         Create the subrange_type DIE using the given context DIE.
18036         (modified_type_die): Update call to subrange_type_die.
18037
18038 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
18039
18040         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
18041         Add multiple-include guard.
18042
18043 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
18044
18045         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
18046         all vector constant loadable by vsplt*.
18047         (output_vec_const_move): Likewise.
18048
18049 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18050
18051         PR c/6024
18052         * c-typeck.c (comptypes): Only treat enumerated types in the same
18053         translation unit as compatible with each other when they are the
18054         same type.
18055         * doc/extend.texi: Update.
18056
18057 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
18058
18059         PR c/12165
18060         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
18061         array type from the array element type.
18062
18063 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
18064
18065         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
18066         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
18067         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
18068         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
18069         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
18070
18071 2004-01-06  Eric Christopher  <echristo@redhat.com>
18072
18073         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
18074         (DWARF2_DEBUGGING_INFO): Define.
18075         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
18076         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
18077         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
18078         for irix as.
18079         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
18080         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
18081         * config/mips/iris5gas.h: Ditto.
18082         (DBX_DEBUGGING_INFO): Remove.
18083         (DWARF2_DEBUGGING_INFO): Ditto.
18084         (MIPS_DEBUGGING_INFO): Ditto.
18085         (PREFERRED_DEBUGGING_TYPE): Ditto.
18086         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
18087         (PREFERRED_DEBUGGING_TYPE): Ditto.
18088         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
18089         * config/mips/elf64.h: Ditto.
18090
18091 2004-01-06  Jan Hubicka  <jh@suse.cz>
18092
18093         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
18094         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
18095
18096 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
18097
18098         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
18099         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
18100         * config/rs6000/darwin-ldouble.c: New.
18101
18102         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
18103         for constants.
18104         (constant_subword): Delete.
18105         * rtl.h (constant_subword): Delete prototype.
18106         (immed_double_const): Is not in varasm.c.
18107         * simplify-rtx.c (simplify_immed_subreg): New.
18108         (simplify_subreg): Use simplify_immed_subreg.
18109
18110         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
18111         than trying to generate RTL directly.
18112         (fix_trunctfsi2): Use expand_fix rather than trying to generate
18113         RTL directly.
18114
18115         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
18116
18117 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
18118
18119         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
18120         function into a separate macro.
18121         (read_only_data_section): Add void argument.
18122         (private_data_section): Same.
18123         (read_only_private_data_section): Same.
18124         (toc_section): Same.
18125
18126 2004-01-06  Jan Hubicka  <jh@suse.cz>
18127
18128         * invoke.texi:  Remove typo in last change.
18129
18130         PR target/10301
18131         * config.gcc: Accept opteron and athlon-64 as variants
18132         of k8.
18133         * i386.c (override_options): Likewise.
18134         * invoke.texi (i386 -mtune): Expand documentation.
18135
18136 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18137
18138         * alias.c: Fix comment typos.
18139         * builtins.c: Likewise.
18140         * cfg.c: Likewise.
18141         * df.c: Likewise.
18142         * dominance.c: Likewise.
18143         * dwarf2out.c: Likewise.
18144         * emit-rtl.c: Likewise.
18145         * expr.c: Likewise.
18146         * final.c: Likewise.
18147         * fold-const.c: Likewise.
18148         * gcse.c: Likewise.
18149         * genattrtab.c: Likewise.
18150         * genrecog.c: Likewise.
18151         * gensupport.c: Likewise.
18152         * ggc-zone.c: Likewise.
18153         * integrate.c: Likewise.
18154         * local-alloc.c: Likewise.
18155         * loop.c: Likewise.
18156         * recog.c: Likewise.
18157         * regmove.c: Likewise.
18158         * reg-stack.c: Likewise.
18159         * reorg.c: Likewise.
18160         * rtlanal.c: Likewise.
18161         * rtl.h: Likewise.
18162         * sched-ebb.c: Likewise.
18163         * simplify-rtx.c: Likewise.
18164         * toplev.c: Likewise.
18165         * varasm.c: Likewise.
18166
18167 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
18168
18169         * doc/install.texi: Fix typos.
18170         * doc/invoke.texi: Likewise.
18171         * doc/md.texi: Likewise.
18172
18173 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18174
18175         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
18176
18177 2004-01-06  Jan Hubicka  <jh@suse.cz>
18178
18179         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
18180         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
18181         of MMX_REGPARM.
18182         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
18183         add MMX_REGPARM.
18184         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
18185         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
18186         (MMX_REGPARM_MAX): Similarly for -mmmx.
18187
18188 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18189
18190         * config/sh/linux.h: Fix comment formatting.
18191         * config/sh/netbsd-elf.h: Likewise.
18192         * config/sh/sh.c: Likewise.
18193         * config/sh/sh.h: Likewise.
18194         * config/sh/vxworks.h: Likewise.
18195
18196 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18197
18198         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
18199         * toplev.c (output_file_directive): Don't use
18200         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
18201
18202 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
18203
18204         * toplev.c: Fix broken checkin of 2003-12-30.
18205
18206 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
18207
18208         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
18209         (USING_MMAP): We don't support non-mmap.
18210         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
18211         large objects.
18212         (struct page_entry): Remove bytes_free.
18213         (struct page_table_chain): Remove.
18214         (struct globals): Remove page_table member.
18215         (loookup_page_table_entry): Function deleted.
18216         (set_page_table_entry): Ditto.
18217         (ggc_allocated_p): No longer need page table lookups.
18218         (ggc_marked_p): Ditto.
18219         (alloc_small_page): Don't care about bytes_free anymore.
18220         (alloc_large_page): Round up size.
18221         (ggc_alloc_zone_1): Mark large objects as such, and calculate
18222         their size the new way.
18223         Remove page table lookups and setting.
18224         (ggc_get_size): Calculate large object size the new way.
18225         (sweep_pages): Redo to account for fact that we no longer have
18226         bytes_free.
18227         (ggc_collect): No longer need to reincrement bytes_free.
18228         (ggc_pch_alloc_object): Handle new large objects properly.
18229         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
18230
18231 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18232
18233         * doc/invoke.texi: Remove a page break.
18234
18235 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18236
18237         * config/avr/avr.c (avr_output_function_prologue): Remove an
18238         extra pair of curly braces.
18239
18240 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18241
18242         * config/mn10300/mn10300.c: Fix comment formatting.
18243         * config/mn10300/mn10300.h: Likewise.
18244
18245 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18246
18247         * tree.h: Update documentation on nothrow_flag.
18248         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
18249         types.
18250
18251 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
18252
18253         * doc/invoke.texi: Remove traces of dead ports.
18254
18255 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18256
18257         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
18258         option.
18259
18260 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18261
18262         PR target/12945
18263         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
18264         counter labels.
18265         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
18266         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
18267         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
18268         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
18269         (mips_symbol_insns): Don't trust the local/global classification.
18270         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
18271         (override_options): Make -mabicalls -fno-unit-at-a-time imply
18272         -mno-explicit-relocs.
18273         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
18274         between local and global symbols.
18275
18276 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
18277
18278         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
18279         (mips_preferred_reload_class): Declare.
18280         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
18281         (EXTRA_CONSTRAINT): Update accordingly.
18282         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
18283         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
18284         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
18285         mips_dangerous_for_la25_p.
18286         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
18287         if mips_dangerous_for_la25_p.
18288
18289 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
18290
18291         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
18292         warning.
18293
18294 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
18295
18296         * configure.ac: Use AC_PROG_CPP_WERROR.
18297         * configure: Regenerate.
18298
18299 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
18300
18301         * .cvsignore: Add autom4te.cache.
18302
18303 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
18304
18305         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
18306         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
18307         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
18308         then architecture options, then ABI options.  General rewording.
18309
18310 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
18311
18312         PR c/3414
18313         * doc/extend.texi: Clarify definition of malloc attribute.
18314
18315 2004-01-04  Jan Hubicka  <jh@suse.cz>
18316
18317         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
18318         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
18319         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
18320         (cgraph_inline_p): Add extra argument reason.
18321         * cgraphunit.c: Minor formating fixes.
18322         cgraph_first_inlined_callee): New functions.
18323         (record_call_1): Record builtins too.
18324         (cgraph_analyze_function): Update inline_failed messages.
18325         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
18326         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
18327         (cgraph_check_inline_limits): Likewise; Add argument reason.
18328         (cgraph_set_inline_failed): New static function.
18329         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
18330         reasons.
18331         (cgraph_inline_p): Add new argument reason.
18332         * tree-inline.c (expand_call_inline):  Update warning.
18333
18334 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
18335
18336         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
18337         with modern equivalents.
18338         * configure: Regenerate.
18339
18340         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
18341         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
18342         * configure: Regenerate.
18343
18344         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
18345
18346         * configure.in: Rename to configure.ac.
18347         * configure.ac: Renamed from configure.in; make minimum necessary
18348         changes for autoconf 2.5x.
18349         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
18350         * configure: Regenerate with autoconf 2.57.
18351
18352 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
18353
18354         * config/mips/linux.h: Fix comment formatting.
18355         * config/mips/mips.c: Likewise.
18356         * config/mips/mips.h: Likewise.
18357         * config/mips/mips.md: Likewise.
18358         * config/mips/netbsd.h: Likewise.
18359         * config/mips/windiss.h: Likewise.
18360
18361 2004-01-02  Richard Henderson  <rth@redhat.com>
18362
18363         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
18364         for sse and 387; add suppression for mmx.
18365
18366 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
18367
18368         * loop.c (loop_optimize): Free all loops_info's mems.
18369
18370         * c-typeck.c (finish_init): Free spelling_base before
18371         setting it again.
18372
18373         * cfgloop.c (flow_loops_find): Always free the sbitmap
18374         headers.
18375
18376         * predict.c (estimate_probability): Free bbs after being
18377         done with it.
18378
18379 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18380
18381         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
18382         const_8bit_operand and call_address_operand.
18383
18384 2004-01-02  Jan Hubicka  <jh@suse.cz>
18385
18386         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
18387         when there is nothing to inline but warnings are requested.
18388         (cgraph_decide_inlining):  Fix memory leak.
18389
18390 2004-01-02  Jan Hubicka  <jh@suse.cz>
18391
18392         * expr.c (store_constructor):  Fix pasto in previous patch.
18393
18394 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
18395
18396         * config/i386/cygming.h: Fix comment formatting.
18397         * config/i386/djgpp.h: Likewise.
18398         * config/i386/gthr-win32.c: Likewise.
18399         * config/i386/i386-interix.h: Likewise.
18400         * config/i386/i386.c: Likewise.
18401         * config/i386/i386.h: Likewise.
18402         * config/i386/openbsd.h: Likewise.
18403         * config/i386/winnt.c: Likewise.
18404         * config/i386/xm-mingw32.h: Likewise.
18405
18406 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
18407
18408         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
18409         copyright and last modification dates.
18410
18411 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
18412
18413         * doc/install.texi (Specific): Mention x86_64.
18414
18415 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18416
18417         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
18418         Call force_operand on plus_constant result.
18419
18420 2004-01-01  Jan Hubicka  <jh@suse.cz>
18421
18422         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
18423         * expr.c (store_constructor): Use vec_init pattern.
18424         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
18425         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
18426         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
18427         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
18428         New patterns.
18429         (sse2_unpc?pd): Fix pattern.
18430         (sse2_movlpd): Kill.
18431         (sse2_movsd): Deal with movlpd too.
18432         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
18433         (ix86_expand_vector_init): New.
18434         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
18435         * md.texi (vec_set, vec_extract): Document
18436
18437 2003-12-31  Jan Hubicka  <jh@suse.cz>
18438
18439         PR opt/13473
18440         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
18441         ASM input operands
18442
18443         PR opt/12617
18444         * toplev.c (dump_file_index): Reorder ce3 and bbro.
18445         (dump_file): Likewise.
18446         (rest_of_compilation): Likewise.
18447
18448         PR debug/13367
18449         * cgraph.c (cgraph_function_possibly_inlined):  Even with
18450         flag_really_no_inline we inline always_inline functions.
18451         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
18452         for non-always_inline functions when there is flag_really_no_inline.
18453         (cgraph_decide_inlining): Limit work done when not inlining.
18454         (cgraph_decide_inlining_incrementally): Likewise.
18455         (cgraph_optimize_function): Check whether something got inlined.
18456         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
18457         extern inline functions when not inlining.
18458
18459         * opts.c (decode_options):  Disable crossjumping at -O1
18460         * invoke.texi (-O1): Document change.
18461
18462 See ChangeLog.10 for earlier changes.