OSDN Git Service

* config/arm/arm.c (arm_default_short_enums): New function.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-13  Paul Brook  <paul@codesourcery.com>
2
3         * config/arm/arm.c (arm_default_short_enums): New function.
4         (TARGET_DEFAULT_SHORT_ENUMS): Define.
5
6 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
7
8         Merge from tree-ssa-20020619-branch.
9
10         * Makefile.in (reload1.o-warn): Add.
11         (tree-alias-ander.o-warn): Add.
12         (GMPLIBS): Define.
13         (GMPINC): Define.
14         (BANSHEELIB): Define.
15         (BANSHEEINC): Define.
16         (TREE_DUMP_H): Define.
17         (TREE_SIMPLE_H): Define.
18         (TREE_FLOW_H): Define.
19         (LIBDEPS): Add BANSHEELIB.
20         (INCLUDES): Add BANSHEEINC and GMPINC.
21         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
22         c-mudflap.o and c-pretty-print.o.
23         (C_OBJS): Remove c-pretty-print.o.
24         (OBJS-common): Remove sibcall.o.
25         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
26         tree-ssa.o, tree-optimize.o, tree-simple.o,
27         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
28         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
29         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
30         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
31         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
32         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
33         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
34         tree-tailcall.o, gimple-low.o, tree-iterator.o,
35         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
36         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
37         tree-profile.o.
38         (OBJC-archive): Add tree-nomudflap.o.
39         (cc1): Add dependency on @TREEBROWSER@.
40         (c-decl.o): Add dependency on TREE_DUMP_H.
41         (c-dump.o): Likewise.
42         (c-common.o): Add dependency on tree-iterator.h
43         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
44         (gtype-desc.o): Add dependency on TREE_FLOW_H.
45         (tree.o): Add dependency on tree-iterator.h,
46         BASIC_BLOCK_H and TREE_FLOW_H.
47         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
48         (langhooks.o): Add dependency on TREE_SIMPLE_H.
49         (tree-alias-type.o, tree-alias-ander.o,
50         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
51         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
52         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
53         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
54         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
55         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
56         tree-nested.o, tree-iterator.o, tree-dfa.o,
57         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
58         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
59         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
60         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
61         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
62         tree-sra.o, tree-complex.o, tree-profile.o,
63         rtl-profile.o): New rules.
64         (function.o): Add dependency on basic-block.h
65         (expr.o): Add dependency on tree-iterator.h.
66         (sibcall.o): Remove.
67         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
68         (cfg.o): Add dependency on TIMEVAR_H.
69         (cfghooks.o): Add dependency on TREE_FLOW_H.
70         (reg-stack.o): Add dependency on basic-block.h.
71         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
72         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
73         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
74         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
75         tree-alias-type.h, tree-alias-common.h,
76         tree-alias-type.c, tree-alias-common.c,
77         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
78         rtl-profile.c and tree-nested.c.
79         (gt-tree-alias-common.h, gt-tree-mudflap.h,
80         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
81         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
82         gt-tree-cfg.h, gt-tree-nested.h): New rules.
83         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
84         * basic-block.h: Include predict.h
85         (struct edge_def): Add GTY marker.
86         Change field 'insns' to be a union of tree and rtx.
87         (EDGE_TRUE_VALUE): Define.
88         (EDGE_FALSE_VALUE): Define.
89         (EDGE_EXECUTABLE): Define.
90         (struct bb_ann_d): Forward declare.
91         (struct basic_block_def): Add GTY marker.
92         Remove fields head_tree and end_tree.
93         Add fields stmt_list, rbi and tree_annotations.
94         (struct reorder_block_def): Define.
95         (basic_block_info): Add GTY marker.
96         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
97         variables instead of macros.
98         (flow_call_edges_add): Remove declaration.
99         (make_eh_edge): Remove declaration.
100         (brief_dump_cfg, find_edge, tree_predicted_by_p,
101         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
102         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
103         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
104         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
105         (try_redirect_by_replacing_jump): Modfiy return type to
106         edge instead of bool.
107         * bb-reorder.c (copy_bb): Call duplicate_block
108         instead of cfg_layout_duplicate_bb.
109         (copy_bb_p): Call can_duplicate_block_p instead of
110         cfg_layout_can_duplicate_bb_p.
111         * bitmap.c (bitmap_first_set_bit): Abort if word
112         wasn't found.
113         (bitmap_last_set_bit): Likewise.
114         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
115         (DEF_FUNCTION_TYPE_3): Add.
116         * builtins.c (c_strlen): Make extern.
117         (builtin_save_expr): New.
118         (expand_builtin_nonlocal_goto): New.
119         (expand_builtin_constant_p): Remove.
120         (expand_builtin_mathfn): Call builtin_save_expr instead
121         of save_expr.
122         (expand_builtin_mathfn_2): Likewise.
123         (expand_builtin_strcmp): Likewise.
124         (expand_builtin_strncmp): Likewise.
125         (expand_builtin_strcat): Likewise.
126         (fold_builtin_cabs): Likewise.
127         (expand_builtin_alloca): Don't trigger if -fmudflap is
128         given.
129         (build_string_literal): Set TREE_INVARIANT on new node.
130         (expand_builtin_profile_fun): New.
131         (round_trampoline_addr): New.
132         (expand_builtin_init_trampoline): New.
133         (expand_builtin_adjust_trampoline): New.
134         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
135         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
136         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
137         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
138         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
139         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
140         Handle.
141         (fold_builtin_expect): New.
142         (fold_builtin_isascii): Don't return non-constant results
143         in GIMPLE form.
144         (fold_builtin_isdigit): Likewise.
145         (fold_builtin_1): New.
146         (fold_builtin): Call it.
147         (build_function_call_expr): Update call to build a new
148         CALL_EXPR.
149         (purge_builtin_constant_p): Remove.
150         (simplify_builtin, simplify_builtin_memcmp,
151         simplify_builtin_strcmp, simplify_builtin_strncmp,
152         simplify_builtin_strpbrk, simplify_builtin_strstr,
153         simplify_builtin_strchr, simplify_builtin_strrchr,
154         simplify_builtin_strcat, simplify_builtin_strncat,
155         simplify_builtin_strspn, simplify_builtin_strcspn,
156         simplify_builtin_next_arg, simplify_builtin_va_start,
157         simplify_builtin_sprintf): New.
158         * builtins.def (BUILT_IN_STACK_ALLOC,
159         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
160         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
161         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
162         BUILT_IN_PROFILE_FUNC_EXIT): Define.
163         * c-common.c: Include tree-iterator.h and hashtab.h.
164         (lang_statement_code_p): Declare.
165         (lang_gimplify_stmt): Declare.
166         (fix_string_type): Set TREE_INVARIANT for value.
167         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
168         (c_type_hash): New.
169         (c_common_get_alias_set): Handle multiple type nodes
170         referring to "the same" type, currently for C90 only.
171         (c_add_case_label): Use create_artificial_label.
172         (finish_label_address_expr): Don't set TREE_CONSTANT on
173         result.
174         (c_expand_expr): Don't handle STMT_EXPR.
175         (handle_alias_attribute): Marke aliased variables to be
176         TREE_STATIC.
177         (handle_nonnull_attribute): Initialize arg_num.
178         (check_function_nonnull): Likewise.
179         (c_walk_subtrees): New.
180         (c_estimate_num_insns_1): Don't handle
181         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
182         (c_decl_uninit_1): Remove.
183         (c_decl_uninit): Remove.
184         (c_warn_unused_result): New.
185         * c-common.def (ASM_STMT): Change number of operands
186         to 4.
187         (FILE_STMT): Remove.
188         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
189         Remove.
190         (lang_gimplify_stmt): Add.
191         (expand_stmt): Remove.
192         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
193         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
194         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
195         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
196         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
197         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
198         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
199         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
200         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
201         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
202         genrtl_compound_stmt, genrtl_asm_stmt,
203         genrtl_cleanup_stmt, c_decl_uninit): Remove.
204         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
205         c_tree_chain_matters_p, c_warn_unused_result,
206         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
207         Declare.
208         * c-convert.c (convert): Make convert work when
209         converting to compatible types across translation unit.
210         * c-decl.c: Include langhooks.h, tree-mudflap.h,
211         tree-simple.h, diagnostic.h and tree-dump.h
212         (merge_decls): Initialize oldtype to NULL.
213         (finish_decl): Use DECL_HARD_REGISTER instead of
214         DECL_C_HARD_REGISTER.
215         (check_bitfield_type_and_width): Check for null
216         lang_type_specific when check the precision of an enum.
217         (grokdeclarator): Immediately layout an ARRAY_TYPE used
218         in a pointer-to-array declarator.
219         (finish_struct): Clear allocated struct lang_type.
220         (finish_enum): Set enum_min and enum_max.  Set
221         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
222         not to the enumerators.
223         (set_decl_nonlocal): New.
224         (store_parm_decls): Use it via walk_tree.
225         (c_finalize): New.
226         (finish_function): When !targetm.have_ctors_dtors,
227         record static constructors and destructors here...
228         (c_expand_body_1): ... not here.
229         (c_expand_decl): Rename from c_expand_decl_stmt.
230         Handle all C-specific expansion semantics.
231         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
232         STMT_LINENO.
233         * c-format.c (handle_format_arg_attribute): Initialize
234         format_num.
235         * c-lang.c: Include tree-inline.h
236         (LANG_HOOKS_EXPAND_DECL,
237         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
238         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
239         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
240         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
241         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
242         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
243         (c_types_compatible_p): New.
244         * c-mudflap.c: New file.
245         * c-objc-common.c: Include tree-mudflap.h
246         (start_cdtor, finish_cdtor): Collapse
247         together into
248         (build_cdtor): ...here.  Update to construct a complete tree
249         for the function.  No need to call push_scope, pop_scope, or
250         clear_last_expr, or set current_function_cannot_inline.
251         (c_missing_noreturn_ok_p): Change prototype to return
252         bool.
253         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
254         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
255         opts.c.
256         (c_common_post_options): Don't ever use rtl inlining.
257         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
258         * c-pragma.c (handle_pragma_redefine_extname): Define
259         always.
260         (init_pragma): Activate #pragma redefine_extname for mudflap.
261         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
262         (pp_c_initializer): Accept any type CONSTRUCTOR.
263         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
264         COMPLEX_TYPE.
265         (decl_name_str): New local function.
266         (pp_c_direct_declarator): Call it.
267         (pp_c_primary_expression): Call it.
268         (pp_c_id_expression): Call it.
269         (pp_c_statement): Call it.
270         (print_c_tree): Create new pp object.
271         * c-pretty-print.h (pp_c_tree_decl_identifier,
272         print_c_tree): Declare.
273         * c-semantics.c: Include langhooks.h
274         (lang_expand_stmt, lang_expand_decl_stmt,
275         find_reachable_label_1, find_reachable_label,
276         expand_unreachable_if_stmt, expand_unreachable_stmt,
277         genrtl_do_stmt_1): Remove.
278         (begin_stmt_tree): Don't check for changed filename.
279         Call annotate_with_locus.
280         (finish_stmt_tree): Don't set line for end of function.
281         (build_stmt): Don't check type nodes for
282         side effects.
283         (build_stmt): Set TREE_SIDE_EFFECTS.
284         Set EXPR_LOCUS instead of STMT_LINENO.
285         (lang_expand_stmt, lang_expand_decl_stmt,
286         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
287         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
288         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
289         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
290         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
291         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
292         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
293         find_reachable_label_1, expand_unreachable_if_stmt,
294         expand_unreachable_stmt): Remove.
295         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
296         * c-simplify.c: New file.
297         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
298         (struct lang_type): Add fields enum_min and enum_max.
299         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
300         (c_expand_decl, c_missing_noreturn_ok_p,
301         c_types_compatible_p): Declare.
302         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
303         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
304         (default_function_array_conversion): Rely on build to
305         set TREE_CONSTANT.
306         (parser_build_binary_op, pointer_diff): Likewise.
307         (build_unary_op, build_binary_op): Likewise.
308         (build_array_ref):
309         (build_external_ref): Set TREE_INVARIANT.
310         (build_c_cast, pop_init_level): Likewise.
311         (process_init_element): Use ASM_VOLATILE_P.
312         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
313         (c_finish_case): Call c_do_switch_warnings.
314         * c.opt (fdump-): Remove.
315         * calls.c (try_to_integrate): Remove.
316         (prepare_call_address): Replace fndecl arg with a
317         precomputed static chain value.
318         (emit_call_1): New argument for full call expr.
319         (flags_from_decl_or_type): Call special_function_p.
320         (initialize_argument_information): Add argument
321         may_tailcall.
322         (purge_reg_equiv_notes): New.
323         (expand_call): Do not try to expand calls inline.
324         (fixup_tail_calls): New.
325         * cfg.c: Include timevar.h and ggc.h.
326         (bb_pool, edge_pool): Remove.
327         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
328         (entry_exit_blocks): Remove.
329         (rbi_pool): Declare.
330         (init_flow): Do not create pools.
331         Allocate entry/exit block.
332         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
333         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
334         (unlink_block): Clear b->prev_bb and b->next_bb.
335         (compact_blocks): Clear all slots of BASIC_BLOCK array.
336         (dump_flow_info): Work on trees too.
337         (dump_cfg_bb_info): New.
338         (brief_dump_cfg): New.
339         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
340         (find_edge): New.
341         * cfgbuild.c (rtl_make_eh_edge): Rename from
342         make_eh_edge.  Update all users.
343         (find_basic_blocks): Don't call VARRAY_FREE on
344         basic_block_info.
345         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
346         and newpos2.
347         (delete_unreachable_blocks): Return changed status.
348         (merge_seq_blocks): New.
349         * cfghooks.c: Include tree-flow.h
350         (tree_register_cfg_hooks, ir_type): New.
351         (redirect_edge_and_branch): Change return type to edge.
352         (predict_edge, predicted_by_p, can_duplicate_block_p,
353         duplicate_block, block_ends_with_call_p,
354         block_ends_with_condjump_p, flow_call_edges_add): New.
355         * cfghooks.h (redirect_edge_and_branch): Change return
356         type to edge.
357         (predict_edge, predicted_by_p, can_duplicate_block_p,
358         duplicate_block, block_ends_with_call_p,
359         block_ends_with_condjump_p, flow_call_edges_add): Declare.
360         (redirect_edge_and_branch): Change return type to edge.
361         (struct cfg_hooks): Add fields block_ends_with_call_p,
362         block_ends_with_condjump_p, flow_call_edges_add,
363         predict_edge, predicted_by_p, can_duplicate_block_p and
364         duplicate_block.
365         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
366         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
367         (fixup_reorder_chain): Use initialize_bb_rbi.
368         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
369         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
370         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
371         (insn_locators_initialize): Use new info about blocks.
372         * cfglayout.h (typedef struct reorder_block_def): Moved to
373         basic_block.h.
374         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
375         removed.
376         * cfgloop.c: Include tree.h and tree-flow.h.
377         * cfgloop.h (create_loop_notes): Declare.
378         * cfgloopmanip.c (create_loop_notes): New.
379         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
380         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
381         and duplicate_block fields.
382         (create_basic_block_structure): Don't look at
383         RTX_INTEGRATED_P.
384         (rtl_block_ends_with_call_p): New.
385         (rtl_block_ends_with_condjump_p): New.
386         (need_fake_edge_p): Moved from cfganal.c.
387         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
388         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
389         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
390         (cfg_layout_rtl_cfg_hooks): Ditto.
391         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
392         functions to be reachable.
393         * cgraphunit.c (decide_is_function_needed):
394         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
395         inline functions don't need to be output.
396         (cgraph_assemble_pending_functions): Don't do anything
397         special for nested functions.
398         (cgraph_mark_functions_to_output): Likewise.
399         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
400         (cgraph_analyze_function): Use estimate_num_insns.
401         (cgraph_mark_functions_to_output): Likewise.
402         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
403         (cgraph_expand_function): Allow functions to not be
404         emitted.
405         (cgraph_remove_unreachable_nodes):
406         (cgraph_recursive_inlining_p): Simplify.
407         (lookup_recursive_calls,
408         cgraph_decide_recursive_inlining): New.
409         (cgraph_decide_inlining_*): Update calls of
410         cgraph_mark_inline.
411         * combine.c (get_pos_from_mask): Always set *plen.
412         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
413         ftree-based-profiling, ftree-ccp, ftree-ch,
414         ftree-combine-temps, ftree-copyrename, ftree-dce,
415         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
416         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
417         ftree-lrs): Add.
418         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
419         Undefine.
420         * configure.ac: Add --enable-tree-browser option.
421         Add --with-libbanshee option.
422         Add GMPLIBS and GMPINC.
423         * configure: Regenerate.
424         * coverage.c (tree_ctr_tables): New.
425         (coverage_counter_alloc): Use it.
426         (build_ctr_info_value): Ditto.
427         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
428         (tree_coverage_counter_ref): New.
429         * coverage.h (coverage_counter_ref): Remove declaration.
430         (rtl_coverage_counter_ref): Declare.
431         (tree_coverage_counter_ref): Declare.
432         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
433         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
434         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
435         (struct cse_basic_block_data): Rename enum values to not
436         conflict with profile.h; update all uses.
437         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
438         in comments.
439         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
440         * diagnostic.h (debug_output_buffer, dump_generic_node,
441         print_generic_stmt, print_generic_stmt_indented,
442         print_generic_expr, print_generic_decl,
443         debug_generic_expr, debug_generic_stmt, debug_c_tree):
444         Declare.
445         * dominance.c: Cache immediate dominators.
446         * domwalk.c: New file.
447         * domwalk.h: New file.
448         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
449         (gen_subprogram_die): Generate a DIE for a named
450         return value.
451         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
452         (add_location_or_const_value_attribute): Likewise.
453         (add_bound_info): Likewise.
454         (gen_decl_die): Likewise.
455         * emit-rtl.c (maybe_set_first_label_num): New.
456         (copy_most_rtx): Don't copy the integrated flag.
457         Copy the new return_val flag.
458         * et-forest.c (MAX_NODES): Define.
459         (record_path_before_1): Abort if len is greater than
460         MAX_NODES.
461         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
462         gen_eh_region_catch, gen_eh_region_allowed,
463         gen_eh_region_must_not_throw, get_eh_region_number,
464         get_eh_region_may_contain_throw, get_eh_region_tree_label,
465         set_eh_region_tree_label, expand_resx_expr): New.
466         (expand_eh_region_start, expand_start_catch): Use them.
467         (expand_end_catch): Tidy.
468         (note_eh_region_may_contain_throw): Take region argument.
469         (note_current_region_may_contain_throw): New.
470         (get_exception_filter): Export.
471         (collect_eh_region_array): Export.
472         (remove_unreachable_regions): Check ERT_TRY based on reachability
473         of catches, not reachability of continue_label.  Never remove
474         ERT_MUST_NOT_THROW regions.
475         (collect_rtl_labels_from_trees): New.
476         (convert_from_eh_region_ranges): Use it.
477         (connect_post_landing_pads): Handle dying cleanups.
478         (struct reachable_info): Add callback data.
479         (add_reachable_handler): Invoke the callback.
480         (foreach_reachable_handler): New.
481         (reachable_handlers): Use it.
482         (arh_to_landing_pad, arh_to_label): New.
483         (can_throw_internal_1): Split out from can_throw_internal.
484         (can_throw_external_1): Similarly.
485         * except.h: Update.
486         * explow.c (emit_stack_save): Remove savearea mode check.
487         (update_nonlocal_goto_save_area): New.
488         (allocate_dynamic_stack_space): Use it.
489         (probe_stack_range): Never emit loop notes.
490         * expmed.c (extract_fixed_bit_field): Always propagate the
491         target for the shift if it is a REG.
492         * expr.c: Include tree-iterator.h
493         (is_zeros_p): Remove.
494         (categorize_ctor_elements_1, categorize_ctor_elements): New.
495         (count_type_elements): New.
496         (mostly_zeros_p): Use them.
497         (expr_wfl_stack): Remove.
498         (convert_move): Do nothing if to and from are the same.
499         (emit_block_move_via_loop): Don't emit LOOP notes.
500         (emit_move_insn): Don't handle CONSTANT_P_RTX.
501         (emit_move_insn_1): Don't generate inline warnings.
502         (expand_vars, expand_var): Split from ...
503         (expand_expr_1): ... here.
504         (expand_expr_real, expand_expr_real_1):  Use new macros
505         EXPR_LOCATION and EXPR_HAS_LOCATION.
506         * expr.h (simplify_builtin_fputs,
507         simplify_builtin_strcpy, simplify_builtin_strncpy,
508         expand_var, fixup_tail_calls,
509         update_nonlocal_goto_save_area): Declare.
510         (lookup_static_chain, expand_inline_function,
511         mark_seen_cases): Remove.
512         (prepare_call_address): Change type of 2nd argument to
513         rtx.
514         * final.c (profile_function): Update static chain test.
515         (final): Don't look at RTX_INTEGRATED_P.
516         * flags.h (flag_mudflap, flag_mudflap_threads,
517         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
518         flag_tree_dce, flag_tree_combine_temps,
519         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
520         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
521         flag_tree_points_to): Declare.
522         (enum pta_type): Declare.
523         * flow.c (lang_missing_noreturn_ok_p): Remove.
524         (check_function_return_warnings): Remove.
525         (update_life_info): Update comments.
526         (free_basic_block_vars): Don't call VARRAY_FREE for
527         basic_block_info.
528         (regno_uninitialized): Remove.
529         * fold-const.c (int_const_binop): Make extern.
530         (non_lvalue): Rely on build to set TREE_CONSTANT.
531         (operand_equal_p): Replace only_const argument with
532         flags.  Allow pure functions if OEP_PURE_SAME.
533         (fold): Use OEP_ONLY_CONST.
534         (invert_truthvalue) <NOP_EXPR> Break if argument is of
535         boolean type.
536         (fold_relational_hi_lo,
537         nondestructive_fold_binary_to_constant,
538         nondestructive_fold_unary_to_constant,
539         fold_read_from_constant_string): New.
540         * function.c (struct function): Remove calls_constant_p.
541         (current_function_calls_constant_p): Remove.
542         (inline_function_decl): Remove.
543         (put_var_into_stack): Don't use it.
544         (fix_lexical_addr): Likewise.
545         (inline_function_decl): Remove extern declaration.
546         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
547         (trampolines_created): Move to varasm.c.
548         (free_after_compilation): Update for removed fields.
549         (allocate_struct_function): Likewise.
550         (delete_handlers, lookup_static_chain): Remove.
551         (fix_lexical_addr): Don't consider non-local variable refs.
552         (trampoline_address): Remove.
553         (round_trampoline_addr): Move to builtins.c.
554         (adjust_trampoline_addr): Remove.
555         (expand_function_start): Update for changes to static chain
556         and nonlocal goto handling.
557         (initial_trampoline): Move to varasm.c.
558         (expand_function_end): Don't build trampolines or kill
559         unreferenced nonlocal goto labels.
560         (free_after_compilation): Don't set it.
561         (expand_function_end): Likewise.
562         (setjmp_vars_warning): Rename from
563         uninitialized_vars_warning, remove uninitialized vars warning.
564         (uninitialized_vars_warning): Remove old comment
565         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
566         and do not call the langhook.
567         (expand_function_start, expand_function_end): Don't do
568         function instrumentation here.
569         (clear_block_marks): Rename from reorder_blocks_0, export.
570         (blocks_nreverse): Export.
571         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
572         of rtl.
573         (reset_block_changes, record_block_change, finalize_block_changes,
574         check_block_change, free_block_changes): New functions.
575         (assign_parms): Setting of current_function_stdarg
576         moved ...
577         (allocate_struct_function): ... here.
578         * function.h (struct function): Remove x_nonlocal_labels,
579         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
580         x_context_display, x_trampoline_list, needs_context.
581         Add static_chain_decl, nonlocal_goto_save_area.
582         (struct function): Remove x_clobber_return_insn.
583         Add tail_call_emit field, last_label_uid,
584         unexpanded_var_list, dont_emit_block_notes,
585         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
586         (clear_block_marks): Declare.
587         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
588         (mfwrap_spec, mflib_spec): Declare.
589         (cpp_unique_options, cc1_options): Ditto.
590         (default_compilers): Add .F and .f90.
591         (static_specs): Add mfwrap and mflib.
592         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
593         CONSTANT_RTX_P.
594         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
595         Update to match insns field in struct edge_def.
596         * gdbinit.in (pgs, pge): Define.
597         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
598         instead of the integrated flag.
599         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
600         * gengtype-yacc.y (bitfieldlen): Add empty action.
601         (struct_fields): Accept unnamed bitfields.
602         (bitfieldlen): Split from ...
603         (bitfieldopt): ... here.
604         * gengtype.c (ifiles): Add tree-alias-type.h and
605         tree-flow.h.
606         * genrecog.c (validate_pattern): Do not handle
607         CONSTANT_P_RTX.
608         * gimple-low.c: New file.
609         * gimplify.c: New file.
610         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
611         (restore_line_notes): Do not set RTX_INTEGRATED_P.
612         * ifcvt.c (dead_or_predicable): Initialize local variable
613         'earliest'.
614         * input.h (expr_wfl_stack): Remove.
615         * integrate.c (INTEGRATE_THRESHOLD): Remove.
616         (setup_initial_hard_reg_value_integration): Likewise.
617         (initialize_for_inline): Likewise.
618         (note_modified_parmregs): Likewise.
619         (integrate_parm_decls): Likewise.
620         (process_reg_param): Likewise.
621         (save_parm_insns): Likewise.
622         (copy_insn_list): Likewise.
623         (copy_insn_notes): Likewise.
624         (compare_blocks): Likewise.
625         (find_block): Likewise.
626         (inlining): Likewise.
627         (function_cannot_inline_p): Likewise.
628         (parmdecl_map): Likewise.
629         (in_nonparam_insns): Likewise.
630         (save_for_inline): Likewise.
631         (FIXED_BASE_PLUS): Likewise.
632         (expand_inline_function): Likewise.
633         (copy_rtx_and_substitute): Don't look at map->integrating,
634         map->inline_target, and inlining, since we are never copying
635         for integrating.
636         Don't abort on RTX_INTEGRATED_P.
637         (old_fun): Remove.
638         (output_inline_function): Remove.
639         * integrate.h (struct inline_map): Remove fields integrating,
640         block_map, leaf_reg_map, inline_target, and local_return_label.
641         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
642         copy_loop_headers, never_reached_warning): Removed.
643         (any_uncondjump_p): Reject nonlocal goto.
644         * langhooks-def.h (lhd_types_compatible_p,
645         lhd_expand_decl, lhd_gimplify_expr): Declare.
646         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
647         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
648         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
649         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
650         LANG_HOOKS_GIMPLIFY_EXPR,
651         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
652         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
653         LANG_HOOKS_GIMPLIFY_EXPR,
654         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
655         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
656         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
657         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
658         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
659         LANG_HOOKS_DECL_UNINIT,
660         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
661         * langhooks.c: Include tree-simple.h.
662         (lhd_expand_decl): New.
663         (lhd_types_compatible_p): New.
664         (lhd_decl_uninit): Remove.
665         (lhd_gimplify_expr): New.
666         * langhooks.h (struct lang_hooks_for_rtl_expansion):
667         Remove.
668         (struct lang_hooks_for_functions): Add field
669         missing_noreturn_ok_p.
670         (struct lang_hooks): Add field expand_decl,
671         types_compatible_p, gimplify_expr and
672         gimple_before_inlining.
673         Remove fields decl_uninit and rtl_expand
674         * opts.c (decode_options): Set flag_tree_ccp,
675         flag_tree_dce, flag_tree_dom, flag_tree_dse,
676         flag_tree_pre, flag_tree_ter,
677         flag_tree_live_range_split, flag_tree_sra,
678         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
679         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
680         OPT_fmudflapth, OPT_fmudflapir,
681         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
682         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
683         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
684         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
685         OPT_ftree_points_to_ and OPT_ftree_pre.
686         * output.h (regno_uninitialized, find_basic_blocks,
687         cleanup_cfg, delete_unreachable_blocks,
688         check_function_return_warnings): Remove.
689         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
690         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
691         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
692         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
693         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
694         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
695         Define.
696         * passes.c (rest_of_decl_compilation):
697         (rest_of_handle_sibling_calls): Remove.
698         (rest_of_handle_inlining): Remove.
699         (rest_of_handle_gcse): Do not run
700         purge_builtin_constant_p.
701         (rest_of_compilation): Update.
702         Do not call copy_loop_headers.
703         Do rtl-based profiling only when
704         !flag_tree_based_profiling.  Register rtl-based profiling
705         hooks.
706         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
707         (predicted_by_p): Rename to ...
708         (rtl_predicted_by_p): .. this one; make global
709         (tree_predicted_by_p): New.
710         (dump_prediction): Add FILE argument.
711         (predict_edge): Rename to ...
712         (rtl_predict_edge): .. this one.
713         (tree_predict_edge): New.
714         (combine_predictions_for_insn): Update calls of predict_edge.
715         (predict_loops): Break out from ...
716         (estimate_probability): ... here; update comments; move updating
717         of unknown probabilities from ...
718         (estimate_bb_frequencies): ... here.
719         (combine_predictions_for_bb): New.
720         (tree_predict_by_opcode): New.
721         (tree_estimate_probability): New.
722         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
723         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
724         * predict.h: Add include guard.
725         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
726         * pretty-print.c (pp_write_text_to_stream): Make extern.
727         * pretty-print.h (pp_write_text_to_stream): Declare.
728         * print-rtl.c (print_rtx): Don't print the integrated flag.
729         Print the return_val flag.
730         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
731         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
732         Remove support for EXPR_WITH_FILE_LOCATION nodes.
733         (print_node): Print TREE_INVARIANT and TREE_VISITED.
734         * profile.c: Include cfghooks.h, tree-flow.h.
735         (profile_hooks): New.
736         (profile_dump_file): New.
737         (instrument_edges): Use hooks instead of RTL-specific code.
738         (instrument_values): Ditto.
739         (get_exec_counts): Ditto.
740         (compute_branch_probabilities): Ditto.
741         (compute_value_histograms): Ditto.
742         (branch_prob): Ditto.
743         (find_spanning_tree): Ditto.
744         (end_branch_prob): Ditto.
745         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
746         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
747         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
748         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
749         (tree_register_profile_hooks): New.
750         (rtl_register_profile_hooks): New.
751         * ra-rewrite.c (rewrite_program): Clear variable info.
752         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
753         * regs.h: Add include guards.
754         * reload.c (decompose): Clear val using memset.
755         * rtl.def (CONSTANT_P_RTX): Remove.
756         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
757         (copy_loop_headers): Remove.
758         (struct rtx_def): Replace the integrated flag with the
759         return_val flag.
760         (maybe_set_first_label_num): Declare.
761         (init_branch_prob): Move declaration to value-prof.h.
762         (end_branch_prob): Ditto.
763         (branch_prob): Ditto.
764         (never_reached_warning): Don't declare it.
765         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
766         (hoist_insn_to_edge): Update to match field insns in
767         struct edge_def.
768         * sbitmap.c (sbitmap_realloc): New.
769         * sbitmap.h (sbitmap_realloc): Declare.
770         * sibcall.c: Remove file.
771         * simplify-rtx.c (simplify_rtx): Do not handle
772         CONSTANT_P_RTX.
773         * stmt.c (parse_output_constraint): Don't warn for read-write
774         memory operand.
775         (tail_recursion_args): Use types_compatible_p langhook.
776         (force_label_rtx): Don't look at inline_function_decl.
777         (label_rtx): Set LABEL_PRESERVE_P appropriately.
778         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
779         (declare_nonlocal_label): Remove.
780         (expand_goto): Don't handle nonlocal gotos.
781         (expand_nl_handler_label): Remove.
782         (expand_nl_goto_receivers): Remove.
783         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
784         update_nonlocal_goto_save_area.
785         (expand_expr_stmt_value): Check TREE_NO_WARNING.
786         (warn_if_unused_value): Likewise.
787         (expand_start_loop, expand_loop_continue_here,
788         expand_end_loop): Don't create loop notes.
789         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
790         mark_seen_cases, check_for_full_enumeration_handling): Remove.
791         (expand_end_case_type): Don't do warn_switch handling.
792         (pushcase, pushcase_range) Update add_case_node calls.
793         (add_case_node): Add dont_expand_label argument.
794         (same_case_target_p): Don't search rtl.
795         (expand_start_bindings_and_block, expand_end_bindings):
796         Don't emit block notes when dont_emit_block_notes.
797         (using_eh_for_cleanups_p): Export.
798         (expand_return): Allow any typed rhs.
799         (expand_stack_alloc): New.
800         (expand_stack_save, expand_stack_restore): New.
801         (containing_blocks_have_cleanups_or_stack_level): New
802         function.
803         (asm_op_is_mem_input): New fn.
804         (expand_asm_expr): New fn.
805         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
806         nodes.
807         * stor-layout.c (layout_type): Just return if type is
808         error_mark_node.
809         (update_alignment_for_field): Export.
810         (variable_size): We don't care about global_bindings_p if
811         the frontend doesn't want a list of the expressions.
812         * system.h: Poison INTEGRATE_THRESHOLD.
813         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
814         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
815         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
816         TV_TREE_SSA_OTHER, TV_TREE_OPS,
817         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
818         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
819         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
820         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
821         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
822         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
823         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
824         TV_CONTROL_DEPENDENCES): Define.
825         * toplev.c: Include tree-alias-common.h
826         (current_file_decl, flag_mudflap, flag_mudflap_threads,
827         flag_mudflap_ignore_reads, flag_tree_based_profiling,
828         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
829         flag_tree_dce, flag_tree_ch, flag_tree_sra,
830         flag_tree_combine_temps, flag_tree_ter,
831         flag_tree_live_range_split, flag_tree_dom,
832         flag_tree_copyrename, flag_tree_dse): Declare.
833         (f_options): Add tree-based-profiling, tree-gvn,
834         tree-pre, tree-ccp, tree-dce,
835         tree-dominator-opts, tree-copyrename, tree-dse,
836         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
837         (wrapup_global_declarations): Don't output nested inlined functions.
838         (general_init): Call init_tree_optimization_passes.
839         (process_options): Sorry for -ftree-based-profiling plus
840         -ftest-coverage or -fprofile-values.
841         * toplev.h (init_tree_optimization_passes,
842         flag_tree_based_profiling): Declare.
843         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
844         * tree-alias-ander.c: New file.
845         * tree-alias-ander.h: New file.
846         * tree-alias-common.c: New file.
847         * tree-alias-common.h: New file.
848         * tree-alias-type.c: New file.
849         * tree-alias-type.h: New file.
850         * tree-browser.c: New file.
851         * tree-browser.def: New file.
852         * tree-cfg.c: New file.
853         * tree-complex.c: New file.
854         * tree-dfa.c: New file.
855         * tree-dump.c (dump_enable_all): New.
856         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
857         (dump_node): Remove const from field suffix and swtch.
858         (dump_files): Add null entry, .generic, .nested, .vcg,
859         .xml and a match-all entry.
860         (extra_dump_files, extra_dump_files_in_use,
861         extra_dump_files_alloced): Declare
862         (dump_option_value_info): Add raw, details, stats,
863         blocks, vops, lineno, uid and all.
864         (dump_register): New.
865         (get_dump_file_info): New.
866         (dump_begin): Call it.
867         Do nothing for TDI_none.
868         (dump_begin): Include phase number in dump filename.
869         (dump_enable_all): New.
870         (dump_switch_p_1): Split out from dump_switch_p.
871         (dump_switch_p): Handle extra_dump_files.
872         Start our scan at TDI_none + 1.
873         If -fdump-tree-all was given, call dump_enable_all.
874         * tree-dump.h: Include splay-tree.h.
875         (dump_function, dump_function_to_file, dump_register):
876         Declare.
877         * tree-eh.c: New file.
878         * tree-flow-inline.h: New file.
879         * tree-flow.h: New file.
880         * tree-inline.c: Re-write to handle inlining on GIMPLE.
881         * tree-inline.h (walk_tree,
882         walk_tree_without_duplicates): Move to tree.h.
883         (estimate_num_insns): Declare.
884         * tree-into-ssa.c: New file.
885         * tree-iterator.c: New file.
886         * tree-iterator.h: New file.
887         * tree-mudflap.c: New file.
888         * tree-mudflap.h: New file.
889         * tree-nested.c: New file.
890         * tree-nomudflap.c: New file.
891         * tree-nrv.c: New file.
892         * tree-optimize.c (dump_flags, vars_to_rename,
893         in_gimple_form, all_passes, pass_gimple,
894         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
895         (execute_gimple, execute_rebuild_bind,
896         gate_all_optimizations, execute_del_cfg,
897         register_one_dump_file, register_dump_files, dup_pass_1,
898         init_tree_optimization_passes, execute_todo,
899         execute_one_pass, execute_pass_list): New.
900         (clear_decl_rtl): Remove.
901         (tree_rest_of_compilation): Update to use tree
902         optimizers.
903         * tree-outof-ssa.c: New file.
904         * tree-pass.h: New file.
905         * tree-phinodes.c: New file.
906         * tree-pretty-print.c: New file.
907         * tree-profile.c: New file.
908         * tree-simple.c: New file.
909         * tree-simple.h: New file.
910         * tree-sra.c: New file.
911         * tree-ssa-alias.c: New file.
912         * tree-ssa-ccp.c: New file.
913         * tree-ssa-copy.c: New file.
914         * tree-ssa-copyrename.c: New file.
915         * tree-ssa-dce.c: New file.
916         * tree-ssa-dom.c: New file.
917         * tree-ssa-dse.c: New file.
918         * tree-ssa-forwprop.c: New file.
919         * tree-ssa-live.c: New file.
920         * tree-ssa-live.h: New file.
921         * tree-ssa-loop.c: New file.
922         * tree-ssa-operands.c: New file.
923         * tree-ssa-operands.h: New file.
924         * tree-ssa-phiopt.c: New file.
925         * tree-ssa-pre.c: New file.
926         * tree-ssa.c: New file.
927         * tree-ssanames.c: New file.
928         * tree-tailcall.c: New file.
929         * tree.c: Include tree-iterator.h, basic-block.h and
930         tree-flow.h.
931         (tree_node_kind): Add phi_nodes and ssa names.
932         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
933         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
934         (make_node_stat): Handle PHI_NODE and SSA_NAME.
935         <'c'> Set TREE_INVARIANT.
936         (copy_node_stat): Abort if trying to copy a
937         STATEMENT_LIST.
938         Clear TREE_VISITED.
939         Clear annotation field.
940         (build_constructor): Copy TREE_INVARIANT from vals.
941         Don't clear TREE_CONSTANT.
942         (expr_first, expr_last, expr_length): Remove.
943         (staticp): Pass unknown component references to the language.
944         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
945         (skip_simple_arithmetic): Likewise.
946         (stabilize_reference_1): Likewise.
947         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
948         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
949         STATEMENT_LIST.
950         (lhd_unsave_expr_now): Remove.
951         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
952         (recompute_tree_invarant_for_addr_expr): New.
953         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
954         Call recompute_tree_invarant_for_addr_expr.
955         Set TREE_INVARIANT accordingly.
956         (build2_stat): Don't handle CALL_EXPR.
957         (build3_stat): Don't call build2_stat for CALL_EXPRs.
958         (build_expr_wfl): Remove.
959         (annotate_with_file_line, annotate_with_locus): New.
960         (simple_cst_equal): Call simple_cst_list_equal to compare
961         CONSTRUCTOR_ELTS pointers.
962         (iterative_hash_expr): Don't hash types associated
963         with conversions.  Instead hash on the signedness of the
964         toplevel object and the operand of the conversion.
965         (dump_tree_statistics): Call ssanames_print_statistics
966         and phinodes_print_statistics.
967         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
968         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
969         needs_to_live_in_memory): New.
970         (initializer_zerop): Handle VECTOR_CST.  Don't check
971         AGGREGATE_TYPE_P for CONSTRUCTOR.
972         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
973         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
974         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
975         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
976         (CALL_EXPR): Add another operand.
977         (EXPR_WITH_FILE_LOCATION): Remove.
978         (SWITCH_EXPR): Add another operand.
979         * tree.h: Update various comments.
980         (union tree_ann_d): Forward declare.
981         (struct tree_common): Add fields nowarning_flag,
982         invariant_flag and visited.
983         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
984         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
985         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
986         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
987         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
988         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
989         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
990         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
991         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
992         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
993         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
994         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
995         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
996         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
997         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
998         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
999         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
1000         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
1001         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
1002         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
1003         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
1004         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
1005         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
1006         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
1007         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
1008         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
1009         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
1010         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
1011         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
1012         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
1013         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
1014         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
1015         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
1016         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
1017         TDF_UID,): Define.
1018         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
1019         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
1020         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
1021         EXPR_WFL_SET_LINECOL): Remove.
1022         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
1023         make_phi_node, init_phinodes, fini_phinodes,
1024         release_phi_node, phinodes_print_statistics,
1025         init_ssanames, fini_ssanames, make_ssa_name,
1026         release_ssa_name, ssanames_print_statistics,
1027         annotate_with_file_line, build_empty_stmt,
1028         annotate_with_locus, expr_only, categorize_ctor_elements,
1029         count_type_elements, add_var_to_bind_expr, is_essa_node,
1030         expand_stack_alloc, expand_stack_save,
1031         expand_stack_restore, add_case_node, operand_equal_p,
1032         nondestructive_fold_unary_to_constant,
1033         nondestructive_fold_binary_to_constant,
1034         fold_read_from_constant_string, int_const_binop,
1035         strip_float_extensions, simplify_builtin, c_strlen,
1036         recompute_tree_invarant_for_addr_expr,
1037         needs_to_live_in_memory, make_vector,
1038         setjmp_vars_warning, update_alignment_for_field,
1039         expand_asm_expr, asm_op_is_mem_input,
1040         containing_blocks_have_cleanups_or_stack_level,
1041         create_artificial_label, gimplify_function_tree,
1042         get_name, unshare_expr, walk_tree,
1043         walk_tree_without_duplicates, in_gimple_form): Declare.
1044         (struct tree_exp): Add fields locus and block.
1045         (struct tree_ssa_name, struct edge_def, struct
1046         tree_phi_node, struct tree_eref_common, struct
1047         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
1048         union alias_var_def, struct tree_statement_list_node,
1049         struct tree_statement_list, enum operand_equal_flag): Declare.
1050         (enum tree_node_structure_enum): Add TS_SSA_NAME,
1051         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
1052         TS_STATEMENT_LIST.
1053         (union tree_node): Add fields ssa_name, phi, eref, ephi,
1054         euse and stmt_list.
1055         (function_cannot_inline_p, uninitialized_vars_warning,
1056         save_for_inline, output_inline_function, all_cases_count,
1057         check_for_full_enumeration_handling,
1058         declare_nonlocal_label): Remove.
1059         (enum tree_dump_index): Add TDI_none, TDI_tu,
1060         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
1061         * unroll.c (unroll_loop): Don't clear map->inline_target.
1062         * unwind-sjlj.c (uw_install_context): Make a proper static inline
1063         function.
1064         * value-prof.c (value_prof_hooks): New.
1065         (find_values_to_profile): Rename to rtl_find_values_to_profile.
1066         Move rtl-specific bits in from branch_prob.
1067         (value_profile_transformations): Rename to
1068         rtl_value_profile_transformations.
1069         (struct value_prof_hooks): New.
1070         (rtl_value_prof_hooks): New.
1071         (rtl_register_value_prof_hooks): New.
1072         (tree_find_values_to_profile): New stub.
1073         (tree_value_profile_transformations): New stub.
1074         (tree_value_prof_hooks): New stub.
1075         (tree_register_value_prof_hooks): New stub.
1076         (find_values_to_profile): New.
1077         (value_profile_transformations): New.
1078         * value-prof.h: Add multiple inclusion guard.
1079         (struct histogram_value): Change rtx fields to void *.
1080         (rtl_register_value_prof_hooks): New declaration.
1081         (tree_register_value_prof_hooks): New declaration.
1082         (find_values_to_profile): New declaration.
1083         (free_profiled_values): New declaration.
1084         (value_profile_transformations): New declaration.
1085         (struct profile_hooks): New declaration.
1086         (init_branch_prob): Declaration moved from rtl.h.
1087         (branch_prob): Declaration moved from rtl.h.
1088         (end_branch_prob): Declaration mooved from rtl.h.
1089         (tree_register_profile_hooks): New declaration.
1090         (rtl_register_profile_hooks): New declaration.
1091         (tree_profile_hooks): New declaration.
1092         (rtl_profile_hooks): New declaration.
1093         * varasm.c: Include tree-mudflap.h.
1094         (TRAMPOLINE_ALIGNMENT): Remove.
1095         (make_decl_rtl): Call mudflap_enqueue_decl.
1096         (assemble_static_space):
1097         (assemble_trampoline_template): Set and return
1098         TRAMPOLINE_ALIGNMENT.
1099         * varray.c (element): Add GENERIC_PTR_NOGC entry.
1100         Add entry for 'tree *'.
1101         Add entry for struct edge_def *.
1102         (varray_copy): New.
1103         * varray.h (enum varray_data_enum): Add
1104         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
1105         VARRAY_DATA_TREE_PTR.
1106         (union varray_data_tag): Corresponding changes.
1107         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
1108         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
1109         VARRAY_EDGE, VARRAY_TREE_PTR,
1110         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
1111         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
1112         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
1113
1114         * config/*/*: Various updates for changed macros, tree
1115         codes, etc.  Check ChangeLog.tree-ssa.
1116
1117         * doc/cfg.texi: New file.
1118         * doc/tree-ssa.texi: New file.
1119         * doc/c-tree.texi: Document new codes.
1120         * doc/gccint.texi: Include new files.
1121         * doc/install.texi: Document new features.
1122         * doc/invoke.texi: Document new switches.
1123         * doc/passes.texi: Document new passes.
1124         * doc/rtl.texi: Update changed RTL codes.
1125         * doc/sourcebuild.texi: Update build instructions.
1126         * doc/standards.texi: Document Fortran changes.
1127         * doc/tm.texi: Update.
1128
1129 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
1130
1131         Replace several arrays with a struct of arrays.
1132         * combine.c (struct reg_stat): New.
1133         (init_reg_last_arrays): Renamed to...
1134         (init_reg_last): ...this.  Callers adjusted.
1135         (reg_stat): New.
1136         (combine_instructions): Allocate it and use it.
1137         (reg_last_death, reg_last_set, reg_last_set_value,
1138         reg_last_set_label, reg_last_set_table_tick,
1139         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
1140         reg_last_set_mode, reg_last_set_nonzero_bits,
1141         reg_last_set_sign_bit_copies): Replace throughout
1142         with items of reg_stat.
1143
1144 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1145
1146         PR optimization/15100
1147         * combine.c (distribute_notes): Don't create a dangling
1148         REG_LIBCALL/REG_RETVAL note.
1149
1150 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1151
1152         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
1153
1154         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
1155         negv2si2.
1156
1157 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1158
1159         * doc/md.texi (Standard Names): Fix typo in vec_init description.
1160
1161 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
1162
1163         * doc/gty.texi (GTY Options): Clarify example.
1164
1165 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
1166
1167         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
1168         Add const qualifier to altivec vector type if one is needed.
1169
1170 2004-05-11  Paul Brook  <paul@codesourcery.com>
1171
1172         * flags.h (flag_short_enums): Update comment.
1173         * opts.c (decode_options): Set flag_short_enums to 2.
1174         * toplev.c (flag_short_enums): Update comment.
1175         (process_options): Call default_short_enums target hook.
1176
1177 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
1178
1179         PR target/14063
1180         * config/rs6000/altivec.md (altivec_dssall):
1181         Change to unspec_volatile.
1182         (altivec_dss): Likewise.
1183
1184 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
1185
1186         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
1187         vnor.
1188         ("one_cmplv8hi2"): Same.
1189         ("one_cmplv4si2"): Same.
1190
1191 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1192
1193         PR target/15130
1194         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
1195         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
1196         into account.  Compute the correct number of general registers
1197         for the return value.  Generate a special push/pop sequence when
1198         failing to get a temporary register for non SHmedia epilogue.
1199         (sh_expand_epilogue): Add an argument to show whether it's for
1200         sibcall or not.  Set the 3rd argument of output_stack_adjust to
1201         -1 if needed.
1202         (sh_need_epilogue): Call sh_expand_epilogue with 0.
1203         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
1204         with 1.
1205         (epilogue): Call sh_expand_epilogue with 0.
1206
1207 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
1208
1209         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
1210         goto a cleanup label.  After the cleanup, free the allocated memory.
1211
1212 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
1213
1214         * config/rs6000/altivec.h (vec_sld): Add overloads for
1215         argument/return types of 'vector bool int', 'vector bool short'
1216         and 'vector bool char'.
1217
1218 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
1219
1220         * c-decl.c (store_parm_decls_newstyle): Correct test for a
1221         nested function.
1222
1223 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
1224
1225         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
1226         treating missing ones as "".
1227         * config/mips/mips.md: Remove constraints from match_operands and
1228         match_scratches if they appear in define_expands (except reload*),
1229         define_peephole2s, define_splits or attribute specifications.
1230         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
1231         constraint strings.
1232
1233 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1234
1235         * config/rs6000/rs6000.c (function_arg_boundary): Always align
1236         AltiVec vectors.
1237         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
1238         vectors by refererence.  Align the same for TARGET_64BIT to a 16
1239         byte boundary.  Remove useless code.  Add function comment.
1240         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
1241         call to where it belongs.
1242         (function_arg_partial_nregs): Return true for all TARGET_32BIT
1243         -mabi=no-altivec AltiVec vectors.  Fix debug output.
1244         (rs6000_va_arg): Adjust for AltiVec change.
1245
1246 2004-05-10  Paul Brook  <paul@codesourcery.com>
1247
1248         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1249         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1250         (TARGET_DOUBLEWORD_ALIGN): Use it.
1251         (WCHAR_TYPE): Define.
1252         (WCHAR_SIZE_TYPE): Define.
1253         (SIZE_TYPE): Define.
1254
1255 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1256
1257         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
1258         when size is 8 bytes.
1259         (function_arg_advance): Account for stack space used by AltiVec
1260         args when -mabi=altivec.  Simplify alignment calculations.  For
1261         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
1262         (function_arg): Similarly.
1263         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
1264         not AltiVec ABI.
1265         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
1266         Correct alignment, and align before testing reg count.  Remove
1267         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
1268         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
1269         TARGET_FPRS here..
1270         (rs6000_function_value): .. not here before call.
1271
1272 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1273
1274         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
1275
1276 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
1277
1278         PR 15007
1279         * c-decl.c (current_file_decl): Rename to all_translation_units,
1280         adjust comment.
1281         (pop_scope): If popping file_scope, construct a
1282         TRANSLATION_UNIT_DECL and make it the context of all the
1283         symbols in the scope.
1284         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
1285         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
1286         anything to current_file_decl.
1287         (pushdecl_top_level): Likewise.
1288         (store_parm_decls_newstyle): Adjust check for nested function.
1289         (c_write_global_declarations): Update for renamed variable.
1290
1291 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1292
1293         * config/rs6000/rs6000-protos.h
1294         (rs6000_conditional_register_usage): Protoize.
1295
1296         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
1297
1298         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
1299         function.
1300
1301 2004-05-08  Roger Sayle  <roger@eyesopen.com>
1302
1303         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
1304         where op is a comparison operator and C1 and C2 are integer constants
1305         into a range check.
1306         (fold): Call fold_div_compare.
1307
1308 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1309
1310         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
1311         problems with earlier versions of the GNU compiler.
1312
1313 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
1314
1315         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
1316         Declare.
1317
1318         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
1319         (rs6000_hard_regno_mode_ok): New.
1320         (rs6000_init_hard_regno_mode_ok): New.
1321         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
1322
1323         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
1324         result.
1325
1326 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
1327
1328         * config/rs6000/altivec.h (vector, pixel, bool): Do not
1329         define as macros #ifdef __APPLE_ALTIVEC__.
1330
1331 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
1332
1333         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
1334         Generate appropriate parallels for vector arguments
1335         passed to vararg functions. (function_arg): make the call
1336         to rs6000_mixed_function_arg for vector args as needed.
1337
1338 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1339
1340         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
1341         EABI_FLOAT_VARARGS_P.
1342
1343 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1344
1345         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
1346         * config/mips/mips.c (override_options): Disable branch likely
1347         instructions if TUNE_MIPS5500.
1348
1349 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1350
1351         * config/mips/mips.c (override_options): Allow the hi and lo registers
1352         to store any integral mode, not just MODE_INTs.
1353
1354 2004-05-07  Paul Brook  <paul@codesourcery.com>
1355
1356         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1357         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1358         (TARGET_DOUBLEWORD_ALIGN): Use it.
1359         (WCHAR_TYPE): Define.
1360         (WCHAR_SIZE_TYPE): Define.
1361         (SIZE_TYPE): Define.
1362
1363 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1364
1365         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
1366         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
1367
1368 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
1369
1370         * loop-doloop.c (doloop_valid_p): Make sure that body
1371         gets freed.
1372
1373 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
1374
1375         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
1376         declaration.
1377         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
1378         (sparc_skip_caller_unimp): New global variable.
1379         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
1380         Use it instead of SKIP_CALLERS_UNIMP_P.
1381         * config/sparc/sparc.md (call expander): Add sanity check.
1382         (call_address_struct_value_sp32): Re-sync with expander.
1383         (call_symbolic_struct_value_sp32): Likewise.
1384         (return peepholes): Use 'sparc_skip_caller_unimp' instead
1385         of custom predicate.
1386
1387 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1388
1389         PR c++/14962
1390         * c-pragma.c (handle_pragma_redefine_extname): Only change
1391         the assembler name of FUNCTION_DECLs and VAR_DECLs.
1392
1393 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1394
1395         * optabs.h (enum optab_index): Add new OTI_log1p.
1396         (log1p_optab): Define corresponding macro.
1397         * optabs.c (init_optabs): Initialize log1p_optab.
1398         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
1399         patterns.
1400         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
1401         using log1p_optab.
1402         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
1403         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1404
1405         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
1406
1407         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
1408         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
1409         Prototype here.
1410         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
1411         x87's fyl2xp1 instruction.
1412         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
1413         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
1414         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
1415         log1p  and log1pl built-ins as inline x87 intrinsics.
1416
1417 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
1418
1419         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
1420         * config/arm/freebsd.h: Likewise.
1421         * config/ia64/freebsd.h: Likewise.
1422         * config/sparc/freebsd.h: Likewise.
1423
1424 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
1425
1426         PR optimization/15296
1427         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
1428         getting last consecutive label at a branch.
1429         (relax_delay_slots): Similar, near top of loop.
1430
1431 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1432
1433         PR target/15202
1434         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
1435         register to general register.
1436
1437 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
1438
1439         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
1440         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
1441         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
1442         (STACK_BOUNDARY): Delete.
1443
1444 2004-05-06  Stuart Hastings  <stuart@apple.com>
1445
1446         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
1447         mistakenly clobbered by 1.423.
1448
1449 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1450
1451         * doc/invoke.texi: Document -mvr4130-align.
1452         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
1453         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
1454         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
1455         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
1456         * config/mips/mips.md: Include sched-int.h.
1457         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
1458         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
1459         (override_options): Enable -mvr4130-align at -O3 and above.
1460         (mips_sim_insn): New variable.
1461         (mips_sim): New structure.
1462         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
1463         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
1464         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
1465         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
1466         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
1467         (mips_reorg): Call vr4130_align_insns.
1468         (vr4130_last_insn): New variable.
1469         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
1470         (vr4130_swap_insns_p, vr4130_reorder): New functions.
1471         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
1472         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
1473         (mips_use_dfa_pipeline_interface): Return true for the same.
1474         * config/mips/4130.md: New file.
1475         * config/mips/mips.md: Include it.  Add a peephole2 to convert
1476         "mult;mflo" into "mtlo;macc".
1477         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
1478         target of maccs.
1479         (*msac_using_macc): New pattern.
1480
1481 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1482
1483         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
1484         (ir_vr55_hilo): Split into...
1485         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
1486         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
1487         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
1488         Add various multiplication bypasses.
1489         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
1490         multiplication.
1491
1492 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
1493
1494         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
1495         attribute to "XF".
1496
1497 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
1498
1499         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
1500         (fmod_optab, drem_optab): Define corresponding macros.
1501         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
1502         * genopinit.c (optabs): Implement fmod_optab and drem_optab
1503         using fmod?f3 and drem?f3 patterns.
1504         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
1505         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
1506         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
1507         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
1508         flag_unsafe_math_optimizations is set.
1509
1510         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
1511         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
1512
1513         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
1514         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
1515         Prototype here.
1516         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
1517         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
1518         fprem and fprem1 instructions.
1519         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
1520         Rename insn definition to x86_fnstsw_1.
1521         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
1522         x87 instructions.
1523         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
1524         and fmodl built-ins as inline x87 intrinsics.
1525         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
1526         and dreml built-ins as inline x87 intrinsics.
1527
1528 2004-05-05  Roger Sayle  <roger@eyesopen.com>
1529
1530         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
1531
1532 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
1533
1534         PR driver/9822
1535         * doc/invoke.texi (Spec Files): Remove documentation of %c.
1536
1537 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
1538
1539         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
1540         representation.
1541
1542 2004-05-06  Paul Brook  <paul@codesourcery.com>
1543
1544         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
1545         (arm_coproc_mem_operand): ... To this.
1546         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
1547         (arm_legitimate_index_p): Ditto.
1548         (vfp_mem_operand): Rename ...
1549         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
1550         (vfp_secondary_reload_class): Use it.
1551         (output_move_double): Use doubleword load/store instructions.
1552         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
1553         * config/arm/arm.h (TARGET_LDRD): Define.
1554         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
1555         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
1556         New splitter for invalid doubleword loads.
1557         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
1558         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
1559         * doc/md.texi: Document Uy constraint.
1560
1561 2004-05-05  Jan Hubicka  <jh@suse.cz>
1562
1563         PR opt/14980
1564         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
1565         inline clones.
1566
1567 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1568
1569         PR target/15290
1570         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
1571         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
1572
1573 2004-05-05  Mike Stump  <mrs@apple.com>
1574
1575         * config/darwin-c.c (add_framework): Copy the directory name as it
1576         can be freed later.  Also, ensure we always allocate enough room
1577         for the cached framework information.
1578         (find_subframework_header): Keep track of the directory where the
1579         subframework header was found.
1580         (framework_construct_pathname): Speed up by not trying to re-add a
1581         framework.
1582         * cppfiles.c (search_path_exhausted): Arrange for the missing
1583         header callback to be able to set the directory where the header
1584         was found.
1585         (cpp_get_dir): Add.
1586         * cpplib.h (missing_header_cb): Add a parameter.
1587         (cpp_get_dir): Add.
1588
1589 2004-05-03  Mike Stump  <mrs@apple.com>
1590
1591         * doc/invoke.texi (Directory Options): Document -iquote.
1592         * doc/cpp.texi: Likewise.
1593         * doc/cppopts.texi: Likewise.
1594         * c-opts.c (c_common_missing_argument): Add -iquote processing.
1595         (c_common_handle_option): Likewise.
1596         * c.opt (iquote): Add.
1597         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
1598         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
1599
1600         * c-opts.c (case OPT_I): Deprecate -I- support.
1601         * doc/invoke.texi: Likewise.
1602         * doc/cpp.texi: Likewise.
1603         * doc/cppopts.texi: Likewise.
1604
1605 2004-05-05  Steven Bosscher  <stevenb@suse.de>
1606
1607         * basic-block.h (free_basic_block_vars): Update prototype.
1608         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
1609         argument.
1610         (life_analysis): Update call.
1611         * ifcvt.c (if_convert): Likewise.
1612         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
1613         * passes.c (rest_of_handle_final): Likewise.
1614         (rest_of_compilation): Likewise.
1615         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1616
1617         * emit-rtl.c (next_real_insn): Use INSN_P.
1618         (prev_real_insn): Likewise.
1619
1620 2004-05-05  Eric Christopher  <echristo@redhat.com>
1621
1622         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
1623         representation.
1624
1625 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
1626
1627         * config/rs6000/rs6000.c (build_opaque_vector_type):
1628         New function.
1629         (rs6000_init_builtins): Use it.
1630
1631 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
1632
1633         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
1634         (func_table): Change type from char ** to vms_func_ref.
1635         (write_rtnbeg):  Update to reflect func_table change.  Use
1636         fde->funcdef_number instead of rtnnum in output.
1637         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
1638
1639 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
1640             Richard Henderson  <rth@redhat.com>
1641
1642         PR target/14899
1643
1644         * c-common.c (vector_types_convertible_p): New function.
1645         * c-typeck.c (comptypes): Recurse on vector types.
1646         (convert_for_assignment): Use vector_types_convertible_p.
1647         (digest_init): Use vector_types_convertible_p to check
1648         validness of constant vector initializers; otherwise treat
1649         them as scalars.
1650         * tree.c (make_or_reuse_type): New.
1651         (build_common_tree_nodes): Use it.
1652         * cp/call.c (standard_conversion): Likewise.
1653         * cp/typeck.c (comptypes): Recurse on vector types.
1654         (convert_for_assignment): Use vector_types_convertible_p.
1655
1656 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
1657
1658         * config/mips/mips.c (override_options): Default to no
1659         generation of branch-likely operations when tuning for
1660         CPUs where they tend to have a negative performance impact
1661         (e.g., SB-1).
1662
1663 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1664
1665         * expr.c (store_constructor_field): Don't call store_constructor
1666         if bitsize is not a multiple of a byte.
1667
1668 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
1669
1670         * reload1.c (inherit_piecemeal_p): New function.
1671         (emit_reload_insns): When reloading a group of hard registers, use
1672         inherit_piecemeal_p to decide whether the values of individual hard
1673         registers can be inherited.
1674
1675 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1676
1677         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
1678         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
1679         * config/t-linux (LIB2ADDEHDEP): Likewise.
1680
1681 2004-05-04  Paul Brook  <paul@codesourcery.com>
1682
1683         * config/arm/crti.asm: Push an even number of registers.
1684         * config/arm/crtn.asm: And restore them.  Load via sp.
1685
1686 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
1687
1688         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
1689         Collect overhead information.
1690         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
1691         parameter and pass it through.
1692         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
1693         MEM_STAT_DECL parameter and pass it through.
1694         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
1695         MEM_STAT_DECL parameter and pass it through.
1696
1697 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
1698
1699         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
1700
1701         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
1702
1703         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
1704         rs6000_hard_regno_nregs.
1705
1706 2004-05-03  Eric Christopher  <echristo@redhat.com>
1707
1708         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
1709         prologue insn instead of setting up call.
1710         (s390_emit_epilogue): Ditto.
1711         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
1712         (define_constants): Add numbers for above patterns.
1713
1714 2004-05-03  Eric Christopher  <echristo@redhat.com>
1715
1716         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
1717         * config/s390/s390.c (s390_conditional_register_usage): ...here.
1718         * config/s390/s390-protos.h: Prototype.
1719
1720 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
1721
1722         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
1723         assignment.
1724
1725 2004-05-03  Eric Christopher  <echristo@redhat.com>
1726
1727         * config/mips/mips.md: Fix branch length attribute definition.
1728
1729 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
1730
1731         * config.gcc: Remove --enable-altivec support.
1732
1733         * config/rs6000/altivec-defs.h: Remove.
1734
1735 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1736
1737         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
1738         * fixinc/fixincl.x: Regenerate.
1739
1740 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
1741
1742         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
1743         definition.
1744         (log?f2, log10?f2, log2?f2): Reimplement expanders with
1745         float_truncate insn.
1746         (*fxtractsf3, *fxtractdf3): Remove insn definition.
1747         (logb?f2): Reimplement expanders with float_truncate insn.
1748
1749 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
1750
1751         PR 14718
1752         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
1753         force_type_die for CONST_DECL.
1754
1755 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1756             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1757
1758         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
1759         tm-dwarf2.h to tm_file.
1760         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
1761         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
1762         (ASM_DEBUG_SPEC): Delete.
1763
1764 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
1765
1766         * optabs.h (enum optab_index): Add new OTI_expm1.
1767         (expm1_optab): Define corresponding macro.
1768         * optabs.c (init_optabs): Initialize expm1_optab.
1769         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
1770         patterns.
1771         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
1772         using expm1_optab.
1773         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
1774         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1775
1776         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
1777         to implement expm1, expm1f and expm1l built-ins as inline x87
1778         intrinsics.
1779
1780 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
1781
1782         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
1783         * config/frv/frv.md (*return_true, *return_false): New patterns.
1784
1785 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1786
1787         * rtl.h (PHI_NODE_P): Remove.
1788
1789 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
1790
1791         PR middle-end/14988
1792         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
1793         when passed -2 as 'align'.
1794         (put_var_into_stack): Use 'bool' as the type for the three local
1795         predicates.  Adjust calls to put_reg_into_stack.
1796         When passed a CONCAT, instruct put_reg_into_stack to use
1797         a consecutive stack slot for the second part.
1798         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
1799         'consecutive_p' parameter.  Turn the three predicates into 'bool'
1800         parameters.  Retrieve the register mode from 'reg'.
1801         When consecutive_p is true, instruct assign_stack_local_1 to use
1802         BITS_PER_UNIT alignment.
1803         (put_addressof_into_stack): Use 'bool' as the type for the two
1804         local predicates. Adjust call to put_reg_into_stack.
1805
1806 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1807
1808         * fold-const.c (fold_convert_const, fold): Add missing
1809         FIX_ROUND_EXPR case.
1810
1811 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
1812
1813         * configure.ac (FLEX, BISON): Only use tools from the build tree
1814         if build equals host.
1815         * configure: Rebuilt.
1816
1817         * config/frv/frv-protos.h (frv_expand_epilogue,
1818         frv_expand_fdpic_call): Add bool argument.
1819         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
1820         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
1821         (frv_expand_epilogue): Use new argument to decide whether to emit
1822         return instruction or copy the return address to LR.
1823         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
1824         sibcalls.
1825         (sibcall_operand): New.
1826         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
1827         PLUS nor LABEL_REF.  Add sibcall_operand.
1828         * config/frv/frv.md (call, call_value): Pass false to
1829         frv_expand_fdpic_call.
1830         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
1831         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
1832         sibcall_value_internal, sibcall_value_fdpicdi): New.
1833         (return_unsigned_true, return_unsigned_false): New.
1834         (epilogue): Adjust call to frv_expand_epilogue.
1835         (sibcall_epilogue): New.
1836
1837         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
1838         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
1839         before redefining them.
1840
1841 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1842
1843         * builtins.c (fold_fixed_mathfn): New function.
1844         (fold_builtin_lround, fold_builtin): Use it.
1845
1846 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
1847
1848         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
1849         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
1850
1851 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1852
1853         * config/cris/cris.h: Revert my "fix comment typos" patch.
1854
1855 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
1856
1857         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
1858
1859 2004-05-01  Falk Hueffner  <falk@debian.org>
1860
1861         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
1862         builtin_insll): Disallow 0 as first input operand.
1863
1864 2004-05-01  Falk Hueffner  <falk@debian.org>
1865
1866         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
1867
1868 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
1869
1870         PR middle-end/15054
1871         * expr.c (expand_expr_real): Do not call preserve_temp_slots
1872         on a TARGET_EXPR temp.
1873         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
1874         TARGET_EXPR temp slots.
1875
1876 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
1877
1878         * simplify-rtx.c (simplify_ternary_operation): When
1879         converting an IF_THEN_ELSE to a relational op, return
1880         correct mode.
1881
1882 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1883
1884         * builtins.c (fold_builtin_round): Fix comment typo.
1885         (fold_builtin_lround): New function.
1886         (fold_builtin): Use it.
1887
1888 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
1889
1890         PR target/11608
1891         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
1892         more like the one in config/dbxelf.h.
1893
1894 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
1895
1896         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
1897         and adjust definition accordingly.
1898         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
1899         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
1900         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
1901         VECTOR_TYPE.
1902
1903 2004-04-30  Jason Merrill  <jason@redhat.com>
1904
1905         PR c++/14587
1906         * config/i386/winnt.c (associated_type): Look for attributes on
1907         the TYPE_MAIN_VARIANT of *this.
1908         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
1909         apply the attributes to the variants.
1910
1911 2004-04-30  Paul Brook  <paul@codesourcery.com>
1912
1913         * config.gcc: Simplify arm --with-{cpu,tune} test.
1914         * config/arm/arm-cores.def: Document whitespace restrictions.
1915
1916 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1917
1918         PR other/1963
1919         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
1920
1921 2004-04-30  Brian Ford  <ford@vss.fsi.com>
1922             DJ Delorie  <dj@redhat.com>
1923
1924         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
1925         (DWARF2_DEBUGGING_INFO): Define to enable.
1926         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
1927         DWARF2.
1928         * configure.ac (Target-specific assembler checks)
1929         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
1930         relocs.
1931         * configure: Regenerate.
1932         * config.in: Likewise.
1933
1934         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
1935         (ASM_OUPUT_DWARF_OFFSET): Define.
1936
1937 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
1938
1939         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
1940         (s390_emit_call): New function prototype added.
1941         (s390_tls_get_offset): Function removed.
1942         * config/s390/s390.c (s390_function_ok_for_sibcall,
1943         s390_call_saved_register_used_p): New functions.
1944         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
1945         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
1946         (s390_emit_tls_call_insn): New function.
1947         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
1948         emit_call_insn.
1949         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
1950         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
1951         added.
1952         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
1953         register number used to hold the target address for sibcalls.
1954         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
1955         New expanders.
1956         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
1957         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
1958         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
1959         Expanders removed.
1960         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
1961         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
1962         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
1963         ("epilogue"): Changed the call to s390_emit_epilogue to use the
1964         new parameter.
1965
1966 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
1967
1968         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
1969         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
1970         reg-stack.c, varasm.c, config/alpha/ev4.md,
1971         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
1972         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
1973         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
1974         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
1975         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
1976         config/ia64/itanium2.md, config/ip2k/ip2k.c,
1977         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
1978         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
1979         comment typos.
1980
1981 2004-04-30  Paul Brook  <paul@codesourcery.com>
1982
1983         * config.gcc: Default ep9312 to hard-float.
1984         * config/arm/arm-cores.def: Add ARCH field.
1985         * config/arm/arm.c (FL_FOR_ARCH*): Define.
1986         (arm_arch_cirrus): New variable.
1987         (all_cores): Set and use arch.
1988         (all_architectures): Ditto.
1989         (arm_arch_name): New variable.
1990         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
1991         Set and use arm_arch_cirrus.
1992         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
1993         (enum processor_type): Update ARM_CORE define.
1994         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
1995         (CPP_SPEC): Remove %(cpp_cpu_arch).
1996         (CPP_ARCH_DEFAULT_SPEC): Remove.
1997         (CPP_CPU_ARCH_SPEC): Remove.
1998         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
1999         (FPUTYPE_DEFAULT): Don't define here.
2000
2001 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
2002
2003         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
2004         updates too.
2005
2006 2004-04-30  Paul Brook  <paul@codesourcery.com>
2007
2008         * arm.c (arm_needs_doubleword_align): Use mode alignment.
2009
2010 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
2011
2012         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
2013         vec_sububs.
2014         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
2015         duplicates.
2016
2017 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2018
2019         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
2020         atan2?f3 expanders.
2021
2022 2004-04-29  Nick Clifton  <nickc@redhat.com>
2023
2024         Bug 14093
2025         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
2026         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
2027         Delete static from definition.
2028         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
2029
2030 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2031
2032         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
2033         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
2034         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
2035         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
2036
2037 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
2038
2039         * commom.opt (Wfatal-errors): Add it.
2040         * diagnostic.c (flag_fatal_errors): Define it.
2041         (diagnostic_action_after_output): Check for flag_fatal_errors.
2042         * flags.h (flag_fatal_errors): Declare it.
2043         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
2044         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
2045
2046 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
2047
2048         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
2049         blocks which have kill flag set.
2050
2051 2004-04-29  Ben Elliston  <bje@au.ibm.com>
2052
2053         * configure.ac (--with-as): Abort if user-supplied assembler
2054         cannot be executed.
2055         (--with-ld): Likewise for the linker.
2056         * configure: Regenerate.
2057
2058 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2059
2060         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
2061         isn't NULL before using it.
2062
2063 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
2064
2065         PR target/15189
2066         * config/mips/mips.md (load_df_low): Use default length.
2067         (load_df_high, store_df_high): Likewise.
2068
2069 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2070
2071         * config/mips/mips.md, config/mips/sb1.md,
2072         config/rs6000/rs6000.c: Fix comment typos.
2073
2074 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2075
2076         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
2077         Fix comment typos.
2078
2079 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
2080
2081         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
2082         (delete_if_ordinary): Use above macro.
2083         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
2084         Update copyright.
2085         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
2086
2087 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
2088
2089         * c-decl.c (get_parm_info): Use the correct tag keywords when
2090         warning about type declarations in prototypes.
2091
2092 2004-04-29  Paul Brook  <paul@codesourcery.com>
2093
2094         * config.gcc: Pull list of cores from arm-cores.def.
2095
2096 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2097
2098         * combine.c (combine_simplify_rtx): Adjust call to use
2099         simplify_relational_operation.  Do not use SELECT_CC_MODE
2100         when a comparison already has a MODE_CC mode.
2101
2102 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2103
2104         (simplify_set): simplify_relational_operation may now
2105         return another relational expression.
2106         * cse.c (fold_rtx): simplify_relational_operation now
2107         takes of computing the comparison mode.
2108         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
2109         remove dead code.
2110         (do_compare_rtx_and_jump): Likewise.
2111         * integrate.c (subst_constants): simplify_relational_operation
2112         may now return another relational expression.
2113         * simplify-rtx.c (simplify_gen_relational): Move most code to
2114         the new simplify_relational_operation and
2115         simplify_relational_operation_1 functions.
2116         (simplify_relational_operation): Rewritten.
2117         (simplify_relational_operation_1): New function.
2118         (simplify_ternary_operation): simplify_relational_operation
2119         may now return another relational expression.
2120         (simplify_rtx): Remove unnecessary temp variable.
2121
2122 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
2123
2124         * reg-stack.c (swap_to_top): New function.
2125         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
2126         swap_to_top().
2127         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
2128         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
2129         UNSPEC_FSCALE_EXP.
2130
2131         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
2132         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
2133         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
2134         x87's fscale insn.
2135         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
2136         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
2137         patterns.
2138
2139 2004-04-28  Serge Belyshev  <1319@bot.ru>
2140
2141         PR 14944
2142         * coverage.c (read_counts_file): Fix usage of warning () call.
2143         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
2144
2145 2004-04-28  Ben Elliston  <bje@au.ibm.com>
2146
2147         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
2148         options with "-" in the option index.
2149         (SPARC Options): Likewise.
2150         (M32R/D Options): Likewise.
2151
2152 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2153
2154         * convert.c (convert_to_integer): Convert (long)round -> lround,
2155         etc.
2156
2157 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
2158
2159         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
2160         Return false if we do not have fp register.
2161         (addrs_ok_for_quad_peep): Rename to ...
2162         (mems_ok_for_quad_peep): this.
2163         Add check for volatile memory.
2164         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
2165         Rename to ...
2166         (mems_ok_for_quad_peep): this.
2167         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
2168         to peephole2's.
2169         (lfq_power2): New instruction.
2170         (stfq_power2): Likewise.
2171
2172 2004-04-28  Jan Hubicka  <jh@suse.cz>
2173
2174         PR c/15004
2175         * function.c (do_warn_unused_parameter): Break out form ...
2176         (expand_function_end): ... here; warn only when not using cgraphunit.
2177         * function.h (do_warn_unused_parameter): Declare.
2178         * cgraphunit.c: Include function.h.
2179         (cgraph_finalize_function): Do unused parameter warning.
2180         * Makefile.in (cgraphunit.o): Depend on function.h
2181
2182 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2183
2184         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
2185         calling install-info on $(DESTDIR)$(infodir)/dir already being
2186         present.
2187
2188 2004-04-28  Paul Brook  <paul@codesourcery.com>
2189
2190         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
2191
2192 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2193
2194         * gcse.c (find_moveable_store): Do not accept store insns with
2195         REG_EH_REGION note.
2196
2197 2004-04-28  Paul Brook  <paul@codesourcery.com>
2198
2199         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
2200         * function.c (assign_temp): Ditto.
2201         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
2202
2203 2004-04-28  Paul Brook  <paul@codesourcery.com>
2204
2205         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
2206
2207 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
2208
2209         * var-tracking.c (variable_different_p): Add a parameter
2210         compare_current_location, compare current location of variable parts
2211         if it is true.
2212         (dataflow_set_different_1): Pass compare_current_location == false.
2213         (dataflow_set_different_2): Pass compare_current_location == false.
2214         (emit_notes_for_differences_1): Pass compare_current_location == true.
2215
2216 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2217
2218         * config/s390/s390.md ("casesi"): Mark jump table access as
2219         non-trapping and unchanging.
2220
2221 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2222
2223         PR debug/14829
2224         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
2225         callers.
2226         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
2227         number for indexing hard_regno_nregs array.
2228
2229 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
2230
2231         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
2232         * config/darwin-crt2.c: Only have contents on __ppc__.
2233
2234 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
2235
2236         * config/xtensa/xtensa.c (call_insn_operand): Check
2237         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
2238         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
2239         * config/xtensa/xtensa.md (call, call_value): Likewise.
2240
2241 2004-04-27  Wu Yongwei  <adah@sh163.net>
2242
2243         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
2244         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
2245         (__gthread_mutex_init_function): Replace CreateMutex with
2246         initialization of custom mutex using CreateSemaphore.
2247         (__gthread_mutex_lock): Use InterlockedIncrement.
2248         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
2249         (__gthread_mutex_unlock): Use InterlockedDecrement and
2250         ReleaseSemaphore to unlock
2251         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
2252         __gthread_mutex_lock, __gthread_mutex_trylock,
2253         __gthread_mutex_unlock): Adjust to match inline versions in
2254         gthr-win32.h.
2255
2256 2004-04-27  Paul Brook  <paul@codesourcery.com>
2257
2258         * config/arm/arm.c (arm_promote_prototypes): New function.
2259         (TARGET_PROMOTE_PROTOTYPES): Use it.
2260
2261 2004-04-27  Paul Brook  <paul@codesourcery.com>
2262
2263         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
2264
2265 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
2266
2267         * config/alpha.c (alpha_end_function): For OpenVMS gas,
2268         correctly output .pdesc directive before .end.
2269
2270 2004-04-26  James E Wilson  <wilson@specifixinc.com>
2271
2272         Bug 14927
2273         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
2274         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
2275
2276 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
2277
2278         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
2279         * config/pa/pa-hpux10.h: Likewise.
2280         * config/pa/pa-hpux11.h: Likewise.
2281
2282 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
2283
2284         * doc/invoke.texi (Overall Options): Document default for -o
2285         for PCH files.
2286
2287 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2288
2289         * builtins.c (expand_builtin_update_setjmp_buf): New function.
2290         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
2291         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
2292
2293 2004-04-26  Paul Brook  <paul@codesourcery.com>
2294
2295         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
2296
2297 2004-04-26  Paul Brook  <paul@codesourcery.com>
2298
2299         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
2300
2301 2004-04-25  Roger Sayle  <roger@eyesopen.com>
2302
2303         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
2304         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
2305         X % -1 as 0.
2306
2307 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
2308
2309         PR bootstrap/15141
2310         * except.c (connect_post_landing_pads): Delete insns after the
2311         barrier when generating a unwind_resume_libfunc call.
2312
2313 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2314
2315         PR/c++ 15119
2316         * tree.c (substitute_placeholder_in_expr, case 4): New case,
2317         for TARGET_EXPR.
2318
2319 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2320
2321         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2322         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
2323         inhibit_libc is defined.
2324
2325 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
2326
2327         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
2328         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
2329         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
2330         (TARGET_SCHED_VARIABLE_ISSUE): Define.
2331         (mips_adjust_cost): Move later in file, next to other sched hooks.
2332         (mips_macc_chains_last_hilo): New variable.
2333         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
2334         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
2335         * config/mips/mips.md (may_clobber_hilo): New attribute.
2336
2337 2004-04-24  Roger Sayle  <roger@eyesopen.com>
2338             Bruce Korb  <bkorb@gnu.org>
2339
2340         * fixinc/inclhack.def (aix_syswait_2): New fix.
2341         * fixinc/fixincl.x: Regenerate.
2342         * fixinc/tests/base/sys/wait.h: Update for new test.
2343
2344 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
2345
2346         PR target/14960
2347         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
2348         to non_fixed_size, and leave out fixed_size from the sum.
2349         (generate_set_vrsave): Correct clobbers.
2350         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
2351         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
2352         (rs6000_libcall_value): Likewise.
2353         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
2354         (FUNCTION_ARG_REGNO_P): Likewise.
2355
2356 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2357
2358         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
2359         is a CONST_INT.
2360         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
2361         with NARROW_OP1 instead of OP1.
2362
2363 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2364
2365         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
2366         and __s390x__ hosts.
2367
2368 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2369
2370         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
2371         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
2372         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
2373         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
2374         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
2375         * builtins.c (expand_builtin_fork_or_exec): New.
2376         (expand_builtin): Call it.
2377         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
2378         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
2379         * c-common.c (PID_TYPE): New macro.
2380         (c_common_nodes_and_builtins): Initialize pid_type_node.
2381         * calls.c (special_function_p): Do not handle fork and exec.
2382         (expand_call): Do not handle ECF_FORK_OR_EXEC.
2383         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2384         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
2385         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2386         __gcov_execv, __gcov_execvp, __gcov_execve): New.
2387         * tree.h (enum tree_index): Add TI_PID_TYPE.
2388         (pid_type_node): New macro.
2389         (ECF_FORK_OR_EXEC): Removed.
2390
2391 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2392
2393         PR optimization/13985
2394         * cfgloopmanip.c (fix_loop_placements): New prototype.
2395         Call fix_bb_placements on the preheader of loops that have
2396         been reparented.
2397         (remove_path): Adjust call to fix_loop_placements.
2398
2399 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2400
2401         * config/darwin7.h: New file.
2402         * config.gcc (*-*-darwin*): Add darwin7.h if the
2403         version is greater than 6.
2404         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
2405         (MATH_LIBRARY): Wrap in ifdefs.
2406
2407 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
2408
2409         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
2410         loading iWMMXt registers with a frame pointer.  Use post-increment
2411         without a frame pointer.
2412         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
2413
2414 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
2415
2416         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
2417         mode" rather than "-funit-at-a-time" since -O2 enables it
2418         without requiring -f* options.  Refer to -fprofile-generate and
2419         -fprofile-use correctly.  Move -funit-at-a-time among options
2420         enabled by -O.  Add information about unit-at-a-time caveats.
2421
2422 2004-04-22  Per Bothner  <per@bothner.com>
2423
2424         * line-map.h (struct line_maps):  New field highest_line.
2425         (linemap_position_for_column):  Make non-inline function.
2426         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
2427         * line-map.c (linemap_init):  Clear highest_line field.
2428         (linemap_add):  Set highest_line field.
2429         (linemap_line_start):  Minor optimization - use highest_line field.
2430         Reduce maximum column hint to 10000.  Update highest_line field.
2431         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
2432         * cpphash.h (struct cpp_reader):  Remove line field - instead use
2433         line_table->highest_line.
2434         (saved_line):  Remove unused field.
2435         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
2436         Use  line_table's highest_line field instead of cpp_reader's line.
2437         * cpplib.c (start_directive):  Likewise use highest_line field.
2438         (do_line, do_linemarker):  Likewise just use newest map.
2439         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
2440         * cpperror.c (cpp_error):  Likewise use highest_line field.
2441         * cppfiles.c (open_file_failed:  Likewise.
2442         (cpp_make_system_header):  Likewise use newest map and highest_line.
2443         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
2444         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
2445         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
2446         _cpp_lex_direct):  Likewise use highest_line.
2447         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
2448         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
2449         and use newest map.
2450         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
2451         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
2452         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
2453
2454 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
2455
2456         PR bootstrap/14992
2457         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
2458         * config/linux.h (USE_LD_AS_NEEDED): Define.
2459         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
2460         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
2461         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
2462         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
2463         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
2464         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
2465         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
2466
2467 2004-04-22  Per Bothner  <per@bothner.com>
2468
2469         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
2470         Fixes PR preprocessor/15067.
2471
2472 2004-04-23  Andreas Schwab  <schwab@suse.de>
2473
2474         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
2475         avoid aliasing warning.
2476
2477 2004-04-22  Jan Hubicka  <jh@suse.cz>
2478             Mostafa Hagog <mustafa@il.ibm.com>
2479
2480       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
2481       * cfgloopanal.c (expected_loop_iterations): Change the return value
2482
2483 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
2484
2485         * cselib.h (struct elt_loc_list): Remove canon_loc field.
2486         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
2487         (cselib_invalidate_mem): Remove all canon_loc and canon_x
2488         traces.
2489
2490 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
2491
2492         Revert
2493         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2494
2495                 * var-tracking.c (variable_part_different_p): Variable parts
2496                 differ when the most recent locations differ.
2497
2498 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
2499
2500         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
2501         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
2502         (embedded_pic_offset): Delete.
2503         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
2504         MASK_* constants.
2505         (TARGET_EMBEDDED_PIC): Delete.
2506         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
2507         (ASM_SPEC): Remove -membedded-pic.
2508         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
2509         (ASM_OUTPUT_CASE_LABEL): Likewise.
2510         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
2511         * config/mips/windiss.h (ASM_SPEC): Likewise.
2512         * config/mips/mips.c (struct machine_function): Remove
2513         embedded_pic_fnaddr_rtx.
2514         (TARGET_ENCODE_SECTION_INFO): Remove override.
2515         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
2516         (override_options): Remove -membedded-pic handling.
2517         (print_operand): Remove handling of '%S'.
2518         (mips_select_section: Remove -membedded-pic handling.
2519         (mips_encode_section_info): Delete.
2520         (mips_output_conditional_branch): Remove mention of -membedded-pic.
2521         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
2522         -membedded-pic handling.
2523         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
2524
2525 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
2526
2527         * var-tracking.c (frame_base_decl): Remove useless GTY.
2528
2529 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
2530
2531         * config/rs6000/rs6000.c (rs6000_override_options): Error when
2532         user wants altivec and e500 instructions.
2533
2534 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
2535
2536         PR target/14813
2537         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
2538         in .init_array section to ...
2539         * config/ia64/crtbegin.asm: Here.
2540
2541         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
2542         and hidden if HAVE_INITFINI_ARRAY is defined.
2543
2544 2004-04-21  James E Wilson  <wilson@specifixinc.com>
2545
2546         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
2547         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
2548         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
2549         (fp_register_operand, lo_operand): New.
2550         (mips_rtx_costs): Add TUNE_SB1 support.
2551         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
2552         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
2553         (mips_multipass_dfa_lookahead): New.
2554         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
2555         TUNE_SB1): New.
2556         (TARGET_SWITCHES): Add -mfp-exceptions support.
2557         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
2558         (BRANCH_COST): Fix whitespace.
2559         * config/mips/mips.md: Include sb1.md.
2560         * config/mips/sb1.md: New file.
2561         * doc/invoke.texi: Document -mfp-exceptions.
2562
2563         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
2564         comment.
2565         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
2566         (fixincl.o-warn): Delete.
2567
2568 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
2569
2570         * config/rs6000/rs6000 (print_operand) ['z']:
2571         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
2572
2573 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
2574
2575         * config.gcc: Support --with-arch=iwmmxt for ARM.
2576
2577 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2578
2579         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
2580         in two more places; remove unneeded force_reg
2581
2582 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
2583
2584         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
2585         for TARGET_MACHO.
2586         (print_operand): For TARGET_MACHO check to see if we need a stub
2587         and output one if we need it.
2588
2589         PR debug/15033
2590         * dwarf2out.c (rtl_for_decl_location): Check for NULL
2591         rtl.
2592
2593 2004-04-20  James E Wilson  <wilson@specifixinc.com>
2594
2595         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
2596         (vall_value_gp): Likewise.
2597
2598 2004-04-20  DJ Delorie  <dj@redhat.com>
2599
2600         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
2601         variables stored in word registers, then in memory.
2602
2603 2004-04-20  Eric Christopher  <echristo@redhat.com>
2604
2605         * cp/parser.c (cp_parser_declaration): Move translate
2606         up before tokens are lexed.
2607
2608 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
2609
2610         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
2611         (asin_optab, acos_optab): Define corresponding macros.
2612         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
2613         * genopinit.c (optabs): Implement asin_optab and acos_optab
2614         using asin?f2 and acos?f2 patterns.
2615         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
2616         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
2617         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
2618         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2619
2620         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
2621         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
2622         acos, acosf and acosl built-ins as inline x87 intrinsics.
2623
2624 2004-04-20  Paul Brook  <paul@codesourcery.com>
2625
2626         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
2627
2628 2004-04-20  Paul Brook  <paul@codesourcery.com>
2629
2630         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
2631
2632 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
2633
2634         Revert part of 2004-04-17 change that moved -frename-registers
2635         to -O1.  -frename-registers is buggy.
2636
2637         * toplev.c (flag_rename_registers): Initialize to 0.
2638         * doc/invoke.texi (Optimize options): Move -frename-registers
2639         to "Not triggered by any -O level" section.  Adjust commentary
2640         accordingly.
2641
2642 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
2643
2644         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
2645
2646 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
2647
2648         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
2649         for mflo and mfhi instructions.
2650         (mips_output_move): Remove mflo and mfhi handling.
2651         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
2652         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
2653         Likewise various define_peephole2s.
2654         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
2655         alternatives.
2656         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
2657         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
2658         (mfhilo_di, mfhilo_si): New patterns.
2659
2660 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2661
2662         * function.c (assign_parms): Force
2663         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
2664
2665 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2666
2667         * var-tracking.c (variable_part_different_p): Variable parts differ
2668         when the most recent locations differ.
2669
2670 2004-04-19  James E Wilson  <wilson@specifixinc.com>
2671
2672         * rtl.h (reg_set_last): Delete declaration.
2673         * rtlanal.c (reg_set_last): Delete.
2674
2675 2004-04-19  Roger Sayle  <roger@eyesopen.com>
2676
2677         * fold-const.c (fold_convert): Make function extern/public.
2678         * tree.h (fold_convert): Prototype here.
2679         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2680         expand_builtin_strrchr, expand_builtin_strpbrk,
2681         expand_builtin_mempcpy, expand_builtin_bcopy,
2682         expand_builtin_bzero, expand_builtin_memcmp,
2683         expand_builtin_strcmp, expand_builtin_strncmp,
2684         stabilize_va_list, expand_builtin_sprintf,
2685         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
2686         fold_builtin_exponent, fold_builtin_mempcpy,
2687         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
2688         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
2689         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
2690
2691 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
2692
2693         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
2694         (move_from_CR_gt_bit): New.
2695         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
2696         E500.
2697         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
2698         E500.
2699
2700         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
2701         (tstsfeq_gpr): Same.
2702         (cmpsfgt_gpr): Same.
2703         (tstsfgt_gpr): Same.
2704         (cmpsflt_gpr): Same.
2705         (tstsflt_gpr): Same.
2706         (e500_cceq_ior_compare): New.
2707         (e500_flip_gt_bit): New.
2708
2709         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
2710         (print_operand): Add 'c' and 'D'.
2711         (rs6000_generate_compare): Rewrite to generate correct rtl.
2712         (rs6000_emit_sCOND): Handle E500.
2713         (output_cbranch): Adjust for changes in rs6000_generate_compare.
2714         (output_e500_flip_gt_bit): New.
2715
2716         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
2717         Protoize.
2718
2719 2004-04-19  Eric Christopher  <echristo@redhat.com>
2720
2721         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
2722
2723 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
2724
2725         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
2726         fix information.
2727
2728 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2729
2730         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
2731         download URL.
2732
2733 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
2734
2735         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
2736         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
2737
2738 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
2739
2740         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
2741         (fold_builtin): Update caller to match.
2742
2743         PR bootstrap/15009
2744         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
2745
2746         PR bootstrap/14999
2747         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
2748
2749 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2750
2751         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
2752
2753         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
2754         (expand_mult_highpart_optab): Likewise.
2755         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
2756
2757 2004-04-19  Paul Brook  <paul@codesourcery.com>
2758
2759         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
2760         floatunssisf2, floatunssidf2): New patterns.
2761
2762 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
2763
2764         PR other/14918
2765         * doc/invoke.texi (-fprofile-generate): Document requirement to
2766         use -fprofile-generate when linking.
2767
2768         * doc/extend.texi (Strong Using): Warn users against using this
2769         feature.
2770
2771 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
2772
2773         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
2774         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
2775         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
2776         * config/mips/mips.c (struct mips16_constant): Renamed from struct
2777         constant.  Propogate change throughout file.
2778         (struct machine_function): Remove insns_len.
2779         (mips_string_length, mips16_strings, string_constants): Delete.
2780         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
2781         when generating mips16 code.  Remove special mips16 treatment of
2782         string constants.
2783         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
2784         to have the form LABEL+CONSTANT.
2785         (mips_symbolic_address_p): Fix comment.
2786         (m16_usym8_4, m16_usym5_4): Delete.
2787         (mips_output_function_epilogue): Remove mips16 string handling.
2788         (mips_output_mi_thunk): Call mips16_lay_out_constants.
2789         (mips_select_section, mips_encode_section_info): Remove mips16
2790         string handling.
2791         (struct mips16_constant_pool): New.
2792         (add_constant): Take a mips16_constant_pool structure.  Keep pool
2793         sorted into order of ascending mode size.  Keep track of the highest
2794         possible start address, taking padding and the masking of the base PC
2795         value into account.
2796         (dump_constants_1): New function, split out from dump_constants.
2797         Handle vector constants.  Use gen_consttable_{int,float} rather than
2798         separate functions for each mode.
2799         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
2800         rather than separate functions for each alignment.
2801         (mips_find_symbol): Delete.
2802         (mips16_insn_length): New function, split out from
2803         mips16_lay_out_constants.
2804         (mips16_rewrite_pool_refs): New function.
2805         (mips16_lay_out_constants): Rework. Remove string handling.
2806         Always create an inline constant pool.
2807         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
2808         (UNSPEC_ALIGN): New constants.
2809         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
2810         (UNSPEC_ALIGN_[248]): Delete.
2811         (consttable_int, consttable_float, align): New patterns.
2812         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
2813
2814 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
2815
2816         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
2817         __unn_args_eq.
2818
2819 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
2820
2821         PR target/14715
2822         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
2823         with STARTING_FRAME_OFFSET.
2824
2825 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2826
2827         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
2828         * config/mips/mips.c (macc_msac_operand): New function.
2829         * config/mips/mips.md (*msac): Move after *macc.
2830         (*msac2): New.  Generalize macc-related peepholes so that they apply
2831         to msac too.
2832
2833 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
2834
2835         * opts.c (decode_options): Do not enable flag_rename_registers
2836         and flag_web at -O3.
2837         * toplev.c (flag_rename_registers): Initialize
2838         flag_rename_registers and flag_web to
2839         AUTODETECT_FLAG_VAR_TRACKING.
2840         (default_debug_hooks): New global.
2841         (process_options): Initialize default_debug_hooks.  Warn if
2842         -fvar-tracking specified but not supported by the current
2843         debug format.  Do not run var tracking at -O0 or if not
2844         supported by the current debug format, even if
2845         -fvar-tracking was given.  If -fno-rename-registers
2846         is not specified, always run register renaming if var
2847         tracking is supported by the default debugging information
2848         format for the target, and we are at -O1 or higher; similarly
2849         for -fweb, but only at -O2 or higher.
2850         * doc/invoke.texi (Optimize Options): Document this.
2851
2852 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2853
2854         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
2855         * configure: Regenerate.
2856
2857 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2858
2859         * gcc.c (used_arg): Check whether an option has been removed.
2860
2861 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2862
2863         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
2864         debugging on Solaris 7 and up.
2865
2866 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2867
2868         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
2869         IRIX 5 port.
2870         Remove -save-temps workaround, handled automatically.
2871         Require GNU binutils 2.15 for debugging.
2872         Remove SGI make warnings since GNU make is now required.
2873         (Specific, mips-sgi-irix6): Some markup fixes.
2874         Describe MIPSpro C problems and workarounds.
2875         Mention working O32 ABI support.
2876         Recommend GNU as 2.15 for O32 with debugging.
2877         Remove description of fixed structure pass/return bug.
2878
2879 2004-04-16  DJ Delorie  <dj@redhat.com>
2880
2881         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
2882         TYPE_FIELDS.
2883         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
2884
2885 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2886
2887         * pa.md: Remove unnecessary declarations for asm_out_file.
2888
2889         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
2890         SAR register.  Fix comment.
2891         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
2892         (%cr11).
2893
2894         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
2895
2896 2004-04-16  Nick Clifton  <nickc@redhat.com>
2897
2898         * config/arm/arm.c (arm_override_options): Revert previous patch.
2899         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
2900         be safely built.
2901
2902 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
2903
2904         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
2905         bug.
2906         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
2907         TARGET_DEFAULT): Changed. Ditto.
2908         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
2909         TARGET_ENDIAN_DEFAULT): Added. Ditto.
2910         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
2911         (TARGET_ENDIAN_DEFAULT): Added.
2912
2913 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2914
2915         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
2916         ATTR_CONST_NOTHROW_LIST.
2917
2918 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2919
2920         PR/middle-end 14915
2921         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
2922         BITS_BIG_ENDIAN.
2923
2924 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
2925
2926         * ra-debug.c (ra_print_rtx): Add break's to case legs.
2927
2928 2004-04-14  James E Wilson  <wilson@specifixinc.com>
2929
2930         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
2931
2932 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
2933
2934         * libada-mk.in: New file.
2935         * configure.ac: Create libada-mk from libada-mk.in.
2936         * configure: Regenerate.
2937
2938 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
2939
2940         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
2941         (logb_optab, ilogb_optab): Define corresponding macros.
2942         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
2943         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
2944         using logb?f2 and ilogb?i2 patterns.
2945         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
2946         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
2947         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
2948         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2949
2950         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
2951         and UNSPEC_XTRACT_EXP.
2952
2953         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
2954         patterns to implement fxtract x87 instruction.
2955         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
2956         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
2957         intrinsics.
2958         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
2959         x87's fxtract insn.
2960
2961 2004-04-14  Eric Christopher  <echristo@redhat.com>
2962
2963         * config/mips/t-elf: Enable multilibs by default.
2964
2965 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
2966
2967         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
2968         previous fix to check HAVE_return at runtime too.
2969
2970 2004-04-14  Nick Clifton  <nickc@redhat.com>
2971
2972         * config/arm/arm.c (arm_override_options): If the user has not
2973         specified an ABI, then default to AAPCS for the iWMMXt processor.
2974         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
2975         * config/arm/t-xscale-coff: Likewise.
2976
2977 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2978
2979         * builtins.c (fold_builtin_isdigit): New.
2980         (fold_builtin): Handle BUILT_IN_ISDIGIT.
2981         * defaults.h: Add TARGET_DIGIT0 and sort.
2982         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
2983
2984 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2985
2986         * builtins.c (fold_builtin_cabs, fold_builtin): Use
2987         `mathfn_built_in' to determine the new builtin.
2988         * fold-const.c (fold): Likewise.
2989
2990 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
2991
2992         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
2993         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
2994         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
2995         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
2996         (ASM_SPEC): Update accordingly.
2997         * config/mips/mips.c: Update after above renaming.
2998         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
2999         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
3000
3001 2004-04-13  James E Wilson  <wilson@specifixinc.com>
3002
3003         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
3004         increment errorcount and return false instead of true.
3005
3006 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
3007
3008         * optabs.c (expand_twoval_unop): Reorder function arguments.
3009         * builtins.c (expand_builtin_mathfn_3): Update calls to
3010         expand_twoval_unop.
3011
3012         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
3013         and UNSPEC_TAN_TAN. Add missing comment.
3014
3015         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
3016         patterns to implement fptan x87 instruction.
3017         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
3018         and tanl built-ins as inline x87 intrinsics. Define corresponding
3019         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
3020         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
3021         x87's fptan insn.
3022
3023 2004-03-13  Richard Henderson  <rth@redhat.com>
3024
3025         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
3026         for LABEL_REFs.
3027
3028         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
3029         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
3030         * doc/invoke.texi: Update to match.
3031
3032         * varasm.c (unlikely_text_section): Use assemble_align instead of
3033         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
3034         correct alignment argument.
3035
3036 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
3037
3038         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
3039         after setting reg_last_reload_reg for optional output reloads.
3040
3041 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
3042
3043         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
3044         Definition of these two macros are corrected by adding
3045         matchine right paren.
3046
3047 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
3048
3049         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
3050
3051 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3052
3053         * config/i386/i386.c (output_387_reg_move): New function.
3054         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
3055         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
3056         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
3057         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
3058         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
3059
3060 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3061
3062         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
3063         TYPE_DECL.
3064         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
3065         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
3066         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
3067         Use skip_simple_arithmetic to find SAVE_EXPR.
3068         (force_type_save_exprs, force_type_save_exprs_1): New functions.
3069         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
3070         Properly chain multiple pointers.
3071         (copy_tree_r): Copy a TYPE_DECL.
3072         * tree.c (variably_modified_type_p): Add some missing tests and
3073         make some other minor changes.
3074         * tree.h (force_type_save_exprs): New declaration.
3075
3076 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3077
3078         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
3079         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
3080         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
3081         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
3082         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
3083         x%-1 into 0 (or x&0 if x has side-effects).
3084
3085 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3086
3087         * config/rs6000/rs6000.md: Document why a pattern is not
3088         available.
3089
3090         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
3091         of floats on the E500.
3092         (branch_positive_comparison_operator): Do not allow NE even on the
3093         E500.
3094
3095 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3096
3097         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
3098         in_text_unlikely_section to in_unlikely_text_section.
3099
3100 2004-04-11  Roger Sayle  <roger@eyesopen.com>
3101
3102         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
3103         calling convention to allow a NULL_TREE to be returned.  Factor
3104         sanity checks from callers, return NULL_TREE when appropriate.
3105         (fold): Handle COMPOUND_EXPR operands of binary expressions
3106         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
3107         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
3108         calls to fold_binary_op_with_conditional_arg.
3109
3110 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3111
3112         * config/mips/iris5.h (current_section_flags):  Add
3113         in_unlikely_executed_text and default case.
3114
3115 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
3116
3117         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
3118         failure on solaris. Place ifdef HAVE_return around gen_ret call.
3119         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
3120         HAVE_return and place it around the place where it is needed.
3121
3122 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3123
3124         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
3125         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
3126         and NORMAL_TEXT_SECTION_NAME.
3127         (unlikely_text_section): Check targetm.have_named_sections
3128         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
3129         instead of SECTION_FORMAT_STRING.
3130         * config/mips/iris5.h (current_section_name): Add
3131         in_unlikely_executed_text case and move the abort into the switch.
3132         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
3133         (NORMAL_TEXT_SECTION_NAME): Remove.
3134         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3135         (SECTION_FORMAT_STRING): Remove.
3136         * defaults.h (SECTION_FORMAT_STRING): Remove.
3137         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
3138         (SECTION_FORMAT_STRING): Remove.
3139
3140 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3141
3142         * c-typeck.c (common_type): Prefer long long to long when same
3143         precision.
3144
3145 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
3146
3147         PR 14887
3148         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
3149         mode argument.
3150         * config/ia64/ia64.c (ia64_hpux_file_end): Check
3151         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
3152
3153 2004-04-09  Roger Sayle  <roger@eyesopen.com>
3154
3155         * simplify-rtx.c (mode_signbit_p): New function to check whether
3156         an RTX is an immediate constant that represents the most significant
3157         bit of a given machine mode.
3158         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
3159         C is the sign bit.
3160         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
3161         when C2 is the sign bit.
3162         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
3163         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
3164         sign bit.
3165
3166 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3167
3168         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
3169         TYPE_MODE.
3170
3171 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
3172
3173         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
3174         of TREE_READONLY for types.
3175
3176 2004-04-09  Caroline Tice  <ctice@apple.com>
3177
3178         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
3179         (struct basic_block_def):  Add new field, partition.
3180         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
3181         definitions.
3182         (partition_hot_cold_basic_blocks): Add extern function
3183         declaration.
3184         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
3185         include statements.
3186         (N_ROUNDS): Increase the maximum number of rounds by 1.
3187         (branch_threshold): Add array value for new round.
3188         (exec_threshold): Add array value for new round.
3189         (push_to_next_round_p): New function.
3190         (add_unlikely_executed_notes): New function.
3191         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
3192         (mark_bb_for_unlikely_executed_section): New function.
3193         (add_labels_and_missing_jumps): New function.
3194         (add_reg_crossing_jump_notes): New function.
3195         (fix_up_fall_thru_edges): New function.
3196         (find_jump_block): New function.
3197         (fix_crossing_conditional_branches): New function.
3198         (fix_crossing_unconditional_branches): New function.
3199         (fix_edges_for_rarely_executed_code): New function.
3200         (partition_hot_cold_basic_blocks): New function.
3201         (find_traces):  Add an extra round for partitioning hot/cold
3202         basic blocks.
3203         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
3204         and only cold blocks, into the last (extra) round of collecting traces.
3205         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
3206         over crossing edges.
3207         (bb_to_key):  Add code to correctly identify cold blocks when
3208         doing partitioning.
3209         (connect_traces): Modify to connect all the non-cold traces first, then
3210         go back and connect up all the cold traces.
3211         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
3212         * cfg.c (entry_exit_blocks): Add initialization for partition field in
3213         entry and exit blocks.
3214         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
3215         if we are doing hot/cold partitioning.
3216         * cfgcleanup.c (cfglayout.h): Add new include statement.
3217         (try_simplify_condjump): Modify to not attempt on blocks with jumps
3218         that cross section boundaries.
3219         (try_forward_edges): Likewise.
3220         (merge_blocks_move_predecessor_nojumps): Likewise.
3221         (merge_blocks_move_successor_nojumps): Likewise.
3222         (merge_blocks_move): Likewise.
3223         (try_crossjump_to_edge): Modify to not attempt after we have done
3224         the block partitioning.
3225         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
3226         cross section boundaries.
3227         (try_optimize_cfg): Likewise.
3228         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
3229         jumps that cross section boundaries.
3230         * cfglayout.c (flags.h): Add new include statement.
3231         (update_unlikely_executed_notes):  New function.
3232         (fixup_reorder_chain):  Add code so when a new jumping basic block is
3233         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
3234         updated appropriately.
3235         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
3236         introduced by this optimization.
3237         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
3238         extern function declaration.
3239         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
3240         list of notes that can be deleted.
3241         (create_basic_block_structure):  Add initialization for partition field.
3242         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
3243         section boundaries.
3244         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
3245         cross section boundaries.
3246         (commit_one_edge_insertion): Add code so newly created basic block
3247         ends up in correct (hot or cold) section.  Modify to disallow
3248         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
3249         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
3250         crosses section boundaries.
3251         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
3252         cross section boundaries.
3253         (force_nonfallthru_and_redirect): Modify to make sure new basic block
3254         ends up in correct section, with correct notes attached.
3255         * common.opt (freorder-blocks-and-partition):  Add new flag for this
3256         optimization.
3257         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
3258         the end of functions are written into the correct (hot or cold)
3259         section.
3260         (dbx_source_file): Add code so writing debug file information
3261         doesn't incorrectly change sections.
3262         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
3263         in partitioning hot/cold basic blocks into separate sections.
3264         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
3265         section partitioning.
3266         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
3267         conditional branches can span all of memory.
3268         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
3269         unconditional branches can span all of memory.
3270         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
3271         (final_scan_insn):  Add code to check for NOTE instruction indicating
3272         whether basic block belongs in hot or cold section, and to make sure
3273         the current basic block is being written to the appropriate section.
3274         Also added code to ensure that jump table basic blocks end up in the
3275         correct section.
3276         * flags.h (flag_reorder_blocks_and_partition):  New flag.
3277         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
3278         one of the branches has a jump that crosses between sections.
3279         (find_if_case_2): Likewise.
3280         (ifcvt): Modify to not attempt to mark loop exit edges after
3281         hot/cold partitioning has occurred.
3282         * opts.c (decode_options): Code to handle new flag,
3283         flag_reorder_blocks_and_partition; also to turn it off if
3284         flag_exceptions is on.
3285         (common_handle_option): Code to handle new flag,
3286         flag_reorder_blocks_and_partition.
3287         * output.h (unlikely_text_section): New extern function declaration.
3288         (in_unlikely_text_section): New extern function declaration.
3289         * passes.c (rest_of_handle_stack_regs):  Add
3290         flag_reorder_blocks_and_partition as an 'or' condition for calling
3291         reorder_basic_blocks.
3292         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
3293         as an 'or' condition for calling reorder_basic_blocks.
3294         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
3295         * print-rtl.c (print_rtx): Add code for handling new note,
3296         NOTE_INSN_UNLIKELY_EXECUTED_CODE
3297         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
3298         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
3299         cross between section boundaries.
3300         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
3301         indicating the basic block containing it belongs in the cold section.
3302         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
3303         between hot and cold sections.
3304         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
3305         initialize this flag, and to tie it to the command-line option
3306         freorder-blocks-and-partition.
3307         * varasm.c (cfglayout.h):  Add new include statement.
3308         (unlikely_section_label_printed):  New global variable, used for
3309         determining when to output section name labels for cold sections.
3310         (in_section):  Add in_unlikely_executed_text to enum data structure.
3311         (text_section):  Modify code to use SECTION_FORMAT_STRING and
3312         NORMAL_TEXT_SECTION_NAME macros.
3313         (unlikely_text_section):  New function.
3314         (in_unlikely_text_section):  New function.
3315         (function_section):  Add code to make sure beginning of function is
3316         written into correct section (hot or cold).
3317         (assemble_start_function):  Add code to make sure stuff is written to
3318         the correct section.
3319         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
3320         to an if statement that was checking 'in_text_section'.
3321         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
3322         condition to an if statement that was checking 'in_text_section'.
3323         (default_section_type_flags_1):  Add check: if in cold section
3324         flags = SECTION_CODE.
3325         * config/darwin.c (darwin_asm_named_section):  Modify to use
3326         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
3327         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
3328         specifically for the i386.
3329         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
3330         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
3331         text string to something more informative.
3332         (NORMAL_TEXT_SECTION_NAME): Add new definition.
3333         (SECTION_FORMAT_STRING):  Add new definition.
3334         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
3335         '!in_unlikely_text_section' as an 'and' condition to an if statement
3336         that was already checking '!in_text_section'.
3337         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
3338         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
3339         sure these are properly defined for linux on ppc.
3340         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
3341         for this new flag.
3342         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
3343         reg_note.
3344         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
3345         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
3346         these new macros.
3347
3348 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3349
3350         * function.c (gen_mem_addressof): When changing the RTX from a REG
3351         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
3352
3353 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3354
3355         PR target/14888
3356         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
3357         truncxfdf2_noop): Provide dummy "fmov" implementations.
3358
3359 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
3360
3361         * gcc.c (default_compilers): Add missing initializers.
3362
3363         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3364         Return 1 if file was successfully mapped.
3365
3366 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
3367
3368         PR pch/13419
3369         PR pch/14137
3370         Radar #: 3315288
3371         * doc/invoke.texi (Precompiled Headers): Suggest -o
3372         to put an output file in a particular place.  Be more detailed
3373         about which options affect PCH validity and which options
3374         might not work.
3375         * c-pch.c (pch_matching): New.
3376         (MATCH_SIZE): New.
3377         (struct c_pch_validity): New field 'match'.
3378         (pch_init): Handle pch_matching.
3379         (c_common_valid_pch): Check pch_matching.
3380
3381         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
3382
3383 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
3384
3385         * doc/invoke.texi (Precompiled Headers): Warn about known
3386         problems.
3387
3388 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
3389
3390         PR c++/14808
3391         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
3392         to 1 if ASM_OUTPUT_DEF is defined.
3393         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
3394         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
3395         Set to non-zero iff not a one_only decl.
3396
3397 2004-04-08  Paul Brook  <paul@codesourcery.com>
3398
3399         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
3400
3401 2004-04-08  Paul Brook  <paul@codesourcery.com>
3402
3403         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
3404         PROMOTE_FOR_CALL_ONLY.
3405         * config/arm/arm-protos.h (arm_function_value): Declare.
3406         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
3407         (TARGET_PROMOTE_PROTOTYPES): Return false.
3408         (arm_function_value): New function.
3409         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
3410         (FUNCTION_VALUE): Call arm_function_value.
3411         * config/cris/cris.h (PROMOTE_MODE): Rename ...
3412         (PROMOTE_FUNCTION_MODE): ... to this.
3413         (PROMOTE_FOR_CALL_ONLY): Remove.
3414         * config/mmix/mmix.h: Likewise.
3415         * config/s390/s390.h: Likewise.
3416         * config/sparc/sparc.h: Likewise.
3417         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
3418         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
3419         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
3420         (PROMOTE_FOR_CALL_ONLY): Remove.
3421
3422 2004-04-08  Joel Sherrill <joel@oarcorp.com>
3423
3424         PR ada/14538
3425         * ada/5rosinte.adb: Remove fake mprotect() body.
3426         * ada/5rosinte.ads: Add SA_SIGINFO.
3427         * ada/5rtpopsp.adb: Rewrite to use new interface.
3428         * ada/init.c: Reorder so the simple single OS conditional __rtems__
3429         is tested before more complex ones which mix UNIX and embedded
3430         systems in the conditional.
3431
3432 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
3433
3434         PR ada/14665
3435         * ada/osint.adb (Find_Program_Name): Rework to properly handle
3436         filenames which end in .exe or have versioning suffixes like VMS.
3437
3438 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
3439
3440         PR target/10129
3441         * config/darwin.c (darwin_encode_section_info): When the decl has
3442         a DECL_INITIAL, it is only defined also when it is not a common.
3443
3444 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3445
3446         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
3447         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
3448
3449 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
3450
3451         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
3452         global register variables.
3453
3454 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3455
3456         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
3457         rpc_xdr_lvalue_cast_b): New fixes.
3458         * fixinc/fixincl.x: Regenerate.
3459         * fixinc/tests/base/rpc/xdr.h: Add new tests.
3460
3461 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
3462
3463         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
3464         to power4 and power5 entries.
3465
3466 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
3467
3468         * c-common.h (pending_lang_change): Mark for PCH.
3469
3470 2004-04-07  Caroline Tice  <ctice@apple.com>
3471
3472         * gcc.c (main): Move 'break' in main loops (on an error)
3473         to wait until error processing has occurred.
3474
3475 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
3476
3477         * config.gcc: Stop changing enable_threads midstream.
3478         Replace uses of enable_threads_flag with enable_threads.
3479         * configure.ac: Replace uses of enable_threads_flag with
3480         enable_threads.  Improve autoconf quotation in one place.
3481         * configure: Regenerate.
3482
3483 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
3484
3485         * builtins.c: Implement support for sincos function.
3486         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
3487         BUILT_IN_COS{,F,L}.
3488         (expand_builtin_mathfn_3): New function.
3489         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
3490         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
3491         flag_unsafe_math_optimization is set.
3492
3493         * optabs.h (enum optab_index): Add new OTI_sincos.
3494         (sincos_optab): Define corresponding macro.
3495
3496         * optabs.c (init_optabs): Initialize sincos_optab.
3497         (expand_twoval_unop): New function.
3498
3499         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
3500         patterns.
3501
3502         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
3503         and UNSPEC_SINCOS_SIN.
3504
3505         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
3506         sincosxf3): New patterns to implement sincos, sincosf and sincosl
3507         built-ins as inline x87 intrinsics. Define splits for
3508         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
3509         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
3510         sincos patterns.
3511         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
3512         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
3513
3514         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
3515         x87's fsincos insn.
3516
3517 2004-04-06  Devang Patel  <dpatel@apple.com>
3518
3519         PR 14467
3520         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
3521
3522 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3523
3524         * doc/install.texi: Update HP-UX 11 installation procedure.
3525
3526 2004-04-06  Paul Brook  <paul@codesourcery.com>
3527
3528         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
3529
3530 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3531
3532         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
3533         when the TLS address is generated by a function call.
3534         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
3535         (tls_local_dynamic): Likewise.
3536
3537 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
3538
3539         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
3540         and TYPE_VOLATILE.
3541
3542 2004-04-05  Caroline Tice  <ctice@apple.com>
3543
3544         * gcc.c (combine_flag): New global variable, for new driver option.
3545         (struct compiler): Add two new fields, to be used when
3546         combining multiple input files in a single pass (IMA).
3547         (default_compilers):  Add values for the new fields to all
3548         compiler entries. Modify the "@c" compiler entry for doing IMA
3549         properly with "-save-temps" and the "combine" flag.
3550         (option_map):  Add new driver option, "--combine", to tell driver
3551         to pass multiple input files to compiler at one time.
3552         (have_o_argbuf_index): New global variable.
3553         (store_arg): Modify to assign value to have_o_argbuf_index.
3554         (struct infile):  Add three new fields, to help with IMA.
3555         (display_help): Add help for new "combine" option.
3556         (process_command): Remove local variable have_o; add code to check
3557         for new "combine" option; remove assignment to combine_inputs.
3558         (do_spec_1):  Modify to deal with IMA better.
3559         (main): Make variable 'lang_n_infiles' local to entire function
3560         rather than to a single block.  Use flag combine_flag to
3561         determine whether to do IMA or not; Modify loop initializing
3562         infiles to deal properly with linker files.
3563         Add code for doing preprocessing in presence of
3564         IMA with "-save-temps" flag.  Modify "main" loop to handle
3565         multiple input files, in multiple languages, with or without
3566         preprocessing,  gracefully.
3567         * toplev.c (set_src_pwd): Modify to not complain if attempting to
3568         re-set it to same directory it's previously been set to (avoid
3569         irritating, meaningless warning messages when doing IMA with
3570         save-temps).
3571         * doc/invoke.texi: Add "-combine" to list of Overall Options;
3572         remove documentation about IMA that is no longer accurate; Add
3573         documentation explaining what "-combine" does.
3574         * ada/lang-specs.h: Add initialization values for new fields in
3575         "struct compiler".
3576         * cp/lang-specs.h: Likewise.
3577         * f/lang-specs.h: Likewise.
3578         * java/lang-specs.h: Likewise.
3579         * objc/lang-specs.h: Likewise.
3580         * treelang/lang-specs.h: Likewise.
3581
3582 2004-04-05  David Edelsohn
3583
3584         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
3585         symbol handling.
3586
3587 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
3588             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3589
3590         PR optimization/13424 (hppa), bootstrap/14462, c/14828
3591         * pa.md: Use replace_equiv_address to retain the attributes of the
3592         memory operands used in the split and peephole2 patterns for optimizing
3593         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
3594
3595 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3596
3597         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
3598         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3599         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
3600         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
3601         PARM_DECL.
3602         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
3603         for a type.
3604         * print-tree.c (print_node): Properly handle side-effects, readonly,
3605         and constant flags.
3606         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
3607         and TREE_CONSTANT if not a type.
3608         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
3609         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
3610         (NON_TYPE_CHECK): New macro.
3611         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
3612
3613 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
3614
3615         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
3616         to DWARF2_DEBUG unconditionally.
3617         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
3618
3619 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
3620             Nathanael Nerode  <neroden@gcc.gnu.org>
3621
3622         PR target/14548
3623         * config.host: Set the shell variable host_can_use_collect2.
3624         Set it to yes by default, and to no for alpha*-dec-*vms*,
3625         i[34567]86-*-mingw32*, and powerpc-*-beos*.
3626         * configure.ac: Set and substitute the shell variable collect2.
3627         Give an error if use_collect2 is yes and host_can_use_collect2 is
3628         no.
3629         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
3630         uses.  Initialize to @collect2@.
3631         (STAGESTUFF): Remove $(USE_COLLECT2).
3632         * config/alpha/x-vms (USE_COLLECT2): Don't set.
3633         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
3634         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
3635         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
3636         * configure: Regenerate.
3637
3638 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3639
3640         * simplify-rtx.c (simplify_binary_operation): Constant fold
3641         DIV, MOD, UDIV and UMOD using div_and_round_double.
3642
3643 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
3644
3645         PR c++/14804
3646         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
3647         RECORD_TYPEs.
3648
3649 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
3650
3651         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
3652         documentation.
3653
3654 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3655
3656         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
3657         updating the REG_EQUAL note on an insn's libcall_insn.
3658
3659 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3660
3661         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
3662
3663 2004-04-03  Roger Sayle  <roger@eyesopen.com>
3664
3665         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
3666         with reorder_operands_p.
3667
3668 2004-04-03  Jan Hubicka  <jh@suse.cz>
3669
3670         * md.texi (vec_set, vec_extract, vec_init): Document.
3671
3672 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
3673
3674        * opts.c (decode_options): Do function inlining with very small
3675        max-inline-insns-* parameters when optimizing for size.
3676
3677 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
3678
3679         * config/i386/i386.h (TARGET_NOCONA): New macro.
3680         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
3681         (processor_type): Add PROCESSOR_NOCONA.
3682
3683         * config/i386/i386.md (cpu): Add nocona to the attribute values.
3684
3685         * config/i386/i386.c (nocona_cost): New variable.
3686         (m_NOCONA): New macro.
3687         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
3688         x86_branch_hints, x86_use_sahf, x86_single_stringop,
3689         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
3690         x86_integer_DFmode_moves, x86_partial_reg_dependency,
3691         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
3692         x86_decompose_lea, x86_arch_always_fancy_math_387,
3693         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
3694         x86_ext_80387_constants, x86_four_jump_limit):
3695         (override_options): Add nocona_cost to processor_target_table.
3696         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
3697         (incdec_operand): Prevent inc/dec generation for Nocona too.
3698         (ix86_issue_rate): Add PROCESSOR_NOCONA.
3699
3700 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
3701
3702         * rtlanal.c (find_reg_note): Manually
3703         unswitch the loop.
3704
3705 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
3706
3707         * genemit.c (gen_split): Change prototype of generated code.
3708         * genrecog.c (write_action): Adjust prototype for and calls to
3709         gen_split_*.
3710         * gensupport.c (struct queue_elem): Add split field.
3711         (queue_pattern): Return a value.  Clear the split field.
3712         (process_rtx): Maintain an association between an insn and the
3713         split generated from it for a define_insn_and_split.
3714         (process_one_cond_exec): Generate a new split for a
3715         define_insn_and_split.
3716         * config/arm/arm-protos.h (arm_split_constant): Add insn
3717         parameter.
3718         (emit_constant_insn): New function.
3719         (arm_gen_constant): Use it.
3720         * config/arm/arm.md: Adjust calls to arm_split_constant.
3721
3722 2004-04-02  Jan Hubicka  <jh@suse.cz>
3723
3724         * cgraph.c: Add overall comment.
3725         (cgraph_inline_hash): New global variable.
3726         (cgraph_create_node): Break out from ...
3727         (cgraph_node): ... here.
3728         (cgraph_edge): New function.
3729         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
3730         (cgraph_remove_edge): Accept edge, intead of source and destination.
3731         (cgraph_redirect_edge_callee): New.
3732         (cgraph_remove_node): Update all new datastructures.
3733         (cgraph_record_call, cgraph_remove_call): Kill.
3734         (dump_cgraph_node): Break out from ... ; dump new datastructures.
3735         (dump_cgraph): ... here.
3736         (cgraph_function_possibly_inlined_p): Use new hashtable.
3737         (cgraph_clone_edge, cgraph_clone_node): New.
3738         * cgraph.h: Include hashtab.h
3739         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
3740         fields, add inlined_to pointer.
3741         (cgraph_node): Add pointer to next_clone.
3742         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
3743         (cgraph_remove_call, cgraph_record_call): Kill.
3744         (cgraph_inline_hash): Declare.
3745         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
3746         cgraph_redirect_edge_callee): Declare.
3747         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
3748         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
3749         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
3750         * cgraphunit.c: Add overall comment.
3751         (cgraph_optimize_function): Kill.
3752         (cgraph_assemble_pending_functions): Do not assemble inline clones.
3753         (cgraph_finalize_function): Update call of cgraph_remove_node
3754         (record_call_1): Record call sites.
3755         (cgraph_create_edges): Accept node instead of decl argument.
3756         (error_found): New static variable.
3757         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
3758         (cgraph_analyze_function): Update for new datastructures.
3759         (cgraph_finalize_compilation_unit): Plug memory leak.
3760         (cgraph_optimize_function): Kill.
3761         (cgraph_expand_function): Do not use cgraph_optimize_function.
3762         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
3763         cgraph_inlined_callees): Kill.
3764         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
3765         clones.
3766         (estimate_growth): Simplify.
3767         (cgraph_clone_inlined_nodes): New function.
3768         (cgraph_mark_inline_edge): Re-implement.
3769         (cgraph_mark_inline): Likewise.
3770         (cgraph_check_inline_limits): Simplify.
3771         (cgraph_recursive_inlining_p): New.
3772         (update_callee_keys): Break out from ...
3773         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
3774         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
3775         Likewise.
3776         (cgraph_expand_all_functions):  Remove inline clones from the ordered
3777         list.
3778         (cgraph_preserve_function_body_p): New predicate.
3779         (cgraph_optimize): Verify cgraph.
3780         * function.h (struct function): Add fields saved_tree/saved_args.
3781         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
3782         * toplev.c (rest_of_compilation): Do not free cfun.
3783         * tree-inline.c: Include function.h
3784         (struct inline_data): Add saving_p field; replace decl/current_decl by
3785         node/current_node.
3786         (insert_decl_map): New function.
3787         (copy_body_r): Handle saving; update cgraph datastructure.
3788         (copy_body): Handle recursive inlining.
3789         (initialize_inlined_parameters): Likewise.
3790         (expand_call_inline): Propagate node attributes; update cgraph.
3791         (optimize_inline_calls): Verify that datastructure still match.
3792         (save_body): New function.
3793         * tree-inline.h (save_body): New.
3794         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
3795         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
3796         * langhooks.c (lang_hooks): Add update_decl_after_saving.
3797
3798 2004-04-01  Serge Belyshev  <1319@bot.ru>
3799
3800         PR target/14702
3801         * config/i386/i386.md: fix source operand constraints in
3802         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
3803
3804 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
3805
3806         * fold-const.c (folda): Preserve types of comparisons.
3807
3808 2004-04-01  Richard Henderson  <rth@redhat.com>
3809
3810         * toplev.c (backend_init): Move init_optimization_passes call ...
3811         (lang_dependent_init): ... here.
3812
3813 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
3814             Jakub Jelinek  <jakub@redhat.com>
3815
3816         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
3817         -lgcc --as-needed -lgcc_s --no-as-needed by default.
3818         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
3819         * configure: Rebuilt.
3820         * config.in: Rebuilt.
3821         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
3822         (stage2-start, stage3-start, stage4-start): Likewise.
3823         (stageprofile-start, stagefeedback-start): Likewise.
3824
3825 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
3826
3827         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
3828         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3829         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3830         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3831         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
3832         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
3833         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
3834         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
3835         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
3836         * config/sparc/t-linux: Removed.
3837
3838 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
3839
3840         PR c++/14755
3841         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
3842         "bitfld++ == const" to "++bitfld == const + incr" transformations.
3843
3844 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3845
3846         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
3847         * stor-layout.c (layout_decl): Likewise.
3848         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
3849         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
3850         * print-tree.c (print_node): Handle various used of unsigned_flag.
3851         * tree.def (BIT_FIELD_REF): Update comment.
3852         * tree.h (TREE_UNSIGNED): Deleted.
3853         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
3854
3855 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3856
3857         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
3858         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
3859         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
3860         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
3861         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
3862         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
3863         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
3864         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
3865         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
3866         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
3867         REAL_TYPE, not INTEGER_TYPE.
3868         (layout_type, case VECTOR_TYPE): Simplify code.
3869         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
3870         * tree.h: Update comments.
3871         (STRIP_NOPS): Use TYPE_UNSIGNED.
3872         (TYPE_UNSIGNED): New macro.
3873         (TYPE_TRAP_SIGNED): Remove now redundant check.
3874         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
3875
3876 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3877
3878         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
3879
3880 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
3881
3882         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
3883         Add darwin-fpsave.asm, darwin-vecsave.asm,
3884         and darwin-world.asm.
3885         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
3886         as the asm files contain altivec instructions.
3887         * config/rs6000/darwin-fpsave.asm: New file.
3888         * config/rs6000/darwin-vecsave.asm: New file.
3889         * config/rs6000/darwin-world.asm: New file.
3890
3891 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
3892
3893         * gengtype-yacc.y (option, stringseq): Add missing
3894         terminating semicolon.
3895
3896 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
3897
3898         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
3899         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
3900         tls_dtprel_ha_32, tls_dtprel_ha_64,
3901         tls_dtprel_lo_32, tls_dtprel_lo_64,
3902         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
3903         tls_tprel_ha_32, tls_tprel_ha_64,
3904         tls_tprel_lo_32, tls_tprel_lo_64,
3905         tls_got_tprel_32, tls_got_tprel_64,
3906         tls_tls_32, tls_tls_64): Replace register_operand with
3907         gpc_reg_operand.
3908
3909 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
3910
3911         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
3912         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
3913         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
3914         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
3915         *ctrdi_internal6): Replace register_operand with
3916         nonimmediate_operand.
3917
3918 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
3919
3920         * fold-const.c (fold): Reassociate multiply expression
3921         with an adjacent non-multiply expression to use
3922         architecture's multiply-add instruction.
3923
3924 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
3925
3926         * gengtype.c (create_option): New function.
3927         * gengtype.h: Prototype it.
3928         * gengtype-yacc.y (stringseq): New rule.
3929         (option): Use create_option.  Add new bare ID production.  Use
3930         stringseq, not STRING directly.
3931
3932         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
3933         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
3934         * varray.h, config/alpha/alpha.c:
3935         Use new shorter form of GTY markers.
3936
3937         * doc/gty.texi: Rewrite.
3938
3939 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
3940
3941         * config/darwin.c (machopic_function_base_name):
3942         Remove current_name and getting the name of the
3943         current function.
3944
3945 2004-03-30  Nick Clifton  <nickc@redhat.com>
3946
3947         * config/arm/arm.md (thumb_jump): Reduce the backward branch
3948         range, and increase the forward branch range, to allow for
3949         the fact that the PC will be off by 4.
3950
3951 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
3952
3953         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
3954
3955 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
3956
3957         * config/rs6000/rs6000.c (output_vec_const_move):
3958         Find all cases of EASY_VECTOR_15_ADD_SELF.
3959         (easy_vector_constant_add_self): Accept
3960         all vector constant loadable by vsplt* and vadd*.
3961         (easy_vector_same): Use easy_vector_splat_const.
3962         (easy_vector_const): Use easy_vector_splat_const.
3963         (easy_vector_splat_const): New function.
3964         (gen_easy_vector_constant_add_self): New function.
3965
3966         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
3967         New prototype.
3968
3969         * config/rs6000/altivec.md (movv4si splitter): Change to
3970         emit move insn with halfed vector constant.
3971         (*movv8hi splitter): Likewise.
3972         (*movv16qi splitter): Likewise.
3973
3974 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
3975
3976         PR 11591
3977         * config/rs6000/rs6000.c (rs6000_legitimate_address):
3978         Allow any offset to argument pointer in no-strict case.
3979
3980 2004-03-30  Jan Hubicka  <jh@suse.cz>
3981
3982         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
3983         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
3984         dump file in non-unit-at-a-time mode.
3985
3986 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
3987
3988         * config/cris/cris.h: Correct #ifdef to test for
3989         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
3990         HAVE_AS_MUL_BUG_ABORT_OPTION.
3991
3992 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3993
3994         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
3995         the address inside the old RTL.
3996
3997 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
3998
3999         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
4000         (struct c_binding, struct c_scope): Add chain_next
4001         attributes to GTY markers.
4002         (struct lang_identifier, struct lang_tree_node): Define
4003         here...
4004         * c-tree.h: ... not here.  No longer need to declare struct
4005         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4006         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
4007         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4008
4009         PR 14734, 11944
4010         * c-decl.c (get_parm_info): If error_mark_node is encountered
4011         in the bindings chain, unbind and discard it; don't abort.
4012
4013 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
4014             Dorit Naishlos <dorit@il.ibm.com>
4015
4016         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
4017         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
4018
4019 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
4020
4021         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
4022
4023         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
4024         (m68hc11_attribute_table): New attribute "page0" to mark a global
4025         variable as being allocated from within page0 section.
4026         (m68hc11_encode_label): New function.
4027         (m68hc11_strip_name_encoding): New function.
4028         (m68hc11_page0_symbol_p): New function.
4029         (m68hc11_indirect_p): Accept global variables marked in page0.
4030         (m68hc11_encode_section_info): Lookup "page0" attribute.
4031
4032         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
4033         represents access to page0 variables.
4034
4035         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
4036         ("*logicalsi3_silshl16_zext"): Likewise.
4037         ("*ashldi3_const32"): Likewise.
4038         (peephole2 ashift): Likewise.
4039
4040 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4041
4042         * c-tree.h (C_DECL_REGISTER): New.
4043         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
4044         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
4045         (build_array_ref, c_mark_addressable): Set and use it.
4046         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
4047         Allow structures with volatile fields to be declared register.
4048         Don't check TREE_ADDRESSABLE before warning about taking address
4049         of register.
4050         * c-decl.c (finish_decl): Don't allow structures with volatile
4051         fields to be placed in named register.
4052         * doc/trouble.texi: Remove reference to structures with volatile
4053         fields in registers.
4054
4055 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4056
4057         * function.c (thread_prologue_and_epilogue): Move
4058         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
4059         before the epilogue.
4060
4061 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4062
4063         * expr.c (store_constructor): Use gen_int_mode to correctly
4064         sign-extend CONST_INT value.
4065
4066 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4067
4068         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
4069         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
4070         * doc/extend.texi: Likewise.
4071
4072 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
4073
4074         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
4075           with TYPE_ORIG_SIZE_TYPE.
4076
4077 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
4078
4079         PR 14219
4080         * c-typeck.c (build_binary_op): Do not allow comparisons of
4081         vectors.
4082
4083 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
4084
4085         * config.gcc: Remove sparc-tti-*.
4086         * config/sparc/pbd.h: Delete.
4087
4088         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
4089         * config/sparc/aout.h: Likewise.
4090
4091         * config/sparc/sparc.h: Remove if 0'd code.
4092         * config/sparc/sparc.md (call): Remove if 0'd code.
4093         (call_value): Likewise.
4094         (nonlocal_goto): Likewise.
4095         (unimp_insn): Delete.
4096
4097 2004-03-25  Roger Sayle  <roger@eyesopen.com>
4098
4099         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
4100         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
4101
4102 2004-03-25  Richard Henderson  <rth@redhat.com>
4103
4104         PR 11527
4105         * c-typeck.c (pop_init_level): Emit pending init elements earlier
4106         rather than later.
4107
4108 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4109
4110         * builtins.c (fold_builtin): Fix error in last change.
4111
4112 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
4113
4114         * config/mips/mips.h: Formatting fix.
4115
4116 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4117
4118         * builtins.def: Add ctype builtins.
4119         * doc/extend.texi: Likewise.
4120
4121 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4122
4123         * builtins.c (fold_builtin): Add new builtin optimizations for
4124         sqrt and/or cbrt.
4125         * fold-const.c (fold): Likewise.
4126
4127 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
4128
4129         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
4130         (rs6000_sched_groups): New variable.
4131         (processor_target_table): Add power5.
4132         (rs6000_override_options): Set rs6000_sched_insert_nops,
4133         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
4134         from rs6000_sched_groups.
4135         (output_cbranch): Use rs6000_always_hint.
4136         (rs6000_variable_issue): Use rs6000_sched_groups.
4137         (rs6000_adjust_cost): Add CPU_POWER5.
4138         (is_microcoded_insn): Use rs6000_sched_groups.
4139         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
4140         Return 2 for POWER5 cracked instructions.
4141         (is_cracked_insn): Use rs6000_sched_groups.
4142         (is_branch_slot_insn): Use rs6000_sched_groups.
4143         (rs6000_issue_rate): Add CPU_POWER5.
4144         (rs6000_sched_finish): Use rs6000_sched_groups.
4145         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
4146         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
4147         (DEFAULT_SCHED_COSTLY_DEP): Delete.
4148         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
4149         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
4150         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
4151         * config/rs6000/power5.md: New file.
4152         * doc/invoke.texi: Add power5 option.
4153
4154 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4155
4156         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
4157         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
4158         * doc/invoke.texi: Fix a typo.
4159
4160 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4161
4162         PR optimization/9707.
4163         * stmt.c (emit_case_nodes): Emit equality comparisons instead
4164         of recursing if both children are single-valued cases with no
4165         children.
4166
4167 2004-03-25  Paul Brook  <paul@codesourcery.com>
4168
4169         * config/arm/arm.c (vfp_print_multi): Remove.
4170         (arm_output_fldmx): New function.
4171         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
4172         (arm_expand_prologue): Update to match.
4173         (arm_get_vfp_saved_size): New Function.
4174         (arm_get_frame_offsets): Use it.
4175         (arm_output_epilogue): Use new functions.
4176
4177 2004-03-24  Richard Henderson  <rth@redhat.com>
4178
4179         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
4180         (reg_known_value, reg_known_value_size): Likewise; make static.
4181         (reg_known_equiv_p): Make static.
4182         (clear_reg_alias_info): Update for new indexing.
4183         (get_reg_known_value, set_reg_known_value): New.
4184         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
4185         (canon_rtx): Use them.
4186         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
4187         Don't play queer offsetting games with reg_known_value and
4188         reg_known_equiv_p.
4189         (end_alias_analysis): Free reg_known_value with gc.
4190         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
4191         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
4192         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
4193         functions instead.
4194
4195 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4196
4197         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
4198         config/i386/mmintrin.h: Update copyright.
4199
4200 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4201
4202         * configure.ac: Add --enable-werror-always (for top level bootstrap
4203         support).
4204         * configure: Regenerate.
4205
4206 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
4207
4208         * objc/objc-act.c (objc_comptypes): Treat comparisons
4209         between 'Class' and '<class> *' as explicitly invalid.
4210
4211 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
4212
4213         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
4214         (-fprofile-values): Add enabled with profile-{generate,use}.
4215         (-fvpt): Same.
4216         (-ftracer): Add enabled with profile-use.
4217         (-funit-at-a-time): Add enabled at -O2,-O3.
4218         (-funroll-loops): Add enabled with profile-use.
4219         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
4220         (max-gcse-passes): Mention default.
4221         (max-cse-path-length): Mention default.
4222
4223 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4224
4225         * Makefile.in (STRICT2_WARN): Reorder.
4226         * configure.ac: Check for -Wold-style-definition, and use it
4227         in strict1_warn if it's available.
4228         * configure: Regnerate.
4229
4230 2004-03-24  Paul Brook  <paul@nowt.org>
4231
4232         * config.gcc <arm>: Add --with-abi=
4233         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
4234         thumb_far_jump_used): Remove prototypes.
4235         (arm_needs_doubleword_align): Add prototype.
4236         (thumb_compute_initial_elimination_offset): Ditto.
4237         * config/arm/arm.c (arm_get_frame_offsets): New function.
4238         (use_return_insn, output_return_instruction, arm_output_epilogue,
4239         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
4240         arm_expand_prologue, thumb_expand_epilogue): Use it.
4241         (arm_abi, target_abi_name, all_arm_abis): New variables.
4242         (arm_override_options): Set them.  Set structure padding for AAPCS.
4243         (arm_return_in_memory): Update ABI check.
4244         (arm_init_cumulative_args): Initialize can_split.
4245         (arm_needs_doubleword_align): New function.
4246         (arm_function_arg): Don't split args after pushing to stack. Handle
4247         doubleword/even reg alignment.
4248         (arm_va_arg): Handle all doubleword aligned args.
4249         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
4250         on ABI, not CPU.
4251         (arm_compute_save_reg0_reg12_mask): Fix comment.
4252         (thumb_get_frame_size, thumb_get_frame_size): Remove.
4253         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
4254         value for alignment.
4255         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
4256         to match.
4257         (thumb_compute_initial_elimination_offset): New function.
4258         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
4259         unneccessary rounding.
4260         * config/arm/arm.h (target_abi_name): Declare.
4261         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
4262         arm_abi_type, ARM_DEFAULT_ABI): Define.
4263         (ARM_FLAG_ATPCS): Remove.
4264         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
4265         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
4266         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
4267         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
4268         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
4269         Contitionalize on ABI, not CPU.
4270         (struct arm_stack_offsets): Define.
4271         (struct machine_function): Add stack_offsets.  Remove frame_size.
4272         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
4273         pushed.
4274         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
4275         doubleword alignment.
4276         (THUMB_INITIAL_ELIMINATION_OFFSET,
4277         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
4278         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
4279         * config/arm/arm.md (align_8): Enable for all targets.
4280         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
4281         (ARM_DEFAULT_ABI): Define.
4282         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
4283         -mstructure-size-boundary.
4284
4285 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4286
4287         * configure.ac: Check for -Wno-variadic-macros; don't use
4288         -pedantic (in stage 1 or a simple 'make all') unless it's available,
4289         and if it's available, use it.  Also, clean up check for
4290         -Wno-long-long.
4291         * configure: Regenerate.
4292
4293 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4294
4295         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
4296         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
4297         (MULTILIB_DEFAULTS): Use it.
4298         (MIPS_CPU_STRING_DEFAULT): Remove.
4299         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
4300         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
4301         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
4302         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
4303         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
4304         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
4305         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
4306         accordingly.
4307
4308 2004-03-24  DJ Delorie  <dj@redhat.com>
4309             Richard Sandiford  <rsandifo@redhat.com>
4310
4311         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
4312         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
4313         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
4314         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
4315         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
4316         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
4317         if TARGET_FIX_VR4122.
4318         * config/mips/mips.md (define_attr length): Account for nops inserted
4319         after macc and dmult when using -mfix-vr4122-bugs.
4320         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
4321         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
4322         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
4323         * config/mips/vr4122-div.S: New file.
4324         * doc/invoke.texi: Document -mfix-vr4122-bugs.
4325
4326 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4327
4328         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
4329         (TARGET_MIPS4130): New macro.
4330         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
4331         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
4332         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
4333         with PROCESSOR_R4130.
4334         * config/mips/mips.md (define_attr cpu): Add r4130.
4335         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
4336
4337 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4338             Richard Sandiford  <rsandifo@redhat.com>
4339
4340         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
4341
4342 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
4343
4344         PR preprocessor/14438
4345         * cpplib.c (do_pragma): Remove line_change call after pragma
4346         handler.
4347
4348 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
4349
4350         * doc/extend.texi (ARM Built-in Functions): Replace with correct
4351         declarations.
4352
4353 2004-03-23  Roger Sayle  <roger@eyesopen.com>
4354
4355         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
4356         if flag_unsafe_math_optimizations.
4357         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
4358         and TARGET_80387 expand using truncdfsf2_noop pattern.
4359         (truncxfsf2): Likewise using truncxfsf2_noop.
4360         (truncxfdf2): Likewise using truncxfdf2_noop.
4361         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
4362
4363 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
4364
4365         * hooks.c (hook_constcharptr_tree_null): New hook.
4366         * hooks.h (hook_constcharptr_tree_null): New prototype.
4367         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
4368         * target.h (mangle_fundamental_type): New target hook.
4369         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
4370         target hook at rs6000_mangle_fundamental_type.
4371         (rs6000_mangle_fundamental_type): New function.
4372         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
4373
4374 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
4375
4376         PR 12267, 12391, 12560, 13129, 14114, 14133
4377         * c-tree.h: Forward declare struct c_binding.  Declare
4378         c_override_bindings_to_false.  Update prototypes.
4379         (struct lang_identifier): Update comments.  Change fields to be
4380         struct c_binding *.
4381         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
4382         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
4383         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
4384         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
4385         * c-common.h: Update prototypes.
4386         * c-decl.c (struct c_scope): Update commentary.  Remove names,
4387         names_last, parms, parms_last, tags, and shadowed fields.  Add
4388         bindings and depth fields.
4389         (scope_freelist): Move to more appropriate location.
4390         (c_print_identifier): Update for changes to struct lang_identifier.
4391         (objc_mark_locals_volatile): Update for new bindings structures.
4392         (global_bindings_p): Honor c_override_global_bindings_to_false.
4393         (pushlevel): Rename to push_scope; take no arguments; use the
4394         scope_freelist; initialize scope->depth and check for overflow.
4395         (poplevel): Rename to pop_scope; totally rewritten for new bindings
4396         structures.
4397         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
4398         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
4399         Improve some commentary.  Adjust handling of forward parm decls.
4400         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
4401         Preserve C_DECL_IN_EXTERNAL_SCOPE.
4402         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
4403         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
4404         decls.  Rewrite for new bindings structures.  Improve commentary.
4405         Eliminate the copy_node call.
4406         (implicit_decl_warning): Use the "diag" idiom (as seen in
4407         locate_old_decl) to reduce code duplication; call locate_old_decl
4408         if appropriate.  Relocate to remove need for forward declaration.
4409         (implicitly_declare): Adjust for new bindings structures.  Kludge
4410         around Objective-C not-really-builtin functions.
4411         (undeclared_variable): Improve diagnostics.  If current_function_decl
4412         is nonnull but current_function_scope is null, use current_scope.
4413         Use bind.
4414         (lookup_tag): Adjust for new bindings structures.  Kludge around
4415         Objective-C's tag declarations that wind up in the external scope.
4416         (lookup_name): Adjust for new bindings structures.  Kludge around
4417         c-common.c's pseudo-typedefs that wind up in the external scope.
4418         (lookup_name_current_level): Rename lookup_name_in_scope; take a
4419         second argument indicating the scope to examine; rewrite for
4420         new bindings structures.
4421         (c_init_decl_processing): Adjust for renamed functions.  Do not
4422         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
4423         First scope pushed is the external scope, not the global scope.
4424         (builtin_function): Use bind, not pushdecl.  Adjust other bits
4425         for new data structures.  Keep track of builtins that should be
4426         made visible automatically.
4427         (start_decl): Adjust diagnostics.  Remove unnecessary call to
4428         expand_decl.
4429         (grokparms): Return 0 if arg_types is error_mark_node.
4430         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
4431         reversed sense.  Rewrite for new bindings structures.  Do not
4432         leave any decls in the scope, to prevent pop_scope from doing
4433         contradictory things with them.
4434         (finish_struct, finish_enum): Remove redundant diagnostics.
4435         (build_enumerator): Don't cascade diagnostics for error_mark_node.
4436         Mark location where -pedantic changes the meaning of the program.
4437         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
4438         parameter decls into the function's scope structure using bind.
4439         Warn here about function definitions in the wrong style.
4440         Adjust diagnostics.
4441         (store_parm_decls): Correct the determination of whether a
4442         function was defined with a prototype.
4443         (c_write_global_declarations): Operate on all file decls and on
4444         the external scope.  Split body of the loop to...
4445         (c_write_global_declarations_1): ... this new function, to avoid
4446         code duplication.
4447         (truly_local_externals, first_builtin_decl, last_builtin_decl)
4448         (make_scope, pop_scope, in_parm_level_p, set_block)
4449         (any_external_decl, record_external_decl, bind_label, getdecls)
4450         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
4451         (c_reset_state): Delete.
4452         (visible_builtins, c_override_global_bindings_to_false)
4453         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
4454         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
4455         (external_scope, binding_freelist, bind, free_binding_and_advance)
4456         (push_file_scope, pop_file_scope): New.
4457         (pushtag, pushdecl_top_level, lookup_label, declare_label)
4458         (define_label, c_make_fname_decl, finish_decl)
4459         (mark_forward_parm_decls, build_compound_literal)
4460         (grokdeclarator, start_function, check_for_loop_decls)
4461         (identifier_global_value, record_builtin_type): Minor adjustments
4462         for new bindings structures.  Improve diagnostics and commentary.
4463         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
4464         pushlevel/poplevel respectively.
4465         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
4466         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
4467         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
4468         correct loop over multiple translation units; call fatal_error if
4469         requested to compile more than one file at once.  (This disables
4470         IMA temporarily - an up-front error being preferable to a crash.)
4471         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
4472         (all actions): Adjust calls to pushlevel/poplevel.
4473         (parsing_iso_function_signature): Delete.
4474         (extdef_1): Fold into extdef.
4475         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
4476         warn here about function definitions in the wrong style.
4477         (after_tyle_declarator, parm_declarator_starttypename)
4478         (parm_declarator_nostarttypename, notype_declarator): Remove
4479         commented-out productions.
4480         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
4481         an empty TREE_LIST node.  Adjust calls to get_parm_info.
4482         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
4483         to suppress -Wold-style-definition after this error.
4484         (c_parse_file): Don't clear the binding stack or call
4485         finish_fname_decls here.  Correct comment.
4486         * c-typeck.c (same_translation_unit_p): Export.
4487         (common_type): Use c_override_global_bindings_to_false, not
4488         pushlevel/poplevel/declare_parm_level.
4489         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
4490         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
4491         and LANG_HOOKS_GETDECLS with do-nothing stubs.
4492         * objc/objc-lang.c: Likewise.
4493         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
4494         get_parm_info.
4495         (OBJC_VOID_AT_END): Delete; replace all uses
4496         with void_list_node.
4497         (generate_forward_declaration_to_string_table): Delete.
4498         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
4499
4500         * coverage.c (create_coverage): Don't pushdecl anything.
4501         * langhooks.c (lhd_clear_binding_stack): Call
4502         lang_hooks.decls.poplevel, not poplevel.
4503         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
4504         circular list rather than going into an infinite loop.
4505
4506 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
4507
4508         * optabs.c (expand_binop): When synthesizing double word rotates
4509         from single word shifts, use a new register target if the provided
4510         target is not a REG already.
4511
4512 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4513
4514         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
4515         * c-common.c (handle_mode_attribute): Add extra arg to
4516         build_pointer_type_for_mode and build_reference_type_for_mode.
4517         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
4518         for INTEGER_CST.
4519         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
4520         Chain pointers via TYPE_NEXT_PTR_TO.
4521         (build_reference_type_for_mode): Similarly.
4522         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
4523         and build_reference_type_for_mode.
4524         (tree_check4_failed): New function.
4525         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
4526         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
4527         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
4528         Add check.
4529
4530 2004-03-23  Roger Sayle  <roger@eyesopen.com>
4531
4532         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
4533         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
4534         when both A and B are nonnegative.
4535         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
4536         nonzero.
4537
4538 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4539
4540         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
4541         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
4542
4543 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4544
4545         PR optimization/14669
4546         * fold-const.c (fold): Only unwiden integer comparisons for equality
4547         and inequality operators, or when the signedness doesn't change.
4548
4549 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
4550
4551         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
4552         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
4553         * config/sparc/t-linux: New file.
4554
4555 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
4556
4557         * gcse.c (can_assign_to_reg_p): New function, split out from...
4558         (want_to_gcse_p): ...here.
4559         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
4560         the rhs of a store.
4561
4562 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
4563
4564         * c-typeck.c (same_translation_unit_p): Fix pasto.
4565
4566 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
4567
4568         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
4569         (PARAM_MAX_SCHED_REGION_INSNS): New.
4570         * sched-rgn.c: Include params.h
4571         (MAX_RGN_BLOCKS): Delete.
4572         (MAX_RGN_INSNS): Delete.
4573         (too_large): Return bool.  Convert to PARAM_VALUE.
4574         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
4575         * doc/invoke.texi (param): Document max-sched-region-blocks and
4576         max-sched-region-insns.
4577
4578 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
4579
4580         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
4581         for base types.
4582
4583 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
4584
4585         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
4586         change.
4587
4588 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
4589
4590         PR c/14069
4591         * c-decl.c (finish_struct): Change type of incorrect flexible array
4592         field into error_mark_node.
4593
4594 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
4595
4596         PR target/14580
4597         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
4598         who are not local for Darwin PIC.
4599
4600 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
4601
4602         * regrename.c (regrename_optimize): Set regs_ever_live for all
4603         registers introduced as replacement.
4604
4605 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4606
4607         PR middle-end/14470
4608         * expr.c (mark_queue): New function.
4609         (emit_insns_enqueued_after_mark): New function replacing
4610         emit_queue.  Clear the body of emitted queued insns.
4611         (emit_queue): Call emit_insns_enqueued_after_mark.
4612         (store_expr): Mark the increment queue on entry.  Emit
4613         only the incrementations queued when expanding the source.
4614
4615 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
4616
4617         * configure.ac: Allow --disable-coverage-flags (for the future benefit
4618         of top level bootstrap, and consistency).  Reindent.
4619         * configure: Regenerate.
4620
4621 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4622
4623         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
4624         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
4625         unnecessary casts.
4626
4627 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
4628
4629         PR target/14291
4630         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
4631         __MINGW32__.
4632
4633 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4634
4635         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
4636         to nonimmediate_operand.
4637         ("*doloop_di"): Likewise.
4638
4639 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
4640
4641         * real.h (struct real_value): Use the same type for all
4642         bitfields.  Rename exp to uexp.
4643         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
4644         Adjust all uses of exp...
4645         * builtins.c: ... here, ...
4646         * emit-rtl.c: ... here, and ...
4647         * real.c: ... and here.
4648
4649 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4650
4651         * pretty-print.c (pp_base_maybe_space): New function.
4652         * pretty-print.h (pp_base_maybe_space): Declare.
4653         (pp_maybe_space): New macro.
4654
4655 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4656
4657         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
4658
4659 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4660
4661         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
4662         of using register multiplication cost.
4663         (expand_mult): Adapt choose_mult_variant call.
4664         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
4665         of MODE; pass appropriate cost bound.  Adjust result when
4666         performing signed multiplication by a negative constant.
4667         Don't use intermediate modes larger than word_mode.
4668
4669 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4670
4671         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
4672         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
4673         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
4674         * explow.c (expr_size): Likewise.
4675         * expr.h (placeholder_list, find_placeholder): Deleted.
4676         * expr.c (store_constructor): Likewise.
4677         (get_inner_reference): Likewise.  Also don't call find_placeholder.
4678         (placeholder_list, find_placeholder): Deleted.
4679         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
4680         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
4681         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
4682         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
4683         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
4684         Likewise.
4685         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
4686         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
4687         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
4688         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
4689         Clean up by using first_rtl_op.
4690         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
4691         (substitute_placeholder_in_expr): New function.
4692         * tree.def (WITH_RECORD_EXPR): Deleted.
4693         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
4694         (substitute_placeholder_in_expr): New.
4695
4696 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
4697
4698         * dojump.c (prefer_and_bit_test): Fix which part of
4699         the and_test is replaced.
4700
4701 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
4702
4703         * frontends.texi: Add missing line.
4704
4705 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
4706             Chris Devers  <cdevers@pobox.com>
4707             Joseph S. Myers  <jsm@polyomino.org.uk>
4708
4709         * doc/frontends.texi: Rewrite.
4710         * doc/gcc.texi: Update last modification date.
4711
4712 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
4713
4714         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
4715         message before redirecting the edge.
4716
4717 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4718
4719         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
4720         flag.
4721         * explow.c (force_not_mem): Set REG_POINTER flag according to
4722         MEM_POINTER one.
4723         * rtl.h (MEM_POINTER): New macro.
4724         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
4725         for MEM_POINTER.
4726
4727 2004-03-20  Roger Sayle  <roger@eyesopen.com>
4728
4729         PR target/13889
4730         * cse.c (fold_rtx): Avoid substituting constants into unary
4731         conversion operations.
4732
4733 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4734
4735         * fold-const.c (fold): Replace "expr" with "t".
4736
4737 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
4738
4739         PR c/12373
4740         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
4741         DECL_ORIGINAL_TYPE if there isn't one.
4742
4743 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4744
4745         * fold-const.c (fold): Replace "final_type" with "type".
4746         Remove variable "final_type".
4747
4748 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4749
4750         * fold-const.c (fold): Constify "type".
4751         Replace "TREE_TYPE (t)" with "type".
4752
4753 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4754
4755         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
4756         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
4757         via (*targetm.foo) () with targetm.foo ().
4758
4759 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
4760
4761         PR other/14630
4762         * doc/install.texi: Add info directory category and entry.
4763
4764 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4765
4766         * fold-const.c (fold): Replace "t" with "tem" where it is used
4767         as a temporary variable.  Remove "orig_t" and all of its uses.
4768
4769 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4770
4771         * fold-const.c (fold): Remove variable "invert".
4772         Move the handling of relational expressions that can be folded
4773         to a constant ...
4774         (fold_relational_const): ... here.
4775         (tree_expr_nonzero_p): New.
4776
4777 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
4778
4779         PR c/14635
4780         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
4781         DEF_GCC_BUILTIN.
4782
4783 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
4784
4785         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
4786         (GTFILES): Add $(srcdir)/dojump.h.
4787         (gt-dojump.h): New dependency.
4788         * dojump.c (and_reg, and_test, shift_test): New static variables.
4789         (prefer_and_bit_test): New function.
4790         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
4791
4792 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4793
4794         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
4795         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
4796         reorg.c, tree.h: Fix comment typos.
4797
4798 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4799
4800         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
4801         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
4802         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
4803         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
4804         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
4805         vmsdbgout.c: Replace calls via (*targetm.foo) () with
4806         targetm.foo ().
4807
4808 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
4809
4810         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
4811         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
4812         always_inline attribute.
4813         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
4814         Treat expansion as completed even if literal argument is
4815         invalid (so that other expansions are not tried in vain).
4816
4817 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4818
4819         * loop-doloop.c (add_test): Replace GEN_INT (0) with
4820         const0_rtx.
4821
4822 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4823
4824         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
4825         ...
4826         (fold_abs_const): ... here.
4827
4828 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4829
4830         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
4831
4832 2004-03-19  Denis Chertykov  <denisc@overta.ru>
4833
4834         PR target/11520
4835         * config/avr/avr.md ("call_insn"): Handle explicit integer
4836         specially.
4837         (call_value_insn): Likewise.
4838
4839 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4840
4841         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
4842
4843 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4844
4845         * fold-const.c (negate_expr): Move the handling of constants
4846         ...
4847         (fold_negate_const): ... here.
4848
4849 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4850
4851         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
4852         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
4853         * tree.c (debug_no_type_hash): Deleted.
4854         (type_hash_canon): Abort if passed a variant.
4855         Check lang_hooks.types.hash_types.
4856         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
4857         (build_array_type): Remove unnecessary allocation of pointer type.
4858         (build_complex_type): Properly qualify resulting type.
4859
4860 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
4861
4862         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
4863
4864 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
4865
4866         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
4867         (expand_mult): ...here.
4868         (extract_high_half): New, split out from expand_mult_highpart.
4869         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
4870         (expand_highpart): Evaluate the cost of a shift/add sequence,
4871         then see if any of the specialized optabs are cheaper.
4872
4873 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
4874
4875         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
4876
4877 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4878
4879         * convert.c (convert_to_real): Add more math builtins.
4880
4881 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4882
4883         * convert.c (convert_to_real): Reformat using switch stmt.
4884
4885 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
4886
4887         * c-common.c (pointer_int_sum): Do not complain about using
4888         pointers to pointers-to-members.
4889
4890 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
4891
4892         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
4893         have moved to the target hooks structure".
4894
4895 2004-03-18  James E Wilson  <wilson@specifixinc.com>
4896
4897         * config/mips/mips.md (type): Split move into arith and fmove.  Split
4898         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
4899         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
4900         Likewise.
4901         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
4902         Likewise.
4903         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
4904         rm7_fp_quick): Likewise.
4905         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
4906         rm9k_fquick): Likewise.
4907         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
4908         Likewise.
4909         (ir_sr70_icmp): Delete.
4910
4911 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4912
4913         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
4914         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
4915         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
4916         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
4917         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
4918         Protect with proper check.
4919         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
4920         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
4921         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
4922         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
4923         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
4924         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
4925         not TYPE_FIELDS.
4926         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
4927
4928 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
4929
4930         * gcse.c (eliminate_partially_redundant_loads): Reject change if
4931         dest is set between beginning and current insn.
4932
4933 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
4934
4935         * c-decl.c (grokdeclarator): Do not complain about redeclaring
4936         visible "static" identifiers "extern" in a local scope.
4937         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
4938         post-increments/decrements.
4939
4940 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
4941
4942         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
4943         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
4944         (xtensa_va_start): Remove assignment to current_function_arg_words.
4945
4946 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
4947
4948         * alias.c (record_set): Detect the case where a register is assigned
4949         a new value that has the same base term as the old one.
4950
4951 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4952
4953         * doloop.c: Removed.
4954         * loop-doloop.c: New file.
4955         * Makefile.in (doloop.o): Remove.
4956         (loop-doloop.o): New.
4957         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
4958         * cfgloopanal.c (get_loop_level): New function.
4959         * loop-iv.c (iv_number_of_iterations): Handle case when loop
4960         is leaved immediatelly.
4961         * loop.c (strength_reduce): Do not call doloop optimization.
4962         * loop.h (LOOP_BCT): Removed.
4963         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
4964         (rest_of_handle_loop2): Call doloop_optimize_loops.
4965         (rest_of_compilation): Test for optimizations moved to
4966         rest_of_handle_loop2.
4967
4968 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
4969
4970         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
4971         for mixed mode.
4972         (rs6000_emit_prologue): Ditto.
4973         (rs6000_emit_epilogue): Ditto.
4974         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
4975         macro for mixed mode.
4976
4977 2004-03-18  Jan Hubicka  <jh@suse.cz>
4978
4979         * predict.c (propagate_freq): Compute correctly frequency of
4980         EXIT_BLOCK.
4981
4982 2004-03-17  Eric Christopher  <echristo@redhat.com>
4983
4984         * builtins.c (apply_args_size): Use reg_raw_mode.
4985         (apply_result_size): Ditto.
4986
4987 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
4988
4989         PR target/14620
4990         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
4991
4992 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
4993
4994         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
4995         32-bit builds when defaulting to 32-bit.
4996
4997 2004-03-17  Jan Hubicka  <jh@suse.cz>
4998
4999         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
5000         array.
5001
5002 2004-03-17  James E Wilson  <wilson@specifixinc.com>
5003
5004         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
5005         (hazard_nop): Change type to nop.
5006         (type): Split arith into arith, shift, slt, clz.  Delete darith.
5007         Fix all uses.  Change arith to multi if more than one insn emitted.
5008         * config/mips/5400.md (ir_vr54_arith): Likewise.
5009         * config/mips/5500.md (ir_vr55_arith): Likewise.
5010         * config/mips/7000.md (rm7_int_other): Likewise.
5011         * config/mips/9000.md (rm9k_int): Likewise.
5012         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
5013
5014 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
5015
5016         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
5017         to hold the subtype tree instead of recomputing it several times.
5018
5019 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
5020
5021         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
5022         CC_INVERT.
5023         * config/mn10300/mn10300.md (cc): Remove "invert".
5024
5025 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5026
5027         * builtins.c (integer_valued_real_p): Add builtin rint.
5028         (fold_builtin): Likewise.
5029         * convert.c (convert_to_real): Likewise.
5030
5031         * convert.c (convert_to_real): Fix typos in `long double'
5032         builtins.
5033
5034 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
5035
5036         PR c++/14481
5037         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
5038         generated COMPOUND_EXPRs.
5039
5040 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5041
5042         * config/h8300/t-rtems (h8300-*-rtems*): New.
5043
5044 2004-03-16  Eric Christopher  <echristo@redhat.com>
5045
5046         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
5047
5048 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5049
5050         * config/i386/i386-protos.h: Add a prototype for
5051         ix86_reverse_condition.
5052         * config/i386/i386.c (ix86_reverse_condition): New.
5053         * config/i386/i386.h (REVERSE_CONDITION): Use
5054         ix86_reverse_condition.
5055         * config/i386/i386.md: Use ix86_reverse_condition instead of
5056         REVERSE_CONDITION.
5057
5058 2004-03-16  J. Brobecker  <brobecker@gnat.com>
5059
5060         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
5061
5062 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5063
5064         PR bootstrap/12974
5065         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
5066
5067 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5068
5069         * c-common.c (c_common_type_for_mode): Build vector types on
5070         demand.
5071         (handle_mode_attribute): Deprecate using the mode attribute
5072         to create vector types.  Fix indentation.
5073         (vector_type_node_list): Remove.
5074         (handle_vector_size_attribute): Create vector types on demand.
5075         Strip a NON_LVALUE_EXPR from the attribute if there is one.
5076         * c-typeck.c (comptypes): Make vector types compatible if they
5077         have the same underlying mode.
5078         (convert_for_assignment): Use comptypes to convert between
5079         vector types.
5080         * tree.c (build_common_tree_nodes_2): Do not create vector types.
5081         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
5082         vector types.
5083         * tree.h: Remove vector types.
5084         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
5085         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
5086         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
5087         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
5088         * doc/extend.texi (Vector Types): Document how to use the
5089         vector_size attribute to create vectors, rather than mode.
5090
5091         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
5092         * config/i386/emmintrin.h: Likewise.
5093         * config/i386/mmintrin.h: Likewise.
5094         * config/i386/xmmintrin.h: Likewise.
5095         * config/sh/ushmedia.h: Likewise.
5096
5097 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5098
5099         * config/freebsd-spec.h, config/arc/arc-protos.h,
5100         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
5101         config/arm/linux-gas.h, config/arm/semi.h,
5102         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
5103         config/ia64/freebsd.h, config/mips/7000.md,
5104         config/mips/9000.md, config/ns32k/ns32k-protos.h,
5105         config/sparc/pbd.h: Update copyright.
5106
5107 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5108
5109         PR target/14577
5110         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
5111
5112 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5113
5114         * combine.c (combine_simplify_rtx): Remove the "last"
5115         parameter and its documentation.  Adjust recursive calls.
5116         (simplify_logical): Always perform the only simplification
5117         controlled by "last", if the simplified expression is
5118         actually different.
5119         (try_combine): Do not pass the "last" parameter to
5120         combine_simplify_rtx.
5121
5122 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
5123
5124         PR target/14599
5125         * config/mips/mips.md (UNSPEC_GP): New constant.
5126         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
5127         an UNSPEC instead of (reg $gp).
5128         (mips16_gp_pseudo_reg): Change accordingly.
5129         (print_operand): Print $gp directly when handling CONST_GP_P.
5130
5131 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5132
5133         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
5134         * longlong.h: Make code 68060 clean when compiling for m68060.
5135
5136 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5137
5138         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
5139         * doc/md.texi: Clarify description of "i" constraint.
5140
5141 2004-03-15  James E Wilson  <wilson@specifixinc.com>
5142
5143         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
5144         Split store into store, fpstore, fpidxstore.  Fix all uses.
5145         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
5146         Likewise.
5147         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
5148         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
5149         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
5150         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
5151         ir_sr70_fstore): Likewise.
5152
5153 2004-03-15  Richard Henderson  <rth@redhat.com>
5154
5155         PR middle-end/14535
5156         * except.c (collect_one_action_chain): Record action for cleanup
5157         outer of exception spec.
5158
5159 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
5160
5161         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5162         Fix the check for abort and only do the mmap if we can.
5163
5164 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
5165
5166         * config/sparc/sparc.h: Rework comments about the code model
5167         in 64-bit environment and the mode 'Pmode'.
5168         * doc/invoke.texi (SPARC options): Rework description of the
5169         different code models supported in 64-bit environment.
5170
5171 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5172
5173         * defaults.h (REVERSIBLE_CC_MODE): Define.
5174         * jump.c (reversed_comparison_code_parts): Don't check if
5175         REVERSIBLE_CC_MODE is defined.
5176
5177 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5178
5179         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
5180         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
5181         hosthooks.h, params.h, ra-colorize.c, web.c,
5182         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
5183         config/avr/avr-protos.h, config/avr/avr.md,
5184         config/fr30/fr30-protos.h, config/fr30/fr30.md,
5185         config/h8300/fixunssfsi.c, config/i386/darwin.h,
5186         config/i386/freebsd.h, config/i386/freebsd64.h,
5187         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
5188         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
5189         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
5190         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
5191         config/pa/pa64-regs.h, config/rs6000/aix41.h,
5192         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
5193         config/sparc/aout.h, config/sparc/freebsd.h,
5194         config/sparc/litecoff.h, config/vax/vax-protos.h,
5195         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
5196         copyright.
5197
5198 2004-03-15  Paul Brook  <paul@codesourcery.com>
5199
5200         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
5201
5202 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5203
5204         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
5205         (pp_c_cv_qualifier): Document.
5206         (pp_c_space_for_pointer_operator): Likewise.
5207         (pp_c_integer_constant): Likewise.
5208         (pp_c_identifier): Likewise.
5209         (pp_c_init_declarator): Don't print function body.
5210
5211 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5212
5213         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
5214         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
5215         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
5216         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
5217         wording and grammar.
5218
5219 2004-03-14  Roger Sayle  <roger@eyesopen.com>
5220
5221         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
5222         with lang_hooks.foo ().
5223         * builtins.c (expand_builtin_va_arg): Likewise.
5224         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
5225         c_common_type_for_mode, c_common_nodes_and_builtins,
5226         handle_mode_attribute, handle_vector_size_attribute): Likewise.
5227         * c-convert.c (convert): Likewise.
5228         * c-format.c (check_format_types): Likewise.
5229         * c-objc-common.c (c_tree_printer): Likewise.
5230         * c-typeck.c (build_unary_op, build_conditional_expr,
5231         build_binary_op): Likewise.
5232         * calls.c (try_to_integrate, expand_call,
5233         emit_library_call_value_1): Likewise.
5234         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
5235         Likewise.
5236         * cgraphunit.c (record_call_1, cgraph_analyze_function,
5237         cgraph_expand_function): Likewise.
5238         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
5239         * coverage.c (build_fn_info_type, build_ctr_info_type,
5240         build_gcov_info, create_coverage): Likewise.
5241         * dbxout.c (dbxout_init): Likewise.
5242         * diagnostic.c (diagnostic_report_current_function): Likewise.
5243         * dojump.c (do_jump): Likewise.
5244         * dwarf2out.c (dwarf2_name): Likewise.
5245         * except.c (init_eh): Likewise.
5246         * explow.c (expr_size, int_expr_size): Likewise.
5247         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
5248         Likewise.
5249         * expr.c (store_expr, store_constructor, safe_from_p,
5250         expand_expr_real, do_store_flag, try_casesi): Likewise.
5251         * function.c (push_function_context_to, pop_function_context_from,
5252         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
5253         put_var_into_stack, allocate_struct_function, current_function_name):
5254         Likewise.
5255         * integrate.c (copy_decl_for_inlining, expand_inline_function):
5256         Likewise.
5257         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
5258         lhd_print_error_function): Likewise.
5259         * opts.c (handle_option, decode_options): Likewise.
5260         * passes.c (open_dump_file): Likewise.
5261         * print-tree.c (print_node): Likewise.
5262         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
5263         expand_decl_cleanup, emit_case_nodes): Likewise.
5264         * stor-layout.c (variable_size): Likewise.
5265         * toplev.c (announce_function, wrapup_global_declarations,
5266         check_global_declarations, compile_file, default_tree_printer,
5267         process_options, lang_dependent_init, finalize): Likewise.
5268         * tree-dump.c (dequeue_and_dump): Likewise.
5269         * tree-inline.c (remap_decl, remap_block, copy_body_r,
5270         initialize_inlined_parameters, declare_return_variable,
5271         inlinable_function_p, expand_call_inline, optimize_inline_calls,
5272         walk_tree, copy_tree_r): Likewise.
5273         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5274         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
5275         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
5276         variably_modified_type_p, dump_tree_statistics): Likewise.
5277         * varasm.c (assemble_variable, compare_constant, copy_constant,
5278         force_const_mem, compute_reloc_for_constant, output_constant,
5279         output_addressed_constants, initializer_constant_valid_p): Likewise.
5280
5281 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
5282
5283         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
5284
5285 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
5286
5287         * doc/install.texi: Reflect autoconf and automake version for
5288         libffi. Update autoconf version to 2.59.
5289
5290 2004-03-13  Roger Sayle  <roger@eyesopen.com>
5291
5292         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
5293         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
5294         make_range, build_range_check, fold_range_test, unextend,
5295         constant_boolean_node, fold_binary_op_with_conditional_arg,
5296         fold_truthop, fold_mathfn_compare, fold_inf_compare,
5297         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
5298         with lang_hooks.foo ().
5299
5300 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
5301
5302         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
5303
5304 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
5305
5306         * doc/install.texi: Note status of -fnew-ra.
5307
5308 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
5309
5310         PR middle-end/14470
5311         * expr.c (store_expr): Call emit_queue before generating the move
5312         from the temporary to the original target.  Protect the temporary
5313         from emit_queue.
5314
5315 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
5316
5317         PR target/14533
5318         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
5319         other than UNSPEC_GOTOFF.
5320
5321 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
5322
5323         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
5324         to arm_legitimate_index_p.  Update all callers with SET as default
5325         value.
5326         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
5327         range if OUTER is a sign-extend operation on QImode.  Correctly
5328         reject shift operations on sign-extended QImode addresses.
5329         (bad_signed_byte_operand): Delete.
5330         (arm_extendqisi_mem_op): New function.
5331         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
5332         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
5333         constraints.
5334         (CONSTRAINT_LEN): New.
5335         (EXTRA_CONSTRAINT): Delete.  Replace with...
5336         (EXTRA_CONSTRAINT_STR): ... this.
5337         (PREDICATE_CODES): Remove bad_signed_byte_operand.
5338         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
5339         is now always default.
5340         (define_splits for bad sign-extend loads): Delete.
5341         (arm_extendqisi, arm_extendqisi_v5): Likewise.
5342         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
5343         Rework 'U' constraint to 'Uv'.
5344         * arm-protos.h: Remove bad_signed_byte_operand.  Add
5345         arm_extendqisi_mem_op.
5346         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
5347         Add Uq constraint.
5348
5349 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
5350
5351         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
5352         with targetm version.
5353
5354         PR target/14567
5355         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
5356         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
5357         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
5358         Update all users of RS6000_ARG_SIZE.
5359         (function_arg_advance): Count fregno using mode size.
5360         (function_arg): Handle long double split over regs and memory.
5361         (function_arg_partial_nregs): Likewise.
5362         (rs6000_va_arg): Repackage complex args.
5363
5364 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
5365
5366         PR target/14047
5367         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
5368         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
5369         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
5370
5371 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
5372
5373         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
5374         prototype.
5375         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
5376         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5377
5378 2003-03-12  Andrew Pinski  <apinski@apple.com>
5379
5380         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5381         Use ret instead of result. Use addr instead of base.
5382
5383 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
5384
5385         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
5386         fixes required by libstdc++ and update installation instructions
5387         for libstdc++.a.
5388
5389 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
5390
5391         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
5392         leading '@' on fastcall symbols before stripping suffix.
5393
5394 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5395
5396         * combine.c (unmentioned_reg_p): New function to check whether an
5397         expression is a "specialization" of another, i.e. that there are
5398         no registers or memory references mentioned in the first that don't
5399         appear in the second.
5400         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
5401         (combine_instructions): Also try combining instructions using the
5402         REG_EQUAL note from a preceding log-linked instruction.
5403
5404 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5405
5406         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
5407
5408 2004-03-12  Matt Austern  <austern@apple.com>
5409
5410         * target.h (struct gcc_target): New target hook, unwind_label.
5411         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
5412         * output.h (default_emit_unwind_label): New function.
5413         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
5414         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
5415         (TARGET_SUPPORTS_HIDDEN): New target macro.
5416         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
5417         that corresponds to this FDE.
5418         (FRAME_BEGIN_LABEL): Allow target to override default label.
5419         (output_call_frame_info): If FDEs are linknonce, then use extra
5420         indirection for FDE encoding, output a label for each FDE, and
5421         output an empty label for each function without an FDE.
5422         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
5423         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
5424         decls with DECL_ONE_ONLY set, if that macro is defined.
5425         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
5426         for a SUPPORTS_ONE_ONLY target.
5427         * config/darwin-protos.h (darwin_unique_section): Declare.
5428         (darwin_asm_named_section): Likewise.
5429         (darwin_section_type_flags): Likewise.
5430         (darwin_non_lazy_pcrel): Likewise.
5431         (darwin_emit_unwind_label): Likewise.
5432         (darwin_make_decl_one_only): Likewise.
5433         * config/darwin.c (machopic_finish): Get rid of tweak that
5434         eliminate stubs for symbols that are defined.
5435         (darwin_encode_section_info): Don't treat weak functions as defined.
5436         (darwin_make_decl_one_only): Define.
5437         (darwin_asm_named_section): Likewise.
5438         (darwin_section_type_flags): Likewise.
5439         (darwin_unique_section): Likewise.
5440         (darwin_emit_unwind_label): Likewise.
5441         (darwin_non_lazy_pcrel): Likewise.
5442         (darwin_asm_output_dwarf_delta): Difference between two labels is
5443         local only if both labels are local.
5444         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
5445         (ASM_MAKE_LABEL_LINKONCE): Likewise.
5446         (TARGET_SUPPORTS_HIDDEN): Likewise.
5447         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
5448         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
5449         (FRAME_BEGIN_LABEL): Likewise.
5450         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
5451         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5452         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
5453         (TARGET_ASM_UNIQUE_SECTION): Define.
5454         (EH_FRAME_SECTION_NAME): Define.
5455         (EH_FRAME_SECTION_ATTR): Likewise.
5456         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
5457         (TARGET_ASM_NAMED_SECTION): Likewise.
5458         (TARGET_SECTION_TYPE_FLAGS): Likewise.
5459         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
5460         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
5461         TARGET_ASM_EMIT_UNWIND_LABEL.
5462
5463 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5464
5465         * builtins.c (expand_builtin_mathfn): Add pow10* to the
5466         existing exp10* case.
5467         (expand_builtin): Likewise.
5468
5469 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5470
5471         * doc/tm.texi (registers) <Values in Registers>: Add
5472         entry for REGMODE_NATURAL_SIZE.
5473
5474 2004-03-12  Richard Henderson  <rth@redhat.com>
5475
5476         PR target/14547
5477         * target.h (struct gcc_target): Move calls substructure before
5478         booleans.  Add split_complex_arg.
5479         * function.c (assign_parms, split_complex_args): Use it.
5480         * calls.c (expand_call): Likewise.
5481         (split_complex_values): Likewise.  Check for splittable types
5482         before allocating memory.
5483         (split_complex_types): Likewise.
5484         * system.h (SPLIT_COMPLEX_ARGS): Poison.
5485         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
5486         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
5487         * config/alpha/alpha.c (alpha_split_complex_arg): New.
5488         (TARGET_SPLIT_COMPLEX_ARG): New.
5489         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
5490         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
5491         (rs6000_override_options): Zap it for non-AIX.
5492         (rs6000_function_value): Use targetm.calls.split_complex_arg.
5493         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
5494         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
5495         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
5496         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
5497         SPLIT_COMPLEX_ARGS entry.
5498
5499 2004-03-11  Richard Henderson  <rth@redhat.com>
5500
5501         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
5502         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
5503         (alpha_emit_xfloating_arith): Update to match.
5504         (alpha_emit_xfloating_compare): Likewise.
5505         (alpha_emit_xfloating_cvt): Likewise.
5506         (alpha_emit_xfloating_libcall): Take already built symbol,
5507         mark call const.
5508         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
5509         op1 in a register.
5510
5511 2004-03-11  Richard Henderson  <rth@redhat.com>
5512
5513         PR target/14539
5514         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
5515
5516         * simplify-rtx.c (simplify_relational_operation): Fix typo.
5517
5518 2004-03-11  Richard Henderson  <rth@redhat.com>
5519
5520         PR middle-end/14477
5521         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
5522
5523 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5524
5525         PR target/14262
5526         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
5527         defined, pass small BLKmode values in registers in the low-order part.
5528
5529 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5530
5531         * combine.c (if_then_else_cond): Check for NULL return value of
5532         simplify_gen_subreg.
5533
5534 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
5535
5536         PR target/14496
5537         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
5538         TARGET_SINGLE_FLOAT.
5539
5540 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
5541
5542         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
5543         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
5544         * config/ia64/ia64.c (ia64_init_libfuncs): New.
5545         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
5546
5547 2004-03-11  Roger Sayle  <roger@eyesopen.com>
5548
5549         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
5550         -((int)X>>C) where C is an integer constant one bit less than the
5551         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
5552         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
5553
5554         * simplify-rtx.c (simplify_unary_operation): Also implement the
5555         above transformations at the RTL level.
5556
5557 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
5558
5559         * real.c (encode_ibm_extended): Do round low word.
5560
5561 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
5562
5563         * config/arm/arm.md (is_xscale): Comment this attribute and move
5564         it a bit further up in the file, closer to related attributes.
5565
5566 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5567
5568         * config/host-solaris.c (sol_gt_pch_use_address): Add
5569         missing terminating marker to comment.
5570
5571 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
5572
5573         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
5574         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
5575         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
5576         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
5577         move_operand as source predicate in all cases.
5578         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
5579         Test reg_or_0_operand.  Use move_operand as source predicate.
5580         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
5581         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
5582         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
5583         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
5584         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
5585         Use move_operand as source predicate.  Remove 'K' constraint.
5586         (*movqi_internal): Likewise movqi_internal.
5587         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
5588         reg_or_0_operand.  Use move_operand as source predicate.
5589         (*movsf_softfloat): Likewise movsf_internal2.
5590         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
5591         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
5592         (*movdf_softfloat): Likewise movdf_internal2.
5593         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
5594         for DImode if !TARGET_64BIT.
5595         (mips_legitimize_move): Simplify accordingly.
5596
5597 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
5598
5599         PR/14362
5600         * var-tracking.c (struct variable_def): Added field refcount.
5601         (variable_htab_free): Decrease the refcount and delete variable
5602         only if there are no more references.
5603         (unshare_variable): New function.
5604         (vars_copy_1): Increase refcount instead of copying the variable.
5605         (variable_union): Share the variables where possible, unshare
5606         the variables if needed.
5607         (variable_different_p): Return false if var1 and var2 are
5608         the same structure.
5609         (variable_was_changed): Init the refcount of new variable.
5610         (set_frame_base_location): Unshare variable if needed.
5611         (set_variable_part): Init the refcount of new variable.
5612         Unshare the variables if needed.
5613         (delete_variable_part): Unshare the variables if needed.
5614         (emit_notes_for_differences_1): Init the refcount of new variable.
5615         (vt_add_function_parameters): Do not add function parameters to
5616         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
5617         (vt_initialize): Do not add frame_base_decl to IN set of
5618         ENTRY_BLOCK_PTR because it is unused anyway.
5619
5620 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
5621
5622         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
5623         (vars_copy): Likewise.
5624         (variable_union): Likewise.
5625         (set_variable_part): Likewise.
5626         (delete_variable_part): Likewise.
5627
5628 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
5629
5630         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
5631         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
5632         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
5633         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
5634         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
5635         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
5636         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
5637         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
5638         config/stormy16/stormy16.c: Fix comment typos and formatting.
5639
5640 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
5641
5642         * configure: Regenerate, since I forgot to while committing Paolo's
5643         changes.
5644
5645 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
5646
5647         PR ada/14131
5648         Move language detection to the top level.
5649         * configure.ac: Remove code to detect languages,
5650         it now lives exclusively in the top level.
5651         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
5652         top level, renamed to ACX_PROG_GNAT.
5653
5654 2004-03-10  Richard Henderson  <rth@redhat.com>
5655
5656         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
5657         extra arguments.
5658         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
5659         and host_xmake_file fragments.
5660         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
5661         (gt_pch_restore): Similarly for gt_pch_use_address.
5662         (default_gt_pch_get_address): New.
5663         (mmap_gt_pch_get_address): Split out of gt_pch_save.
5664         (default_gt_pch_use_address): Split out of gt_pch_restore.
5665         (mmap_gt_pch_use_address): Likewise.
5666         * hooks.c (hook_voidp_size_t_null): Remove.
5667         (hook_bool_voidp_size_t_false): Remove.
5668         * hooks.h: Likewise.
5669         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
5670         default_ or mmap_ definitions.
5671         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
5672         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
5673         and gt_pch_use_address.
5674         * config/host-linux.c, config/host-solaris.c: New files.
5675         * config/x-linux, config/x-solaris: New files.
5676         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
5677         Update for changed definition.
5678         (darwin_rs6000_gt_pch_use_address): Likewise.
5679         * doc/hostconfig.texi: Update docs.
5680
5681 2004-03-10  Richard Henderson  <rth@redhat.com>
5682
5683         PR c/14517
5684         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
5685         except for pedantic c90 mode.
5686
5687 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
5688
5689         * configure.ac: Bump AC_PREREQ to 2.59.
5690         * configure: Regenerate.
5691
5692 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
5693
5694         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
5695         (exp10_optab, exp2_optab): Define corresponding macros.
5696         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
5697         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
5698         using exp10?f2 and exp2?f2 patterns.
5699         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
5700         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
5701         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
5702         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5703
5704         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
5705         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
5706         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
5707
5708 2004-03-10  Anthony Green  <green@redhat.com>
5709
5710         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
5711
5712 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
5713
5714         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
5715         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
5716         __LONGDOUBLE128.
5717         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
5718         TARGET_OS_AIX_CPP_BUILTINS.
5719         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
5720         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
5721         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
5722         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
5723         previous change.
5724
5725 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5726
5727         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
5728
5729 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
5730
5731         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5732         __LONGDOUBLE128 on AIX.
5733
5734 2004-03-10  Andrew Haley  <aph@redhat.com>
5735
5736         PR optimization/14381
5737         * function.c (expand_function_end): Emit a blockage insn before
5738         the epilogue when -fnon-call-exceptions is used.
5739
5740         * except.c (expand_start_all_catch): Make comment more accurate.
5741
5742 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
5743
5744         PR target/14480
5745         * config/rs6000/t-rtems: Add missing file on branch.
5746
5747 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
5748
5749         * dbxout.c (dbxout_symbol_location): Do not output references
5750         to optimized-out constant pool symbols.
5751
5752 2004-03-10  Andreas Schwab  <schwab@suse.de>
5753
5754         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
5755         twon34_r.
5756
5757 2004-03-09  James E Wilson  <wilson@specifixinc.com>
5758
5759         * alias.c (alias_sets_might_conflict_p): New.
5760         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
5761         * common.opt (Wstrict-aliasing=): New.
5762         * flags.h (warn_strict_aliasing): Change type to int.
5763         * opts.c (warn_strict_aliasing): Change type to int.
5764         (common_handle_option): Handle OPT_Wstrict_aliasing_.
5765         * tree.h (alias_sets_might_conflict_p): Declare it.
5766         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
5767
5768 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
5769
5770         PR bootstrap/12371
5771         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
5772         (CALL_USED_REGISTERS): Likewise.
5773         (REG_CLASS_CONTENTS): Likewise.
5774         (REG_ALLOC_ORDER): New.
5775         (REGNO_REG_CLASS): Use regno_reg_class.
5776         * config/m68k/m68k.c: Add regno_reg_class array.
5777
5778 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
5779
5780         * config/ia64/ia64.md (divsi3): Fix algorithm.
5781           (udivsi3): Ditto.
5782           (setf_exp_xf): Remove '*' from name.
5783         * testsuite/gcc.dg/20040309-1.c: New test.
5784
5785 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
5786
5787         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
5788         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
5789         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
5790         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
5791         (sparc_aout_select_rtx_section): Don't check
5792         SUNOS4_SHARED_LIBRARIES.
5793         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
5794
5795 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
5796
5797         PR other/14474
5798         * doc/md.texi (Pattern Ordering, Dependent Patterns)
5799         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
5800         INTERNALS".
5801
5802 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
5803
5804         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
5805         (LIBGCC_SPEC): Update to match.
5806
5807 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
5808
5809         * c-decl.c (last_function_parms, last_function_parm_tags)
5810         (last_function_parm_others, current_function_parms)
5811         (current_function_parm_tags, current_function_parm_others):
5812         Delete.
5813         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
5814         New macros.
5815         (grokdeclarator): For function definitions, save the arg-info
5816         block from the declarator in DECL_ARGUMENTS.
5817         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
5818         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
5819         contains only PARM_DECLs.  Improve diagnostics.
5820         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
5821         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
5822         (store_parm_decls_newstyle): Take the function to operate on,
5823         and an arg-info block, as arguments; don't get anything from
5824         current_function_* globals.
5825         (store_parm_decls_oldstyle): Likewise.
5826         (store_parm_decls): Pass fndecl and its arg-info block down to
5827         store_parm_decls_newstyle/oldstyle.  Send functions with empty
5828         argument lists through store_parm_decls_newstyle to reduce
5829         overhead.
5830         (pushdecl): Comment on the problems with the call to copy_node.
5831         Clear DECL_ARGUMENTS of the old node after copying it, if it
5832         is an arg-info block instead of a chain of decls.
5833         (start_function): Do not manipulate current_function_parm* or
5834         last_function_parm*.
5835
5836 2004-03-09  Roger Sayle  <roger@eyesopen.com>
5837             Andrew Pinski  <pinskia@physics.uc.edu>
5838
5839         * ifcvt.c (noce_try_sign_mask): New function to transform
5840         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
5841         (noce_process_if_block): Call noce_try_sign_mask.
5842
5843 2004-03-09  Andrew Pinski  <apinski@apple.com>
5844
5845         * c-typeck.c (tagged_types_tu_compatible_p):
5846         Fix typo.
5847
5848 2004-03-09  Roger Sayle  <roger@eyesopen.com>
5849
5850         * simplify-rtx.c (simplify_const_relational_operation): New function
5851         renamed from simplify_relational_operation.
5852         (simplify_relational_operation): Change prototype to accept an
5853         additional mode argument.  Call simplify_const_relational_operation.
5854         (simplify_gen_relational): Update simplify_relational_operation call.
5855         (simplify_ternary_operation): Update simplify_relational_operation
5856         subroutine call to use simplify_const_relational_operation instead.
5857
5858         * rtl.h (simplify_const_relational_operation): Prototype here.
5859         (simplify_relational_operation): Add addtional mode argument.
5860
5861         * combine.c (combine_simplify_rtx): Update calls to
5862         simplify_relational_operation.
5863         (simplify_set): Likewise.
5864         (gen_binary): Likewise.
5865         * cse.c (fold_rtx): Likewise.
5866         * dojump.c (compare_from_rtx): Likewise.
5867         (do_compare_rtx_and_jump): Likewise.
5868         * integrate.c (subst_constants): Likewise.
5869         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
5870
5871 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
5872
5873         * config/m32r/m32r.md: Remove all define_peephole's.
5874
5875 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
5876
5877         * config/rs6000/rs6000.md: Remove trailing whitespace.
5878
5879 2004-03-08  Eric Christopher  <echristo@redhat.com>
5880
5881         * Makefile.in (site.exp): Add libiconv variable definition.
5882
5883 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
5884
5885         * configure: Regenerate for config/accross.m4 correction.
5886
5887 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
5888
5889         PR target/14480
5890         * config/rs6000/t-rtems: Add missing file on branch.
5891
5892 2004-03-08  Roger Sayle  <roger@eyesopen.com>
5893
5894         PR middle-end/14289
5895         * c-typeck.c (c_mark_addressable): A register variable should
5896         be considered global if its not automatic, i.e. TREE_PUBLIC,
5897         TREE_STATIC or DECL_EXTERNAL.
5898         * function.c (put_var_into_stack): Call abort when placing a
5899         hard register into the stack, if x_parm_reg_stack_loc is NULL.
5900
5901 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
5902
5903         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
5904         ("*extendqisi2_short_displ"): Likewise.
5905
5906 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5907
5908         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
5909         (comp_operator): Likewise.
5910         * config/pdp11/pdp11-protos.h: Remove corresponding
5911         prototypes.
5912
5913 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
5914
5915         * expr.c (highest_pow2_factor_for_type): Rename into
5916         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
5917         TYPE_ALIGN when the target is a COMPONENT_REF.
5918         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
5919
5920 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
5921
5922         * config/rs6000/rs6000.c: Formatting fix.
5923         (legitimate_offset_address_p): Correct offset range check.
5924
5925         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
5926         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
5927         and MASK_STRING.
5928
5929 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
5930
5931         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
5932         for little endian.
5933         ("ashrdi3_no_power"): Disable for little endian.
5934         (ashrdi3): Same.
5935
5936 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5937
5938         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
5939         builtins.
5940
5941 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
5942
5943         PR target/14471
5944         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
5945         case, checking for -no-mul-bug-abort option.
5946         * configure, config.in: Regenerate.
5947         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
5948         and -mno-mul-bug-workaround.
5949         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
5950         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
5951         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
5952         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
5953         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
5954         sure mulu.d is not last on cache-line.
5955         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
5956         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
5957         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
5958         (TARGET_SWITCHES): New options -mmul-bug-workaround and
5959         -mno-mul-bug-workaround.
5960         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
5961         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
5962         * config/cris/cris.c (cris_operand_extend_operator): Clarify
5963         relation to MULT in head comment.
5964         (cris_op_str): Abort for MULT.
5965         (cris_print_operand) <case '!'>: New case.
5966
5967 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
5968
5969         PR debug/11983
5970         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
5971         dw_val_class_vec.  Replace use throughout file.
5972         (dw_float_const): Delete.
5973         (dw_vec_const): New.
5974         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
5975         throughout file.
5976         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
5977         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
5978         (size_of_die): Adjust dw_val_class_vec sizing.
5979         (output_die): Output dw_val_class_vec.
5980         (insert_int, extract_int, insert_float): New functions.
5981         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
5982         Handle CONST_VECTOR.
5983         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
5984
5985 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
5986
5987         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
5988         AltiVec abi cannot co-exist.
5989
5990         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
5991
5992 2004-03-07  Jan Hubicka  <jh@suse.cz>
5993
5994         * except.c (emit_to_new_bb_before):  Break fallthru edges.
5995
5996 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
5997
5998         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
5999         ("*lshrsi3"): Also accept an immediate for 68HC12.
6000         ("*ashrsi3_const"): Likewise.
6001         ("*ashrsi3"): Likewise.
6002         ("*ashlsi3_const"): Likewise.
6003         ("*ashlsi3"): Likewise.
6004         ("cmphi_1_hc12"): Compare two hard register by pushing them and
6005         comparing with a pop; don't use a split for that.
6006         ("cmphi split"): Disable compare split for 68HC12.
6007
6008         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
6009         the status operands if they have side effects.
6010
6011 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
6012
6013         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
6014         definition.
6015         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
6016         config/h8300/h8300.h, config/ia64/ia64.h,
6017         config/mcore/mcore.h, config/mmix/mmix.h,
6018         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
6019         config/stormy16/stormy16.h, config/v850/v850.h,
6020         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
6021         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
6022         definition.
6023
6024 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6025
6026         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
6027         <XOR_EXPR>: Fold x ^ x as zero.
6028         <AND_EXPR>: Fold x & x as x.
6029
6030 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6031
6032         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
6033         "foo++ == const" into "++foo == const+incr".
6034
6035 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
6036
6037         * config/mips/mips.c (mips_in_small_data_p): Return false if
6038         TARGET_ABICALLS.
6039
6040 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
6041
6042         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
6043         the stack register.
6044         (expand_prologue): Don't make an interrupt or a trap handler a far
6045         symbol.
6046         (m68hc11_initial_elimination_offset): Likewise.
6047
6048 2004-03-06  Richard Henderson  <rth@redhat.com>
6049
6050         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
6051
6052 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6053
6054         * config/ns32k/ns32k-protos.h: Add a prototype for
6055         ns32k_notice_update_cc.
6056         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
6057         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
6058         ns32k_notice_update_cc.
6059
6060 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6061
6062         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
6063         "*load_multiple_si"): Allow only if reload_completed.
6064         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
6065         Likewise.
6066
6067 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6068
6069         * config/vax/vax-protos.h: Add a prototype for
6070         vax_notice_update_cc.
6071         * config/vax/vax.c (vax_notice_update_cc): New.
6072         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
6073         vax_notice_update_cc.
6074
6075 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
6076
6077         * collect2.c (main): Only export initfunc and finifunc if
6078         LD_INIT_SWITCH not defined.
6079         (scan_prog_file): Only export constructors and destructors if
6080         LD_INIT_SWITCH not defined.  Only export symbols not found in
6081         shared objects.
6082
6083 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6084
6085         * pa.md (icacheflush): Reorder operands to make match_scratch operand
6086         last.
6087         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
6088         from calls to gen_icacheflush.
6089
6090 2004-03-06  Richard Henderson  <rth@redhat.com>
6091
6092         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
6093         (TARGET_LONG_DOUBLE_128): New.
6094         (TARGET_SWITCHES): Add long-double-{128,64}.
6095         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
6096         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
6097         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
6098         (WIDEST_HARDWARE_FP_SIZE): New.
6099         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
6100         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
6101         if TARGET_VAX_FLOAT.
6102         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
6103         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
6104
6105 2004-03-06  Richard Henderson  <rth@redhat.com>
6106
6107         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
6108         botched rtx class conversion.
6109
6110 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6111
6112         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
6113         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
6114
6115         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
6116         macros.
6117         * fold-const.c (fold_mathfn_compare, fold): Likewise.
6118
6119 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6120
6121         PR target/14343
6122         * config/i386/i386.md (movv2di_internal): Conditionalize on
6123         TARGET_SSE, not TARGET_SSE2.
6124
6125 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
6126
6127         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
6128         duplicated line.
6129
6130 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6131
6132         * builtins.c: Consistently use logN not log* in comments.
6133
6134 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
6135
6136         * rtl.h (mem_expr_equal_p): Function prototype added.
6137         * cfgcleanup.c (merge_memattrs): New function.
6138         (flow_find_cross_jump): Call merge_memattrs for matching insns.
6139         * emit-rtl.c (mem_expr_equal_p): New function.
6140
6141 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
6142
6143         * objc/objc-act.c (synth_module_prologue): Const-qualify
6144         objc_selector type if using the GNU runtime; fix generated
6145         signatures for objc_msg_lookup and objc_msg_lookup_super
6146         to match what GNU ObjC headers provide; reformat and clean up.
6147         (synth_self_and_ucmd_args): Use previously constructed (and
6148         hence possibly const-qualified) objc_selector type.
6149
6150 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6151
6152         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
6153
6154 2004-03-05  Jason Merrill  <jason@redhat.com>
6155
6156         * tree.h (TYPE_HASH): Use TYPE_UID.
6157         (TREE_HASH): New macro with old definition of TYPE_HASH.
6158         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
6159         (build_array_type, build_function_type): Likewise.
6160         (build_method_type_directly): Likewise.
6161         (build_offset_type, build_complex_type): Likewise.
6162         (type_hash_list, attribute_hash_list): Likewise. Now static.
6163         * except.c: s/TYPE_HASH/TREE_HASH/.
6164
6165 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
6166
6167         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
6168         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
6169         __va_ndx by 2 words when referencing an argument on the stack.
6170         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
6171         words when an arg on the stack is first seen.
6172
6173 2004-03-05  Paul Brook  <paul@codesourcery.com>
6174
6175         * arm.h (ARM_FLAG_VFP): Remove.
6176         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
6177         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
6178
6179 2004-03-05  Paul Brook  <paul@codesourcery.com>
6180
6181         * function.c (assign_parms): Include pretend alignment offset.
6182
6183 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6184
6185         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
6186         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
6187
6188 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
6189
6190         * configure.ac: When passing --enable-languages to subdir
6191         configure when host != build, make sure we don't pass an empty
6192         value.
6193         * configure: Regenerate.
6194
6195 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
6196
6197         PR 13577
6198         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
6199         options.
6200
6201 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6202
6203         * simplify-rtx.c (simplify_relational_operation): If
6204         flag_wrapv is set, do not move terms between the two
6205         side of a relational operator.
6206
6207 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6208
6209         * rtlanal.c: Include target.h and output.h
6210         (rtx_cost, address_cost, default_address_cost): Move from...
6211         * cse.c (rtx_cost, address_cost, default_address_cost):
6212         ... this file.
6213         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
6214         * Makefile.in: Adjust dependencies.
6215
6216 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
6217
6218         * cse.c (cse_end_of_basic_block): Make static.
6219         * local-alloc.c (function_invariant_p): Move to
6220         reload1.c.
6221         * loop.c (libcall_other_reg, record_excess_regs):
6222         Make static.
6223         * reload1.c (function_invariant_p): Moved here
6224         from local-alloc.c, made static.
6225         * rtl.h (cse_end_of_basic_block, function_invariant_p,
6226         libcall_other_reg, record_excess_regs): Remove
6227         declarations.
6228
6229 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6230
6231         * config/m32r/m32r.c (signed_comparison_operator): Add a
6232         missing parenthesis.
6233
6234 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
6235
6236         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
6237         going to call mmap again.  Read the file into the right place.
6238         Give a fatal error if we have to relocate.
6239
6240 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
6241
6242         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
6243         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
6244
6245 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
6246
6247         PR other/14354
6248         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
6249         round the same.  When rounding, clear bits that would cause a
6250         second rounding in pack_d.
6251         (_fpmul_parts): Ditto.  Remove #if 0:d code.
6252
6253 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
6254
6255         PR c++/14425, c++/14426
6256         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
6257         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
6258         Change C++ definitions to accept a 'const int' argument;
6259         the prototypes already do.
6260         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
6261         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
6262         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
6263         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
6264         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
6265         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
6266         end in ..._int; change them to accept an int instead of a char
6267         as the last parameter.
6268
6269 2004-03-04  Phil Edwards  <phil@codesourcery.com>
6270
6271         * genmultilib:  Change '=' to '-' when translating option names
6272         to directory names.
6273
6274 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6275
6276         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
6277         stack slot for temp used for result of BLKmode but in integral mode.
6278
6279 2004-03-04  Jan Hubicka  <jh@suse.cz>
6280
6281         * reload.c (find_reloads): Reorganize if seqeunce to switch.
6282
6283         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
6284         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
6285
6286 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
6287
6288         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
6289         * testsuite/gcc.dg/20040303-1.c: New test.
6290
6291 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6292
6293         * ppro.md: Rewrite as a DFA pipeline description.
6294         * i386.md: Remove all uses of the ppro_uops attribute.
6295         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
6296         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
6297         ix86_sched_reorder, ix86_variable_issue,
6298         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
6299         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
6300         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
6301         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
6302         * athlon.md (athlon_ssecmp_load): Fix comment
6303
6304 2004-03-04  Stuart Hastings  <stuart@apple.com>
6305
6306         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
6307
6308 2004-03-04  Stuart Hastings  <stuart@apple.com>
6309
6310         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
6311         686, tell Darwin assembler to allow prefetch insns, non-empty def
6312         of SUBTARGET_OPTION_TRANSLATE_TABLE.
6313
6314 2004-03-04  DJ Delorie  <dj@redhat.com>
6315
6316         PR optimization/14282
6317         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
6318         between a call and the assignment of its return value.
6319
6320 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6321
6322         * config/h8300/h8300.c: Put a comment for every function.
6323
6324 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6325
6326         * config/h8300/h8300.md: Add comments about peephole2's.
6327
6328 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6329
6330         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
6331
6332 2004-03-04  Jan Hubicka  <jh@suse.cz>
6333
6334         * cfgcleanup.c (thread_jump): Update call of cselib_init.
6335         * cselib.c (cselib_record_memory): New static variable.
6336         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
6337         Give up on memories when asked for.
6338         (cselib_init): Accept new argument.
6339         * cselib.h (cselib_init): Update prototype.
6340         * gcse.c (local_cprop_pass): Update call of cselib_init.
6341         * loop.c (load_mems): Update call of cselib_init.
6342         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
6343         * sched-deps.c (sched_analyze): Update call of cselib_init.
6344
6345 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6346             GP <gp@qnx.com>
6347
6348         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
6349         when compiling PIC.
6350
6351 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
6352
6353         PR/14362
6354         * var-tracking.c (track_expr_p): Do not track variables which
6355         should be ignored for debugging purposes.
6356
6357 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6358
6359         * real.c (encode_ibm_extended): Don't bother rounding low double.
6360         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
6361         when fmt->pnan < fmt->p.
6362
6363 2004-03-04  Eric Christopher  <echristo@redhat.com>
6364
6365         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
6366         only range of valid arg registers and fixed_regs.
6367
6368 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6369
6370         PR target/14406
6371         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
6372         (abstf2, abstf2_internal): New define_expand.
6373
6374 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6375
6376         PR optimization/14235
6377         * expr.c (convert_move): Copy the source to a new pseudo
6378         when converting from a sub-word source to a larger-than-word
6379         register which conflicts with the source.
6380
6381 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
6382
6383         PR 13728
6384         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
6385         parameters with the same name, unless one is a forward decl.
6386         Do not issue a redundant-redeclaration warning for forward
6387         decls of parameters.
6388
6389 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6390
6391         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
6392         configuration.
6393
6394 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
6395
6396         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
6397
6398 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6399
6400         * target-def.h (TARGET_OPTF): Delete.
6401         * c-opts.c (TARGET_OPTF): Define.
6402
6403 2004-03-04  Jan Hubicka  <jh@suse.cz>
6404
6405         * cselib.c (cselib_finish): Fix another miss-application of my previous
6406         patch.
6407
6408 2004-03-03  Mike Stump  <mrs@apple.com>
6409
6410         Add framework support for darwin.
6411
6412         * c-incpath.c: Include target.h and machmode.h.
6413         (add_path): Use a consistent style for cpp_dir.  Initialize
6414         p->construct to 0.
6415         (add_cpp_dir_path): New.
6416         (register_include_chains): Add use of extra_includes callback.
6417         (hook_void_int): Add.
6418         (target_c_incpath): Add.
6419         * c-incpath.h (add_cpp_dir_path): New.
6420         (target_c_incpath_s): Add.
6421         (target_c_incpath): Add.
6422         (C_INCPATH_INIT): Add.
6423         * c-opts.c (c_common_missing_argument,
6424         c_common_handle_option): Add -F argument processing.
6425         * c.opt: Add -F argument processing.
6426         * gcc.c (trad_capable_cpp): Add -F argument processing.
6427         * cppfiles.c (find_file_in_dir): Update to use construct
6428         callback.
6429         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
6430         cpp_get_prev): New.
6431         (_cpp_find_file): Use search_path_exhausted.
6432         (make_cpp_dir): Initialize construct to 0.
6433         * cpplib.h (missing_header_cb
6434         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
6435         (cpp_callbacks): Add missing_header
6436         (cpp_dir): Add construct.
6437         * target-def.h: (TARGET_OPTF): New.
6438         * hooks.c (hook_void_int, hook_void_charptr): Add.
6439         * hooks.h (hook_void_int, hook_void_charptr): Add.
6440         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
6441         $(MACHMODE_H) dependencies.
6442         * doc/invoke.texi (Darwin Options): Document -F.
6443         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
6444         (TARGET_OPTF): Add.
6445         * fix-header.c (target_c_incpath): Add.
6446
6447         * config/darwin-c.c: Add c-incpath.h include.
6448         (using_frameworks, find_subframework_file,
6449         find_subframework_header, add_system_framework_path,
6450         frameworks_in_use, num_frameworks, max_frameworks,
6451         add_framework, find_framework, struct framework_header,
6452         framework_header_dirs, framework_construct_pathname,
6453         find_subframework_file, add_system_framework_path,
6454         add_framework_path, framework_defaults,
6455         darwin_register_frameworks, find_subframework_header): Add.
6456         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
6457         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
6458         (CPP_SPEC): Add __APPLE_CC__ support.
6459         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
6460
6461 2004-03-04  Jan Hubicka  <jh@suse.cz>
6462
6463         * cselib.c (cselib_finish): Fix miss-application of my previous
6464         patch.
6465
6466 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6467
6468         * hooks.c (hook_tree_tree_identity): New.
6469         * hooks.h: Add a prototype for hook_tree_tree_identity.
6470         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
6471         instead of MD_ASM_CLOBBERS.
6472         * system.h (MD_ASM_CLOBBERS): Poison.
6473         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
6474         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
6475         * target.h (gcc_target): Add md_asm_clobbers.
6476         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
6477         (ix86_md_asm_clobbers): New.
6478         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
6479         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
6480         TARGET_MD_ASM_CLOBBERS.
6481
6482 2004-03-03  Stuart Hastings  <stuart@apple.com>
6483
6484         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
6485
6486 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6487
6488         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
6489
6490         * config/sparc/sparc.h (ASM_FLOAT): Delete.
6491         (ASM_DOUBLE): Likewise.
6492         (ASM_LONGDOUBLE): Likewise.
6493         * config/sparc/pbd.h (ASM_INT_OP): Delete.
6494
6495 2003-03-03  Richard Henderson  <rth@redhat.com>
6496
6497         PR opt/13862
6498         * cselib.c (cselib_record_sets): Don't record multiple sets in
6499         asm insns.
6500
6501 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
6502
6503         * common.opt: Add description of the new -fgcse-after-reload flag.
6504
6505         * flags.h (flag_gcse_after_reload): Declaration of global variable.
6506
6507         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
6508         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
6509         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
6510         get_bb_avail_insn, hash_scan_set_after_reload,
6511         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
6512         gcse_after_reload, get_bb_avail_insn): New functions to implement
6513         gcse-after-reload.
6514         (gcse_after_reload_main): New function, the main entry point to
6515         gcse-after-reload.
6516
6517         * rtl.h (gcse_after_reload_main): Declaration of the new function.
6518
6519         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
6520
6521         * toplev.c (flag_gcse_after_reload): Initialization.
6522
6523         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
6524
6525         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
6526         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
6527         the gcse after reload optimization.
6528
6529         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
6530         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
6531         parameters.
6532
6533         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
6534
6535 2004-03-03  Nicolas Pitre <nico@cam.org>
6536
6537         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
6538         small negative values.
6539
6540 2004-03-03  Jan Hubicka  <jh@suse.cz>
6541
6542         * cselib.c (hash_table):  Remove GTY marker.
6543         (reg_values): Turn into array.
6544         (used_regs): Likewise.
6545         (n_used_regs): New static variable.
6546         (reg_values_old): Kill.
6547         (clear_table): Update uses of arrays.
6548         (cselib_lookup): Likewise.
6549         (cselib_record_set): Likewise.
6550         (cselib_init): Likewise.
6551         (cselib_finish): Likewise.
6552         (cselib_udpate_varray_sizes): Kill.
6553         * cselib.h (cselib_update_varray_sizes): Kill.
6554
6555 2004-03-03  Paul Brook  <paul@codesourcery.com>
6556
6557         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
6558
6559 2004-03-03  Jan Hubicka  <jh@suse.cz>
6560
6561         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
6562         Rename from ...; make statistics transparent.
6563         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
6564         (loc_descriptor): New structure.
6565         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
6566         add_statistics):
6567         New static function.
6568         (ggc_record_overhead, dump_statistics): New global function.
6569         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
6570         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
6571         from ...; accept locations
6572         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
6573         ggc_realloc, ggc_alloc_typed):  ... this one.
6574         from ...; accept locations
6575         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
6576         ggc_alloc_stat): Rename from ... ; pass locations
6577         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
6578         ... this one.
6579         (ggc_alloc_stat): Record overehead.
6580         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
6581         ggc_realloc, ggc_alloc_typed):  Turn to macros
6582         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
6583         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
6584         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
6585         * langhooks.h (lhd_make_node): Declare.
6586         (LANG_HOOKS_MAKE_TYPE): Default to new function,
6587         * langhooks.c (lhd_make_node): New.
6588         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
6589         locations.
6590         (rtx_alloc, swallow_copy_rtx): ... this one.
6591         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
6592         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
6593         * toplpev.c (finalize): Dump stats.
6594         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
6595         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
6596         Rename from ... ; pass locators.
6597         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
6598         build?,  build_decl): Declare.
6599         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
6600         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
6601         Declare.
6602         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
6603         build?,  build_decl): New macros.
6604         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
6605         * statistics.h: New file.
6606
6607 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6608             Richard Sandiford  <rsandifo@redhat.com>
6609
6610         * config/mips/mips.h (MASK_FIX_SB1): Bump.
6611         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
6612         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
6613         * config/mips/mips.c (mips_output_division): Fill the branch delay
6614         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
6615         TARGET_FIX_R4400.
6616         (mips_output_division): Adjust accordingly.
6617         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
6618         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
6619
6620 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
6621
6622         * alias.c (rtx_equal_for_memref_p): Use predicates
6623         to test rtx classes and new rtx class codes, possibly
6624         splitting conditionals that tested against '<' and 'o'.
6625         * caller-save.c (save_call_clobbered_regs): Likewise.
6626         * combine.c (contains_muldiv, find_split_point, subst,
6627         combine_simplify_rtx, simplify_if_then_else,
6628         simplify_set, simplify_logical, expand_compound_operation,
6629         make_compound_operation, if_then_else_cond, known_cond,
6630         apply_distributive_law, cached_nonzero_bits,
6631         cached_num_sign_bit_copies, simplify_shift_const,
6632         gen_binary, simplify_comparison, update_table_tick,
6633         record_value_for_reg, get_lsat_value_validate): Likewise.
6634         * cse.c (mention_regs, find_best_addr, find_comparison_args,
6635         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
6636         Likewise.
6637         * emit-rtl.c (copy_insn_1): Likewise.
6638         * expr.c (force_operand): Likewise.
6639         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
6640         * flow.c (notice_stack_pointer_modification_1,
6641         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
6642         and_reg_cond, elim_reg_cond): Likewise.
6643         * function.c (update_epilogue_consts): Likewise.
6644         * genattrtab.c (attr_rtx_1): Likewise.
6645         * genopinit.c (gen_insn): Likewise.
6646         * integrate.c (subst_constants): Likewise.
6647         * jump.c (reversed_comparison_code_parts,
6648         reversed_comparison_code, delete_related_insns,
6649         rtx_renumbered_equal_p): Likewise.
6650         * local-alloc.c (block_alloc): Likewise.
6651         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
6652         canonicalize_condition): Likewise.
6653         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
6654         Likewise.
6655         * optabs.c (add_equal_node, expand_binop): Likewise.
6656         * predict.c (estimate_probability): Likewise.
6657         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
6658         * recog.c (validate_replace_rtx_1, comparison_operator,
6659         offsettable_address_p, constrain_operands): Likewise.
6660         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
6661         Likewise.
6662         * regclass.c (scan_one_insn): Likewise.
6663         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
6664         * regrename.c (kill_autoinc_value): Likewise.
6665         * reload.c (find_reusable_reload, find_reloads,
6666         reg_overlap_mentioned_for_reload_p): Likewise.
6667         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
6668         * rtl.c (copy_rtx): Likewise.
6669         * rtl.h (CONSTANT_P, INSN_P): Likewise.
6670         * rtlanal.c (commutative_operand_precedence): Likewise.
6671         * sched-deps.c (conditions_mutex_p): Likewise.
6672         * sched-rgn.c (is_cfg_nonregular): Likewise.
6673         * simplify-rtx.c (simplify_gen_binary,
6674         simplify_gen_relational, simplify_replace_rtx,
6675         simplify_unary_operation, simplify_binary_operation,
6676         simplify_ternary_operation, simplify_rtx): Likewise.
6677         * unroll.c (reg_dead_after_loop): Likewise.
6678         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
6679         print_operand): Likewise.
6680         * config/arc/arc.c (proper_comparison_operator): Likewise.
6681         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
6682         Likewise.
6683         * config/avr/avr.c (_reg_unused_after): Likewise.
6684         * config/frv/frv.c (frv_ifcvt_modify_tests,
6685         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
6686         * config/i386/i386.c (ix86_comparison_operator,
6687         ix86_carry_flag_operator, fcmov_comparison_operator,
6688         arith_or_logical_operator, print_operand,
6689         ix86_expand_binary_operator, ix86_binary_operator_ok):
6690         Likewise.
6691         * config/i386/i386.md: Likewise.
6692         * config/ia64/ia64.c (not_postinc_memory_operand,
6693         ia64_print_operand, update_set_flags, errata_emit_nops):
6694         Likewise.
6695         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
6696         CONSTRAINT_OK_FOR_S): Likewise.
6697         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
6698         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
6699         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
6700         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
6701         Likewise.
6702         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
6703         eqne_comparison_operator, signed_comparison_operator):
6704         Likewise.
6705         * config/mips/mips.c (cmp_op, symbolic_expression_p):
6706         Likewise.
6707         * config/mmix/mmix (mmix_foldable_comparison_operator,
6708         mmix_comparison_operator): Likewise.
6709         * config/pa/pa.c (hppa_legitimize_address): Likewise.
6710         * config/rs6000/rs6000.c (stmw_operation,
6711         branch_comparison_operator, trap_comparison_operator,
6712         ccr_bit): Likewise.
6713         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
6714         * config/s390/s390.c (s390_alc_comparison,
6715         s390_slb_comparison):L Likewise.
6716         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
6717         Likewise.
6718         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
6719         noov_compare_op, noov_compare64_op, v9_regcmp_op,
6720         emit_hard_tfmode_operation, reg_unused_after)
6721         * doc/md.texi, doc/rtl.texi: Likewise.
6722
6723         * ra-debug.c: Add 2004 to list of copyright years.
6724         * unroll.c: Likewise.
6725
6726         * combine.c (simplify_logical): Remove dummy test,
6727         (apply_distributive_law): Fix typo in comment.
6728         GET_CODE (x) == AND so x is a commutative binary op.
6729         * jump.c (delete_related_insns): simplify loop
6730         condition, move testing of RTX codes inside the loop.
6731         (rtx_renumbered_equal_p): do not use RTX_CODE.
6732         * rtl.c (rtx_class): Declare as enum rtx_class.
6733         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
6734         Move to RTX_COMM_COMPARE class.
6735         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
6736         Move to RTX_CONST_OBJ class.
6737         * rtl.h (enum rtx_class): New declaration,
6738         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
6739         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
6740         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
6741         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
6742         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
6743         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
6744         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
6745         OBJECT_P): New macros.
6746         * config/sparc/sparc.c (noov_compare_op): Remove register
6747         from parameter.
6748
6749 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6750
6751         * target.h: Remove texi jargons in comments.
6752
6753 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6754
6755         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
6756         threshold to 0x4f.
6757
6758         Revert:
6759         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
6760         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
6761         as well.
6762         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
6763         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
6764
6765 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6766
6767         * doc/md.texi (cbranchmode4): New.
6768
6769 2004-03-02  Eric Christopher  <echristo@redhat.com>
6770
6771         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
6772         fix_trunc.
6773         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
6774         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
6775         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
6776         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
6777
6778 2004-03-02  Richard Henderson  <rth@redhat.com>
6779
6780         PR middle-end/11767
6781         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
6782         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
6783         before the compare, if flag_non_call_exceptions.
6784
6785 2004-03-02  Richard Henderson  <rth@redhat.com>
6786
6787         PR middle-end/14327
6788         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
6789         emitting the label, not after.
6790
6791 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6792
6793         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
6794         (m68hc11_mov_addr_mode): Likewise.
6795         (m68hc11_override_options): Initialize them based on target.
6796         (register_indirect_p): Allow a MEM for indirect addressing modes and
6797         use flags to control what is allowed.
6798         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
6799         supported addressing modes.
6800         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
6801         (go_if_legitimate_address_internal): Likewise.
6802         (m68hc11_indirect_p): Likewise and check the mode.
6803         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
6804
6805 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6806
6807         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
6808         (expand_builtin_setjmp_setup): Use
6809         targetm.builtin_setjmp_frame_value instead of
6810         BUILTIN_SETJMP_FRAME_VALUE.
6811         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
6812         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
6813         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
6814         * target.h (gcc_target): Add builtin_setjmp_frame_value.
6815         * targhooks.c (default_builtin_setjmp_frame_value): New.
6816         * targhooks.h: Add a prototype for
6817         default_builtin_setjmp_frame_value.
6818         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
6819         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
6820
6821 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6822
6823         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
6824         sequences of moves.
6825         (add peepholes): New peepholes to optimize sequences adding small
6826         constants.
6827         (bset peepholes): New peepholes to transform an OR in a bset form
6828         (bclr peepholes): Likewise for bclr form.
6829         (cmp peepholes): New peepholes to avoid register copies when comparing.
6830
6831 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6832
6833         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
6834         to separate push from moves.
6835         ("*pushdf_internal"): Likewise.
6836         ("*pushsf_internal"): Likewise.
6837         ("*pushsi_internal"): Likewise.
6838         ("movdi_internal"): Use define_insn_and_split; non push operand.
6839         ("movdf_internal"): Likewise.
6840         ("movsf_internal"): Likewise.
6841         ("movsi_internal"): Likewise.
6842         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
6843         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
6844         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
6845
6846 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6847
6848         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
6849         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
6850         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
6851         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
6852         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
6853         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
6854         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
6855         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
6856         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
6857         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
6858         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
6859
6860 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6861
6862         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
6863         (SOFT_XY_REGNUM): Define.
6864         (cmp split): Use the above instead of hard coded numbers.
6865         (8-bit op split): No need to check the mode; allow Q_REG.
6866         (ashift split): Adjust the first operand if it uses the SP and we
6867         are pushing the shifted value.
6868         (plus shift split): Fix when a source is in register D+X.
6869         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
6870
6871 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6872
6873         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
6874         comparing with Z register.
6875
6876 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6877
6878         * cfgloop.h (struct loop_desc): Removed.
6879         (struct loop): Fields simple, desc and has_desc removed.
6880         (simple_loop_p, count_loop_iterations): Declaration removed.
6881         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
6882         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
6883         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
6884         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
6885         simple_loop_exit_p, variable_initial_value, variable_initial_values,
6886         simple_condition_p, simple_increment, count_strange_loop_iterations,
6887         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
6888         Removed.
6889         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
6890
6891 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6892
6893         * genattrtab.c: Don't handle MATCH_INSN.
6894         * genrecog.c: Likewise.
6895         * gensupport.c: Likewise.
6896         * rtl.def (match_insn): Remove.
6897         * doc/md.texi (match_insn, match_insn2): Remove.
6898
6899 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
6900
6901         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
6902         macro results in memory allocation.
6903
6904 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
6905
6906         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
6907         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
6908         %(fbsd_dynamic_linker),
6909         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
6910         config/i386/freebsd.h
6911         * config/arm/freebsd.h: Ditto.
6912         * config/i386/freebsd.h: Ditto.
6913         * config/i386/freebsd64.h: Ditto.
6914         * config/ia64/freebsd.h: Ditto.
6915         * config/rs6000/sysv4.h: Ditto.
6916         * config/sparc/freebsd.h: Ditto.
6917
6918 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
6919
6920         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
6921
6922 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6923
6924         * rtl.def (define_combine): Remove.
6925
6926 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6927
6928         * config/h8300/h8300.md: Tweak formatting.
6929
6930 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6931
6932         * config/h8300/h8300.md (*cmphi_h8300): Rename to
6933         *cmphi_h8300_znvc.
6934         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
6935
6936 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
6937
6938         PR bootstrap/14356
6939         * gcc.c (process_command): Remove const-qualification from argv.
6940         (main): Likewise.
6941
6942 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6943
6944         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
6945         pushqi1_h8300hs_advanced.  Adjust its caller.
6946         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
6947         Adjust its caller.
6948
6949 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
6950
6951         * Makefile.in (install-libgcc, install-multilib): Pass
6952         mkinstalldirs var to libgcc.mk.
6953
6954 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
6955
6956         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
6957         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
6958
6959 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
6960
6961         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
6962         * config/h8300/h8300.md: Split several peephole2's, each into
6963         two.
6964
6965 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6966
6967         * dominance.c (recount_dominator): Handle postdominators.
6968
6969 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
6970
6971         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
6972         (NUM_SYMBOL_TYPES): Likewise.
6973         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
6974         (mips_unspec_address): Declare.
6975         (mips_gotoff_page, mips_gotoff_global): Delete.
6976         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
6977         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
6978         (mips_symbolic_constant_p, mips_symbolic_address_p)
6979         (mips_symbol_insns): Handle new symbol types.
6980         (general_symbolic_operand): New predicate.
6981         (mips_unspec_address): Make extern.
6982         (mips_gotoff_page, mips_gotoff_global): Delete.
6983         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
6984         Handle new symbol types.
6985         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
6986         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
6987         mips_unspec_address directly.
6988         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
6989         the documentation of -mexplicit-relocs.
6990
6991 2004-03-01  Jeff Law  <law@redhat.com>
6992
6993         * fold-const.c (fold): An equality comparison of a non-weak object
6994         against zero has a known result.  Similarly an equality comparison
6995         of the address of two non-weak, unaliased symbols has a known result.
6996
6997         * ggc-page.c (struct page_entry): New field PREV.
6998         (ggc_alloc): Update PREV field appropriately.
6999         (sweep_pages): Likewise.
7000         (ggc_free): Likewise.  Use PREV field rather than loop to
7001         improve ggc_free performance.
7002
7003 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
7004
7005         * config/mips/mips.c (mips_output_division): Use the division
7006         instruction to fill the delay slot of a zero check.
7007         (mips_idiv_insns): Adjust accordingly.
7008
7009 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
7010
7011         * config.gcc: Create a default tmake_file for linux, and use
7012         it in all but two linux clauses.  Comment those two.
7013
7014 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
7015
7016         * combine.c (try_combine):  Do not refer to is_replaced.
7017         (gen_lowpart_for_combine):  Perverse subregs now have a
7018         more politically correct name.
7019         * cse.c (cse_insn): Likewise.
7020         * jump.c: Fix bogus reference to delete_insn.
7021
7022 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
7023
7024         PR debug/14328
7025         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
7026         constants as signed values.
7027
7028         PR middle-end/13448
7029         * c-tree.h (readonly_warning): Rename to ...
7030         (readonly_error): ... this.
7031         * c-typeck.c (build_unary_op): Adjust accordingly.
7032         (readonly_warning): Rename to ...
7033         (readonly_error): ... this and issue errors, not warnings.
7034         (build_modify_expr): Call readonly_error, not readonly_warning.
7035         (c_expand_asm_operands): Likewise.
7036         * tree-inline.c (optimize_inline_calls): Do not inline functions
7037         after errors have occurred.
7038
7039 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7040
7041         * configure.ac: Rearrange some threading code for clarity;
7042         add section comment.
7043         * configure: Regenerate.
7044
7045 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7046
7047         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
7048         typos.
7049         * doc/cppopts.texi: Fix a typo.
7050
7051 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7052
7053         * config/i386/i386.md: Fix formatting.
7054
7055 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7056
7057         * configure.ac: Add some comments delineating sections of code.
7058
7059         * doc/install.texi: Note that libada uses autoconf 2.57 also.
7060
7061         * doc/install.texi: Fix idiot typo in previous commit.
7062
7063         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
7064
7065 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7066
7067         * config/h8300/h8300.md: Add comments about peephole2's.
7068
7069 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7070
7071         * config/h8300/h8300.md: Tweak operand numbers of some
7072         peephole2's.
7073
7074 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7075
7076         * config/h8300/h8300.md: Tweak comments about peephole2's.
7077
7078 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7079
7080         PR middle-end/14203
7081         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
7082         instead of testing whether DECL_RTL is not NULL.
7083
7084 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7085
7086         * config/sh/sh.c: Fix formatting.
7087
7088 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7089
7090         * config/sh/sh.c: Convert to ISO-C.
7091
7092 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
7093
7094         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
7095         my previous patch.
7096
7097         * config/darwin.h (machopic_finish): Output stub even if the
7098         symbol is already defined.
7099
7100 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7101
7102         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
7103
7104 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7105
7106         * genattr.c (main): Don't define
7107         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
7108         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
7109         (DFA_PIPELINE_INTERFACE): Likewise.
7110         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
7111         (DFA_PIPELINE_INTERFACE): Likewise.
7112
7113 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
7114
7115         * config/mips/mips.md (tstsi, tstdi): Delete.
7116
7117 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7118
7119         * config/mips/mips.c (override_options): Remove an obsolete
7120         duplicate definition of the "e" constraint.
7121         * config/mips/mips.h: Update a comment accordingly.
7122
7123 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7124
7125         * config/mips/mips.md: Complete the unfinished R4000
7126         multiply/shift errata workaround.  Improve documentation.
7127         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
7128         has a hilo hazard.
7129         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
7130         (muldi3, muldi3_internal): Likewise.
7131         (muldi3_internal2): Remove, replacing with...
7132         (muldi3_mult3, muldi3_r4000): ...these new patterns.
7133         (mulsidi3): Take the errata into account.
7134         (mulsidi3_32bit): Remove, replacing with...
7135         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
7136         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
7137         (umulsidi3): Take the errata into account.
7138         (umulsidi3_32bit): Remove, replacing with..
7139         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
7140         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
7141         TARGET_FIX_R4000.
7142         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
7143         (smuldi3_highpart, umuldi3_highpart): Likewise.
7144         * doc/invoke.texi: Document the errata workaround.
7145
7146 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7147
7148         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
7149         * config/mips/mips.h (MASK_FIX_SB1): Bump.
7150         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
7151         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
7152         * config/mips/mips.c (mips_idiv_insns): New function.
7153         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
7154         (mips_output_division): Add a workaround for the R4000 divide/shift
7155         errata.
7156         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
7157         the length of an "idiv" instruction.
7158         * doc/invoke.texi: Document the new switches.
7159
7160 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7161
7162         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
7163         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
7164
7165 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7166
7167         PR optimization/14229
7168         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
7169
7170 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
7171
7172         * fold-const.c (fold): Strip NOPs that change the signedness
7173         for RSHIFT too.  Expand comment.
7174
7175 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
7176
7177         PR optimization/7871
7178         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
7179         from or to call insns.
7180
7181 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
7182
7183         PR optimization/7871
7184         * flow.c (propagate_one_insn): Interpret calls as setting global
7185         registers, not merely clobbering them.
7186
7187 2004-02-27  Dale Johannesen  <dalej@apple.com>
7188
7189         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
7190         config/darwin-protos.h:  Ditto.
7191         config/darwin.h:  Remove call to it.
7192         * combine.c (distribute_notes): Do not place a REG_DEAD note
7193         when value is both set and used.
7194
7195 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7196
7197         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
7198         as well.
7199         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
7200         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
7201
7202 2004-02-27  Andrew Pinski  <apinski@apple.com>
7203
7204         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
7205         Speedup common case of the type values being in the same order.
7206
7207 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
7208
7209         * config/ia64/ia64.h (no-inline-float-divide): New option.
7210         * config/ia64/ia64.h (no-inline-int-divide): New option.
7211         * config/ia64/ia64.h (no-inline-sqrt): New option.
7212         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
7213         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
7214         * config/ia64/ia64.c (ia64_override_options): Modify error
7215         checking for inlined division/sqrt.
7216
7217 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7218
7219         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
7220         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
7221         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
7222         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
7223         copyright.
7224
7225 2004-02-27  Paul Brook  <paul@codesourcery.com>
7226
7227         * function.c (assign_parms): Don't count pretend args for alignment.
7228
7229 2004-02-27  Richard Henderson  <rth@redhat.com>
7230
7231         * passes.c: New file.
7232         * Makefile.in (OBJS-common): Add it.
7233         * diagnostic.c (rtl_dump_and_exit): Move decl ...
7234         * flags.h (rtl_dump_and_exit): ... here.
7235         * output.h (size_directive_output, last_assemble_variable_decl):
7236         Move from toplev.c.
7237         * rtl.h (reg_alloc): Move from toplev.c.
7238         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
7239         struct dump_file_info, enum dump_file_index, dump_file_tbl,
7240         open_dump_file, close_dump_file, rest_of_decl_compilation,
7241         rest_of_type_compilation, rest_of_handle_final,
7242         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
7243         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
7244         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
7245         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
7246         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
7247         rest_of_handle_tracer, rest_of_handle_if_conversion,
7248         rest_of_handle_if_after_combine, rest_of_handle_web,
7249         rest_of_handle_branch_prob,
7250         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
7251         rest_of_handle_addressof, rest_of_handle_sibling_calls,
7252         rest_of_handle_jump_bypass, rest_of_handle_inlining,
7253         rest_of_handle_null_pointer, rest_of_handle_combine,
7254         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
7255         rest_of_handle_gcse, rest_of_handle_loop_optimize,
7256         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
7257         (decode_d_option): Use enable_rtl_dump_file.
7258         (compile_file, finalize, do_compile): Move profile+combine+graph
7259         cleanup to finish_optimization_passes.
7260         * toplev.h (init_optimization_passes, finish_optimization_passes,
7261         enable_rtl_dump_file): Declare.
7262
7263 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
7264             Roger Sayle  <roger@eyesopen.com>
7265
7266         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
7267         operands to build a tree with swapped operands.
7268         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
7269         'unsignedp' predicate to specify the signedness.
7270
7271 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7272
7273         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
7274         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
7275         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
7276         comment typos and formatting.  Follow spelling conventions.
7277
7278 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
7279
7280         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
7281         fix_truncsfsi2.
7282
7283         * config/rs6000/spe.md: Delete spe_efsctuiz.
7284         Add spe_fixuns_truncsfsi2.
7285         Add spe_fix_truncsfsi2.
7286
7287 2004-02-26  Eric Christopher  <echristo@redhat.com>
7288
7289         * c-lex.c (c_lex_string_translate): New variable.
7290         (lex_string): Use to determine string translation.
7291         * c-pragma.h: Prototype.
7292         * c-parse.in (start_string_translation): New. Set above.
7293         (stop_string_translation): Ditto.
7294         (attribute, attribute_list, asm_def, asm_stmt,
7295         asm_operand): Use above functions.
7296         * cp/parser.c (cp_parser_declaration): Translate strings
7297         unless token is RID_EXTERN. Set c_lex_string_translate
7298         for recursive use.
7299         (cp_parser_asm_definition): Only translate argument strings
7300         to asms.
7301         (cp_parser_asm_operand_list): Ditto.
7302         (cp_parser_attribute_list): Do not translate attribute strings.
7303
7304 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7305
7306         * stmt.c (expand_start_case_dummy): Remove.
7307         * tree.h: Remove the corresponding prototype.
7308
7309 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7310
7311         * builtins.c (apply_args_register_offset): Remove.
7312         * tree.h: Remove the corresponding prototype.
7313
7314 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7315
7316         * stor-layout.c (is_pending_size): Remove.
7317         * tree.h: Remove the corresponding prototype.
7318
7319 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7320
7321         * recog.c (validate_replace_src): Remove.
7322         * recog.h: Remove the corresponding prototype.
7323
7324 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7325
7326         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
7327         MAYBE_REG_PARM_STACK_SPACE.
7328         * function.c: Likewise.
7329         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
7330         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7331         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
7332         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7333
7334 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7335
7336         * c-decl.c (c_expand_deferred_function): Remove.
7337         * c-tree.h: Remove the corresponding prototype.
7338
7339 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7340
7341         * postreload.c (reload_cse_move2add): Generate just a PLUS
7342         instead of an entire SET.
7343
7344 2004-02-26  Jan Hubicka  <jh@suse.cz>
7345
7346         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
7347         /pentium4m.
7348         * i386.c (override_options): Add support for new CPUs.
7349         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
7350         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
7351         constants.
7352         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
7353
7354 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
7355
7356         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
7357
7358 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
7359
7360         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
7361         (sparc_emit_fixunsdi): New prototype.
7362         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
7363         (sparc_emit_fixunsdi): New function.
7364         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
7365         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
7366         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
7367         to sparc_emit_floatunsdi.
7368         (fixuns_truncsfdi2): New expander.
7369         (fixuns_truncdfdi2): Likewise.
7370
7371 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
7372
7373         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
7374         unless HAVE_cc0.
7375
7376 2004-02-25  Richard Henderson  <rth@redhat.com>
7377
7378         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
7379         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
7380         use (op0-op1) == 0 if op0 is a pointer.
7381         * config/alpha/alpha.md (cmpdi): Use some_operand.
7382         (three comparison combine splits): Remove.
7383
7384 2004-02-25  Richard Henderson  <rth@redhat.com>
7385
7386         PR c/12794
7387         * c-common.c (handle_alias_attribute): Reject the attribute if
7388         current_function_decl is set.
7389
7390 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7391
7392         * config.gcc: Add comment describing extra_gcc_objs.
7393         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
7394         * configure.ac (extra_gcc_objs): New substitution variable.
7395         (host_extra_gcc_objs): Don't substitute.
7396         * configure: Regenerate.
7397         * Makefile.in: Use extra_gcc_objs.
7398
7399 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7400
7401         * doc/contrib.texi: Add an entry for myself.
7402
7403 2004-02-25  Jan Hubicka  <jh@suse.cz>
7404
7405         * basic-block.h (make_eh_edge, break_superblocks): Declare.
7406         * cfgbuild.c (make_eh_edge):  Make global.
7407         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
7408         * except.c (build_post_landing_pads, connect_post_landing_pads,
7409         dw2_build_landing_pads, sjlj_emit_function_enter,
7410         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7411         sjlj_build_landing_pads): Update CFG.
7412         (emit_to_new_bb_before): New function.
7413         (finish_eh_generation): Do not rebuild the CFG.
7414
7415 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7416
7417         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
7418         target_cpu_default defines.
7419         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
7420         * pa.h (TARGET_DEFAULT): Likewise.
7421
7422 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
7423
7424         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
7425         comparisons with regard to signedness.
7426
7427 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7428
7429         * arm.c (thumb_legitimize_address): New function.
7430         * arm-protos.h: Prototype it.
7431         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
7432         (LEGITIMIZE_ADDRESS): Use it.
7433
7434 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
7435
7436         * reload1.c (reload): Only spill eliminable register with multiple
7437         adjacent elimination alternatives if all alternatives fail.
7438
7439 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7440
7441         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
7442         is -4095...+4095 inclusive.
7443
7444 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
7445
7446         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
7447         the bootstrap failure with Sun CC 5.4 and 5.5.
7448
7449 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
7450
7451         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
7452         which modifies NEWREG.
7453         (cse_condition_code_reg): Update the mode of CC_REG in
7454         CC_SRC_INSN on our own.
7455
7456 2004-02-24  Michael Matz  <matz@suse.de>
7457
7458         * config/i386/i386.c (ix86_comp_type_attributes): Check for
7459         regparm attributes.
7460
7461 2004-02-24  Richard Henderson  <rth@redhat.com>
7462
7463         * toplev.c (dump_file_tbl): Rename from dump_file.
7464         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
7465         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
7466         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
7467         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
7468         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
7469         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
7470         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
7471         s/rtl_dump_file/dump_file/g.
7472
7473 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
7474
7475         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
7476         (spe_fixuns_truncsfsi2): Delete.
7477
7478         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
7479         (fixuns_truncsfsi2): Delete.
7480
7481 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
7482
7483         PR/14240
7484         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
7485
7486 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
7487
7488         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
7489
7490 2004-02-24  Jason Merrill  <jason@redhat.com>
7491
7492         * tree.c (check_qualified_type): New fn.
7493         (get_qualified_type): Use it.  If type already has the desired
7494         quals, just return it.
7495         * tree.h: Declare it.
7496
7497 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
7498
7499         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
7500         TARGET_SCHED_FINISH_GLOBAL): New macros.
7501
7502         * target.h (md_init_global, md_finish_global): Function
7503         declarations corresponding to new target macros.
7504
7505         * haifa-sched.c (sched_init, sched_finish): Allow target to
7506         call the new schedular hooks.
7507
7508         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
7509         call to update_life_info.
7510
7511         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
7512         flag_schedule_insns for SH4.
7513
7514         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
7515         find_set_regmode_weight, find_insn_regmode_weight,
7516         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
7517         sh_variable_issue, high_pressure, ready_reorder,
7518         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
7519         functions used to throttle the insn movement in first
7520         scheduling pass for SH.
7521
7522         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
7523         TARGET_SCHED_FINISH_GLOBAL.
7524
7525 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
7526
7527         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
7528         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
7529         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
7530         symbols in sections named by the user.
7531         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
7532         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
7533         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
7534         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
7535         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
7536         the above.
7537         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
7538         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
7539         one more pseudo to further improve code generation.
7540         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
7541         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
7542         inside UNSPEC.
7543         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
7544         * config/frv/frv.c (frv_legitimate_address_p): Added
7545         allow_double_reg_p argument.  Adjust all callers.  Use it to
7546         decide whether to enable double-register indirect addressing.
7547         (frv_funcdesc_alias_set): Remove.
7548         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
7549         register.  Emit movdi_ldd.
7550         (ldd_address_operand): New.
7551         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
7552         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
7553         (PREDICATE_CODES): Add ldd_address_operand.
7554         * config/frv/frv.md (movdi_ldd): New.
7555         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
7556         intermediate computations if possible.
7557         (symGOTOFF2reg_i): Fix harmless typo.
7558         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
7559         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
7560         relocated p_vaddr to vaddr type.
7561         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
7562         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
7563         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
7564         MEM, or use a funcdesc alias set.  Use regular move instead of
7565         ldd.
7566         (dbl_memory_one_insn_operand): Recognize function descriptors by
7567         type or by alias set, and don't split them.
7568         * config/frv/frv.md (call, call_value): Never use call_internal
7569         for fdpic.
7570         (call_internal, call_value_internal): Never match for FDPIC.
7571         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
7572         call_value_fdpicsi): Require FDPIC.
7573         (ldd): Removed.
7574         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
7575         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
7576         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
7577         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
7578         FDPIC.  Compute data base address.
7579         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
7580         before the other self-specs are processed.
7581         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
7582         Build with -fPIC.
7583         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
7584         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
7585         inhibit_libc is defined.
7586         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
7587         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
7588         __FRV_FDPIC__.
7589         (__RELOC_POINTER): Define.
7590         (_Unwind_IteratePhdrCallback): Use it.
7591         * config/frv/frv.h (Twrite): Define.
7592         (TRANSFER_FROM_TRAMPOLINE): Use it.
7593         * config/frv/linux.h (INVOKE__main): Undefine.
7594         (Twrite): Override.
7595         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
7596         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
7597         (-mlibrary-pic): Emphasize that this option generates EABI code.
7598         (-mcpu): Add fr550.
7599         (-mpack): Remove.
7600         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
7601         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
7602         and CONSTs in FDPIC mode.
7603         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
7604         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
7605         * config/frv/frv.c (move_source_operand): Don't accept symbolic
7606         constants.
7607         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
7608         rather than 'i' constraint for the 2-instruction alternative.
7609         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
7610         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
7611         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
7612         EXTRA_CONSTRAINT_FOR_Y.
7613         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
7614         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
7615         (addsi3): Change 'Y' constraint to 'Q'.
7616         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
7617         * reload.c (CONST_POOL_OK_P): New macro.
7618         (find_reloads): Use it to decide whether a constant can be forced
7619         into memory.
7620         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
7621         constant satisfies got12_operand.
7622         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
7623         (frv_legitimate_address_p): Check for valid unspec offsets using
7624         got12_operand rather than frv_legitimate_fdpic_operand_p.
7625         (frv_legitimate_fdpic_operand_p): Delete.
7626         (frv_emit_movsi): Abort if we try to use the FDPIC register during
7627         or after reload.
7628         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
7629         TARGET_FDPIC.
7630         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
7631         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7632         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
7633         (frv_fdpic_fptr_operand): Don't declare here.
7634         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
7635         rather than fdpic_got12_operand.
7636         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
7637         got12_operand and const_unspec_operand.
7638         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
7639         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
7640         (symbolic_operand): Remove.
7641         (const_unspec_operand): New predicate.
7642         * config/frv/frv.md (*movsi_got): Use got12_operand.
7643         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
7644         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
7645         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
7646         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
7647         * config/frv/frv.c (frv_unspec): New structure.
7648         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
7649         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
7650         validate CONST indices.  Use frv_output_const_unspec to print them.
7651         (frv_print_operand): Update call to unspec_got_name.  Use
7652         frv_output_const_unspec to print constant unspecs.
7653         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
7654         Reject UNSPECs otherwise.
7655         (unspec_got_name): Take the relocation number as argument, not an
7656         rtx containing it.
7657         (frv_output_addr_const_extra): Remove, replacing with...
7658         (frv_output_const_unspec): ...this new function.
7659         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
7660         (gpr_or_int12_operand): Use fdpic_got12_operand.
7661         (dbl_memory_one_insn_operand): Likewise.
7662         (fdpic_got12_operand): Use frv_const_unspec_p.
7663         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
7664         are already legitimate.  Use frv_small_data_reloc_p when deciding
7665         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
7666         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
7667         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
7668         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
7669         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
7670         label, for real this time.
7671         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
7672         representation of visibility.
7673         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
7674         such.
7675         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
7676         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
7677         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
7678         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
7679         it was explicitly disabled.
7680         (frv_stack_info): There is no need to save the link register in every
7681         frame unless TARGET_LINKED_FP is true.
7682         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
7683         frame pointer if the stack pointer might change value.
7684         (frv_return_addr_rtx): Check and process "count" argument.
7685         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
7686         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
7687         (frv_find_base_term): Declare.
7688         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
7689         (FIND_BASE_TERM): Define.
7690         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
7691         small_data_register_operand, small_data_symbolic_operand.  Add
7692         symbolic_operand.
7693         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
7694         (frv_print_operand_memory_reference, output_move_single): Remove
7695         special handling for unlegitimized sdata addresses.
7696         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
7697         and symbolic addresses.
7698         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
7699         (frv_find_base_term): New function.
7700         (int_2word_operand): Check specifically for symbolic address constants.
7701         (pic_register_operand, pic_symbolic_operand): Delete.
7702         (small_data_register_operand, small_data_symbolic_operand): Delete.
7703         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
7704         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
7705         (move_source_operand): Only accept CONSTs if they're a two-insn
7706         symbolic constant.
7707         (fdpic_got12_operand): Don't require TARGET_FDPIC.
7708         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
7709         using gen_symGOTOFF2reg*.
7710         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
7711         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
7712         themselves a cost of 3 insns.
7713         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
7714         Change predicate to symbolic_operand.
7715         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
7716         (*movsi_lda_sdata): Delete.
7717         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
7718         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
7719         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
7720         frv-*-*linux*.
7721         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
7722         label.
7723         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
7724         -multilib-library-pic.
7725         (LINK_SPEC): Add -z text for -mfdpic.
7726         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
7727         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
7728         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
7729         Override.
7730         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
7731         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
7732         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
7733         crtstuff-generated files.
7734         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
7735         * config.gcc: Add frv-*-*linux*.
7736         * config/frv/linux.h, config/frv/t-linux: New.
7737         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
7738         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
7739         when -mfdpic even if a linker script is explicitly listed.
7740         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
7741         * config/frv/frv.c (frv_override_options): Clear asm_out
7742         unaligned_op for SImode on FDPIC.
7743         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
7744         argument passed to decl_readonly_section.
7745         (frv_assemble_integer): Revert 2003-09-30's change, but make the
7746         whole block run with FDPIC even with -fno-PIC.
7747         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
7748         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
7749         symbol or label plus offset to memory.
7750         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
7751         GOTOFF and GPREL for LABEL_REF.
7752         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
7753         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
7754         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
7755         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
7756         * doc/invoke.texi: Document them.
7757         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
7758         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
7759         (frv_splittable_got_operand): Removed.
7760         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
7761         LO_SUM.  Add comments.
7762         (frv_override_options): Moved enabling of FDPIC to
7763         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
7764         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
7765         (frv_legitimize_fdpic_address): Don't duplicate logic in
7766         frv_emit_movsi.
7767         (frv_gen_GPsym2reg): New.
7768         (unspec_got_name): Added gprel.
7769         (frv_expand_fdpic_call): Add support for inlining PLTs.
7770         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
7771         (gpr_or_int12_operand): Added GPREL12.
7772         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
7773         (small_data_symbolic_operand): Fail if FDPIC.
7774         (fdpic_splittable_got_operand): Removed.
7775         (fdpic_got12_operand): Added GPREL12.
7776         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
7777         when appropriate.  Fix sdata GOTOFF.
7778         (frv_legitimate_constant_p): Require legitimate PIC operand for
7779         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
7780         (frv_assemble_integer): Move FDPIC funcdesc handling out of
7781         flag_pic case.
7782         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
7783         frv_assemble_integer fails.
7784         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
7785         (SUBTARGET_DRIVER_SELF_SPECS): New.
7786         (ASM_SPEC): Don't pass -mno-fdpic.
7787         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
7788         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
7789         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
7790         -multilib-library-pic.
7791         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
7792         condexec_si_media_operator, condexec_sf_add_operator and
7793         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
7794         and condexec_sf_unary_operator.
7795         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
7796         New.
7797         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
7798         movsi_internal.  Give them internal names.  movsi_got has type
7799         int.
7800         (fdpic got splitters): Remove.
7801         (symGPREL2reg, symGPREL2reg_hilo): New.
7802         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
7803         to -mlibrary-pic.  Map -multilib-library-pic to it.
7804         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
7805         Document.
7806         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
7807         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
7808         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
7809         (frv_cannot_force_const_mem): New function.
7810         (const_small_data_p, plus_small_data_p): Update comments on sdata
7811         on FDPIC.
7812         (frv_override_options): Set flag_pie for FDPIC too.
7813         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
7814         call-saved registers on FDPIC.
7815         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
7816         don't force LR to be preserved.
7817         (frv_expand_prologue): Likewise.
7818         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
7819         (frv_frame_pointer_required): Don't force it just because the
7820         FDPIC register is used.
7821         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
7822         operand only if !condexec_p.
7823         (frv_legitimize_address): Return the FDPIC-legitimized address.
7824         Don't match small data here on FDPIC.
7825         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
7826         symbols.  Use TRUE/FALSE instead of 1/0.
7827         (frv_local_funcdesc_p): New.
7828         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
7829         immediates when possible.
7830         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
7831         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
7832         an UNSPEC_GOT.
7833         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
7834         12-bit immediates when possible.
7835         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
7836         are not legitimate pic operands.
7837         (frv_in_small_data_p): Re-enable for FDPIC.
7838         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
7839         (FRV_GLOBAL_P): Removed.
7840         * config/frv/frv.md: Add modes to CONSTs.
7841         (movsi_got): New.
7842         (movsi_lo_sum_got): Use separate matches instead of match_dup.
7843         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
7844         (fdpic splittable operations): Match on flag_pic != 1.
7845         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
7846         * config/frv/frv.c (frv_asm_out_constructor,
7847         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
7848         bytes, not bits.
7849         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
7850         * config/frv/frv.c (frv_assemble_integer): Reject complex
7851         expressions referencing function SYMBOL_REFs.
7852         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
7853         (move_source_operand): Reject CONSTs that reference function
7854         SYMBOL_REFs on FDPIC.
7855         (frv_emit_movsi): If we get such a CONST, break it up.
7856         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
7857         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
7858         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
7859         MEM.
7860         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
7861         (frv_trampoline_size): Increase for FDPIC.
7862         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
7863         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
7864         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
7865         Disable use of GOTOFF for now.
7866         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
7867         Disable use of small data in FDPIC for now.
7868         (frv_asm_output_mi_thunk): Implement for FDPIC.
7869         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
7870         * config/frv/frv.c (frv_asm_out_constructor): Use
7871         frv_assemble_integer for FDPIC pointers.
7872         (frv_asm_out_destructor): Likewise.
7873         * config/frv/frv.md (ldd): Fix order of operands.  Use
7874         address_operand for input.
7875         2003-09-18  DJ Delorie  <dj@redhat.com>
7876         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
7877         (unspec_got_name): Correct typo.
7878         (frv_emit_movsi): Pre-expand splittable GOTs.
7879         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
7880         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
7881         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
7882         * config/frv/t-frv: Add -mfdpic multilibs.
7883         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
7884         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
7885         * config/frv/frv.c (frv_override_options): -mfdpic assumes
7886         flag_pic, default to 32-bit pics, require DWORD ops.
7887         (frv_override_options): Add W and Z constraints.
7888         (frv_expand_prologue): No pic prologue for -mfdpic.
7889         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
7890         (frv_print_operand_memory_reference): Handle GOT constants.
7891         (frv_legitimate_address_p): Allow GOT constants.
7892         (frv_legitimize_address): Handle GOT addresses too.
7893         (frv_legitimate_fdpic_operand_p): New.
7894         (frv_legitimize_fdpic_address): New.
7895         (unspec_got_name): New.
7896         (frv_output_addr_const_extra): New.
7897         (frv_expand_fdpic_call): New.
7898         (frv_fdpic_fptr_operand): New.
7899         (gpr_or_int12_operand): Handle GOT operands.
7900         (int_2word_operand): Handle GOT operands.
7901         (fdpic_operand): New.
7902         (fdpic_splittable_got_operand): New.
7903         (fdpic_got12_operand): New.
7904         (frv_emit_movsi): Handle GOT operands.
7905         (frv_assemble_integer): -mfdpic doesn't use rofixups.
7906         (frv_print_operand): Support 'g' code for GOT operands.
7907         * config/frv/frv-protos.h: Add prototypes as needed.
7908         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
7909         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
7910         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
7911         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
7912         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
7913         R_FRV_GOTOFFLO): New.
7914         (movsi_high_got, movsi_lo_sum_got): New.
7915         (*movsi_pic): Don't use this splitter for -mfdpic.
7916         (addsi3): Allow GOT references also.
7917         (call, call_value): Handle -mfdpic separately.
7918         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
7919         call_value_fdpicsi): New.
7920         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
7921         symGOTOFF2reg_i): New.
7922         * config/frv/frv.h (MASK_FDPIC): New.
7923         (TARGET_FDPIC): New.
7924         (TARGET_SWITCHES): Add -mfdpic.
7925         (FDPIC_FPTR_REGNO): New.
7926         (FDPIC_REGNO): New.
7927         (OUR_FDPIC_REG): New.
7928         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
7929         FDPIC_CALL_REGS.
7930         (REG_CLASS_NAMES): Likewise.
7931         (REG_CLASS_CONTENTS): Likewise.
7932         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
7933         (EXTRA_CONSTRAINT): Add it here.
7934         (FRV_GLOBAL_P): New.
7935         (OUTPUT_ADDR_CONST_EXTRA): New.
7936
7937 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
7938
7939         * config/sparc/sparc.h: Remove commented-out definitions of
7940         TARGET_EDOM and GEN_ERRNO_RTX.
7941
7942 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
7943
7944         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
7945         df_analyse with df_analyze.
7946
7947 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
7948
7949         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
7950         beginning of block.
7951
7952 2004-02-23  James E Wilson  <wilson@specifixinc.com>
7953
7954         * calls.c (precompute_arguments): Update comment.
7955
7956 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
7957
7958         * et-forest.c: Replace et_occurences with et_occurrences.
7959
7960 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
7961
7962         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
7963         with iv_analyze.
7964
7965 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
7966
7967         * config/i386/i386.c: Rename pni to sse3.
7968         * config/i386/i386.h: Likewise.
7969         * config/i386/i386.md: Likewise.
7970         * config/i386/pmmintrin.h: Likewise.
7971         * doc/extend.texi: Likewise.
7972         * doc/invoke.texi: Likewise.
7973
7974 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
7975             Kazu Hirata  <kazu@cs.umass.edu>
7976
7977         Remove -fwritable-strings.
7978         * c-common.c (fix_string_type): Don't check
7979         flag_writable_strings.
7980         (fix_string_type): Likewise.
7981         * c-opts.c (set_std_c89): Don't initialize
7982         flag_writable_strings.
7983         (set_std_c99): Likewise.
7984         * common.opt (fwritable-strings): Remove.
7985         * flags.h: Remove the external declaration of
7986         flag_writable_strings.
7987         * opts.c (common_handle_option) <OPT_fwritable_strings>:
7988         Remove.
7989         * toplev.c (flag_writable_strings): Remove.
7990         (f_options): Remove an entry for writable-strings.
7991         * varasm.c (const_hash_1) <STRING_CST>: Don't check
7992         flag_writable_strings.
7993         (compare_constant) <STRING_CST>: Likewise.
7994         (build_constant_desc): Likewise.
7995         * config/darwin.c (machopic_select_section): Likewise.
7996         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
7997         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
7998         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
7999         * config/mips/mips.c (mips_select_section): Likewise.
8000         (mips_encode_section_info): Likewise.
8001         * config/pa/pa.c (pa_select_section): Likewise.
8002         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
8003         * config/v850/v850.c (v850_select_section): Likewise.
8004         * doc/invoke.texi (-fwritable-strings): Remove.
8005         (-fno-const-strings): Don't mention -fwritable-strings.
8006         * doc/trouble.texi: Don't mention -fwritable-strings.
8007
8008 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
8009
8010         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
8011
8012 2004-02-23  Dale Johannesen  <dalej@apple.com>
8013
8014         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
8015         (movdf_hardfloat64):  Ditto.
8016         (movdf_softfloat64):  Ditto.
8017
8018 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
8019         * config/rs6000/rs6000.c (function_arg): call to
8020         rs6000_mixed_function_arg for DFmode moved to allow
8021         normal DFmode incoming register assignment.
8022
8023 2004-02-23  Dale Johannesen  <dalej@apple.com>
8024
8025         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
8026         (movdf_hardfloat64):  Ditto.
8027
8028 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8029
8030         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
8031         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
8032         copyright.
8033
8034 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
8035
8036         PR c/14156
8037         * c-typeck.c (c_expand_return): Change check for VAR_DECL
8038         to use DECL_P instead.
8039
8040         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
8041         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
8042
8043 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8044
8045         * Makefile.in (opts.o): Depend on target.h.
8046         * opts.c (decode_options): Use targetm.default_short_enums
8047         instead of DEFAULT_SHORT_ENUMS.
8048         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8049         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
8050         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
8051         * target.h (gcc_target): Add default_short_enums.
8052         * config/cris/cris.h: Remove a comment about
8053         DEFAULT_SHORT_ENUMS.
8054         * config/ip2k/ip2k.h: Likewise.
8055         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
8056         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
8057
8058 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8059             Falk Hueffner  <falk@debian.org>
8060
8061         PR c/14188
8062         * builtins.c (expand_builtin_va_arg): Emit an informative message
8063         if a trap is generated.
8064         * c-typeck.c (build_function_call): Likewise.
8065
8066 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8067
8068         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
8069         fopen.
8070         * libgcov.c: Include sys/stat.h.
8071         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
8072         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
8073         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
8074         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
8075
8076 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
8077
8078         * reorg.c: Remove comments about dead ports.
8079
8080 2004-02-22  Christopher Faylor  <cgf@redhat.com>
8081
8082         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
8083         extra host object file when targetting cygwin rather than generic
8084         object files.
8085
8086 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
8087
8088         Merge from tree-ssa:
8089         2003-11-20  Richard Henderson  <rth@redhat.com>
8090
8091                 * tree-inline.c (insert_decl_map): New.
8092                 (remap_decl, remap_type, remap_block, copy_body_r,
8093                 initialize_inlined_parameters, declare_return_variable,
8094                 remap_save_expr): Use it.
8095
8096         * function.c (copy_body_r): Add mapping from id->ret_label to
8097         id->ret_label.  Revert test for ret_label.
8098
8099 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8100
8101         * genoutput.c (process_template): Strip trailing whitespace in @
8102         templates and issue a warning if there was any.
8103
8104 2004-02-21  Christopher Faylor  <cgf@redhat.com>
8105
8106         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
8107         object file when targetting cygwin.
8108         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
8109         overridden by top-level Makefile.
8110
8111 2004-02-21  Roger Sayle  <roger@eyesopen.com>
8112
8113         * config/i386/i386.c (standard_80387_constant_p): Also prefer
8114         the x87's load constant instructions when optimizing for size.
8115
8116 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
8117
8118         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
8119         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
8120         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
8121         * fold-const.c: Likewise.
8122         * simplify-rtx.c: Likewise.
8123
8124 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
8125
8126         * combine.c (can_combine_p): Don't ignore SETs marked with
8127         REG_EH_REGION notes.
8128         (try_combine): When attemting to fix unrecognized insns, don't
8129         split a PARALLEL that contains the original i2.
8130
8131 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
8132
8133         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
8134         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
8135         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
8136         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
8137         (vector, pixel, bool): #define to __vector, __pixel and __bool.
8138         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
8139         portion of header.
8140         (__altivec_link_error_invalid_argument): Remove prototype; will use
8141         __builtin_altivec_compiletime_error("vec_*") instead.
8142         (vec_*): Fix/complete set of available operation overloads given the
8143         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
8144         cv-correctness of pointer arguments; in C, always check for correct
8145         argument types before macro expansion.
8146         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
8147         defining Darwin/PowerPC-specific '-f[no-]altivec' and
8148         '-W[no-]altivec-long-deprecated' switches.
8149         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
8150         '__vector', '__pixel' and '__bool' macros using
8151         '__attribute__((altivec(...)))' types.
8152         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
8153         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
8154         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
8155         New type nodes.
8156         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
8157         handling '-W[no-]altivec-long-deprecated'.
8158         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
8159         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
8160         altivec_expand_dst_builtin): Remove casts from integer literals.
8161         (altivec_expand_builtin): Likewise; handle expansion of new
8162         '__builtin_altivec_compiletime_error' function.
8163         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
8164         types, and make them distinct from other vector types; register
8165         '__builtin_altivec_compiletime_error' function.
8166         (print_operand): For 'P', print a full target register name instead of
8167         merely its number.
8168         (rs6000_attribute_table): Add "altivec" attribute.
8169         (rs6000_handle_altivec_attribute): New function.
8170         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
8171         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
8172         maps to).
8173         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
8174         declare.
8175         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
8176
8177 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8178
8179         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
8180         check.
8181         (shift_mix4left+2): Delete redundant pattern.
8182
8183 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8184
8185         * alias.c (OUTGOING_REGNO): Don't define the default.
8186         * builtins.c (OUTGOING_REGNO): Likewise.
8187         (INCOMING_REGNO): Likewise.
8188         (apply_args_register_offset): Always use OUTGOING_REGNO.
8189         * combine.c (OUTGOING_REGNO): Likewise.
8190         * sibcall.c (OUTGOING_REGNO): Likewise.
8191         * defaults.h (INCOMING_REGNO): Provide the default.
8192         (OUTGOING_REGNO): Likewise.
8193
8194 2004-02-21  Jan Hubicka  <jh@suse.cz>
8195
8196         * params.def (max-peeled-insns, max-completely-peeled-insns,
8197         max-once-peeled-insns): Set to 400.
8198
8199 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8200
8201         PR c++/12007
8202         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
8203         are set for parameters before outputing debugging information.
8204
8205 2004-02-20  Falk Hueffner  <falk@debian.org>
8206
8207         PR target/14201
8208         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
8209         numbers.
8210
8211 2004-02-20  Per Bothner  <per@bothner.com>
8212
8213         * input.h:  Don't #include line-map.h.  It may cause link problems
8214         with undefined linemap_line_start when line-map.h is included but
8215         line-map.o is not linked, as currently happens with gengtype on
8216         compilers that don't support inline.
8217         * toplev.c:  So we do have to explicitly #include line-map.h here.
8218
8219 2004-02-20  Richard Henderson  <rth@redhat.com>
8220
8221         * doc/invoke.texi: Add -Wvariadic-macros.
8222
8223 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8224
8225         * haifa-sched.c (sched_emit_insn): Remove.
8226         * sched-int.h: Remove the corresponding prototype.
8227
8228 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8229
8230         Revert:
8231         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8232         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8233         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8234         * config/cris/cris.h: Remove a comment about
8235         DEFAULT_SHORT_ENUMS.
8236         * config/ip2k/ip2k.h: Likewise.
8237         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8238
8239 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
8240             Tom Tromey  <tromey@redhat.com>
8241
8242         * doc/install.texi: Moved --disable-libgcj and
8243         --with-system-zlib documentation to new section for
8244         Java-specific options.
8245         Added explicit Cross-Compiler-Specific Options subheading.
8246         Added section for Java-specific options.
8247
8248 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
8249
8250         * doc/install.texi (Building the Ada compiler): Remove
8251         example.
8252
8253 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8254
8255         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
8256
8257 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8258
8259         * gcc.c (process_command): Allow translation of the copyright
8260         symbol but not the rest of the copyright message.
8261         * gcov.c (print_version): Likewise.  Allow translation of the
8262         message about warranty.
8263
8264 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
8265
8266         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
8267         predicate.
8268         ("*andsi_clear"): Tweak constraints to not match postincrement.
8269         Adjust the predicate to exclude a volatile memory reference.
8270         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
8271         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
8272
8273 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
8274
8275         * move-if-change: Remove.
8276         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
8277         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
8278         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
8279         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
8280         (s-gtyp-gen, s-iov): Use the top level move-if-change.
8281         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
8282
8283 2004-02-19  James E Wilson  <wilson@specifixinc.com>
8284
8285         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
8286         for operand2.  Add condition that requires register_operand operand2
8287         before reload.
8288
8289 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
8290             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8291
8292         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
8293         * config/mips/mips.md: Expand comment above unaligned loads and stores.
8294
8295 2004-02-19  Richard Henderson  <rth@redhat.com>
8296
8297         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
8298         * tree.c (build0, build1, build2, build3, build4): Split out from...
8299         (build): ... here.  Call them.
8300         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
8301
8302         * convert.c (convert_to_integer): Remove extra build argument.
8303         * tree-inline.c (expand_call_inline): Likewise.
8304
8305 2004-02-19  Richard Henderson  <rth@redhat.com>
8306
8307         * c-opts.c (warn_variadic_macros): New.
8308         (c_common_handle_option): Set it.
8309         (sanitize_cpp_opts): Copy it to cpp_opts.
8310         * c.opt (Wvariadic-macros): New.
8311         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
8312         * cppinit.c (cpp_create_reader): Initialize it.
8313         * cppmacro.c (parse_params): Check it.
8314
8315 2004-02-19  David Daney <ddaney@avtrex.com>
8316
8317         PR preprocessor/14198
8318         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
8319         builtin_assert ("machine=mips")
8320
8321 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8322
8323         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8324         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8325         * config/cris/cris.h: Remove a comment about
8326         DEFAULT_SHORT_ENUMS.
8327         * config/ip2k/ip2k.h: Likewise.
8328         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8329
8330 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8331
8332         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
8333         when passing single SFmode quantities in general registers,
8334         put them in the high half.
8335
8336 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8337
8338         * doc/md.texi (Standard Names): Document additional dependency on
8339         fix pattern.
8340
8341         * optabs.c (ftruncify): Remove.
8342         (expand_fix): Manually inline ftruncify above.
8343         (can_fix_p): Add FIXME note.
8344
8345 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8346
8347         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
8348         spe_fixuns_truncsfsi2.
8349
8350         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
8351         fixuns_truncsfsi2.
8352
8353 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
8354
8355         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
8356         * testsuite/gcc.dg/20040219-1.c: New test.
8357
8358 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
8359
8360         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
8361         "*subsf3_cconly"): Subtraction is not commutative.
8362
8363 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8364
8365         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
8366         (sdbout_symbol): If called before sdbout_init, queue DECL for
8367         later and return.
8368         (sdbout_init): Set sdbout_initialized true, process decls
8369         queued earlier by sdbout_symbol.
8370         (sdbout_finish): Use size_t for index variable.
8371
8372 2004-02-19  Jeff Law  <law@redhat.com>
8373
8374         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
8375         for unordered comparison codes.
8376
8377 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
8378
8379         * reload1.c (reload): Correct comment.
8380         (scan_paradoxical_subregs): Remove #if 0 and old comment.
8381         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
8382         register variables are not used by reload.
8383
8384 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
8385
8386         PR target/14209
8387         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
8388         constraints to not match postincrement.  Adjust the predicate to
8389         exclude a volatile memory reference.
8390
8391 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8392
8393         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
8394
8395 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8396
8397         * hooks.c (hook_void_tree_int): Remove.
8398         (hook_void_constcharptr): Likewise.
8399         (hook_int_void_0): Likewise.
8400         * hooks.h: Remove the prototypes for the above three
8401         functions.
8402         * targhooks.c (hook_bool_machine_mode_true): Remove.
8403         * targhooks.h: Remove the prototype for
8404         hook_bool_machine_mode_true.
8405
8406 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8407
8408         * emit-rtl.c (subreg_realpart_p): Remove.
8409         (reorder_insns_with_line_notes): Likewise.
8410         (end_full_sequence): Likewise.
8411         * rtl.h: Remove the prototype for the above functions.
8412
8413 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8414
8415         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
8416         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8417         config/iq2000/iq2000.h, config/m32r/m32r.h,
8418         config/pdp11/pdp11.h, config/sparc/sparc.h,
8419         config/xtensa/xtensa.h: Remove commented-out or useless
8420         definitions of CASE_VECTOR_PC_RELATIVE.
8421
8422 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8423
8424         * loop.c (all_sets_invariant_p): Remove.
8425
8426 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
8427
8428         PR target/12916
8429         * config/sparc/sparc.h (NPARM_REGS): Delete.
8430         (BASE_RETURN_VALUE_REG): Likewise.
8431         (BASE_OUTGOING_VALUE_REG): Likewise.
8432         (BASE_PASSING_ARG_REG): Likewise.
8433         (BASE_INCOMING_ARG_REG): Likewise.
8434         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
8435         TARGET_ARCH64, not TARGET_V9.
8436         (function_arg_slotno): Dispatch based on the mode class.
8437         Handle vector modes like floating-point modes.
8438         (function_arg_record_value_1): Handle vector types like
8439         floating-point types.
8440         (function_arg_record_value_2): Likewise.
8441         Calculate regno after mode transformation.
8442         (function_arg): Handle vector modes like floating-point modes.
8443         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
8444         If ARCH64, do not recheck alignment.
8445         (function_arg_pass_by_reference): Reorder the conditions.
8446         (sparc_return_in_memory): Move after function_arg_padding.
8447         Implement calling conventions for vector modes.
8448         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
8449         (function_value): Move scope of 'regbase'.
8450         Implement calling conventions for vector modes.
8451         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
8452         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
8453         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
8454         the argument is passed by reference.
8455         (sparc_type_code): Handle vector types.
8456
8457 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
8458
8459         * function.c (assign_parms): When building decl_rtl for
8460         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
8461
8462 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
8463
8464         * expr.c (is_aligning_offset): Check if we are aligning the
8465         expressions's address over BIGGEST_ALIGNMENT in bytes, not
8466         in bits.
8467
8468 2003-02-18  Matt Austern  <austern@apple.com>
8469
8470         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
8471         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
8472         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
8473         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
8474         spec string.
8475         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
8476
8477 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
8478
8479         * dwarf2out.c (loclabel_num): Move outside #ifdef
8480         DWARF2_DEBUGGING_INFO and mark with GTY(()).
8481         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
8482         Mark with GTY(()).
8483         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
8484         Allocate memory with ggc_alloc.  No need to copy anything.
8485         (ia64_hpux_file_end): Update to match.
8486
8487 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
8488
8489         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
8490         by default.
8491
8492 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8493
8494         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
8495         ("divmodtisi3"): Likewise.
8496         ("udivmoddi4", "udivmodtidi3"): Likewise.
8497         ("divmodsi4", "divmoddisi3"): Likewise.
8498         ("udivmodsi4", "udivmoddisi3"): Likewise.
8499         ("udivsi3", "umodsi3"): Likewise.
8500
8501 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8502
8503         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
8504         placeholder insn when chunkifying the pool.
8505
8506 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8507
8508         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
8509         generating PIC code.
8510
8511 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8512
8513         * config/h8300/h8300-protos.h: Add a prototype for
8514         h8300_expand_branch.
8515         * config/h8300/h8300.c (h8300_expand_branch): New.
8516         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
8517         bgtu, beq, bne): Call h8300_expand_branch().
8518
8519 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8520
8521         * config/h8300/h8300-protos.h: Add prototypes for
8522         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
8523         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
8524         (h8300_hard_regno_mode_ok): Likewise.
8525         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
8526         h8300_hard_regno_nregs().
8527         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
8528
8529 2004-02-18  Per Bothner  <per@bothner.com>
8530
8531         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
8532         partly reverts my 2003-10-01 change, because we're back to logically
8533         including <command line> inside the main line.
8534         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
8535         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
8536         Fixes PR preprocessor/14103.
8537
8538         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
8539         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
8540         (cpp_push_include):  Don't need to increment pfile's line field.
8541         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
8542
8543         * c-ppoutput.c (print struct):  New first_time field.
8544         (init_pp_output):  Set print.first_time.
8545         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
8546         which is set also for (say) <command line>.  Clear print.first_time.
8547
8548         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
8549         does not match the code, so fix both.
8550         (should_stack_file):  Inline include_pch_p function.
8551         (include_pch_p):  Remove pointless function.
8552
8553         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
8554
8555 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8556
8557         * config/h8300/h8300.md (four define_peephole2's): Use
8558         h8300_regs_ok_for_stm().
8559
8560 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8561
8562         * config/h8300/h8300-protos.h: Update the prototype for
8563         expand_a_rotate().
8564         * config/h8300/h8300.c (expand_a_rotate): Remove the first
8565         argument.
8566         * config/h8300/h8300.md: Update all callers.
8567
8568 2004-02-18  Jan Hubicka  <jh@suse.cz>
8569
8570         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
8571         floats.
8572         (simplify_binary_operation): Deal with logicals on floats.
8573
8574         * i386.md (SSE fabs splitters): Emit new patterns.
8575         (SSE cmov splitters): Likewise.
8576         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
8577         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
8578         subregs.
8579         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
8580         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
8581
8582 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8583
8584         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
8585         by hand.
8586         (output_a_rotate): Tweak a comment.
8587         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
8588         (*rotlhi3_1): Change to rotlhi3_1.
8589         (*rotlsi3_1): Change to rotlsi3_1.
8590
8591 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
8592
8593         PR target/13866
8594         * arm.c (load_multiple_operation): Don't insist that the source reg
8595         of a post-increment component is the same as the destination.
8596         (store_multiple_operation): Likewise.
8597
8598 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8599
8600         * config/h8300/h8300.md: Move movsf patterns into one section
8601         of the file.
8602
8603 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8604
8605         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
8606         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
8607         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
8608         config/mips/linux64.h, config/pa/pa-64.h,
8609         config/rs6000/aix51.h, config/rs6000/aix52.h,
8610         config/rs6000/spe.md, config/sparc/linux.h,
8611         config/sparc/linux64.h: Update copyright.
8612
8613 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8614
8615         * config/h8300/h8300.md: Move push patterns into one
8616         section of the file.
8617
8618 2004-02-18  Mark Mitchell <mark@codesourcery.com>
8619
8620         PR c++/11326
8621         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
8622         fntype.
8623
8624 2004-02-18  Paul Brook  <paul@codesourcery.com>
8625
8626         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
8627
8628 2004-02-18  Paul Brook  <paul@codesourcery.com>
8629
8630         PR debug/12934
8631         * dwarf2out.c (loc_descriptor_from_tree): Handle
8632         EXPR_WITH_FILE_LOCATION.
8633
8634 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
8635
8636         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
8637         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
8638         trailing whitespace from instructions.
8639
8640 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
8641
8642         * configure.ac: When generating auto-build.h, pass
8643         --enable-languages to the sub-configure.
8644         Put quotes around ${program_transform_name} when generating
8645         name of as, ld, nm, objdump.
8646         * configure: Regenerate.
8647
8648 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
8649
8650         * Makefile.in (s-check, s-config, s-conditions, s-flags)
8651         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
8652         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
8653         (s-preds, s-iov): Do not depend on move-if-change.
8654
8655 2004-02-17  James E Wilson  <wilson@specifixinc.com>
8656
8657         * caller-save.c (insert_restore): Pass mem through copy_rtx.
8658         (insert_save): Likewise.
8659
8660 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8661
8662         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
8663         warning.
8664
8665 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8666
8667         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
8668         *one_cmplsi2_h8300.
8669         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
8670
8671 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8672
8673         * config/h8300/h8300-protos.h: Update the prototype of
8674         fix_bit_operand().
8675         * config/h8300/h8300.c (fix_bit_operand): Remove the second
8676         argument "what".
8677         * config/h8300/h8300.md: Update all callers.
8678
8679 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8680
8681         * config/h8300/h8300.c (fix_bit_operand): Change the name of
8682         the last argument to "code" from "type".
8683
8684 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8685
8686         * config/h8300/h8300.c: Remove an extern declaration of
8687         rtx_equal_function_value_matters.
8688
8689 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8690
8691         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
8692         by hand.
8693         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
8694         (*iorqi3_1): Change to iorqi3_1.
8695         (*xorqi3_1): Change to xorqi3_1.
8696
8697 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8698
8699         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
8700         typos.
8701
8702 2004-02-17  Jan Hubicka  <jh@suse.cz>
8703
8704         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
8705
8706 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
8707
8708         PR optimization/14119
8709         * combine.c (try_combine): When attemting to fix unrecognized insns,
8710         don't delete SETs marked with REG_EH_REGION notes.
8711
8712 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
8713
8714         * combine.c (simplify_if_then_else): Do not replace
8715         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
8716         modes differ.
8717
8718 2004-02017  Steven Bosscher  <stevenb@suse.de>
8719
8720         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
8721         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
8722         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
8723         * ada/utils.c: Likewise.
8724         * cp/decl.c: Likewise.
8725         * f/com.c: Likewise.
8726         * java/class.c: Likewise.
8727
8728 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8729
8730         * config/h8300/h8300.md: Fix comment typos.
8731
8732 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8733
8734         * config/mips/t-iris6gld: Renamed to ...
8735         * config/mips/t-irix-gld: ... this.
8736         * config.gcc (mips-sgi-irix6*): Reflect this
8737         (mips-sgi-irix5*): Use it with GNU ld.
8738
8739         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
8740         to ...
8741         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
8742         * config/mips/t-irix-gld: Reflect this.
8743         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
8744
8745         * config/mips/iris5gld.h: New file.
8746         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
8747         Only use collect2 without gas.
8748
8749         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
8750         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
8751         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
8752         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
8753
8754         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
8755         * config/mips/iris5.h: ... here.
8756
8757         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
8758         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
8759         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
8760
8761         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
8762         using irix_startfile_spec, irix_endfile_spec.
8763
8764 2004-02-16  Gunther Nikl  <gni@gecko.de>
8765
8766         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
8767
8768 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8769
8770         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
8771         insns by hand.
8772
8773 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8774
8775         * cfghooks.c (split_edge): Speed up updating of dominators.
8776
8777 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
8778
8779         PR c++/11326
8780         * c-common.c (flag_abi_version): Remove.
8781         * c-common.h (flag_abi_version): Likewise.
8782         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
8783         * c.opt (fabi-version): Remove.
8784         * calls.c (expand_call): Always pass a function type to
8785         struct_value_rtx.  Use convert_memory_address.
8786         * common.opt (fabi-version): Add it.
8787         * flags.h (flag_abi_version): Likewise.
8788         (abi_version_at_least): New macro.
8789         * opts.c (common_handle_option): Add OPT_fabi_version.
8790         * toplev.c (flag_abi_version): Define it.
8791         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
8792         New function.
8793         (ia64_output_mi_thunk): Use it.
8794         (ia64_struct_value_rtx): Likewise.
8795
8796 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8797
8798         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
8799         Don't generate insns by hand.
8800
8801 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
8802
8803         PR c++/14178
8804         * doc/invoke.texi (fabi-version): The default is 2 now.
8805
8806 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8807
8808         * loop-iv.c: New file.
8809         * Makefile.in (loop-iv.o): New.
8810         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
8811         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
8812         num_loop_branches): New functions.
8813         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
8814         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
8815         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
8816         get_simple_loop_desc, free_simple_loop_desc): Declare.
8817         (simple_loop_desc): New inline function.
8818         (struct rtx_iv, struct niter_desc): New.
8819         * cfgloopmanip.c (loopify): Specify semantics more precisely.
8820         * expr.c (force_operand): Handle subregs of expressions created by
8821         loop unroller.
8822         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
8823         parts of the initialization to toplev.c
8824         * loop-unroll.c (loop_exit_at_end_p): New.
8825         (unroll_and_peel_loops): Call iv_analysis_done.
8826         (decide_peel_once_rolling, decide_peel_completely,
8827         decide_unroll_stupid, decide_unroll_constant_iterations,
8828         decide_unroll_runtime_iterations, decide_peel_simple,
8829         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
8830         unroll_loop_runtime_iterations): Use new simple loop analysis.
8831         * loop-unswitch.c (compare_and_jump_seq): New.
8832         (may_unswitch_on_p): Renamed to ...
8833         (may_unswitch_on): Use new iv analysis.
8834         (reversed_condition): Export.
8835         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
8836         * predict.c (estimate_probability): Use new simple loop analysis.
8837         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
8838         canon_condition, simplify_using_condition): Declare.
8839         * stor-layout.c (get_mode_bounds): New.
8840         * toplev.c (rest_of_handle_loop2): Some parts of
8841         initialization/finalization moved here from loop-init.c.
8842
8843 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8844
8845         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
8846         pointer.
8847         (CALL_USED_REGISTERS): Likewise.
8848         (REG_ALLOC_ORDER): Likewise.
8849         (REG_CLASS) <GENERAL_REGS>: Likewise.
8850
8851 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
8852
8853         * doc/md.texi (Insn Canonicalizations): Document left-chaining
8854         in associative operators.
8855         * rtlanal.c (commutative_operand_precedence): Create some new
8856         variables.  Prefer a commutative operand on the left, then
8857         binary expressions, then NEG and NOT.
8858
8859 2004-02-16  Matthias Klose  <doko@debian.org>
8860
8861         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
8862         in terms of SHLIB_SOVERSION.
8863         * config/m68k/t-slibgcc-elf-ver: New file.
8864         * config/pa/t-slibgcc-elf-ver: New file.
8865         * config.gcc (m68k-linux, parisc-linux): Use them when not
8866         sjlj exceptions are not configured.
8867
8868 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
8869
8870         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
8871
8872 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
8873
8874         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
8875
8876 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
8877
8878         * doc/sourcebuild.texi: Mention backends.html.
8879
8880 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
8881
8882         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
8883         line-map.c, line-map.h, var-tracking.c: Fix comment
8884         formatting.
8885
8886 2004-02-16  Richard Henderson  <rth@redhat.com>
8887
8888         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
8889
8890         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
8891
8892 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
8893
8894         * config/h8300/h8300.md: Remove unnecessary parallels from
8895         all define_insn and define_split patterns.
8896
8897 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
8898
8899         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
8900         "clobber").
8901
8902 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
8903
8904         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
8905         '%#'.
8906
8907 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
8908
8909         * config/ia64/ia64.c, config/mips/mips.c,
8910         config/mmix/mmix-modes.def: Fix comment typos.
8911
8912 2004-02-15  Roger Sayle  <roger@eyesopen.com>
8913
8914         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
8915         (get_directive_line): Remove unused function prototype.
8916
8917 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
8918
8919         * tree-inline.c (copy_body_r): Do not replace ret_label.
8920
8921 2004-02-14  Jan Hubicka  <jh@suse.cz>
8922
8923         * i386.c (x86_four_jump_limit): New variable.
8924         (k8_avoid_jump_misspredicts): Rename to ...
8925         (ix86_avoid_jump_misspredicts): .. this one.
8926         (ix86_pad_returns): Break out from ...
8927         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
8928         to.
8929         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
8930
8931 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
8932
8933         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
8934         PARALLEL is NULL.
8935
8936 2004-02-14  Per Bothner  <per@bothner.com>
8937
8938         * fix-header.c (line_table):  Move local variable in main to global.
8939         * scan.h (line_table):  Use it.
8940         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
8941         line (recently renamed to src_loc) before calling recognized_function.
8942
8943 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
8944
8945         * Makefile.in: Fix comment typos.
8946
8947 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
8948
8949         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
8950         for start_value when it is directly moved into reg, and factorize
8951         the retrieval of GET_MODE (reg).
8952
8953 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
8954
8955         * config/mips/mips-protos.h (mips_load_got_page): Delete.
8956         (mips_load_got_global): Delete.
8957         (mips_gotoff_page): Declare.
8958         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
8959         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
8960         UNSPEC_LOAD_GOT pattern rather than a MEM.
8961         (*load_got[sd]i): New patterns.
8962         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
8963         (mips_load_got_page, mips_load_got_global): Delete.
8964         (mips_gotoff_page): New function.
8965         (override_options): Don't initialize mips_got_alias_set.
8966
8967 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
8968
8969         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
8970         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
8971         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
8972         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
8973         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
8974         * config/mips/mips.c: Fix some overly-long lines.
8975         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
8976         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
8977
8978 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8979
8980         * configure.ac: Search for as, ld below libexec/gcc.
8981         * configure: Regenerate.
8982
8983 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
8984
8985         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
8986         __builtin_arm_setwcx ().
8987         * config/arm/arm.c (arm_expand_builtin): Generate operands
8988         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
8989
8990 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
8991
8992         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
8993         and "wmuluh" to "wmulsm" and "wmulum", respectively.
8994         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
8995         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
8996         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
8997         (_mm_mulhi_pu16): Likewise.
8998
8999 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
9000
9001         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
9002         DECL_NAME != 0 before dereferencing.
9003
9004 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
9005
9006         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
9007         (s390_output_addr_const_extra): Declare.
9008         (s390_output_pool_entry): Remove FILE * argument.
9009         * config/s390/s390.c (s390_output_symbolic_const): Remove.
9010         (s390_output_addr_const_extra): New function.
9011         (print_operand_address): Call output_addr_const instead of
9012         s390_output_symbolic_const.
9013         (print_operand): Likewise.
9014         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
9015         Remove FILE * argument.
9016         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
9017         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
9018         call.
9019
9020 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9021
9022         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
9023         (struct edge, struct vertex, struct graph): New.
9024         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
9025         free_graph): New functions.
9026
9027 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
9028
9029         * config/mips/mips.md (casesi_internal, casesi_internal_di):
9030         Use ".set macro" to avoid warnings about multi-instruction
9031         macros, since they're intentional.
9032
9033 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
9034
9035         * config/darwin.h: Add include guards.  Remove old, now incorrect,
9036         comment about STANDARD_EXEC_PREFIX.
9037
9038         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
9039         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
9040         for installing .1 manpages.  Add rules for installing cpp
9041         and gcov manpages under their installed names.
9042
9043 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
9044
9045         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
9046         host, but try LD_FOR_TARGET first.
9047         * configure: Rebuilt.
9048
9049 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9050
9051         * dbxout.c: Move declaration of dbxout_type_decl outside
9052         #ifdef DBX_DEBUGGING_INFO.
9053         * c-parse.in: Don't give the asmdef production a type.
9054
9055 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9056
9057         * debug.h (struct gcc_debug_hooks): Add type_decl field.
9058         (debug_nothing_tree_int): Prototype.
9059         (dwarf_debug_hooks): Delete, unused.
9060         * debug.c (do_nothing_debug_hooks): Update.
9061         (debug_nothing_tree_int): New function.
9062         * langhooks.h (struct lang_hooks_for_decls):
9063         Remove builtin_type_decls field.
9064         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
9065         (LANG_HOOKS_DECLS): Update.
9066         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
9067         Use debug_hooks->type_decl.
9068         * dbxout.c (preinit_symbols): New static.
9069         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9070         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
9071         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
9072         for symbols to output.
9073         (dbxout_type_decl): New function.
9074         (dbxout_symbol): If called before dbxout_init has run, queue
9075         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
9076         to TYPE_DECLs before emitting them.
9077         * xcoffout.c (assign_type_number): Delete.
9078         (xcoff_type_numbers): New static table.
9079         (xcoff_assign_fundamental_type_number): New function.
9080         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
9081         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
9082         * sdbout.c: Include varray.h.
9083         (deferred_global_decls): New static.
9084         (sdb_debug_hooks): Update.
9085         (sdbout_global_decl): If we can't emit something right now,
9086         remember it in deferred_global_decls.
9087         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
9088         (sdbout_init): Initialize deferred_global_decls.
9089         * Makefile.in: Update dependencies of sdbout.o.
9090         * dwarf2out.c (dwarf2out_type_decl): New function.
9091         (dwarf2_debug_hooks): Update.
9092         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
9093         * c-decl.c (getdecls): Just return 0.
9094         (check_for_loop_decls): Don't use getdecls.
9095         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
9096         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
9097
9098 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
9099
9100         * config/s390/s390.c (s390_sched_reorder2): Remove.
9101         (TARGET_SCHED_REORDER2): Do not redefine.
9102
9103 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9104
9105         * c-parse.in (maybe_type_qual): Delete.
9106         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
9107         (asm_argument): New grammar rules.
9108         (extdef_1): Use asmdef.
9109         (maybeasm): Move down with other asm rules; use simple_asm_expr.
9110         (xexpr): Move up with other expression rules.
9111         (stmt): Use asm_stmt.
9112
9113         * c-typeck.c (build_asm_expr): New function - body mostly
9114         pulled from build_asm_stmt.
9115         (build_asm_stmt): Just handle tacking on the volatile qualifier.
9116         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
9117
9118 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
9119
9120         PR bootstrap/13617
9121         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
9122         (mips_declare_object): Make variadic.
9123         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
9124         mips_output_aligned_decl_common.
9125         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
9126         (mips_declare_object): Make variadic.
9127
9128 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9129
9130         * function.c (update_epilogue_consts): Teach about binary operations.
9131
9132         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
9133         previous MEM_VOLATILE in REF.
9134         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
9135         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
9136
9137 2004-02-12  Gunther Nikl  <gni@gecko.de>
9138
9139         * config.gcc: Restore support for m68k-openbsd.
9140
9141 2004-02-12  Jan Hubicka  <jh@suse.cz>
9142
9143         * tree-optimize.c (tree_rest_of_compilation): Do not release
9144         DECL_ARGUMENTS.
9145
9146 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
9147
9148         * doc/install.texi: Fix the spelling of "explicitly".
9149
9150 2004-02-11  Eric Christopher  <echristo@redhat.com>
9151
9152         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
9153         duplicate argument structure of cpp_interpret_string.
9154         * cpphash.h: Move prototype...
9155         * cpplib.h: Here.
9156         * cpplib.c: Fix calls to match new function signature.
9157
9158 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
9159
9160         PR c/456
9161         * cppexp.c (num_binary_op): Don't allow comma operators in #if
9162         constant expressions at all outside C99 mode if pedantic.
9163
9164 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
9165
9166         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
9167         (log10_optab, log2_optab): Define corresponding macros.
9168         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
9169         * genopinit.c (optabs): Implement log10_optab and log2_optab
9170         using log10?f2 and log2?f2 patterns.
9171         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
9172         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
9173         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
9174         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9175
9176         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
9177         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
9178         log2, log2f and log2l built-ins as inline x87 intrinsics.
9179
9180 2004-02-11  Richard Henderson  <rth@redhat.com>
9181
9182         PR target/1532
9183         * flow.c (insn_dead_p): A clobber of a dead hard register is a
9184         dead insn after reload.
9185
9186 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
9187
9188         * tree.h (frame_base_decl): Add GTY marker.
9189         * var-tracking.c (frame_base_decl): Likewise.
9190
9191 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
9192
9193         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
9194         incorrect, hunk.
9195         (add_location_or_const_value_attribute): Use text_section_label,
9196         not TEXT_SECTION_NAME.
9197
9198 2004-02-11  Per Bothner  <per@bothner.com>
9199
9200         Represent column numbers using line-map's source_location.
9201         The "next available source_location" is now managed internally by
9202         line-maps.c rather than by clients.
9203         * line-map.h (struct line_map):  New field column_bits.
9204         <from_line>:  Rename field to start_location.
9205         (struct line_maps):  New fields highest_location and max_column_hint.
9206         (linemap_check_files_exited):  New declaration.
9207         (linemap_line_start):  New declaration.
9208         (linemap_add):  Remove from_line parameter; use highest_location field.
9209         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
9210         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
9211         (CURRENT_LINE_MAP):  Remove macro.
9212         (linemap_position_for_column):  New inline function.
9213         * line-map.c (linemap_init):  Clear new fields.
9214         (linemap_check_files_exited):  New function, extracted from ...
9215         (linemap_free):  Use linemap_check_files_exited.
9216         (linemap_add):  Remove from_line parameter.  Various updates.
9217         (linemap_line_start):  New function.
9218         (linemap_lookeup):  Update for new field names.
9219         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
9220         linemap_position_for_column may unpredictably change the current map,
9221         it is cleaner and simpler for us to not cache it in cpp_reader.
9222         (struct cpp_buffer):  New sysp field.
9223         Changed warned_cplusplus_comments and from_stage3 to bitfields.
9224         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
9225         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
9226         current map using linemap_lookup.
9227         (do_linemarker):  Also set buffer's sysp field.
9228         (destringize_and_run):  No longer need to decrement current line.
9229         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
9230         (search_path_head, open_file_failed):  Use buffer's sysp.
9231         (cpp_make_system_header):  Get current map using linemap_lookup.
9232         Also set buffer's sysp flag.
9233         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
9234         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
9235         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
9236         (struct cpp_reader):  ... and adding saved_line_base field.
9237         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
9238         Update accordingly.  Don't adjust line.
9239         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
9240         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
9241         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
9242         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
9243         * cpplex.c (_cpp_lex_direct):  Likewise.
9244         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
9245         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
9246         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
9247         Remove col field as it is now subsumed by src_loc.
9248         * cpperror.c:  Update various field, parameter, and macro names.
9249         (print_location):  If col==0, try SOURCE_COLUMN of line.
9250         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
9251         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
9252         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
9253         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
9254         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
9255         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
9256         (_cpp_lex_direct):  Use linemap_position_for_column.
9257         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
9258         parameter.  Instead get it from the line_table global.  Adjust callers.
9259         (print):  Remove map field.  Replace line field to src_line.
9260         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
9261         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
9262         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
9263         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
9264         * cpptrad.c (copy_comment):  Rename variable.
9265         * c-lex.c (map):  Remove static variable, for same reason we removed
9266         cpp_reader's map field.
9267         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
9268         to call linemap_lookup.
9269         (cb_line_change):  Token's line field replaced by src_loc.
9270         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
9271         Don't save new_map.
9272
9273         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
9274         source_location.
9275
9276 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9277
9278         * config/rs6000/altivec.md (*movv4si_internal): At least one
9279         operand must be register_operand.
9280         (*movv8hi_internal1): Likewise.
9281         (*movv16qi_internal1): Likewise.
9282         (*movv4sf_internal1): Likewise.
9283
9284 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
9285
9286         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
9287         operand.
9288         (movv4hi_internal): Same.
9289         (movv2sf_internal): Same.
9290         (movv1di_internal): Same.
9291
9292 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
9293
9294         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
9295         TARGET_OLDABI consistently.
9296         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
9297         mips_va_arg,override_options,compute_frame_size,
9298         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
9299         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
9300         and TARGET_OLDABI consistently.
9301         * config/mips/mips.md (exception_receiver): Likewise.
9302         * config/mips/linux64.h: Likewise.
9303
9304 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9305
9306         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
9307         Set AltiVec ABI and vrsave as default for ppc64 linux.
9308         (init_cumulative_args): Post error, if try to return
9309         value in AltiVec register without enable AltiVec.
9310         (function_arg_advance): Ditto for passing arguments.
9311
9312 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
9313
9314         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
9315         a label before updating its usage count.
9316
9317 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
9318
9319         * doc/install.texi: Remove extra cd.
9320
9321 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
9322
9323         * c-common.c (vector_size_helper): Remove; call
9324         reconstruct_complex_type() instead.
9325         * tree.c (reconstruct_complex_type): New function
9326         (formerly vector_size_helper() in c-common.c).
9327         (make_vector): Make externally visible.
9328         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
9329
9330 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9331
9332         * config/h8300/h8300-protos.h: Add a prototype for
9333         h8300_regs_ok_for_stm.
9334         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
9335         * config/h8300/h8300.md (stm_h8300s_2_advanced,
9336         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
9337         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
9338         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
9339         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
9340         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
9341         ldm_h8300s_4_normal, ldm_h8300s_4): Use
9342         h8300_regs_ok_for_stm().
9343
9344 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9345
9346         PR c/14088
9347         * real.c (real_from_string): Look for 'X' as well as 'x' in
9348         hexfloat strings.
9349
9350 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9351
9352         * config/h8300/h8300.md: Remove an incorrect comment about
9353         peephole2.  Add comments.
9354
9355 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
9356
9357         PR/14058
9358         * emit-rtl.c (set_decl_incoming_rtl): New.
9359         * tree.h (set_decl_incoming_rtl): New.
9360         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
9361         DECL_INCOMING_RTL.
9362         * ada/misc.c (adjust_decl_rtl): Likewise.
9363
9364 2004-02-10  Per Bothner  <per@bothner.com>
9365
9366         * c-opts.c (c_common_post_options):   Don't emit working directory
9367         in cpp output if -P was specified.
9368
9369 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9370
9371         PR c/14092
9372         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
9373         negate_expr back to the original type.
9374
9375 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
9376
9377         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
9378         bump retaddr here.
9379
9380 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9381
9382         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
9383         gen_lowpart_SUBREG): Move under the file in which they
9384         are actually declared.
9385
9386 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
9387
9388         * doc/sourcebuild.texi: Add libada documentation.
9389
9390         * doc/install.texi: Update documentation on Ada build, now
9391         that the GNAT lib and tools are built automatically.
9392
9393 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
9394
9395         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
9396         && TARGET_IRIX.
9397
9398 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
9399
9400         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
9401         boundaries outside build_component_ref() call (a macro in ObjC++).
9402
9403 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
9404
9405         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
9406         (init_cumulative_args): Likewise.
9407         (a7_overlap_mentioned_p): Delete prototype.
9408         * config/xtensa/xtensa.c (struct machine_function): Replace
9409         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
9410         Add set_frame_ptr_insn field.
9411         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
9412         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
9413         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
9414         at the function entry and replace the operand with the pseudo.
9415         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
9416         argument and record this flag in CUMULATIVE_ARGS.
9417         (function_arg): Remove result_mode and special-case code to handle
9418         arguments in a7.  Instead, set need_a7_copy flag when there is an
9419         incoming argument in a7.
9420         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
9421         and use the value recorded in cfun->machine->set_frame_ptr_insn.
9422         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
9423         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
9424         special-case code.
9425         (a7_overlap_mentioned_p): Delete.
9426         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
9427         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
9428         arguments to init_cumulative_args and pass "incoming" flag instead.
9429         (BLOCK_REG_PADDING): Delete.
9430         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
9431         checks for reload_in_progress and reload_completed.  Update calls to
9432         xtensa_copy_incoming_a7.
9433         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
9434         to call xtensa_copy_incoming_a7.
9435
9436 2004-02-09  DJ Delorie  <dj@redhat.com>
9437
9438         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
9439         longer modify standard_exec_prefix, standard_bindir_prefix, or
9440         standard_startfile_prefix.
9441
9442 2004-02-09  James E Wilson  <wilson@specifixinc.com>
9443
9444         PR c++/11295
9445         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
9446         to expand_expr_real call, and pass in alt_rtl as last argument.
9447
9448         PR libstdc++/5625
9449         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
9450         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
9451         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
9452         * except.c (expand_builtin_extend_pointer): New.
9453         * except.h (expand_builtin_extend_pointer): Declare.
9454
9455 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
9456
9457         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
9458         unaligned loads and stores.
9459
9460 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9461
9462         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
9463         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
9464
9465         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
9466         * config/mips/iris5.h: ... here.
9467         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
9468
9469         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
9470         * config/mips/iris5.h: ... here.
9471
9472 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9473
9474         * configure.ac: Remove default executable files before AC_PROG_CC.
9475         * configure: Regenerate.
9476
9477 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
9478
9479         PR target/13721
9480         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
9481         print a operand other than a register.
9482
9483 2004-02-09  Roger Sayle  <roger@eyesopen.com>
9484
9485         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
9486         tree code rather than call fold_convert, which doesn't specify a
9487         default floating point to integer conversion.
9488
9489 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
9490
9491         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
9492         code to support SGS assembler.  Reformat adjacent code where possible.
9493         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
9494         definition.
9495         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
9496         for '%#'.
9497         * config/m68k/linux.h, config/m68k/m68k.c,
9498         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
9499         macros and asm_printf() format strings.
9500         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
9501         * config/m68k/linux.h: Update copyright.
9502         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
9503
9504 2004-02-08  Andreas Schwab  <schwab@suse.de>
9505             Bernardo Innocenti  <bernie@develer.com>
9506
9507         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
9508         REGISTER_PREFIX.
9509         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
9510         frame pointer register, overridable by OS targets.
9511         * (M68K_REGNAME): Macro to obtain register name for asm output,
9512         eventually replacing %a6 with M68K_FP_REG_NAME.
9513         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
9514         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
9515         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
9516         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
9517         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
9518
9519 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9520
9521         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
9522         hook_rtx_tree_int_null.
9523         * targhooks.c (default_struct_value_rtx): Remove.
9524         * targhooks.h: Remove the prototype for
9525         default_struct_value_rtx.
9526         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
9527         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
9528         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9529         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
9530         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
9531         config/rs6000/rs6000.c, config/s390/s390.c,
9532         config/stormy16/stormy16.c, config/v850/v850.c,
9533         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
9534         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
9535
9536 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
9537
9538         * README.Portability: Change "ISO C89" to "ISO C90".
9539         * c-parse.in (primary, initelt): Likewise.
9540
9541 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
9542
9543         * real.c (encode_ibm_extended): Normalize the input value before
9544         converting it to a double.  Handle the case where a normal value
9545         rounds to infinity.
9546
9547 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9548
9549         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
9550         warning.
9551         * cse.c (preferrable): Change to preferable. Update all of its
9552         callers.
9553         * genautomata.c (ainsn): Change
9554         first_ainsn_with_given_equialence_num to
9555         first_ainsn_with_given_equivalence_num.  Update all of its
9556         references.
9557
9558 2004-02-08  Jan Hubicka  <jh@suse.cz>
9559
9560         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
9561
9562 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
9563
9564         * function.c (assign_parms): Fix formatting.
9565
9566 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9567
9568         * default.h (PROMOTE_PROTOTYPES): Remove.
9569         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
9570         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
9571         EXPAND_BUILTIN_SAVEREGS): Poison.
9572         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
9573         hook_bool_tree_false.
9574         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9575         * target.h: Replace SETUP_INCOMING_VARARGS with
9576         targetm.calls.setup_incoming_varargs().
9577         * targhooks.c (default_promote_function_return): Remove.
9578         (default_promote_prototypes): Likewise.
9579         (default_struct_value_rtx): Always abort().
9580         (default_expand_builtin_saveregs): Always print an error
9581         message.
9582         (default_setup_incoming_varargs): Do nothing.
9583         (default_pretend_outgoing_varargs_named): Don't depend on
9584         SETUP_INCOMING_VARARGS.
9585         * targhooks.h: Remove the prototype for
9586         default_promote_function_return and
9587         default_promote_prototypes.
9588
9589 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9590
9591         * system.h (SHARED_SECTION_ASM_OP): Poison.
9592         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
9593         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
9594
9595 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
9596
9597         Bug 13856
9598         * c-decl.c (diagnose_mismatched_decls): Only give special
9599         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
9600         is also true.
9601         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
9602         DECL_FUNCTION_CODE when defining a built-in function.
9603         Don't update DECL_ESTIMATED_INSNS.
9604         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
9605         FUNCTION_DECLs.
9606         * tree.h: Delete DECL_ESTIMATED_INSNS.
9607         * tree-inline.c (struct inline_data): Delete inlined_insns field.
9608         (expand_call_inline, optimize_inline_calls): Don't update
9609         DECL_ESTIMATED_INSNS nor inlined_insns.
9610         * cgraphunit.c (cgraph_analyze_function): Don't update
9611         DECL_ESTIMATED_INSNS.
9612
9613 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
9614
9615         * c-common.c (shadow_warning): Delete.
9616         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
9617         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
9618         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
9619         * c-parse.in (free_parser_stacks): Delete.
9620
9621 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
9622
9623         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
9624         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
9625         Use the top level mkinstalldirs, not the one in the gcc subdir.
9626         * mkinstalldirs: Remove (from the gcc subdir).
9627
9628 2004-02-07  Roger Sayle  <roger@eyesopen.com>
9629
9630         PR middle-end/13696
9631         * fold-const.c (fold_convert): New function to provide type
9632         conversion to the middle-end without using convert.
9633         (negate_expr, associate_trees, size_diffop, omit_one_operand,
9634         operand_equal_for_comparison_p, pedantic_omit_one_operand,
9635         invert_truthvalue, optimize_bit_field_compare, range_binop,
9636         decode_field_reference, make_range, build_range_check, unextend,
9637         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
9638         fold_binary_op_with_conditional_arg, fold_inf_compare,
9639         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
9640         convert with calls to fold_convert.
9641
9642 2004-02-07  Jan Hubicka  <jh@suse.cz>
9643
9644         * genrecog.c (find_operand): add extra argument stop.
9645         (validate_pattern): Verify that mach_dup is duplicating operand
9646         defined lexically earlier.
9647
9648 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9649
9650         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
9651         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
9652         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
9653         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
9654         config/ia64/ia64.h, config/ip2k/ip2k.h,
9655         config/iq2000/iq2000.h, config/mips/iris5.h,
9656         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
9657         config/rs6000/aix51.h, config/rs6000/aix52.h,
9658         config/rs6000/darwin.h, config/rs6000/rs6000.h,
9659         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
9660         config/sparc/linux.h, config/sparc/linux64.h,
9661         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
9662         config/xtensa/xtensa.h: Remove the definitions of
9663         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
9664         MAX_WCHAR_TYPE_SIZE.
9665         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
9666         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
9667
9668 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
9669
9670         PR bootstrap/13990
9671         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
9672         gen_rtx_NE.
9673
9674 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
9675
9676         * var-tracking.c (vt_add_function_parameters): Surround checkings by
9677         #ifdef ENABLE_CHECKING and #endif.
9678
9679 2004-02-07  Roger Sayle  <roger@eyesopen.com>
9680
9681         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
9682         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
9683         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
9684         integer types and floating point with unsafe_math_optimizations.
9685         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
9686         Optimize A - B as A + (-B), if B is easily negated.
9687
9688 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9689
9690         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
9691         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
9692         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
9693         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
9694         Update copyright.
9695
9696 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9697
9698         * c-ppoutput.c, var-tracking.c: Fix comment typos.
9699
9700 2004-02-06  James E Wilson  <wilson@specifixinc.com>
9701
9702         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
9703         glibc 2.3 or better.
9704
9705 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9706
9707         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
9708         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
9709
9710 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
9711
9712         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
9713         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
9714         (SHLIB_MKMAP_OPTS): Delete.
9715         (TARGET_LIBGCC2_CFLAGS): Add -specs.
9716         (bispecs): Add rule.
9717         * config/rs6000/libgcc-ppc64.ver: New file.
9718         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
9719         (__floatdidf, __floatdisf): Optimize multiply.
9720         (__fixunstfdi): New function.
9721         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
9722         real and imag parts larger than one register.
9723         (function_arg): Correct type of reg used when fp arg split partially
9724         to stack.
9725         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
9726         and __MACH__ or __powerpc64__.
9727
9728 2004-02-06  Roger Sayle  <roger@eyesopen.com>
9729             Ulrich Weigand  <uweigand@de.ibm.com>
9730
9731         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
9732         of gen_highpart or gen_lowpart when the floating point format is
9733         wider than the result mode.
9734
9735 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
9736
9737         * dwarf2out.c (loclabel_num): Move into #ifdef
9738         DWARF2_DEBUGGING_INFO.
9739
9740 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
9741
9742         * objc/objc-act.c (build_super_template) the 'class' field of
9743         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
9744         (get_super_receiver): Likewise.
9745
9746 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9747
9748         * reload1.c (check_eliminable_occurrences): Optimize the reset
9749         of can_eliminate.
9750         (eliminate_regs_in_insn): Likewise.
9751
9752 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
9753             Josef Zlomek  <zlomekj@suse.cz>
9754
9755         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
9756         at the beginning of function, call dwarf2out_var_location for
9757         NOTE_INSN_VAR_LOCATION note.
9758         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
9759         decl_loc_table): New.
9760         (lookup_decl_loc): New function.
9761         (add_var_loc_to_decl): New function.
9762         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
9763         only if can_use_fbreg.
9764         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
9765         functions.
9766         (loc_descriptor): Likewise. Process VAR_LOCATION.
9767         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
9768         (loc_descriptor_from_tree): Call mem_loc_descriptor with
9769         can_use_fbreg == true.
9770         (add_location_or_const_value_attribute): Added parameter enum
9771         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
9772         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
9773         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
9774         with attr == DW_AT_location.
9775         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
9776         if frame_base_decl is defined and has a location list.
9777         (gen_variable_die): Call add_location_or_const_value_attribute with
9778         attr == DW_AT_location.
9779         (dwarf2out_var_location): New function.
9780         (dwarf2out_begin_function): New function.
9781         (dwarf2out_init): Create decl_loc_table.
9782
9783 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9784
9785         * loop.c (force_movables): Transitively increase the priorities of
9786         all insns forces by an insn, not just the first one.
9787
9788 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
9789             Daniel Berlin <dberlin@dberlin.org>
9790
9791         Josef Zlomek  <zlomekj@suse.cz>
9792         * Makefile.in (var-tracking.o): New.
9793         * common.opt (fvar-tracking): New.
9794         * flags.h (flag_var_tracking): New.
9795         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
9796         * opts.c (common_handle_option): Add OPT_fvar_tracking.
9797         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
9798         * rtl.c (note_insn_name): Likewise.
9799         * rtl.def (VAR_LOCATION): New.
9800         * rtl.h (NOTE_VAR_LOCATION): New.
9801         (NOTE_VAR_LOCATION_DECL): New.
9802         (NOTE_VAR_LOCATION_LOC): New.
9803         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
9804         (variable_tracking_main): New exported function.
9805         * timevar.def (TV_VAR_TRACKING): New.
9806         * toplev.c (enum dump_file_index): Added DFI_vartrack.
9807         (dump_file): "vartrack" was added (-dV).
9808         (flag_var_tracking): New.
9809         (f_options): "var-tracking" was added.
9810         (rest_of_handle_variable_tracking): New function.
9811         (rest_of_compilation): Run variable tracking.
9812         (process_options): If user has not specified flag_var_tracking set it
9813         according to optimize, debug_info_level and debug_hooks.
9814         * tree.h (frame_base_decl): New.
9815         * var-tracking.c: New file.
9816         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
9817         (ia64_override_options): Set flags to run variable tracking in machine
9818         dependent reorg instead of toplev.c.
9819         (ia64_reorg): Run variable tracking if wanted.
9820         * doc/invoke.texi: Mention variable tracking in -dV,
9821         add and -fvar-tracking.
9822         * doc/passes.texi: Added variable tracking pass.
9823
9824         Daniel Berlin <dberlin@dberlin.org>
9825         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
9826         * dbxout.c (dbx_debug_hooks): Likewise.
9827         (xcoff_debug): Likewise.
9828         * debug.c (do_nothing_debug_hooks): Likewise.
9829         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
9830         * dwarfout.c (dwarf_debug_hooks): Likewise.
9831         * sdbout.c (sdb_debug_hooks): Likewise.
9832         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9833         * final.c (final_scan_insn): Call var_location debug hook for each
9834         NOTE_INSN_VAR_LOCATION.
9835
9836 2004-02-06  Jan Hubicka  <jh@suse.cz>
9837
9838         * flow.c (update_life_info): Allocate reg_deaths when called from
9839         scheudler.
9840         (attempt_auto_inc):  Update life ranges accordingly.
9841
9842 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9843
9844         PR debug/11816
9845         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
9846
9847 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9848
9849         * cfganal.c (flow_call_edges_add): Never split a libcall block.
9850
9851 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
9852
9853         * dwarf2out.c (output_loc_list): Don't use deltas if we have
9854         a separate line info table in use.
9855         Use the correct size for terminators.
9856         (output_die): Use offset, not delta.
9857
9858 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
9859
9860         * doc/invoke.texi: Remove the pni option from -mfpmath=.
9861
9862 2004-02-06  Jan Hubicka  <jh@suse.cz>
9863
9864         * recog.c (split_all_insns): Do not update reg info.
9865         * regrename.c (regrename_optimize): Likewise.
9866         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
9867         * flow.c (struct propagate_block_info): Add insn_num field.
9868         (reg_deaths): New array.
9869         (life_analysis): Free reg_deaths info.
9870         (allocate_reg_life_data): Allocate reg_deaths array.
9871         (propagate_one_insn): Use new array.
9872         (init_propagate_block): Initialize it.
9873         (free_propagate_block_info): Finish compuation of
9874         REG_LIVE_LENGTH
9875         (attempt_auto_inc): Sanity check that REG_INFO is not
9876         computed at same time.
9877         (mark_used_regs): Update new array.
9878
9879         * reg-stack.c (subst_stack_regs): Unshare clobbers before
9880         substitution.
9881
9882 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9883
9884         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
9885         *extendqisi2_short_displ.
9886
9887 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
9888
9889         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
9890         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
9891         (emit_library_call_value_1): Likewise pass nargs.
9892         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
9893         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
9894         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
9895         parameter instead of scanning TYPE_ARGS_TYPES to count args.
9896         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
9897         prototype.
9898         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
9899         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
9900         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
9901         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
9902         INIT_CUMULATIVE_ARGS.
9903         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
9904         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
9905         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
9906         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
9907         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9908         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
9909         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
9910         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
9911         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
9912         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
9913         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
9914         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
9915
9916 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9917
9918         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
9919         possible.
9920
9921 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9922
9923         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
9924         note containing (plus (reg) (const_int)), where reg is an
9925         eliminable reg, then perform the register elimination without
9926         depending on eliminate_regs().
9927
9928 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9929
9930         * config/arc/arc.c (arc_return_in_memory): Check the return
9931         value of int_size_in_bytes against -1.  Don't check
9932         TREE_ADDRESSABLE.
9933         * config/avr/avr.c (avr_return_in_memory): Check the return
9934         value of int_size_in_bytes against -1.
9935         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
9936         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
9937         Likewise.
9938         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
9939         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
9940         Likewise.
9941
9942 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9943
9944         * config/frv/frv-protos.h: Remove the prototype for
9945         frv_setup_incoming_varargs.
9946         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
9947         (frv_setup_incoming_varargs): Make it static.
9948         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
9949
9950 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9951
9952         * config/fr30/fr30-protos.h: Remove the prototype for
9953         fr30_setup_incoming_varargs.
9954         Update the prototypes for fr30_num_arg_regs and
9955         fr30_function_arg_partial_nregs.
9956         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
9957         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9958         (fr30_setup_incoming_varargs): Make it static.
9959         Add argument second_time.  Don't do anything when second_time
9960         is nonzero.
9961         (fr30_num_arg_regs): Change the type of the first argument to
9962         enum machine_mode.
9963         (fr30_function_arg_partial_nregs): Change the type of the
9964         second argument to enum machine_mode.
9965         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
9966         (SETUP_INCOMING_VARARGS): Remove.
9967
9968 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9969
9970         * config/arc/arc-protos.h: Remove the prototype for
9971         arc_setup_incoming_varargs.
9972         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9973         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9974         (arc_setup_incoming_varargs): Make it static.
9975         (arc_external_libcall): Likewise.
9976         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
9977         Remove the commented-out definition of
9978         ASM_OUTPUT_EXTERNAL_LIBCALL.
9979
9980 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
9981
9982         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
9983         to $$(slibdir) in the installation commands.
9984
9985 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
9986
9987         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
9988         with inner_regno, not regno.
9989         * rtlanal.c (refers_to_regno_p): Same.
9990
9991 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
9992
9993         * config.gcc: Remove i370 support.
9994
9995 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
9996
9997         * doc/install.texi:  Update automake and autoconf version
9998         requirements.  Note where to find gcj automake version.
9999
10000 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10001
10002         * Makefile.in (generate-manpages): Move dependencies to ...
10003         (man): here.
10004         * doc/makefile.texi: Document new targets.
10005         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
10006
10007 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10008
10009         PR/13485
10010         Makefile.in (srcextra):  Add a level of indirection to ...
10011         (gcc.srcextra): ... here.
10012         (po-generated): Delete.
10013         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
10014         options.c.
10015         (start.encap): Remove superfluous lang.srcextra dependency.
10016         objc/Make-lang.in (po-generated):  Delete.
10017
10018 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10019
10020         * config/ia64/ia64.c (REG_GP): Remove.
10021
10022 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10023
10024         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
10025
10026 2004-02-05  Devang Patel  <dpatel@apple.com>
10027
10028         * dwarf2out.c (force_type_die): Look up input type itself
10029         instead of root_type() of type.
10030
10031 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10032
10033         * config/s390/s390.md ("*tmqidi_ext"): New insn.
10034         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
10035         pre-reload splitters are transformed to post-reload
10036         define_insn_and_split patterns.
10037         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
10038
10039 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10040
10041         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
10042         TARGET_PROMOTE_PROTOTYPES.
10043
10044 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10045
10046         PR middle-end/13750
10047         Revert:
10048         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10049         PR pch/13361
10050         * c-typeck.c (constructor_asmspec): Delete.
10051         (struct initializer_stack): Delete field 'asmspec'.
10052         (start_init): Delete saving of asmspec.
10053         (finish_init): Don't update constructor_asmspec.
10054         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10055         * stmt.c (expand_asm): Duplicate strings from tree.
10056         (expand_asm_operands): Likewise.
10057         * tree.c (tree_size): Update computation of size of STRING_CST.
10058         (make_node): Don't make STRING_CST nodes.
10059         (build_string): Allocate string with tree node.
10060         * tree.def (STRING_CST): Update comment.
10061         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10062         (tree_string): Place contents of string in tree node.
10063         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10064         from tree.
10065
10066 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10067
10068         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
10069         msgid.
10070
10071 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
10072
10073         * config/rs6000/altivec.md (*movv4si_internal): At least one
10074         operand must be altivec_register_operand.
10075         (*movv8hi_internal1): Likewise.
10076         (*movv16qi_internal1): Likewise.
10077         (*movv4sf_internal1): Likewise.
10078
10079 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
10080
10081         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
10082         * configure: Regenerate.
10083
10084 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
10085
10086         * doc/install.texi: Update description of --gxx-include-dir to
10087         give correct default value.
10088
10089 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10090
10091         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
10092         8 with MAC_REG.
10093
10094 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10095
10096         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
10097         gen_rtx_PARALLEL.
10098
10099 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10100
10101         * emit-rtl.c: Update the comment about the file.
10102
10103 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10104
10105         * sourcebuild.texi (Test Idioms): Update testcase naming
10106         conventions.
10107
10108 2004-02-04  Per Bothner  <per@bothner.com>
10109
10110         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
10111         * c-ppoutput.c (pp_dir_change):  New function.
10112         * c-common.h (pp_dir_change):  New declaration.
10113         * cpplib.h (struct cpp_options):  Remove working_directory field.
10114         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
10115         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
10116         Don't handle -fworking_directory here, but in c_common_post_options.
10117         (read_original_directory): Don't back up when done.
10118         Don't clear no-longer used working_directory flag.
10119         * cpplib.h:  Update declarations to match.
10120         * c-lex.c (cb_dir_change):  Move to c-opts.c.
10121         (init_c_lex):  Don't set dir_change callback here, since we want
10122         to set it even if flag_preprocess_only.
10123         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
10124         (c_common_post_options):  Set dir_change callback.
10125         Call pp_dir_change if approporiate.
10126         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
10127         unneeded parameter and result. Do LC_RENAME for <built-in>.
10128         (c_common_post_options):  Call cpp_read_main_file here instead.
10129         (c_common_init):  Update accordingly.
10130         (push_command_line_include):  Don't cpp_push_main_file.
10131         Do LC_RENAME rather than LC_LEASE to get back to main file.
10132         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
10133         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
10134         files, but call finish_options for all files.
10135         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
10136         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
10137         cpp_find_main_file + cpp_push_main_file.
10138         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
10139         * opts.c (handle_options):  Only set main_input_filename first time.
10140
10141 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
10142
10143         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
10144
10145 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
10146
10147         * reload.c (find_equiv_reg): When checking for register overlap,
10148         don't index hard_regno_nregs with a pseudo-reg.
10149
10150 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10151
10152         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
10153
10154 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
10155
10156         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
10157         against FIRST_PSEUDO_REGISTER.
10158
10159 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10160
10161         * Makefile.in: Move target, host overrides after per-language
10162         fragments.
10163
10164         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
10165         (GNATLIBCFLAGS): Remove -g.
10166
10167 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10168
10169         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10170         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10171         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10172         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
10173         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
10174         config/sparc/sparc.c, config/vax/vax.c: Revert the
10175         replacements of "FALLTHRU" with "Fall through" done in the
10176         previous patch.
10177
10178 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10179
10180         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
10181         config/arm/arm.c, config/arm/arm.md,
10182         config/cris/cris-protos.h, config/fr30/fr30.c,
10183         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
10184         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
10185         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
10186         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
10187         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
10188         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
10189         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
10190         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
10191         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10192         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
10193         config/s390/s390.md, config/sparc/netbsd-elf.h,
10194         config/sparc/openbsd.h, config/sparc/sparc.c,
10195         config/xtensa/lib2funcs.S: Fix comment formatting.
10196
10197 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10198
10199         * config/alpha/alpha.c, config/arc/arc.c,
10200         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
10201         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
10202         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
10203         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
10204         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10205         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10206         config/iq2000/iq2000.c, config/m32r/m32r.c,
10207         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
10208         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
10209         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
10210         config/rs6000/rs6000.h, config/sparc/sparc.c,
10211         config/vax/vax.c: Fix comment typos.  Follow spelling
10212         conventions.
10213
10214 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10215
10216         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
10217         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
10218         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
10219         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
10220         config/arm/fpa.md, config/arm/iwmmxt.md,
10221         config/arm/netbsd-elf.h, config/arm/netbsd.h,
10222         config/m68hc11/m68hc11.md, config/mips/iris5.h,
10223         config/mn10300/mn10300.md, config/rs6000/altivec.md,
10224         config/sparc/netbsd-elf.h: Update copyright.
10225
10226 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10227
10228         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10229         for all modes whose size is greater than 8 bytes if ARCH32.
10230         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
10231         by reference if ARCH32.
10232
10233 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
10234
10235         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
10236
10237 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10238
10239         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
10240         to before adddi3 insn patterns.
10241         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
10242         "reload_insi"): Move to before addsi3 insn patterns.
10243
10244 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
10245
10246         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
10247         parameter.  Use it instead of current_function_is_thunk.
10248         * function.h (struct function): Update documentation for is_thunk.
10249         * tree.h (CALL_FROM_THUNK_P): New macro.
10250         * config/alpha/alpha.c (alpha_sa_mask): Do not check
10251         no_new_pseudos when testing current_function_is_thunk.
10252         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
10253
10254 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10255
10256         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
10257         TARGET_SETUP_INCOMING_VARARGS.
10258
10259 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10260
10261         * emit-rtl.c (gen_rtx): Remove.
10262         * genattrtab.c: Don't mention gen_rtx in a comment.
10263         * rtl.h: Remove the prototype for gen_rtx.
10264         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
10265
10266 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10267
10268         * config/arc/arc.h, config/fr30/fr30.h
10269         (SETUP_INCOMING_VARARGS): Remove the target-independent
10270         comments.
10271         * doc/tm.texi: Don't mention deprecated target macros.
10272
10273 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10274
10275         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
10276         target-independent comment.
10277
10278 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10279
10280         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
10281         mention deprecated target macros.
10282
10283 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10284
10285         * config.gcc: Remove obsolete ports and configurations.
10286         * config/linux-aout.h, config/netware.h,
10287         config/t-linux-gnulibc1, config/d30v/abi,
10288         config/d30v/d30v-protos.h, config/d30v/d30v.c,
10289         config/d30v/d30v.h, config/d30v/d30v.md,
10290         config/d30v/libgcc1.asm, config/d30v/t-d30v,
10291         config/dsp16xx/dsp16xx-modes.def,
10292         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10293         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
10294         config/i370/README, config/i370/i370-c.c,
10295         config/i370/i370-protos.h, config/i370/i370.c,
10296         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
10297         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
10298         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
10299         config/i386/moss.h, config/i386/netware.h,
10300         config/i386/svr3.ifile, config/i386/svr3dbx.h,
10301         config/i386/svr3gas.h, config/i386/svr3z.ifile,
10302         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
10303         config/i960/i960-c.c, config/i960/i960-coff.h,
10304         config/i960/i960-modes.def, config/i960/i960-protos.h,
10305         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
10306         config/i960/rtems.h, config/i960/t-960bare,
10307         config/m68k/hp310.h, config/m68k/hp320.h,
10308         config/m68k/hp320base.h, config/m68k/m68kv4.h,
10309         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
10310         Remove.
10311         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
10312         doc/md.texi: Remove mentions of obsolete ports.
10313
10314 2004-02-04  Jan Hubicka  <jh@suse.cz>
10315
10316         * alias.c (find_base_term, get_addr):  Do not dereference NULL
10317         pointer when all VALUE's locations has been invalidated.
10318         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
10319
10320 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
10321
10322         * doc/invoke.texi (x86 options): Fix spelling/wording.
10323
10324 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
10325
10326         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
10327         put the original string in a comment.
10328         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
10329         * config/mips/mips.c (mips_output_ascii): Likewise.
10330         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
10331
10332 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10333
10334         * system.h (GIV_SORT_CRITERION): Poison.
10335         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
10336         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
10337
10338 2004-02-03  Roger Sayle  <roger@eyesopen.com>
10339
10340         PR target/9348
10341         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
10342         multiplies with a multiplication of the wrong signedness, its the
10343         signedness of the multiplication that we've performed that needs to
10344         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
10345         if expand_mult_highpart_adjust places the result in target.
10346
10347 2004-02-03  Richard Henderson  <rth@redhat.com>
10348
10349         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
10350
10351 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
10352
10353         * config.gcc (sh[234]l): Use little endian fragments.
10354
10355 2004-02-03  Paul Koning  <pkoning@equallogic.com>
10356
10357         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
10358         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
10359         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
10360         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
10361         floating point format.
10362         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
10363         the above functions.
10364         (output_move_quad): Output float values in correct target format.
10365         (legitimate_const_double_p): New function.
10366         * config/pdp11/pdp11.h: Fix typos.
10367         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
10368         (TARGET_FLOAT_FORMAT): Ditto.
10369         (pdp11_f_format, pdp11_d_format): Add external declarations.
10370         (MAX_REGS_PER_ADDRESS): Corrected.
10371         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
10372         (PRINT_OPERAND): Output float literals in target format.
10373
10374 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
10375
10376         PR c++/13975
10377         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
10378         TI_PRIVATE.
10379         (access_public_node): Redefine.
10380         (access_protected_node): Likewise.
10381         (access_private_node): Likewise.
10382         * tree.c (build_common_tree_nodes): Create access_public_node,
10383         access_protected_node, and access_private_node.
10384
10385 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
10386
10387         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
10388         (MASK_INLINE_INT_DIV_THR): Ditto.
10389         (MASK_INLINE_SQRT_LAT): Ditto.
10390         (MASK_INLINE_SQRT_THR): Ditto.
10391         (MASK_DWARF2_ASM): Ditto.
10392         (MASK_EARLY_STOP_BITS): Ditto.
10393
10394 2004-02-02  Paul Brook  <paul@codesourcery.com>
10395
10396         Merge from csl-arm-branch.
10397
10398         2004-01-30  Paul Brook  <paul@codesourcery.com>
10399
10400         * aof.h (REGISTER_NAMES): Add vfp reg names
10401         (ADDITIONAL_REGISTER_NAMES): Ditto.
10402         * aout.h (REGISTER_NAMES): Ditto.
10403         (ADDITIONAL_REGISTER_NAMES): Ditto.
10404         * arm-protos.h: Update/Add Prototypes.
10405         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
10406         Only allow 0.0 for VFP.
10407         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
10408         (values_fp): Rename from values_fpa.  Update Users.
10409         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
10410         Update users.  Only check valid constants for this hardware.
10411         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
10412         Only allow consts for FPA.
10413         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
10414         Only allow consts for FPA.
10415         (use_return_insn): Check for saved VFP regs.
10416         (arm_legitimate_address_p): Handle VFP DFmode addressing.
10417         (arm_legitimize_address): Ditto.
10418         (arm_general_register_operand): New function.
10419         (vfp_mem_operand): New function.
10420         (vfp_compare_operand): New function.
10421         (vfp_secondary_reload_class): New function.
10422         (arm_float_compare_operand): New function.
10423         (vfp_print_multi): New function.
10424         (vfp_output_fstmx): New function.
10425         (vfp_emit_fstm): New function.
10426         (arm_output_epilogue): Output VPF reg restore code.
10427         (arm_expand_prologue): Output VFP reg save code.
10428         (arm_print_operand): Add 'P'.
10429         (arm_hard_regno_mode_ok): Return modes for VFP regs.
10430         (arm_regno_class): Return classes for VFP regs.
10431         (arm_compute_initial_elimination_offset): Include space for VFP regs.
10432         (arm_get_frame_size): Ditto.
10433         * arm.h (FIXED_REGISTERS): Add VFP regs.
10434         (CALL_USED_REGISTERS): Ditto.
10435         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
10436         (FIRST_VFP_REGNUM): Define.
10437         (LAST_VFP_REGNUM): Define.
10438         (IS_VFP_REGNUM): Define.
10439         (FIRST_PSEUDO_REGISTER): Include VFP regs.
10440         (HARD_REGNO_NREGS): Handle VFP regs.
10441         (REG_ALLOC_ORDER): Add VFP regs.
10442         (enum reg_class): Add VFP_REGS.
10443         (REG_CLASS_NAMES): Ditto.
10444         (REG_CLASS_CONTENTS): Ditto.
10445         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
10446         (REG_CLASS_FROM_LETTER): Add 'w'.
10447         (EXTRA_CONSTRAINT_ARM): Add 'U'.
10448         (EXTRA_MEMORY_CONSTRAINT): Define.
10449         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
10450         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
10451         (REGISTER_MOVE_COST): Ditto.
10452         (PREDICATE_CODES): Add arm_general_register_operand,
10453         arm_float_compare_operand and vfp_compare_operand.
10454         * arm.md (various): Rename as above.
10455         (divsf3): Enable when TARGET_VFP.
10456         (divdf3): Ditto.
10457         (movdfcc): Ditto.
10458         (sqrtsf2): Ditto.
10459         (sqrtdf2): Ditto.
10460         (arm_movdi): Disable when TARGET_VFP.
10461         (arm_movsi_insn): Ditto.
10462         (movsi): Only split with general regs.
10463         (cmpsf): Use arm_float_compare_operand.
10464         (push_fp_multi): Restrict to TARGET_FPA.
10465         (vfp.md): Include.
10466         * vfp.md: New file.
10467         * fpa.md (various): Rename as above.
10468         * doc/md.texi: Document ARM w and U constraints.
10469
10470         2004-01-15  Paul Brook  <paul@codesourcery.com>
10471
10472         * config.gcc: Add with_fpu.  Allow with-float=softfp.
10473         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
10474         Break out of loop when we find a float-abi.  Fix typo.
10475         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
10476         Set -mfloat-abi=.
10477         * doc/install.texi: Document --with-fpu.
10478
10479         2003-01-14  Paul Brook  <paul@codesourcery.com>
10480
10481         * config.gcc (with_arch): Add armv6.
10482         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
10483         * config/arm/arm.c (arm_overrride_options): Ditto.
10484
10485         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
10486
10487         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
10488         (FL_ARCH6): Renamed from FL_ARCH6J.
10489         (arm_arch3m): Renamed from arm_fast_multiply.
10490         (arm_arch6): Renamed from arm_arch6j.
10491         * arm.h: Update all uses of above.
10492         * arm-cores.def: Likewise.
10493         * arm.md: Likewise.
10494
10495         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
10496         not arm6j.  Add entry for arch armv6.
10497
10498         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
10499
10500         * arm.c (arm_emit_extendsi): Delete.
10501         * arm-protos.h (arm_emit_extendsi): Delete.
10502         * arm.md (zero_extendhisi2): Also handle zero-extension of
10503         non-subregs.
10504         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
10505         (thumb_zero_extendhisi2): Only match if not v6.
10506         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
10507         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
10508         (thumb_extendqisi2): Likewise.
10509         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
10510         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
10511         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
10512         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
10513         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
10514         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
10515         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
10516         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
10517         (arm_extendqisi2addsi): Likewise.
10518
10519         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
10520
10521         Revert this change:
10522         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
10523         + REG addressing modes.
10524
10525         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
10526         + REG addressing modes.
10527
10528         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
10529
10530         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
10531         CONSTANT_P_RTX.
10532
10533         2003-30-12  Paul Brook  <paul@codesourcery.com>
10534
10535         * longlong.h: protect arm inlines with !defined (__thumb__)
10536
10537         2003-30-12  Paul Brook  <paul@codesourcery.com>
10538
10539         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
10540
10541         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
10542
10543         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
10544         change.
10545
10546         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10547
10548         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
10549         to the virtual incoming args pointer for downward stacks.
10550
10551         2003-12-29  Paul Brook  <paul@codesourcery.com>
10552
10553         * config/arm/arm-cores.def: Add cost function.
10554         * config/arm/arm.c (arm_*_rtx_costs): New functions.
10555         (arm_rtx_costs): Remove
10556         (struct processors): Add rtx_costs field.
10557         (all_cores, all_architectures): Ditto.
10558         (arm_override_options): Set targetm.rtx_costs.
10559         (thumb_rtx_costs): New function.
10560         (arm_rtx_costs_1): Remove cases handled elsewhere.
10561         * config/arm/arm.h (processor_type): Add COSTS parameter.
10562
10563         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10564
10565         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
10566         (arm926ejs.md): Include it.
10567         * config/arm/arm926ejs.md: New pipeline description.
10568
10569         2003-12-24  Paul Brook  <paul@codesourcery.com>
10570
10571         * config/arm/arm.c (arm_arch6j): New variable.
10572         (arm_override_options): Set it.
10573         (arm_emit_extendsi): New function.
10574         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
10575         * config/arm/arm.h (arm_arch6j): Declare.
10576         * config/arm/arm.md: Add sign/zero extend insns.
10577
10578         2003-12-23  Paul Brook  <paul@codesourcery.com>
10579
10580         * config/arm/arm.c (all_architectures): Add armv6.
10581         * doc/invoke.texi: Document it.
10582
10583         2003-12-19  Paul Brook  <paul@codesourcery.com>
10584
10585         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
10586         insn patterns to match.
10587         * config/arm/arm-generic.md: Ditto.
10588         * config/arm/cirrus.md: Ditto.
10589         * config/arm/fpa.md: Ditto.
10590         * config/amm/iwmmxt.md: Ditto.
10591         * config/arm/arm1026ejs.md: Ditto.
10592         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
10593         for 11_loadb.
10594
10595         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
10596
10597         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
10598         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
10599         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
10600         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
10601         arm_no_early_mul_dep): Correctly deal with conditional execution,
10602         parallels and single shift operations.
10603         (arm_no_early_alu_shift_value_dep): Define.
10604         * arm.md (attr type): Replace 'normal' with 'alu',
10605         'alu_shift' and 'alu_shift_reg'.
10606         (attr core_cycles): Adjust.
10607         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
10608         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
10609         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
10610         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
10611         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
10612         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
10613         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
10614         attribute appropriately.
10615         * config/arm/arm1026ejs.md (alu_op): Adjust.
10616         (alu_shift_op, alu_shift_reg_op): New.
10617         * config/arm/arm1136.md: Add better bypasses for early
10618         registers. Remove load[234] and store[234] bypasses.
10619         (11_alu_op): Adjust.
10620         (11_alu_shift_op, 11_alu_shift_reg_op): New.
10621
10622         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
10623
10624         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
10625         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
10626         * config/arm/arm.c (arm_no_early_store_addr_dep,
10627         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
10628         * config/arm/arm1026ejs.md: Add load-store bypass.
10629         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
10630         Add bypasses between instructions.
10631
10632         2003-12-10  Paul Brook  <paul@codesourcery.com>
10633
10634         * config/arm/arm.c (arm_fpu_model): New variable.
10635         (arm_fload_abi): New variable.
10636         (target_fpe_name): Rename from target_fp_name.
10637         (target_fpu_name): New variable.
10638         (arm_is_cirrus): Remove.
10639         (fpu_desc): New struct.
10640         (all_fpus): Define.
10641         (pf_model_for_fpu): Define.
10642         (all_loat_abis): Define.
10643         (arm_override_options): Set fp arch flags based on -mfpu=
10644         and -float-abi=.
10645         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
10646         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
10647         (*): Use new TARGET_* flags.
10648         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
10649         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
10650         (TARGET_SOFT_FLOAT): Ditto.
10651         (TARGET_SOFT_FLOAT_ABI): New.
10652         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
10653         TARGET_HARD_FLOAT.
10654         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
10655         (TARGET_OPTIONS): Add -mfpu=.
10656         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
10657         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
10658         (arm_pf_model): Define.
10659         (arm_float_abi_type): Define.
10660         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
10661         * config/arm/arm.md: Use new TARGET_* flags.
10662         * config/arm/cirrus.md: Ditto.
10663         * config/arm/fpa.md: Ditto.
10664         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
10665         * config/arm/semi.h (ASM_SPEC): Ditto.
10666         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
10667         (FPUTYPE_DEFAULT): Set to VFP.
10668         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
10669
10670         2003-11-22  Phil Edwards  <phil@codesourcery.com>
10671
10672         PR target/12476
10673         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
10674         'bx' instead of 'b' to avoid branch range restrictions.  Output
10675         the thunk immediately before the thunked-to function.
10676         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
10677         .thumb_func if a thunk is being generated.  Emit .code 16 along
10678         with .thumb_func if a thunk is not being generated.
10679
10680         2003-11-15  Nicolas Pitre <nico@cam.org>
10681
10682         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
10683         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
10684         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
10685         (lshrdi3_iwmmxt): Renamed from lshrdi3.
10686         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
10687
10688         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
10689             Ian Lance Taylor  <ian@wasabisystems.com>
10690
10691         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
10692         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
10693
10694         2003-11-05  Phil Edwards  <phil@codesourcery.com>
10695
10696         * config/arm/arm.md (insn):  Add new V6 instruction names.
10697         (generic_sched):  New attr.
10698         * config/arm/arm-generic.md:  Use generic_sched here.
10699         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
10700         stages of pipeline.  Adjust latency counts accordingly.
10701         * config/arm/arm1136jfs.md:  New file.
10702
10703         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
10704
10705         * config/arm/arm.h (processor_type): New enumeration type.
10706         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
10707         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
10708         (CPP_CPU_ARCH_SPEC): Likewise.
10709         * config/arm/arm.c (arm_tune): New variable.
10710         (all_cores): Use cores.def.
10711         (all_architectures): Add representative processor.
10712         (arm_override_options): Restructure way in which tuning
10713         information is deduced.
10714         * arm.md: Update "insn" and "type" attributes throughout.
10715         (insn): New attribute.
10716         (type): Compute "mult" from "insn" attribute.  Add load2,
10717         load3, load4 alternatives.
10718         (arm automaton): Move to arm-generic.md.
10719         * config/arm/arm-cores.def: New file.
10720         * config/arm/arm-generic.md: Likewise.
10721         * config/arm/arm1026ejs.md: Likewise.
10722
10723 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10724
10725         * doc/invoke.texi (SPARC options): Remove -mflat and
10726         all -mxxx (xxx:chip) options.
10727         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
10728         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
10729         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
10730         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
10731         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
10732         * config/sparc/sparc.c: Likewise.
10733         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
10734         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
10735         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
10736         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
10737         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
10738         (sparc_flat_must_save_register_p): Likewise.
10739         (sparc_flat_compute_frame_size): Likewise.
10740         (sparc_flat_save_restore): Likewise.
10741         (sparc_flat_function_prologue): Likewise.
10742         (sparc_flat_function_epilogue): Likewise.
10743         (sparc_flat_epilogue_delay_slots): Likewise.
10744         (sparc_flat_eligible_for_epilogue_delay): Likewise.
10745         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
10746         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
10747         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
10748         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
10749         (CONDITIONAL_REGISTER_USAGE): Likewise.
10750         (FRAME_POINTER_REQUIRED): Likewise.
10751         (INITIAL_ELIMINATION_OFFSET): Likewise.
10752         (BASE_RETURN_VALUE_REG): Likewise.
10753         (BASE_OUTGOING_VALUE_REG): Likewise.
10754         (BASE_PASSING_ARG_REG): Likewise.
10755         (BASE_INCOMING_ARG_REG): Likewise.
10756         (INCOMING_REGNO): Likewise.
10757         (OUTGOING_REGNO): Likewise.
10758         (LOCAL_REGNO): Likewise.
10759         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
10760         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
10761         (EPILOGUE_USES): Likewise.
10762         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
10763         ("flat" attribute): Delete.
10764         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
10765         handling.
10766         (call followed by jump define_peephole's): Delete.
10767         (exception_receiver): Likewise.
10768         (builtin_setjmp_receiver): Likewise.
10769         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
10770
10771 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
10772
10773         PR c/11658
10774         PR c/13994
10775         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
10776         on langhooks.h.
10777         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
10778         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
10779         Include langhooks.h.  Replace c_common_truthvalue_conversion
10780         with the truthvalue_conversion language hook throughout.
10781         (expr_no_commas): Call default_conversion before save_expr
10782         for the first term of the production 'x ? : y'.
10783         * c-common.c (c_common_truthvalue_conversion): Remove
10784         obsolete block.  Invoke recursively the hook instead
10785         of this function.
10786         * c-convert.c (convert): handle ERROR_MARK_NODE.
10787         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
10788         returned by the truthvalue_conversion language hook.
10789         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
10790         c_objc_common_truthvalue_conversion.
10791         * c-objc-common.c (c_objc_common_truthvalue_conversion):
10792         New function.
10793         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
10794         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
10795         c_objc_common_truthvalue_conversion.
10796
10797 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10798
10799         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
10800         of gen_rtx.
10801         (LIBCALL_VALUE): Likewise.
10802         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
10803         gen_rtx_CC0 instead of gen_rtx.
10804         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
10805         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
10806         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
10807         gen_rtx.
10808         (m68hc11_emit_logical): Likewise.
10809
10810 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10811
10812         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
10813         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
10814         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
10815         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
10816         config/mips/mips.md, config/mmix/mmix.c,
10817         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
10818         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
10819         config/rs6000/altivec.md, config/s390/s390.c,
10820         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
10821         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
10822         Use const0_rtx instead of GEN_INT (0).  Do the same for other
10823         constants that are readily available.
10824
10825 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10826
10827         * doloop.c, optabs.c, regmove.c, sched-deps.c,
10828         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
10829         instead of GEN_INT (0).  Do the same for other constants that
10830         are readily available.
10831
10832 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10833
10834         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
10835         gen_rtx.
10836         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
10837         instead of gen_rtx.
10838         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
10839         gen_rtx.
10840         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
10841         gen_rtx_ASHIFT instead of gen_rtx.
10842         (udivmodqi4): Likewise.
10843
10844 2004-02-02  Richard Henderson  <rth@redhat.com>
10845
10846         PR target/13789
10847         * expr.c (store_expr): Use force_operand before emit_move_insn.
10848
10849 2004-02-02  Jeff Law  <law@redhat.com>
10850             Roger Sayle  <roger@eyesopen.com>
10851
10852         * tree.c (commutative_tree_code, associative_tree_code): New
10853         functions.
10854         (iterative_hash_expr): Use commutative_tree_code.
10855         * tree.h (commutative_tree_code, associative_tree_code): Declare.
10856         * fold-const.c (operand_equal_p): Use commutative_tree_code
10857         rather than inlining the commutativity check.
10858         (fold): Likewise.
10859
10860 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10861
10862         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
10863         * config/frv/frv-protos.h: Remove the prototype for
10864         frv_function_arg_keep_as_reference.
10865         * config/frv/frv.c (frv_function_arg_keep_as_reference):
10866         Remove.
10867         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
10868         * config/stormy16/stormy16.h: Remove the commented-out
10869         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
10870
10871 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
10872
10873         PR target/13914
10874         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
10875         for retaddr_column.
10876
10877 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10878
10879         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
10880         gen_rtx.
10881
10882 2004-02-02  Eric Christopher  <echristo@redhat.com>
10883             Zack Weinberg  <zack@codesourcery.com>
10884
10885         * c-opts.c (c_common_handle_option): Add -finput-charset.
10886         * c.opt: Ditto.
10887         * cppcharset.c (one_iso88591_to_utf8): Remove.
10888         (convert_iso88591_utf8): Ditto.
10889         (conversion_tab): Remove 8859-1 converter.
10890         (_cpp_input_to_utf8): Remove.
10891         (_cpp_init_iconv_buffer): Ditto.
10892         (_cpp_close_iconv_buffer): Ditto.
10893         (_cpp_convert_input): New function.
10894         (_cpp_default_encoding): Ditto.
10895         * cpphash.h: Add/remove prototypes for above.
10896         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
10897         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
10898         for narrow execution and input character sets.
10899         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
10900         * doc/cppopts.texi: Document -finput-charset.
10901
10902 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
10903
10904         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
10905         against FIRST_PSEUDO_REGISTER.
10906
10907 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
10908
10909         * doc/invoke.texi (SPARC options): Further improve.
10910
10911 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10912
10913         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
10914         config/h8300/h8300.c, config/ip2k/ip2k.md,
10915         config/iq2000/iq2000.c, config/mips/mips.c,
10916         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
10917         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
10918         config/v850/v850.md: Fix indentation.
10919
10920 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
10921
10922         * config/sparc/sparc.c (function_arg_slotno): Align TImode
10923         arguments on a 16-byte boundary in the parameter array if ARCH64.
10924         Split handling of TFmode.
10925
10926 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
10927
10928         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
10929         Don't test CONSTANT_P (x).
10930         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
10931         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
10932         Fix misindentation.
10933
10934 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
10935
10936         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
10937
10938 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10939
10940         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
10941         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
10942         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
10943         config/iq2000/iq2000.c, config/m32r/m32r.c,
10944         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
10945         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
10946         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
10947         config/stormy16/stormy16.c, config/v850/v850.md,
10948         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
10949
10950 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
10951
10952         * config/mcore/mcore.c (block_move_sequence): Replace
10953         gen_rtx_CONST_INT with GEN_INT.
10954
10955 2004-02-02  Jan Hubicka  <jh@suse.cz>
10956
10957         * alias.c (record_set): Use hard_regno_nregs.
10958         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
10959         * builtins.c (apply_args_size): Likewise.
10960         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
10961         mark_set_regs, add_stored_regs, mark_referenced_regs,
10962         insert_restore, insert_save, insert_one_insn): Likewise.
10963         * cfgcleanup.c: Include regs.h
10964         (mark_effect, mentions_nonequal_regs): Likewise.
10965         * cfgrtl.c (mark_killed_regs): Likewise
10966         * combine.c (update_table_tick, record_value_for_reg,
10967         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
10968         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
10969         reg_bitfield_target_p, distribute_notes): Likewise.
10970         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
10971         exp_equiv_p, cse_insn): Likewise.
10972         * cselib.c (cselib_lookup): Likewise.
10973         (cselib_invalidate_regno, cselib_record_set): Likewise.
10974         * df.c (df_ref_record): Likewise.
10975         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
10976         Likewise.
10977         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
10978         count_or_remove_death_notes_bb): Likewise.
10979         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
10980         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
10981         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
10982         * integrate.c (mark_stores): Likewise.
10983         * jump.c (delete_prior_computation): Likewise.
10984         * lcm.c (reg_dies, reg_becomes_live): Likewise.
10985         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
10986         * loop.c (LOOP_REGNO_NREGS): Likewise.
10987         * postreload.c (reload_combine, reload_combine_note_store,
10988         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
10989         * ra-colorize.c (combine, color_usable_p, get_free_reg,
10990         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
10991         try_recolor_web, insert_coalesced_conflicts, check_colors,
10992         break_precolored_alias): Likewise.
10993         * ra-debug.c: Include regs.h
10994         (ra_print_rtx_object): Likewise.
10995         * ra-rewrite (choose_spill_colors): Likewise.
10996         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
10997         * ra.c (init_ra): Likewise.
10998         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
10999         peep2_find_free_register): Likewise.
11000         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
11001         * regclass.c (hard_regno_nregs): New array.
11002         (init_reg_modes_once): Initialize it.
11003         (choose_hard_reg_mode): Use it.
11004         (record_reg_classes): Likewise.
11005         * regmove.c (mark_flags_life_zones): Likewise.
11006         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
11007         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
11008         copy_value, maybe_mode_change, find_oldest_value_reg,
11009         copyprop_hardreg_forward_1):
11010         * regs.h (hard_regno_nregs): Declare.
11011         * realod.c (reload_inner_reg_of_subreg): Use it.
11012         (push_reload, combine_reloads, find_dummy_reload,
11013         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
11014         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
11015         reload_adjust_reg_for_mode): Likewise.
11016         * reload1.c (compute_use_by_pseudos, count_pseudo,
11017         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
11018         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
11019         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
11020         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
11021         delete_output_reload): Likewise.
11022         * resource.c (update_live_status, mark_referenced_resources,
11023         mark_set_resources, mark_target_live_regs): Likewise.
11024         * rtlanal.c:  Include regs.h
11025         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
11026         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
11027         subreg_regno_offset, subreg_offset_representable_p,
11028         hoist_test_store): Likewise.
11029         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
11030         * sched-rgn.c (check_live_1, update_live_1): Likewise.
11031         * stmt.c: Include regs.h
11032         (decl_conflicts_with_clobbers_p): Likewise.
11033         * varasm.c (make_decl_rtl): Likewise.
11034         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
11035
11036 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11037
11038         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
11039         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
11040         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
11041         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
11042         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
11043         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11044         config/iq2000/iq2000.h, config/m32r/m32r.c,
11045         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
11046         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
11047         config/mcore/mcore.c, config/mcore/mcore.h,
11048         config/mcore/mcore.md, config/mips/mips.c,
11049         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
11050         config/rs6000/rs6000.c, config/s390/s390.c,
11051         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
11052         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
11053         "gen_rtx (FOO, " with "gen_rtx_FOO (".
11054
11055 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11056
11057         * config/h8300/h8300.md (two peephole2's): New.
11058
11059 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
11060
11061         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
11062         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
11063         (ASM_CPU_SPEC): Likewise
11064         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
11065         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
11066
11067 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11068
11069         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
11070         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
11071         (expand_builtin): Always call expand_builtin_pow.
11072
11073 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11074
11075         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
11076         BUILT_IN_SIGNBITL): New GCC builtins.
11077         * builtins.c (expand_builtin_signbit): New function to RTL expand
11078         calls to signbit, signbitf and signbitl as inline intrinsics.
11079         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
11080         (fold_builtin_signbit): New function to perform constant folding
11081         of signbit, signbitf and signbitl.
11082         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
11083
11084         * doc/extend.texi: Document new signbit{,f,l} builtins.
11085
11086 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
11087
11088         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
11089
11090 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
11091
11092         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
11093         "mips_const_double_ok" and "simple_memory_operand", which were
11094         removed from the MIPS port with the mips-3_4-rewrite branch merge.
11095         * config/mips/mips.c (mips16_lay_out_constants): Update comment
11096         for removal of simple_memory_operand.
11097
11098 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11099
11100         * config/c4x/c4x.md: Use GEN_INT instead of
11101         gen_rtx (CONST_INT, ...).
11102
11103 2004-01-31  Richard Henderson  <rth@redhat.com>
11104
11105         * varasm.c (output_constant_pool): Don't zap the pool.
11106
11107 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11108
11109         * genrecog.c (decision_type): Add DT_const_int.
11110         (write_cond) [DT_const_int]: Print a comparison against small
11111         constant.
11112         (write_node): Simplify comparisons against small constants
11113         before printing tests.
11114
11115 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11116
11117         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
11118         instead of gen_rtx_CONST_INT.
11119
11120 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11121
11122         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
11123         instead of gen_rtx_CONST_INT.
11124
11125 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11126
11127         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
11128         hook_bool_CUMULATIVE_ARGS_false.
11129         * targhooks.c (default_strict_argument_naming): Rename to
11130         hook_bool_CUMULATIVE_ARGS_false.
11131         * targhooks.h: Update the prototype for
11132         default_strict_argument_naming.
11133
11134 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11135
11136         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11137         * config/sh/sh.h: Likewise.
11138         * config/sh/sh.md: Likewise.
11139
11140 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
11141
11142         * doc/invoke.texi (SPARC options): Restructure and update.
11143
11144 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11145
11146         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
11147         STRICT_ARGUMENT_NAMING): Poison.
11148         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
11149         hook_bool_tree_false.
11150         * targhooks.c (default_promote_function_args): Remove.
11151         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
11152         Don't check incoming.
11153         (default_strict_argument_naming): Don't use
11154         STRICT_ARGUMENT_NAMING.
11155         * targhooks.h: Remove the prototype for
11156         default_promote_function_args.
11157
11158 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11159
11160         * config/i386/i386-protos.h: Remove the prototype for
11161         ix86_setup_incoming_varargs.
11162         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
11163         (ix86_setup_incoming_varargs): Make it static.
11164         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
11165
11166 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11167
11168         * alloc-pool.c: Fix comment typos.
11169         * builtin-types.def: Likewise.
11170         * builtins.def: Likewise.
11171         * c-pretty-print.c: Likewise.
11172         * df.h: Likewise.
11173         * reload1.c: Likewise.
11174
11175 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11176
11177         * doc/invoke.texi: Follow spelling conventions.
11178         * doc/tm.texi: Likewise.
11179
11180 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11181
11182         * doc/install.texi: Fix typos.
11183         * doc/invoke.texi: Likewise.
11184
11185 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
11186
11187         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
11188         registers as pointers.
11189         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
11190
11191 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
11192
11193         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
11194         and restore it to gen_lowpart_general on exit.
11195         (gen_lowpart_for_combine): Adjust all callers to go through
11196         gen_lowpart.
11197         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
11198         and restore it to gen_lowpart_general on exit.
11199         (gen_lowpart_if_possible): Adjust all callers to go through
11200         gen_lowpart.
11201         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
11202         (gen_lowpart): Declare as pointer to function, initialized to
11203         gen_lowpart_general.
11204         * rtl.h (gen_lowpart): Declare as pointer to function.
11205
11206 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11207
11208         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11209         * calls.c: Likewise.
11210         * emit-rtl.c: Likewise.
11211         * function.c: Likewise.
11212         * reload1.c: Likewise.
11213         * config/i386/cygming.h: Likewise.
11214         * config/i386/i386.c: Likewise.
11215         * config/i386/winnt.c: Likewise.
11216
11217 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
11218
11219         PR bootstrap/9249
11220         * doc/install.texi: document --enable-__cxa_atexit option.
11221         * configure.ac: Disable __cxa_atexit if not supported.
11222         * configure: Regenerate.
11223
11224 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
11225
11226         * ggc-zone.c (ggc_free): New function.
11227
11228 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11229
11230         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
11231         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
11232         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
11233         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
11234         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
11235         config/alpha/alpha.c, config/alpha/alpha.h,
11236         config/alpha/alpha.md, config/alpha/unicosmk.h,
11237         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
11238         config/c4x/c4x-protos.h, config/c4x/c4x.md,
11239         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
11240         config/frv/frvend.c, config/i386/cygming.h,
11241         config/i386/djgpp.h, config/i386/emmintrin.h,
11242         config/i386/gthr-win32.c, config/i386/i386-interix.h,
11243         config/i386/i386-protos.h, config/i386/openbsd.h,
11244         config/i386/winnt.c, config/i386/xm-mingw32.h,
11245         config/i386/xmmintrin.h, config/ia64/ia64.md,
11246         config/iq2000/iq2000.md, config/m32r/m32r.md,
11247         config/m68k/m68k.md, config/mcore/mcore-elf.h,
11248         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
11249         config/mips/iris5gas.h, config/mips/iris6.h,
11250         config/mips/iris6gas.h, config/mips/linux.h,
11251         config/mips/mips.md, config/mips/netbsd.h,
11252         config/mips/openbsd.h, config/mips/windiss.h,
11253         config/pa/fptr.c, config/rs6000/aix.h,
11254         config/rs6000/altivec.h, config/rs6000/darwin.h,
11255         config/rs6000/xcoff.h, config/s390/s390-protos.h,
11256         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
11257         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
11258         config/sparc/sol2.h: Update copyright.
11259
11260 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
11261
11262         * Makefile.in (abs_docdir, abs_srcdir): Define.
11263         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
11264
11265 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11266
11267         * genconfig.c (main): Have CC0_P check its operand even on a
11268         target without cc0.
11269
11270 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11271
11272         * config/alpha/alpha.c: Remove mentions of deprecates macros
11273         in comments, remove some target-independent comments about target
11274         macros, and/or add minimal function comments for target hook
11275         implementations.
11276         * config/avr/avr.c: Likewise.
11277         * config/ia64/ia64.h: Likewise.
11278         * config/ip2k/ip2k.c: Likewise.
11279         * config/iq2000/iq2000.c: Likewise.
11280         * config/m32r/m32r.h: Likewise.
11281         * config/m68hc11/m68hc11.c: Likewise.
11282         * config/mcore/mcore.c: Likewise.
11283         * config/mmix/mmix.c: Likewise.
11284         * config/mn10300/mn10300.c: Likewise.
11285         * config/pa/pa.c: Likewise.
11286         * config/pdp11/pdp11.c: Likewise.
11287         * config/rs6000/rs6000.h: Likewise.
11288         * config/sh/sh.c: Likewise.
11289         * config/sh/sh.h: Likewise.
11290         * config/sparc/sparc.c: Likewise.
11291         * config/sparc/sparc.h: Likewise.
11292         * config/stormy16/stormy16.c: Likewise.
11293         * config/xtensa/xtensa.c: Likewise.
11294
11295 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11296
11297         PR optimization/12147
11298         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
11299         RELOAD_FOR_OPADDR_ADDR.
11300         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
11301         might be reused as RELOAD_FOR_OPADDR_ADDR register.
11302
11303 2004-01-30  Jan Hubicka  <jh@suse.cz>
11304
11305         * reload.c (get_secondary_mem): Fix updating of
11306         secondary_memlocs_elim_used.
11307
11308 2004-01-30  Richard Henderson  <rth@redhat.com>
11309
11310         * varasm.c (struct rtx_const, struct pool_constant): Remove.
11311         (MAX_RTX_HASH_TABLE): Remove.
11312         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
11313         (first_pool, last_pool, pool_offset): Remove.
11314         (struct rtx_constant_pool): Split out from ...
11315         (struct varasm_status): ... here.  Reference one via pointer.
11316         (struct constant_descriptor_rtx): Merge struct pool_constant.
11317         (SYMHASH): Remove.
11318         (decode_rtx_const): Remove.
11319         (const_hash_rtx, compare_constant_rtx): Remove.
11320         (record_constant_rtx): Remove.
11321         (const_desc_rtx_hash, const_desc_rtx_eq): New.
11322         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
11323         (const_rtx_hash_1, const_rtx_hash): New.
11324         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
11325         (simplify_subtraction): Use simplify_rtx.
11326         (force_const_mem): Rewrite to use new data structures.
11327         (find_pool_constant): Likewise.
11328         (get_pool_constant, get_pool_constant_mark,
11329         get_pool_constant_for_function, get_pool_mode,
11330         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
11331         (output_constant_pool_2): Split out from output_constant_pool.
11332         (output_constant_pool_1): Likewise.  Use new pool datastructures.
11333         (output_constant_pool): Zap entire pool datastructure.
11334         (mark_constant): Use new pool datastructures.
11335         (mark_constants): Use for_each_rtx.
11336         (mark_constant_pool): Use new pool datastructures.
11337
11338 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
11339
11340         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
11341         Copy operands[1] to pseudo for simplify_gen_subreg.
11342
11343 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11344
11345         * gcse.c (bypass_block): Fix a typo in the previous check-in
11346         to the file.
11347
11348 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
11349
11350         * toplev.c: Include alloc-pool.h.
11351         * Makefile.in (toplev.c): Update dependencies.
11352
11353 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11354
11355         * combine.c (simplify_shift_const, case XOR): Be careful when
11356         commuting XOR with ASHIFTRT.
11357
11358 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11359             Eric Botcazou  <ebotcazou@libertysurf.fr>
11360
11361         * config/sparc/sparc-protos.h: Remove the prototype for
11362         sparc_builtin_saveregs.
11363         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11364         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11365         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11366         (TARGET_STRUCT_VALUE_RTX): Likewise.
11367         (TARGET_RETURN_IN_MEMORY): Likewise.
11368         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11369         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11370         (sparc_builtin_saveregs): Make it static.
11371         (sparc_promote_prototypes): New.
11372         (sparc_struct_value_rtx): Likewise.
11373         (sparc_return_in_memory): Likewise.
11374         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
11375         (PROMOTE_FUNCTION_RETURN): Likewise.
11376         (RETURN_IN_MEMORY): Likewise.
11377         (STRUCT_VALUE): Likewise.
11378         (STRUCT_VALUE_INCOMING): Likewise.
11379         (EXPAND_BUILTIN_SAVEREGS): Likewise.
11380         (STRICT_ARGUMENT_NAMING): Likewise.
11381         (PROMOTE_PROTOTYPES): Likewise.
11382
11383         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
11384
11385 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11386
11387         PR c/12818
11388         * varasm.c (const_hash_1) <STRING_CST>: Use the
11389         address to compute the hash value if flag_writable_strings.
11390         (compare_constant) <STRING_CST>: Compare the addresses
11391         if flag_writable_strings.
11392         (build_constant_desc): Do not copy the expression for a
11393         STRING_CST if flag_writable_strings.
11394
11395 2004-01-30  Jan Hubicka  <jh@suse.cz>
11396
11397         * alloc-pool.c: Include hashtab.h
11398         (alloc_pool_descriptor): New structure
11399         (alloc_pool_hash): New global variable.
11400         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
11401         (create_alloc_pool): Update statistics.
11402         (free_alloc_pool): Likewise.
11403         (pool_alloc): Likewise.
11404         (output_info): New structure
11405         (print_statistics, dump_alloc_pool_statistics): New function.
11406         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
11407         (dump_alloc_pool_statistics): Declare.
11408         * toplev.c (finalize):  Dump statistics.
11409
11410         * reload.c (secondary_memlocs_elim_used): New static variable.
11411         (get_secondary_mem): Update it.
11412         (find_reloads): Use it.
11413
11414 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
11415
11416         * toplev.c: Fix broken checkin of 2003-12-30, again.
11417
11418 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11419
11420         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
11421         s390*-*-* targets by specifying a 'nop' insn.
11422         * configure: Regenerate.
11423
11424 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11425
11426         PR target/11475
11427         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
11428
11429 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11430
11431         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
11432         of addr when creating MEM copy.
11433
11434 2004-01-29  Devang Patel  <dpatel@apple.com>
11435
11436         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
11437
11438 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
11439
11440         PR inline-asm/6162
11441         * reload.c (find_reloads): Only support one pair of commutative
11442         operands.
11443
11444 2004-01-29  Roger Sayle  <roger@eyesopen.com>
11445
11446         PR java/13824
11447         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
11448         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
11449         recursion.
11450
11451 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
11452
11453         * config/frv/frv.c: Don't mention deprecated macros in
11454         comments.  Remove some target-independent comments about
11455         target macros.
11456         * config/frv/frv.h: Likewise.
11457
11458 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11459
11460         * cfghooks.c (split_block): Set probability and count of the
11461         new edge.
11462
11463 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
11464
11465         * dwarf2out.c (struct die_struct): Added field decl_id.
11466         (decl_die_table): Changed to hash table.
11467         (decl_die_table_allocated): Deleted.
11468         (decl_die_table_in_use): Deleted.
11469         (DECL_DIE_TABLE_INCREMENT): Deleted.
11470         (decl_die_table_hash): New function.
11471         (decl_die_table_eq): New function.
11472         (lookup_decl_die): Lookup in a hash table.
11473         (equate_decl_number_to_die): Insert into a hash table.
11474         (dwarf2out_init): Init hash table decl_die_table.
11475
11476 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11477
11478         PR optimization/13424
11479         * expr.c (store_constructor): Revert 2003-12-03 change.
11480
11481         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
11482         expected before returning early.  Avoid sharing RTL if they
11483         need to be changed.
11484
11485         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
11486         handling so that memory attributes are preserved.  Don't call
11487         ix86_set_move_mem_attrs.
11488         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
11489         (ix86_expand_clrstr): Rename src argument to
11490         dst.  Rework rep_stos and strset handling so that memory attributes
11491         are preserved.
11492         (ix86_expand_strlen): Pass src argument to
11493         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
11494         memory attributes are preserved.
11495         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
11496         change_address instead of gen_rtx_MEM.
11497         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
11498         expanders.
11499         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
11500         strmovqi, strmovqi_rex64): Remove.
11501         (rep_mov*, strmov*): Prefix insn names with *.
11502         (strset, strset_singleop, rep_stos): New expanders.
11503         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
11504         strsetqi, strsetqi_rex64): Remove.
11505         (rep_stos*, strset*): Prefix insn names with *.
11506         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
11507         to SImode.
11508         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
11509         are preserved.
11510         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
11511         Prefix insn names with *.
11512         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
11513         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
11514         (strlenqi_1): New expander.
11515         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
11516
11517 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11518
11519         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
11520         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
11521         verify_flow_info): Declaration removed.
11522         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
11523         (debug_bb, debug_bb_n): Add argument to dump_bb call.
11524         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
11525         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
11526         instead of delete_block.
11527         * cfghooks.c: Include timevar.h and toplev.h.
11528         (cfg_hooks): Define here.
11529         (verify_flow_info, dump_bb): Moved from cfg.c.
11530         (redirect_edge_and_branch, redirect_edge_and_branch_force,
11531         split_block, split_block_after_labels, move_block_after,
11532         delete_basic_block, split_edge, create_basic_block,
11533         create_empty_bb, can_merge_blocks_p, merge_blocks,
11534         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
11535         New functions.
11536         * cfghooks.h (struct cfg_hooks): Added fields name,
11537         make_forwarder_block, tidy_fallthru_edge and
11538         move_block_after. Changed type of verify_flow_info, dump_bb,
11539         split_block fields. Renamed cfgh_split_edge and delete_block
11540         fields.
11541         (redirect_edge_and_branch, redirect_edge_and_branch_force,
11542         split_block, delete_block, split_edge, create_basic_block,
11543         can_merge_blocks_p, merge_blocks): Macros removed.
11544         (cfg_hooks): Do not export.
11545         (verify_flow_info, dump_bb, redirect_edge_and_branch,
11546         redirect_edge_and_branch_force, split_block, split_block_after_labels,
11547         move_block_after, delete_basic_block, split_edge, create_basic_block,
11548         create_empty_bb, can_merge_blocks_p, merge_blocks,
11549         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
11550         Declare.
11551         (cfg_layout_rtl_cfg_hooks): Declare.
11552         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
11553         New functions.
11554         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
11555         (redirect_edge_with_latch_update): Removed.
11556         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
11557         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
11558         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
11559         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
11560         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
11561         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
11562         cfghooks.c.
11563         (rtl_create_basic_block): Coding style fix.
11564         (rtl_tidy_fallthru_edge, rtl_move_block_after,
11565         rtl_make_forwarder_block): New functions.
11566         (update_cfg_after_block_merging): Removed.
11567         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
11568         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
11569         to dump_bb.
11570         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
11571         find_if_case_2): Don't update dominators.
11572         * timevar.def (TV_CFG_VERIFY): New.
11573         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
11574         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
11575         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
11576         (remove_bbs): Don't call remove_bbs.
11577         (create_preheader): Use make_forwarder_block.
11578         (mfb_keep_just, mfb_update_loops): New static functions.
11579
11580 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
11581
11582         * config/avr/avr.h: Remove target-independent comments about
11583         target macros.
11584
11585 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
11586
11587         * timevar.c (timevar_print): Mention when checking is enabled.
11588
11589 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
11590
11591         * c-lex.c (c_lex): Rename to...
11592         (c_lex_with_flags): Add new parameter to get CPP flags.
11593         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
11594         * c-pragma.h (c_lex_with_flags): Declare.
11595
11596 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11597
11598         * config/mcore/mcore.c (mcore_external_libcall): Add a
11599         comment.
11600         (mcore_return_in_memory): Likewise.
11601
11602 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11603
11604         * config/mcore/mcore-protos.h: Remove the prototype for
11605         mcore_setup_incoming_varargs.
11606         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11607         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
11608         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11609         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11610         (TARGET_STRUCT_VALUE_RTX): Likewise.
11611         (TARGET_RETURN_IN_MEMORY): Likewise.
11612         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11613         (mcore_setup_incoming_varargs): Make it static.  Receive the
11614         first argument by reference.  Add argument second_time.
11615         (mcore_external_libcall): New.
11616         (mcore_return_in_memory): Likewise.
11617         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
11618         (PROMOTE_FUNCTION_RETURN): Likewise.
11619         (STRUCT_VALUE): Likewise.
11620         (RETURN_IN_MEMORY): Likewise.
11621         (SETUP_INCOMING_VARARGS): Likewise.
11622         (PROMOTE_PROTOTYPES): Likewise.
11623         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11624
11625 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11626
11627         * config/m32r/m32r-protos.h: Remove the prototype for
11628         m32r_setup_incoming_varargs.
11629         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
11630         (TARGET_STRUCT_VALUE_RTX): Likewise.
11631         (TARGET_RETURN_IN_MEMORY): Likewise.
11632         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11633         (m32r_return_in_memory): New.
11634         (m32r_setup_incoming_varargs): Make it static.
11635         * config/m32r/m32r.h: Remove #undef of
11636         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
11637         definitions of PROMOTE_FUNCTION_ARGS and
11638         PROMOTE_FUNCTION_RETURN.
11639         (PROMOTE_PROTOTYPES): Remove.
11640         (RETURN_IN_MEMORY): Likewise.
11641         (STRUCT_VALUE): Likewise.
11642
11643 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11644
11645         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
11646         (TARGET_STRUCT_VALUE_RTX): Likewise.
11647         (m68k_struct_value_rtx): Likewise.
11648         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
11649         STRUCT_VALUE_REGNUM.
11650         (PROMOTE_PROTOTYPES): Remove.
11651         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
11652         STRUCT_VALUE_REGNUM.
11653         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
11654         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
11655
11656 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11657
11658         * config/stormy16/stormy16.c
11659         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
11660         TARGET_BUILD_BUILTIN_VA_LIST.
11661
11662 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11663
11664         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
11665         (TARGET_STRUCT_VALUE_RTX): Likewise.
11666         (TARGET_RETURN_IN_MEMORY): Likewise.
11667         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11668         (v850_return_in_memory): Likewise.
11669         (v850_setup_incoming_varargs): Likewise.
11670         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
11671         (SETUP_INCOMING_VARARGS): Likewise.
11672         (RETURN_IN_MEMORY): Likewise.
11673         (STRUCT_VALUE): Likewise.
11674
11675 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11676
11677         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
11678         (fr30_setup_incoming_varargs): Don't use
11679         STRICT_ARGUMENT_NAMING.
11680         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
11681         (STRICT_ARGUMENT_NAMING): Likewise.
11682
11683 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11684
11685         * config/frv/frv-protos.h: Remove the prototype for
11686         frv_expand_builtin_saveregs.
11687         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
11688         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11689         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
11690         STRUCT_VALUE_REGNUM.
11691         (frv_expand_builtin_saveregs): Make it static.
11692         (frv_struct_value_rtx): New.
11693         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
11694
11695 2004-01-29  Jan Hubicka  <jh@suse.cz>
11696
11697         PR c++/12850
11698         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
11699         initial pointers.
11700         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
11701         for functions that will be only inlined.
11702         (cgraph_mark_function_to_output): Likewise.
11703         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
11704         do not clear function body.
11705         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
11706         (tree_rest_of_compilation): Reorganize the logic releasing function
11707         body to use callgraph datastructure.
11708
11709 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11710
11711         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
11712         to register_operand.
11713
11714 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
11715
11716         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
11717         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
11718         match_operand expressions so that all match_dups appear
11719         lexically after their corresponding match_operands.
11720
11721 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11722
11723         * config/h8300/h8300.c (WORD_REG_USED): Use
11724         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
11725         (compute_saved_regs): Likewise.
11726         (h8300_expand_prologue): Likewise.  Allocate locals after
11727         saving registers.
11728         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
11729         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
11730         registers.
11731         (h8300_initial_elimination_offset): Adjust for the new frame
11732         layout, which swaps flips the order of locals and saved
11733         registers.
11734         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
11735         (HARD_FRAME_POINTER_REGNUM): New.
11736         (ELIMINABLE_REGS): Add an elimination rule from
11737         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
11738         (REGISTER_NAMES): Add fp.
11739         * config/h8300/h8300.md (FP_REG): Change to 11.
11740         (HFP_REG): New.
11741
11742 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11743
11744         * genrecog.c (write_node): Remove a useless local variable.
11745
11746 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
11747
11748         * Makefile.in (options.c options.h): Use stamp file s-options to
11749         avoid unnecessary rebuilds.
11750         (options.o): New target listing dependencies.
11751         (gtyp-gen.h): Use stamp file s-gtyp-gen.
11752         (STAGESTUFF): Add s-gtyp-gen.
11753
11754 2004-01-28  Richard Henderson  <rth@redhat.com>
11755
11756         * ggc.h (ggc_free): Declare.
11757         * ggc-common.c (ggc_realloc): Use it.
11758         * ggc-page.c: Remove lots of inline markers.
11759         (globals): Add free_object_list.
11760         (ggc_alloc): Tidy.
11761         (ggc_free, validate_free_objects): New.
11762         (poison_pages): Provide default.
11763         (ggc_collect): Call validate_free_objects; emit markers to
11764         the debug file.
11765
11766 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
11767             Jim Wilson  <wilson@specifixinc.com>
11768
11769         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
11770         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
11771         scratch pointer.
11772         (ia64_secondary_reload_class): Delete case GR_REGS.
11773         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
11774         Do not allocate a scratch register.
11775         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
11776
11777 2004-01-28  Jan Hubicka  <jh@suse.cz>
11778
11779         * gcse.c (bypass_block): Prevent edges to be unified when we are
11780         about to emit compenstation code.
11781
11782 2004-01-28  Nick Clifton  <nickc@redhat.com>
11783
11784         * config/arm/arm.c (arm_expand_builtin): Force second argument of
11785         the setcwx insn into a register.
11786
11787 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
11788
11789         * config/fp-bit.c (pack_d): When using paired doubles to implement
11790         a long double, round the high part separately.
11791         (unpack_d): Fix the case in which the high part is a power of two
11792         and the low part is a nonzero value of the opposite sign.
11793
11794 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11795
11796         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11797         (TARGET_STRUCT_VALUE_RTX): Likewise.
11798         (c4x_external_libcall): Likewise.
11799         (c4x_struct_value_rtx): Likewise.
11800         * config/c4x/c4x.h: Remove.
11801         (STRUCT_VALUE_REGNUM): Likewise.
11802         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11803
11804 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11805
11806         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
11807         (TARGET_STRUCT_VALUE_RTX): Likewise.
11808         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
11809         (STRUCT_VALUE): Likewise.
11810         (PROMOTE_PROTOTYPES): Likewise.
11811
11812 2004-01-27  Roger Sayle  <roger@eyesopen.com>
11813
11814         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
11815         CONST_INT before using INTVAL.
11816
11817 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
11818
11819         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
11820         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
11821         frame if !TARGET_BACKCHAIN.
11822         * config/s390/s390.md ("allocate_stack"): Use pattern only if
11823         TARGET_BACKCHAIN.
11824         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
11825
11826 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
11827
11828         * ia64.c (ia64_function_arg): When placing HFAs in integer
11829         registers, do not special case the mode used for complex
11830         types.  Do not advance int_regs until the current register
11831         is full.
11832
11833 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
11834
11835         PR target/7297
11836         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
11837
11838 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
11839
11840         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
11841         slow, unaligned loads and stores while debugging.  Fix formatting.
11842
11843 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
11844
11845         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
11846         of computing wmode.
11847         (restore_stack_nonlocal): Same.
11848
11849 2004-01-27  Devang Patel <dpatel@apple.com>
11850
11851         * Makefile.in (dwarf2out.o): Depend on input.h
11852         * dbxout.c (dbx_debug_hooks): Add new empty hook for
11853         imported_module_or_decl.
11854         (xcoff_debug_hooks): Same.
11855         * sdbout.c (sdb_debug_hooks): Same.
11856         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
11857         * debug.c (do_nothing_debug_hooks): Same.
11858         (debug_nothing_tree_tree): New function.
11859         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
11860         * dwarf2out.c: Include input.h.
11861         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
11862         (remove_child_TAG): New function.
11863         (dwarf_tag_name): Handle DW_TAG_imported_module.
11864         (gen_subprogram_die): Equate decl number to declaration die. Do not
11865         remove all children dies while reusing declaration die for definition.
11866         Instead, selectively remove only formal parameters.
11867         (gen_variable_die): Equate variable decl to declaration die.
11868         (gen_field_die): Equate field decl to line number.
11869         (force_namespace_die): Replace it with ...
11870         (force_decl_die): ... this.
11871         (force_type_die): New function.
11872         (setup_namespace_context): Replace use of force_namespace_die() with
11873         force_decl_die().
11874         (gen_namespace_die): Same.
11875         (dwarf2out_imported_module_or_decl): New function.
11876
11877 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
11878
11879         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
11880         on CQImode and CHImode incoming arguments in register a7.
11881         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
11882         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
11883         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
11884         xtensa_copy_incoming_a7 before reload.
11885
11886 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
11887
11888         * coverage.c (get_coverage_counts): Give a different message
11889         if flag_guess_branch_prob is set.
11890         * predict.c (counts_to_freqs): Return an int.
11891         (estimate_bb_frequencies): If counts_to_freqs returns zero,
11892         calculate estimates.
11893
11894 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
11895
11896         * config/iq2000/iq2000-protos.h: Remove the prototype for
11897         iq2000_setup_incoming_varargs.
11898         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11899         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11900         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11901         (TARGET_STRUCT_VALUE_RTX): Likewise.
11902         (TARGET_RETURN_IN_MEMORY): Likewise.
11903         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11904         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11905         (iq2000_return_in_memory): Likewise.
11906         (iq2000_setup_incoming_varargs): Make it static.  Receive the
11907         first argument by reference.
11908         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
11909         (PROMOTE_FUNCTION_RETURN): Likewise.
11910         (PROMOTE_PROTOTYPES): Likewise.
11911         (RETURN_IN_MEMORY): Likewise.
11912         (STRUCT_VALUE): Likewise.
11913         (SETUP_INCOMING_VARARGS): Likewise.
11914         (STRICT_ARGUMENT_NAMING): Likewise.
11915
11916 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
11917
11918         * fixinc/fixinc.c (test_test): Initialize res.
11919         (start_flexer): Initialize pz_cmd_save.
11920
11921 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
11922
11923         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
11924         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
11925
11926 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
11927
11928         PR 7198
11929         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
11930         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
11931         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
11932         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
11933         Possibly rename pattern for consistency.
11934         Remove ??? comments suggesting that this be done.
11935         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
11936         New patterns.
11937         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
11938         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
11939         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
11940         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
11941         Update to match.
11942
11943 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
11944
11945         * config/arm/arm.c (output_return_instruction): Only restore IP
11946         into SP if frame_pointer_needed.
11947
11948 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11949
11950         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
11951         for SCmode and DCmode if ARCH32.
11952         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
11953         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
11954         if ARCH32.
11955         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
11956         if ARCH32.
11957         (BASE_OUTGOING_VALUE_REG): Likewise.
11958
11959 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
11960
11961         PR target/10904
11962         PR target/13058
11963         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
11964         Forbid mode changes from SImode for lower FP regs if ARCH64.
11965
11966 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
11967
11968         * Makefile.in (bt-load.o): Depend on except.h.
11969         * bt-load.c (except.h): #include.
11970         (compute_defs_uses_and_gen): If insn at end of BB can throw
11971         within this function, consider registers used by it unavailable for
11972         btr migration.
11973         (move_btr_def): If insn at end of BB can throw, insert before rather
11974         than after.
11975
11976         * flags.h (flag_btr_bb_exclusive): Declare.
11977         * toplev.c (flag_btr_bb_exclusive): New variable.
11978         (f_options): Add btr-bb-exclusive.
11979         * bt-load.c (augment_live_range): Restore old behaviour if
11980         flag_btr_bb_exclusive is set.
11981         * common.opt: Add entry for -fbtr-bb-exclusive.
11982         * opts.c (common_handle_options): Same.
11983         * doc/invoke.texi: Document -fbtr-bb-exclusive.
11984
11985         * bt-load.c (btrs_live_at_end): New variable.
11986         (compute_defs_uses_and_gen): Compute its pointed-to array.
11987         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
11988         (augment_live_range): When augmenting with a new dominator,
11989         use only its btrs_live_at_end set, but also add in the full set
11990         of the old dominator.
11991         (btr_def_live_range): Use btrs_live_at_end.
11992         (move_btr_def): Set other_btr_uses_before_def, and move new set
11993         to the end of the basic block, if appropriate.
11994         (migrate_btr_defs): Allocate and free btrs_live_at_end.
11995
11996         * bt-load.c (basic_block_freq): Remove outdated comment.
11997
11998 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
11999
12000         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
12001         (PREDICATE_CODES): Remove duplicate.
12002         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
12003         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
12004         (MASK_PROFILE_KERNEL): Adjust define.
12005
12006 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
12007
12008         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
12009         of long string literals from 32 bytes to sizeof (void *) when !-Os
12010         and to 1 with -Os.
12011
12012 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12013
12014         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
12015         constant addresses in the normal mode.
12016
12017 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12018
12019         * system.h (CHAR_BITFIELD): Delete.
12020         (BOOL_BITFIELD): New.
12021         * c-decl.c (c_scope): Use BOOL_BITFIELD.
12022         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
12023
12024 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12025
12026         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12027         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12028         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12029         (TARGET_STRUCT_VALUE_RTX): Likewise.
12030         (TARGET_RETURN_IN_MEMORY): Likewise.
12031         (arc_return_in_memory): Likewise.
12032         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
12033         (PROMOTE_FUNCTION_RETURN): Likewise.
12034         (RETURN_IN_MEMORY): Likewise.
12035         (STRUCT_VALUE): Likewise.
12036
12037 2004-01-26  Richard Henderson  <rth@redhat.com>
12038
12039         * c-parse.in (extension): Use itype.
12040         (SAVE_EXT_FLAGS): Don't allocate a tree.
12041         (RESTORE_EXT_FLAGS): Don't read a tree.
12042
12043 2004-01-26  Jan Hubicka  <jh@suse.cz>
12044
12045         * cselib.c (discard_useless_values):  Clear out value pointer pointing
12046         to datastructure to be recycled.
12047
12048 2004-01-25  Jan Hubicka  <jh@suse.cz>
12049
12050         * genextract.c (main): Do not output the memset when not checking.
12051
12052 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12053
12054         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
12055         switch statement instead of a chain of if statements.
12056
12057 2004-01-26  Jeff Law  <law@redhat.com>
12058
12059         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
12060         acute accents for Petur Runolfsson's entry.
12061
12062 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12063
12064         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
12065         (TARGET_RETURN_IN_MEMORY): Likewise.
12066         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
12067         (RETURN_IN_MEMORY): Likewise.
12068
12069 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12070
12071          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
12072          unaligned load/store into smaller loads and stores.
12073
12074 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12075
12076         * function.c (assign_parms): Do not assign
12077         long long argument to memory in prologue if
12078         is it loaded into register.
12079
12080 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12081
12082          PR middle-end/13779
12083          * expr.c (emit_group_load): split constant
12084          correctly into register components of PARALLEL insn.
12085
12086 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12087
12088         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
12089         Use adjust_address_nv directly with appropriate mode.
12090         (restore_stack_nonlocal): Ditto.
12091
12092 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12093
12094         * config/xtensa/xtensa-protos.h: Remove the prototype for
12095         xtensa_builtin_saveregs.
12096         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12097         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12098         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12099         (TARGET_STRUCT_VALUE_RTX): Likewise.
12100         (TARGET_RETURN_IN_MEMORY): Likewise.
12101         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12102         (xtensa_builtin_saveregs): Make it static.
12103         (xtensa_return_in_memory): New.
12104         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
12105         (PROMOTE_FUNCTION_RETURN): Likewise.
12106         (PROMOTE_PROTOTYPES): Likewise.
12107         (STRUCT_VALUE): Likewise.
12108         (RETURN_IN_MEMORY): Likewise.
12109         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12110
12111 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12112
12113         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
12114         (arm_setup_incoming_varargs): Likewise.
12115         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
12116
12117 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12118
12119         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
12120         (cris_setup_incoming_varargs): Likewise.
12121         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
12122
12123 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12124
12125         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
12126         (ns32k_struct_value_rtx): Likewise.
12127         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
12128         NS32K_STRUCT_VALUE_REGNUM.
12129
12130 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12131
12132         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12133         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12134         (TARGET_STRUCT_VALUE_RTX): Likewise.
12135         (arm_struct_value_rtx): Likewise.
12136         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
12137         (STRUCT_VALUE): Likewise.
12138         (STRUCT_VALUE_REGNUM): Likewise.
12139         (PROMOTE_PROTOTYPES): Likewise.
12140
12141 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12142
12143         * config/ia64/ia64-protos.h: Remove the prototype for
12144         ia64_setup_incoming_varargs and ia64_return_in_memory.
12145         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
12146         (TARGET_RETURN_IN_MEMORY): Likewise.
12147         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12148         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12149         (ia64_setup_incoming_varargs): Adjust the arguments to meet
12150         the requirement of TARGET_SETUP_INCOMING_VARARGS.
12151         (ia64_return_in_memory): Make it static.  Change the return
12152         type to bool from int.  Add an argument.
12153         (ia64_struct_value_rtx): New.
12154         * config/ia64/ia64.h: Remove commented-out definitions of
12155         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
12156         PROMOTE_PROTOTYPES.
12157         (RETURN_IN_MEMORY): Remove.
12158         (STRUCT_VALUE_REGNUM): Likewise.
12159         (STRICT_ARGUMENT_NAMING): Likewise.
12160
12161 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
12162
12163         PR target/13666
12164         * config/sparc/sparc.c (function_arg_union_value): New function.
12165         (function_arg): Use it to deal with unions.
12166         (function_value): Likewise.  Define 'regbase' only for ARCH64.
12167         Replace a conditional statement by a simpler one.
12168
12169 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
12170
12171         * config/mips/mips.c (mips16_optimize_gp): Delete.
12172         (mips_reorg): Don't call it.
12173
12174 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12175
12176         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
12177         (floatunsqihf2): Remove operand 6.
12178         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
12179         fix patterns.
12180         (ldi_conditional, ldf_conditional): Validate operands.
12181
12182 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12183
12184         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
12185         (HAVE_GAS_HIDDEN): Undefine as interim measure.
12186
12187 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12188
12189         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
12190         memory references if TARGET_EXPOSE_LDP nonzero.
12191
12192 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12193
12194         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
12195
12196 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12197
12198         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
12199         invalid operand combinations.
12200
12201 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12202
12203         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
12204         c4x_legitimate_address_p.  Fix post_modify check.
12205
12206         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
12207         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
12208
12209 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12210
12211         * config/pa/pa-protos.h: Remove the prototype for
12212         hppa_builtin_saveregs.  Add a prototype for
12213         pa_return_in_memory.
12214         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
12215         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12216         (TARGET_STRUCT_VALUE_RTX): Likewise.
12217         (TARGET_RETURN_IN_MEMORY): Likewise.
12218         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12219         (pa_struct_value_rtx): Likewise.
12220         (pa_return_in_memory): Likewise.
12221         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
12222         PA_STRUCT_VALUE_REGNUM.
12223         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
12224         (EXPAND_BUILTIN_SAVEREGS): Remove.
12225         (PROMOTE_PROTOTYPES): Likewise.
12226         (PROMOTE_FUNCTION_RETURN): Likewise.
12227
12228 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12229
12230         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
12231         (TARGET_STRUCT_VALUE_RTX): Likewise.
12232         (vax_struct_value_rtx): Likewise.
12233         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
12234         VAX_STRUCT_VALUE_REGNUM.
12235         (PROMOTE_PROTOTYPES): Remove.
12236
12237 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12238
12239         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
12240
12241 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
12242
12243         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
12244         and MIPS64 have HI/LO interlocks.  Update comment.
12245
12246 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12247
12248         * config/stormy16/stormy16-protos.h: Remove the prototype for
12249         xstormy16_setup_incoming_varargs.
12250         * config/stormy16/stormy16.c
12251         (xstormy16_setup_incoming_varargs): Remove.
12252         (xstormy16_return_in_memory): New.
12253         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12254         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12255         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12256         (TARGET_STRUCT_VALUE_RTX): Likewise.
12257         (TARGET_RETURN_IN_MEMORY): Likewise.
12258         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
12259         (PROMOTE_FUNCTION_RETURN): Likewise
12260         (PROMOTE_PROTOTYPES): Likewise
12261         (RETURN_IN_MEMORY): Likewise
12262         (STRUCT_VALUE): Likewise
12263         (SETUP_INCOMING_VARARGS): Likewise
12264
12265 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12266
12267         * config/mips/mips.c (mips_offset_within_object_p): New function.
12268         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
12269         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
12270         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
12271
12272 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12273
12274         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
12275         (PROMOTE_FUNCTION_RETURN): Likewise.
12276
12277 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12278
12279         * config/mn10300/mn10300-protos.h: Remove the prototype for
12280         mn10300_builtin_saveregs.
12281         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
12282         (TARGET_STRUCT_VALUE_RTX): Likewise.
12283         (TARGET_RETURN_IN_MEMORY): Likewise.
12284         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12285         (mn10300_return_in_memory): Likewise.
12286         (mn10300_builtin_saveregs): Make it static.
12287         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
12288         (RETURN_IN_MEMORY): Likewise.
12289         (STRUCT_VALUE): Likewise.
12290         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12291
12292 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
12293
12294         PR bootstrap/13853
12295         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
12296
12297 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12298
12299         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
12300         using ccr.
12301
12302 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12303
12304         * config/i860/i860-protos.h: Remove the prototype for
12305         i860_saveregs.
12306         * config/i860/i860.c (i860_saveregs): Make it static.
12307         (i860_struct_value_rtx): New.
12308         (TARGET_STRUCT_VALUE_RTX): Likewise.
12309         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12310         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
12311         I860_STRUCT_VALUE_REGNUM.
12312         (EXPAND_BUILTIN_SAVEREGS): Remove.
12313
12314 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12315
12316         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
12317         (TARGET_RETURN_IN_MEMORY): Likewise.
12318         (m68hc11_struct_value_rtx): Likewise.
12319         (m68hc11_return_in_memory): Likewise.
12320         * config/m68hc11/m68hc11.h: Remove a commented-out definition
12321         of PROMOTE_PROTOTYPES.
12322         (RETURN_IN_MEMORY): Remove.
12323         (STRUCT_VALUE_REGNUM): Likewise.
12324
12325 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12326
12327         * config/mmix/mmix-protos.h: Remove the prototype for
12328         mmix_setup_incoming_varargs.
12329         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12330         (TARGET_STRUCT_VALUE_RTX): Likewise.
12331         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12332         (mmix_setup_incoming_varargs): Make it static.
12333         (mmix_struct_value_rtx): New.
12334         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
12335         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
12336         (STRUCT_VALUE_REGNUM): Remove.
12337         (SETUP_INCOMING_VARARGS): Likewise.
12338
12339 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12340
12341         * config/mips/mips-protos.h: Remove the prototypes for
12342         mips_setup_incoming_varargs and mips_return_in_memory.
12343         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12344         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12345         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12346         (TARGET_STRUCT_VALUE_RTX): Likewise.
12347         (TARGET_RETURN_IN_MEMORY): Likewise.
12348         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12349         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12350         (mips_setup_incoming_varargs): Match the prototype for
12351         TARGET_SETUP_INCOMING_VARARGS.
12352         (mips_return_in_memory): Make it static.  Add argument fntype.
12353         (mips_strict_argument_naming): New.
12354         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
12355         (PROMOTE_FUNCTION_ARGS): Likewise.
12356         (PROMOTE_FUNCTION_RETURN): Likewise.
12357         (STRUCT_VALUE): Likewise.
12358         (RETURN_IN_MEMORY): Likewise.
12359         (SETUP_INCOMING_VARARGS): Likewise.
12360         (STRICT_ARGUMENT_NAMING): Likewise.
12361
12362 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12363
12364         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
12365         (TARGET_RETURN_IN_MEMORY): Likewise.
12366         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12367         (ip2k_return_in_memory): Likewise.
12368         (ip2k_setup_incoming_varargs): Likewise.
12369         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
12370         (STRUCT_VALUE): Likewise.
12371         (STRUCT_VALUE_INCOMING): Likewise.
12372         (SETUP_INCOMING_VARARGS): Likewise.
12373
12374 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12375
12376         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
12377         (TARGET_RETURN_IN_MEMORY): Likewise.
12378         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12379         (avr_return_in_memory): Remove.
12380         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
12381         (STRUCT_VALUE): Likewise.
12382         (STRUCT_VALUE_INCOMING): Likewise.
12383         (STRICT_ARGUMENT_NAMING): Likewise.
12384
12385 2004-01-25  Jan Hubicka  <jh@suse.cz>
12386
12387         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
12388
12389 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12390
12391         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
12392         (mips_regno_mode_ok_for_base_p): Declare.
12393         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
12394         (FRAME_POINTER_REGNUM): Renumber to 78.
12395         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
12396         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
12397         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
12398         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
12399         (REG_MODE_OK_FOR_BASE_P): Likewise.
12400         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
12401         entry for 77 to "$arg" and entry for 78 to "$frame".
12402         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
12403         (mips_reg_mode_ok_for_base_p): Remove.
12404         (mips_regno_mode_ok_for_base_p): New function, derived from old
12405         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
12406         restrictions unless we're being strict.
12407         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
12408
12409 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12410
12411         * c-common.h: Fix comment typos.
12412         * c-decl.c: Likewise.
12413         * cgraphunit.c: Likewise.
12414         * combine.c: Likewise.
12415         * et-forest.c: Likewise.
12416         * flow.c: Likewise.
12417         * function.c: Likewise.
12418         * ifcvt.c: Likewise.
12419         * integrate.c: Likewise.
12420         * jump.c: Likewise.
12421         * postreload.c: Likewise.
12422         * varray.c: Likewise.
12423
12424 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12425
12426         * doc/frontends.texi: Update copyright.
12427         * doc/gcov.texi: Likewise.
12428         * doc/gty.texi: Likewise.
12429         * doc/sourcebuild.texi: Likewise.
12430         * doc/standards.texi: Likewise.
12431
12432 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
12433
12434         PR target/12978
12435         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
12436         Remove movstrqi_small because it conflicts with movstrqi_large.
12437
12438 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12439
12440         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12441         (TARGET_STRUCT_VALUE_RTX): Likewise.
12442         (cris_struct_value_rtx): Likewise.
12443         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
12444         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
12445         STRUCT_VALUE_REGNUM.
12446         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
12447
12448 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
12449
12450         PR bootstrap/13848
12451         * cse.c (cse_cc_succs): Change the mode of the source expression
12452         as soon as decide we need a new mode.  Don't permit changing modes
12453         if we found a match in a successor block.
12454         (cse_condition_code_reg): Save original mode of source expression
12455         so that we know whether we have to change the mode in other
12456         insns.
12457
12458 2004-01-24  Jan Hubicka  <jh@suse.cz>
12459
12460         * emit-rtl.c (change_address, adjust_address_1, offset_address,
12461         widen_memory_access):  Return early when there is nothing to change.
12462
12463 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
12464
12465         * simplify-rtx.c (simplify_relational_operation): Don't
12466         simplify address == constant into address + -constant == 0.
12467
12468 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12469
12470         * gcc.c (process_command): Don't internationalize the
12471         Copyright message.
12472         * mips-tfile.c (main): Likewise.
12473
12474 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
12475
12476         * cse.c: (cse_cc_succs) Fix comparison warning.
12477
12478 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12479
12480         * config/h8300/h8300.md: Remove extraneous USE in expanders.
12481
12482 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12483
12484         * config/h8300/h8300-protos.h: Provide prototypes for
12485         h8300_legitimate_constant_p and h8300_legitimate_address_p.
12486         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
12487         (h8300_rtx_ok_for_base_p): Likewise.
12488         (h8300_legitimate_address_p): Likewise.
12489         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
12490         h8300_legitimate_constant_p.
12491         (RTX_OK_FOR_BASE_P): Remove.
12492         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
12493
12494 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12495
12496         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
12497         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
12498         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
12499         (REG_OK_FOR_BASE_STRICT_P): Likewise.
12500         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
12501         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
12502         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
12503         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
12504
12505 2004-01-24  Jan Hubicka  <jh@suse.cz>
12506
12507         * cselib.c (remove_useless_values):  Do not access discarded values.
12508
12509 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
12510
12511         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
12512         arrays.
12513
12514 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
12515
12516         * recog.c: Fix a typo in copyright.
12517
12518 2004-01-23  Andrew Pinski  <apinski@apple.com>
12519
12520         * config/rs6000/rs6000.md (call): Fix misappiled patch.
12521         (call_value): Likewise.
12522
12523 2004-01-23  Richard Henderson  <rth@redhat.com>
12524
12525         PR opt/12941
12526         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
12527         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
12528         if SHIFT_COUNT_TRUNCATED is set.
12529
12530 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
12531
12532         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
12533         separate real and imaginary parts.
12534         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
12535
12536 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
12537
12538         PR target/13674
12539         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
12540         loading into GPR.
12541
12542 2004-01-23  Jan Hubicka  <jh@suse.cz>
12543
12544         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
12545         change.
12546
12547         * alloc-pool.c (align_four): Kill.
12548         (create_alloc_pool): Align size to eight.
12549         (free_alloc_pool, free_pool): Invalidate deallocated data.
12550
12551 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
12552
12553         PR gcc/1532
12554         * cse.c (cse_change_cc_mode): New static function.
12555         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
12556         (cse_condition_code_reg): New function.
12557         * rtl.h (cse_condition_code_reg): Declare.
12558         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
12559         * target.h (struct gcc_target): Add fixed_condition_code_regs and
12560         cc_modes_compatible.
12561         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12562         (TARGET_CC_MODES_COMPATIBLE): Define.
12563         (TARGET_INITIALIZER): Add new initializers.
12564         * targhooks.c (default_cc_modes_compatible): New function.
12565         * targhooks.c (default_cc_modes_compatible): Declare.
12566         * hooks.c (hook_bool_intp_intp_false): New function.
12567         * hooks.h (hook_bool_intp_intp_false): Declare.
12568         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12569         (TARGET_CC_MODES_COMPATIBLE): Define.
12570         (ix86_fixed_condition_code_regs): New static function.
12571         (ix86_cc_modes_compatible): Likewise.
12572         * doc/tm.texi (Condition Code): Document new hooks.
12573
12574 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12575
12576         * fixinc/inclhack.def (bad_lval): Renamed to ...
12577         (alpha_bad_lval): ... this.
12578         Removed file list.
12579         Restrict to alpha*-dec-osf*.
12580         * fixinc/fixincl.x: Regenerate.
12581         * fixinc/tests/base/dirent.h: Remove, moving test ...
12582         * fixinc/tests/base/testing.h: ... here, reflecting new name.
12583
12584 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
12585
12586         PR c/13814
12587         * c-decl.c (diagnose_mismatched_decls): Also discard a
12588         built-in if we encounter an old-style definition with the
12589         same name.
12590
12591 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
12592
12593         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
12594         set to default{32,64}.
12595
12596 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
12597
12598         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
12599         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
12600
12601 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
12602             Olivier Hainque  <hainque@act-europe.fr>
12603
12604         * fold-const.c (fold_binary_op_with_conditional_arg): Only
12605         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
12606
12607 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
12608
12609         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
12610         size for minipool references.
12611
12612 2004-01-23  Roger Sayle  <roger@eyesopen.com>
12613
12614         * real.c (real_floor, real_ceil): Tweak to allow input and output
12615         arguments to overlap.
12616         (real_round): New function to implement round(3m) semantics.
12617         * real.h (real_round): Prototype here.
12618         * builtins.c (fold_builtin_round): New function to constant fold
12619         round, roundf and roundl.
12620         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
12621
12622 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
12623
12624         PR optimization/13819
12625         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
12626         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
12627         (sh_handle_sp_switch_attribute): Remove warning.
12628
12629 2003-11-30  Jan Hubicka  <jh@suse.cz>
12630
12631         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
12632
12633 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
12634
12635         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
12636         may or may not return non-NIL.
12637         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
12638         check CANNOT_CHANGE_MODE_CLASS
12639
12640 2004-01-23  Jan Hubicka  <jh@suse.cz>
12641
12642         * basic-block.h (PROP_POSTRELOAD): New macro.
12643         (CLEANUP_LOG_LINKS): New.
12644         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
12645         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
12646
12647         * cselib.c (value_pool): New.
12648         (new_cselib_val): Use pool.
12649         (cselib_init): Initialize value_pool
12650         (cselib_finish): Free pool.
12651
12652 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12653
12654         * config/sparc/sparc.c (scan_record_type): New function.
12655         (function_arg_slotno): Use it to determine which kinds of
12656         registers the record can be passed in.
12657
12658 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
12659
12660         * config/pa/fptr.c: Fix old-style definition.
12661
12662 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
12663
12664         PR optimization/13724
12665         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
12666         represents the zero bits produced by a ZERO_EXTEND operation.
12667
12668 2004-01-22  Roger Sayle  <roger@eyesopen.com>
12669
12670         PR optimization/13821
12671         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
12672         correctly calculate the lowpart offset of the contracted subreg.
12673
12674 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
12675
12676         * doc/invoke.texi (Optimize Options): Note that --param arguments
12677         are subject to change without notice.
12678
12679 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12680
12681         * config.gcc (mips-sgi-irix6*o32): Removed.
12682         * config/mips/iris6-o32-as.h: Likewise.
12683         * config/mips/iris6-o32-gas.h: Likewise.
12684         * config/mips/iris6-o32.h: Likewise.
12685
12686 2004-01-22  Jan Hubicka  <jh@suse.cz>
12687
12688         * cfgcleanup.c (first_pass): New static variable.
12689         (try_forward_edges):  Add work limiting check for threading.
12690         (try_crossjump_bb):  Add work limiting check for crossjumping.
12691         (try_optimize_cfg):  Maintain first pass variable.
12692
12693 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
12694
12695         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
12696         handles complex and vector modes.
12697
12698 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
12699
12700         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
12701         (REG_OK_FOR_BASE_P_STRICT): Likewise.
12702         (STRICT): Likewise.
12703
12704 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
12705
12706         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
12707         (genrtl_for_stmt): Remove emit_nop calls.
12708
12709 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12710
12711         PR target/13713
12712         PR target/13324
12713         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
12714         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
12715         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
12716
12717 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
12718
12719         * config/arm/arm.c: Include "debug.h".
12720         (thumb_pushpop): Take two new arguments.  Add some commentary.
12721         Output frame information when pushing.
12722         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
12723         thumb_pushpop.
12724         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
12725         offset, and pass it to thumb_pushpop.  Output CFI information.
12726         (thumb_expand_prologue): Add some frame-related markers and notes.
12727
12728 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
12729
12730         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
12731         for TARGET_64BIT.
12732         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
12733         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
12734
12735 2004-01-22  Roger Sayle  <roger@eyesopen.com>
12736             Paolo Bonzini  <bonzini@gnu.org>
12737
12738         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
12739         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
12740         * rtl.h (subreg_lsb_1): Prototype here.
12741         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
12742         sign extensions.
12743
12744 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
12745
12746         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
12747         macro need not be defined if jump-tables should contain
12748         relative addresses only when -fPIC or -fPIC is in effect.
12749
12750 2004-01-22  Jan Hubicka  <jh@suse.cz>
12751
12752         * alias.c (reg_base_value): Turn into varray.
12753         (reg_base_value_size): Kill.
12754         (old_reg_base_value): New deletable varray.
12755         (alias_invariant_size): New variable.
12756         (REG_BASE_VALUE): Update to use varray.
12757         (find_base_value): Likewise.
12758         (record_set): Likewise.
12759         (record_base_value): Likewise.
12760         (memrefs_conflict_p): Likewise.
12761         (record_set): Likewise
12762         (record_base_value): Likewise.
12763         (memrefs_conflict_p): Use alias_invariant_size.
12764         (init_alias_analysis): Use varray; set alias_invariant_size;
12765         rescale other arrays to be sized by maxreg.
12766         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
12767
12768 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
12769
12770         * config/sparc/sparc.c (function_arg_slotno): Use
12771         FLOAT_TYPE_P to detect FP fields in structures.
12772         (function_arg_record_value_1): Likewise.
12773         (function_arg_record_value_2): Likewise.
12774
12775 2004-01-22  Jan Hubicka  <jh@suse.cz>
12776
12777         * function.c (allocate_struct_function): Do not initialize expr, emit
12778         and varasm.
12779         (prepare_function_start): Do it here.
12780         * c-parse.in (maybe_type_qual): Do not produce line number notes.
12781
12782 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
12783
12784         PR target/13559
12785         * config/sparc/sparc.c (function_arg_record_value_3): Revert
12786         to 'word_mode' once the first slot has been filled.
12787
12788 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
12789
12790         * config/sparc/sparc.c (function_arg_record_value_1): Fix
12791         computation of the number of integer registers required.
12792
12793 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12794
12795         * config/i386/i386.md: Simplify certain comparisons of
12796         const_int.
12797
12798 2004-01-21  Andrew Pinski  <apinski@apple.com>
12799
12800         PR target/13785
12801         * config/rs6000/rs6000.md (call_value): Force operand
12802         1 not operand 0 into a register.
12803
12804 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12805
12806         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
12807         unwind-dw2-fde.h: Update copyright.
12808
12809 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12810
12811         * pa-protos.h: Update copyright.
12812         * pa.h: Likewise.
12813         * pa.md: Likewise.
12814
12815 2004-01-21  Caroline Tice  <ctice@apple.com>
12816
12817         PR target/12308
12818         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
12819         flags register.
12820         (fix_truncdfdi2): Likewise.
12821         (fix_truncsfdi2): Likewise.
12822         (*fix_truncdi_1): Likewise.
12823         (fix_truncxfsi2): Likewise.
12824         (fix_truncdfsi2): Likewise.
12825         (fix_truncsfsi2): Likewise.
12826         (*fix_truncsi_1): Likewise.
12827         (fix_truncxfhi2): Likewise.
12828         (fix_truncdfhi2): Likewise.
12829         (fix_truncsfhi2): Likewise.
12830         (*fix_trunchi_1): Likewise.
12831
12832 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12833
12834         * alias.c, basic-block.h, c-common.c, c-common.h,
12835         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
12836         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
12837         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
12838         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
12839         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
12840         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
12841         genautomata.c, genconditions.c, genemit.c, genflags.c,
12842         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
12843         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
12844         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
12845         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
12846         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
12847         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
12848         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
12849         unwind.h, varray.c, varray.h: Update copyright.
12850
12851 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12852
12853         * config/h8300/coff.h: Update copyright.
12854         * config/h8300/elf.h: Likewise.
12855         * config/h8300/h8300-protos.h: Likewise.
12856         * config/h8300/h8300.c: Likewise.
12857         * config/h8300/h8300.h: Likewise.
12858         * config/h8300/h8300.md: Likewise.
12859
12860 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12861
12862         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
12863         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
12864         ultrix_unistd): New hacks.
12865         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
12866         ULTRIX_CONST2_CHECK): Add checks.
12867         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
12868         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
12869         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
12870         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
12871         * fixinc/tests/base/locale.h: New file.
12872         * fixinc/fixincl.x: Rebuilt.
12873
12874 2004-01-21  Andreas Jaeger  <aj@suse.de>
12875             Michael Matz  <matz@suse.de>
12876
12877         * doc/extend.texi (Extended Asm): Clarify memory clobber.
12878
12879 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
12880
12881         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
12882         _Jv_RegisterClasses through a function pointer.
12883
12884 2004-01-21  Falk Hueffner  <falk@debian.org>
12885
12886         PR target/12898
12887         * config/alpha/alpha.c (alpha_emit_set_const_1): If
12888         no_new_pseudos, use gen_rtx_SET directly for SImode constants
12889         which need multiple instructions to emit.
12890
12891 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
12892
12893         * config/m32r/m32r.h (CPP_SPEC): Define.
12894
12895 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
12896
12897         * c-decl.c (merge_decls): Kill different_binding_level and
12898         different_tu arguments; simplify throughout.
12899         (duplicate_decls): Likewise.
12900         (pushdecl, merge_translation_unit_decls): Update calls to
12901         duplicate_decls.
12902
12903 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12904
12905         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
12906         $(SYSTEM_H).
12907         (print-rtl1.o): Depend on $(SYSTEM_H).
12908
12909 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
12910
12911         PR bootstrap/12730
12912         * configure.ac: Delete definition and subsitution of docdir.
12913         Add info, man, srcman and srcinfo to target hooks. Create doc/
12914         directory.
12915         * configure: Regenerate.
12916         * Makefile.in: Don't substitute docdir and delete all references
12917         throughout.
12918         (MAKEINFOFLAGS): Define.
12919         (stmp-docobjdir): Delete.
12920         (INFOFILES, MANFILES): Define.
12921         (info): Call lang.info, srcinfo and lang.srcinfo.
12922         (generated-manpages): Call lang.man, srcman and lang.srcman.
12923         (srcinfo, srcman): New rules to copy back files to source directory.
12924         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
12925         (install-man): Revamp rule.
12926         (clean): Update dvi directory.
12927         (distclean): Delete TAGS from front end directorys.
12928         (maintainer-clean): Delete all document files in source directory.
12929
12930         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
12931         (objc.srcman, objc.srcinfo): Likewise.
12932
12933 2004-01-20  Bruce Korb  <bkorb@gnu.org>
12934
12935         * fixinc/inclhack.def(math_exception): bypass only for glibc.
12936         (matherr_decl): rename & relocate as exception_structure.
12937         This fix must precede the math_exception fix.
12938
12939 2004-01-20  Roger Sayle  <roger@eyesopen.com>
12940
12941         * fold-const.c (fold_convert): Rename to fold_convert_const.
12942         (fold_convert_const): Change arguments to take a tree_code,
12943         a type and the operand/expression to be converted.  Return
12944         NULL_TREE if no simplification is possible.  Add support for
12945         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
12946         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
12947         Adjust call to fold_convert to match new fold_convert_const.
12948         Avoid modifying the tree passed to fold in-place.
12949
12950 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
12951
12952         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
12953         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
12954         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
12955
12956 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12957
12958         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
12959         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
12960         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
12961         (emit_move_sequence): Check scratch_reg first in various if statements.
12962         Extend source simplification to handle all 64-bit CONST_INTs.
12963         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
12964         frame size.
12965         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
12966         frame offset calculations.
12967         * pa.h (NEW_HP_ASSEMBLER): Add comment.
12968         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
12969         LEGITIMATE_64BIT_CONST_INT_P): Define.
12970         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
12971         any CONST_INT as legitimate during and after reload.
12972         (VAL_32_BITS_P, INT_32_BITS): Define.
12973         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
12974
12975 2004-01-20  Jan Hubicka  <jh@suse.cz>
12976
12977         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
12978         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
12979         containing hard regs are shared.
12980         (gen_hard_reg_clobber): New function.
12981         (hard_reg_clobbers): New array.
12982         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
12983         (copy_rtx): Do not copy clobbers containing hard regs.
12984         * rtl.h (gen_hard_reg_clobber): Declare.
12985
12986 2004-01-20  Jan Hubicka  <jh@suse.cz>
12987
12988         * varray.c:  Include hashtab.h
12989         (varray_descriptor): New structure.
12990         (hash_descriptor, eq_descriptor, varray_descriptor,
12991         print_statistics): New static functions
12992         (varray_init, varray_grow): Update statistics
12993         (dump_varray_statistics): New function.
12994         * varray.h (dump_varray_statistics): Declare.
12995         * toplev.c (finalize): Call it.
12996         * Makefile.in (varray.o): Add dependency.
12997
12998 2004-01-20  Jan Hubicka  <jh@suse.cz>
12999
13000         * cselib.c: Include alloc-pool.h
13001         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
13002         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
13003         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
13004         unchain_one_elt_loc_list_pool, unchain_one_value,
13005         new_cselib_val): Simplify using allocpool.
13006         (cselib_init): Initialize allocpools.
13007         (cselib_finish): Finish allocpools.
13008         * Makefile.in (cselib.o): Depend on alloc-pool.h
13009
13010 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
13011
13012         * config/mips/mips.c (mips_load_call_address): Make the call insn
13013         use $gp if it could be calling a lazy binding stub.
13014
13015 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
13016
13017         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
13018         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13019         (TARGET_STRUCT_VALUE_RTX): Likewise.
13020         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
13021         (PROMOTE_FUNCTION_RETURN): Remove.
13022         (STRUCT_VALUE): Remove.
13023
13024 2004-01-20  Denis Chertykov  <denisc@overta.ru>
13025
13026         PR bootstrap/13735
13027         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
13028         register as pointer after reload.
13029
13030 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13031
13032         PR optimization/12440
13033         * loop.c: Include ggc.h.
13034         (loop_optimize): Run garbage collector between optimization of loops.
13035         * Makefile.in (loop.o): Add GGC_H dependency.
13036
13037 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
13038
13039         * gcc/config/rs6000/rs6000.c (function_arg) Handle
13040         vector register special in function without prototype.
13041         (function_arg_advance): Vector parameters get always
13042         GPRs allocated for the linux64 target.
13043
13044 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13045
13046         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
13047         not TARGET_M32RX_MASK.
13048
13049 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
13050
13051         PR target/13557
13052         * config/sparc/sparc.c (function_arg): Reorder the cases.
13053
13054 2004-01-19  Per Bothner  <per@bothner.com>
13055
13056         Move cpp_reader's line_maps field to a shared global.
13057         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
13058         and change the type to a pointer rather than a struct.
13059         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
13060         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
13061         Likewise.
13062         * cppfiles.c (validate_pch):  Likewise.
13063         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
13064         Likewise.
13065         * cpperror.c (print_location):  Likewise.
13066         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
13067         * cppinit.c (cpp_create_reader):  Handle new parameter.
13068         (cpp_destroy):  Don't free line_maps - that's no longer our job.
13069         * input.h (line_table):  New variable.
13070         * toplev.c (line_table):  Declare variable.
13071         (general_init):  Initialize line_table.
13072         * c-opts.c (c_common_init_options):  Pass line_table to
13073         cpp_create_reader.
13074         * fix-header.c (read_scan_file):  New local variable line_table.
13075         Initialize, and pass it to cpp_create_reader.
13076         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
13077         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
13078
13079 2004-01-19  Per Bothner  <per@bothner.com>
13080
13081         Implement a cache for linemap_lookup.
13082         * line-map.h (struct_line_maps):  Add cache field.
13083         * line-map.c (linemap_init):  Zero cache field.
13084         (linemap_add):  Set cache field to offset of newly allocated map.
13085         (linemap_lookup):  Use and set cache field.
13086
13087 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13088
13089         PR optimization/13567
13090         * cse.c (cse_basic_block): Call cse_insn with a non-null
13091         libcall_insn for the last SET insn of a no-confilict block.
13092
13093 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
13094
13095         * Makefile.in (target_noncanonical, program_transform_name): Use
13096         immediate define instead of deferred.
13097         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
13098         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
13099         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
13100         deferred backquote.
13101
13102 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
13103
13104         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
13105         true unconditionally.
13106         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
13107         Remove.
13108         (build_unary_op, build_modify_expr): Don't handle extended
13109         lvalues.
13110         (build_component_ref, build_conditional_expr): Call non_lvalue
13111         instead of pedantic_non_lvalue.
13112         (build_c_cast): Don't condition use of non_lvalue on pedantic.
13113         * fold-const.c (fold): Don't check pedantic directly for
13114         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
13115         passed to pedantic_non_lvalue.
13116         * doc/extend.texi: Remove documentation of extended lvalues.
13117
13118 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13119
13120         PR optimization/5263
13121         * simplify-rtx.c (associative_constant_p): Delete.
13122         (simplify_associative_operation): Rewrite to linearize terms, and
13123         attempt to simplify new term against both left and right subterms.
13124         (simplify_binary_operation): Call swap_commutative_operands_p on
13125         op0 and op1, not trueop0 and trueop1.  Move the initialization of
13126         trueop0 and trueop1 down to where first needed.
13127         (simplify_relational_operation): Likewise.
13128         * rtlanal.c (commutative_operand_precedence): Also order constant
13129         operands using avoid_constant_pool_reference.
13130
13131 2004-01-19  Richard Henderson  <rth@redhat.com>
13132
13133         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
13134         don't check memory mode.
13135         (unaligned_memory_operand): Likewise.
13136         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
13137         abort for op0 not MEM.
13138
13139         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
13140         is not a reg, copy to a scratch first.
13141         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
13142         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
13143         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
13144         (reload_inqi, reload_inhi): Fix mode of op0.
13145         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
13146         reload_outhi_help): Likewise.  Use define_insn_and_split.
13147
13148         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
13149         as well as $29 dead.
13150
13151 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
13152
13153         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
13154         "tls_object" for thread-local objects.
13155         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
13156         "#tls" for thread-local sections.
13157         * configure.ac (thread-local checks): Specify --fatal-warnings in
13158         every binutils-specific checks.  For sparc*-*-*, test whether the
13159         OS is Solaris and the tools are native and act accordingly.
13160         * configure: Rebuild.
13161
13162 2004-01-19  Jeff Law  <law@redhat.com>
13163
13164         * contrib.texi: Update Paolo Carlini's entry.  New entries for
13165         Jerry Quinn and Petur Runolfsson.
13166
13167 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13168
13169         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
13170         size, don't use the larger zero-extending loads.
13171
13172 2004-01-19  Richard Henderson  <rth@redhat.com>
13173
13174         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
13175         * alpha.md (UNSPEC_NT_LDA): Remove.
13176         (UNSPEC_CVTLQ, cvtlq): New.
13177         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
13178         (extendsidi2_fix): Remove.
13179         (extendsidi2 splitter): Use cvtlq.
13180         (extendsidi2 fp peepholes): Remove.
13181         (cvtql): Use SFmode instead of SImode.
13182         (fix_trunc?fsi): Update to match.
13183         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
13184         (movsi): Rename from movsi_nofix, remove f alternatives.
13185         (movsi_nt_vms): Similarly.
13186         (movsi_fix, movsi_nt_vms_fix): Remove.
13187         (nt_lda): Remove.
13188         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
13189
13190 2004-01-19  Jan Hubicka  <jh@suse.cz>
13191
13192         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
13193         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
13194         list.
13195         (cgraph_remove_unreachable_nodes): New function
13196         (cgraph_decide_inlining_of_small_function): Fix pasto.
13197         (cgraph_decide_inlining_incrementally): Fix pasto.
13198         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
13199
13200 2004-01-19  Steven Bosscher  <stevenb@suse.de>
13201
13202         * gengtype.c (header_file): Make it static.
13203         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
13204         * gengtype.h (header_file): No longer extern.
13205
13206 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13207
13208         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
13209         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
13210         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
13211
13212 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13213
13214         * stmt.c (HAVE_casesi): Define it not already defined.
13215         (HAVE_tablejump): Likewise.
13216         (expand_end_case_type): Resort to the binary tree method if
13217         neither casesi or tablejump is available.
13218
13219 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
13220
13221         * final.c (final_scan_insn): Make non-static again.
13222         * output.h (final_scan_insn): Re-add prototype.
13223         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
13224         to final_scan_insn call.
13225         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
13226         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
13227         * config/pa/pa.c (output_lbranch, output_call): Likewise.
13228         * config/sh/sh.c (print_slot): Likewise.
13229         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
13230         (output_sibcall, sparc_flat_function_epilogue): Likewise.
13231
13232 2004-01-18  Jan Hubicka  <jh@suse.cz>
13233
13234         * basic-block.h (try_redirect_by_replacing_jump): Declare.
13235         * cfgcleanup.c (try_optimize_cfg): Use it.
13236         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
13237         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
13238         Kill hack.
13239         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
13240
13241         Revert:
13242         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13243
13244                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13245                 even after reload, just don't remove the actual jump tables.
13246
13247 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13248
13249         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
13250
13251 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13252
13253         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
13254         the size of a pointer in bytes.
13255
13256 2004-01-18  Roger Sayle  <roger@eyesopen.com>
13257
13258         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
13259         live "next" variable, which could lead to an infinite loop.
13260
13261 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
13262
13263         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
13264         block.
13265
13266         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13267         Check for NULL in the chain and remove repeated code.
13268
13269 2004-01-18  Jan Hubicka  <jh@suse.cz>
13270
13271         * coverage.c (checksum_string): Rename to ...
13272         (coverage_checksum_string): ... this one, Use crc32_string; recognize
13273         names containing random number and zero the number out in order to get
13274         match.
13275
13276 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13277
13278         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
13279
13280 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13281
13282         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
13283         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
13284         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
13285         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
13286         doc/trouble.texi: Remove trailing whitespace.
13287
13288 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13289
13290         PR target/7618
13291         * config/mips/mips.c: Include cfglayout.h.
13292         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
13293         (mips_unspec_offset_high): Add temporary register argument.
13294         (mips_load_call_address): New function, split out from...
13295         (mips_expand_call): ...here.
13296         (mips_output_cplocal): New function.
13297         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
13298         (mips_emit_loadgp): New function, split out from...
13299         (mips_expand_prologue): ...here.
13300         (mips_output_mi_thunk): New function.
13301
13302 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
13303
13304         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
13305         mcpu32): Remove redundant checks for implied target predefines.
13306
13307 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
13308
13309         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13310         Return type is unsigned int not int.
13311         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13312         Likewise.
13313
13314 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13315
13316         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
13317         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
13318         "GNU/Linux" and "Microsoft Windows" terminology.
13319
13320 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13321
13322         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
13323         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
13324         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
13325         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
13326         @smallexample instead of @example.
13327
13328 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
13329
13330         * objc/objc-act.c (build_objc_method_call): Use target
13331         hooks instead of macros to determine if ..._stret
13332         dispatchers should be used (NeXT runtime only).
13333
13334 2004-01-17  Roger Sayle  <roger@eyesopen.com>
13335
13336         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
13337         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
13338
13339 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13340
13341         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
13342         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
13343         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
13344         macros.
13345         * reload1.c (emit_reload_insns): Use them.
13346         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
13347         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
13348         for NULL PATTERN.
13349
13350 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13351
13352         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
13353         (final_scan_insn): Update to take an additional SEEN argument.  Emit
13354         a line note after the prologue.  Make static.
13355         (line_note_exists): Remove.
13356         (final): Don't initialize line_note_exists.  Update call to
13357         final_scan_insn.
13358         * output.h (final_scan_insn): Remove prologue.
13359         * function.c (set_insn_locators): Update comment.
13360         (thread_prologue_and_epilogue_insns): Add a comment.
13361
13362 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
13363
13364         PR target/10781
13365         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13366         Prototype.
13367         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13368         New function.
13369         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
13370         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
13371         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
13372
13373 2004-01-17  Jan Hubicka  <jh@suse.cz>
13374
13375         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
13376         commit.
13377
13378         * toplev.c (HAVE_conditional_execution): Provide default.
13379         (rest_of_handle_reorder_blocks): For conditional_execution target
13380         update liveness once after all transformations
13381         (rest_of_compilation): Do crossjumping before ce3.
13382
13383 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
13384
13385         * alias.c (new_alias_set): Mark last_alias_set for PCH.
13386         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
13387         for PCH.
13388         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
13389         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
13390         (get_TOC_alias_set): Mark 'set' for PCH.
13391
13392 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13393
13394         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13395         even after reload, just don't remove the actual jump tables.
13396
13397 2004-01-17  J. Brobecker  <brobecker@gnat.com>
13398
13399         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
13400         Remove checks for is_ada() and TREE_UNSIGNED.
13401         (subrange_type_die): Emit a byte_size attribute if the subrange
13402         type size is different from the base type size.
13403         (modified_type_die): Replace call to is_ada_subrange_type() by
13404         call to is_subrange_type().
13405
13406 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
13407
13408         * config/sh/sh.c: Include ggc.h.
13409
13410 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13411
13412         * Makefile.in (MD5_H): New.
13413         (fold-const.o): Depend on md5.h.
13414         (dwarf2out.o): Likewise.
13415         (cppfiles.o): Likewise.
13416         * cppfiles.c: Include md5.h.
13417         (should_stack_file): Check against list read from PCH file.
13418         (struct pchf_data): New.
13419         (pchf): New variable.
13420         (struct pchf_adder_info): New.
13421         (pchf_adder): New.
13422         (pchf_save_compare): New.
13423         (_cpp_save_file_entries): New.
13424         (_cpp_read_file_entries): New.
13425         (struct pchf_compare_data): New.
13426         (pchf_compare): New.
13427         (check_file_against_entries): New.
13428         * cpphash.h (_cpp_save_file_entries): Prototype.
13429         (_cpp_read_file_entries): Prototype.
13430         * cpppch.c (cpp_write_pch_state): Write the list of headers.
13431         (cpp_read_state): Read the list of headers.
13432
13433 2004-01-17  Jan Hubicka  <jh@suse.cz>
13434
13435         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
13436         builtin_expect specially.
13437         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
13438         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
13439         * invoke.texi (max-inline-insns-single): Set to 100.
13440         (large-function-insns): Set to 3000.
13441
13442 2004-01-16  Eric Christopher  <echristo@redhat.com>
13443             Chandrakala Chavva <cchavva@redhat.com>
13444
13445         * cppcharset.c (one_iso88591_to_utf8): New function.
13446         (convert_iso88591_utf8): Ditto. Use.
13447         (conversion_tab): Use.
13448         (_cpp_input_to_utf8): New function.
13449         (_cpp_init_iconv_buffer): Ditto.
13450         (_cpp_close_iconv_buffer): Ditto.
13451         * cpphash.h: Prototype new functions.
13452         (cpp_buffer): Add input_cset_desc.
13453         * cppinit.c: Add input_charset default.
13454         * cpplib.c (cpp_push_buffer): Support init and
13455         close of iconv.
13456         * cpplib.h (cpp_options): Add input_charset.
13457
13458 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13459
13460         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
13461         * config/alpha/unicosmk.h: Remove a commented-out definition
13462         of ASM_OUTPUT_SECTION_NAME.
13463         * config/stormy16/stormy16.h: Likewise.
13464
13465 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13466
13467         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
13468         (alpha___extern_prefix_sys_stat): ... this.
13469         Apply to <sys/mount.h>, too.
13470         Tweak to match more variations.
13471         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
13472
13473         * fixinc/inclhack.def (alpha___extern_prefix,
13474         alpha___extern_prefix_standards): New hacks to obey
13475         __PRAGMA_EXTERN_PREFIX.
13476         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
13477         test.
13478         * fixinc/tests/base/standards.h: Likewise.
13479
13480         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
13481         variations.
13482         New testcase.
13483         * fixinc/tests/base/pthread.h: Handle it.
13484
13485         * fixincl/inclhack.def (bad_lval): Sort file list.
13486         Add many missing files up to Tru64 UNIX V5.1B.
13487         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
13488         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
13489         order.
13490
13491         * fixinc/fixincl.x: Regenerate.
13492
13493 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
13494
13495         * version.c (version_string): Change to 3.5.0.
13496         * doc/include/gcc-common.texi (version-GCC): Likewise.
13497
13498 2004-01-16  Jan Hubicka  <jh@suse.cz>
13499
13500         * i386.md (load_tp_di): Fix pasto.
13501
13502         PR opt/13608
13503         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
13504
13505         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
13506         pp_c_character_constant, pp_c_floating_constant,
13507         pp_c_additive_expression, pp_c_shift_expression,
13508         pp_c_equality_expression, pp_c_and_expression,
13509         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
13510         pp_c_logical_and_expression): Remove inline modifier.
13511         * dwarf2out.c (get_AT): Likewise.
13512         * et-forest.c (et_splay): Likewise.
13513         * ra.h (ra_alloc, ra_calloc): Likewise
13514
13515 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13516
13517         * config/frv/frv-protos.h: Fix comment formatting.
13518         * config/frv/frv.c: Likewise.
13519         * config/frv/frv.h: Likewise.
13520         * config/frv/frv.md: Likewise.
13521         * config/frv/frvbegin.c: Likewise.
13522         * config/frv/frvend.c: Likewise.
13523
13524 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13525
13526         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
13527         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
13528         LINKER_DOES_NOT_WORK_WITH_DWARF2.
13529         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
13530
13531 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
13532
13533         PR 11864
13534         * postreload.c (reload_cse_simplify_operands): Don't remove
13535         implicit extension from LOAD_EXTEND_OP.
13536
13537 2004-01-16  Jan Hubicka  <jh@suse.cz>
13538
13539         PR opt/11350
13540         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
13541         after reload.
13542         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
13543         rtl_try_redirect_by_replacing_branch): Likewise.
13544
13545 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13546
13547         PR pch/13689
13548         * alias.c (struct alias_set_entry): Mark for GC.
13549         (alias_sets): Make static, mark for GC.
13550         (record_alias_subset): Use GC to allocate alias structures.
13551         * varray.c (element): Make generic varrays GCed.
13552
13553         PR pch/13361
13554         * c-typeck.c (constructor_asmspec): Delete.
13555         (struct initializer_stack): Delete field 'asmspec'.
13556         (start_init): Delete saving of asmspec.
13557         (finish_init): Don't update constructor_asmspec.
13558         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13559         * stmt.c (expand_asm): Duplicate strings from tree.
13560         (expand_asm_operands): Likewise.
13561         * tree.c (tree_size): Update computation of size of STRING_CST.
13562         (make_node): Don't make STRING_CST nodes.
13563         (build_string): Allocate string with tree node.
13564         * tree.def (STRING_CST): Update comment.
13565         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13566         (tree_string): Place contents of string in tree node.
13567         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13568         from tree.
13569
13570         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
13571         altivec operands.
13572
13573 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13574
13575         * c-common.h: Fix comment formatting.
13576         * c-cppbuiltin.c: Likewise.
13577         * c-pragma.c: Likewise.
13578         * calls.c: Likewise.
13579         * collect2.c: Likewise.
13580         * cppcharset.c: Likewise.
13581         * cpptrad.c: Likewise.
13582         * dbxout.c: Likewise.
13583         * defaults.h: Likewise.
13584         * dwarf2out.c: Likewise.
13585         * fold-const.c: Likewise.
13586         * genautomata.c: Likewise.
13587         * genconditions.c: Likewise.
13588         * genflags.c: Likewise.
13589         * gengtype.c: Likewise.
13590         * integrate.c: Likewise.
13591         * loop.c: Likewise.
13592         * predict.c: Likewise.
13593         * sdbout.c: Likewise.
13594
13595 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
13596
13597         * config/ia64/ia64.md (*movti_internal): C output template
13598         extracted to ia64.c.
13599         (*movti_internal_reg): Delete.
13600         (reload_inti, reload_outti): Use the correct mode on operand 2
13601         in the first place, don't fix it up in the output template.
13602         (movtf, reload_ointf, reload_outtf): New expanders.
13603         (*movtf_internal): New define_insn_and_split.
13604         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
13605         make static; do not hand TFmode CONST_DOUBLEs to split_double.
13606         (ia64_split_tmode_move): New function, body mostly pulled
13607         from ia64.md:*movti_internal.
13608         (ia64_function_arg_words): New function, extracted common
13609         logic from ia64_function_arg et seq.
13610         (ia64_function_arg_offset): Likewise.  Handle correctly the
13611         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
13612         (ia64_function_arg, ia64_function_arg_partial_nregs)
13613         (ia64_function_arg_advance): Use ia64_function_arg_words and
13614         ia64_function_arg_offset.
13615         (ia64_function_value): TCmode does not go in float regs.
13616         (ia64_secondary_reload_class): Also handle TFmode.
13617         * config/ia64/ia64-protos.h: Remove prototype for
13618         ia64_split_timode; add prototype for ia64_split_tmode_move.
13619
13620 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
13621
13622         * Makefile.in (MAINT): Make it an immediate assignment.
13623
13624 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13625
13626         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
13627
13628 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13629
13630         * config/h8300/coff.h: Replace Hitachi with Renesas.
13631         * config/h8300/elf.h: Likewise.
13632         * config/h8300/h8300-protos.h: Likewise.
13633         * config/h8300/h8300.c: Likewise.
13634         * config/h8300/h8300.h: Likewise.
13635         * config/h8300/h8300.md: Likewise.
13636         * config/h8300/lib1funcs.asm: Likewise.
13637
13638 2004-01-15  Andrew Pinski  <apinski@apple.com>
13639
13640         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
13641         around it.
13642
13643 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13644
13645         * config/h8300/h8300.c (h8300_return_in_memory): New.
13646         (TARGET_STRUCT_VALUE_RTX): Likewise.
13647         (TARGET_RETURN_IN_MEMORY): Likewise.
13648         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
13649         (RETURN_IN_MEMORY): Likewise.
13650
13651 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
13652
13653         PR optimization/13375
13654         * gcse.c (handle_avail_expr): Just return if the source is not a
13655         single set.
13656
13657 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
13658             Daniel Jacobowitz  <drow@mvista.com>
13659
13660         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
13661         (EQUIV): Define.
13662         (ARM_FUNC_ALIAS): New macro.
13663         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
13664         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
13665
13666 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13667
13668         PR optimization/12372
13669         * calls.c (expand_call): Add call_fusage data for stack arguments in
13670         constant calls.
13671
13672 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
13673
13674         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
13675         (rs6000_elf_declare_function_name): Formatting.
13676         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
13677
13678 2004-01-15  Jan Hubicka  <jh@suse.cz>
13679
13680         PR bootstrap/13692
13681         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
13682         previous patch.
13683
13684 2004-01-15  Richard Henderson  <rth@redhat.com>
13685
13686         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
13687         integer regs of the same call-savedness.
13688
13689 2004-01-15  Andreas Schwab  <schwab@suse.de>
13690
13691         PR bootstrap/13562
13692         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
13693         status for NOTB/NOTW/NEGW methods.
13694
13695 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13696
13697         * doc/invoke.texi: Update dump file names.  Fix a typo.
13698
13699 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13700
13701         * builtins.c (expand_builtin_va_end): Don't use
13702         EXPAND_BUILTIN_VA_END.
13703         * system.h (EXPAND_BUILTIN_VA_END): Poison.
13704         * config/d30v/d30v.h: Remove a commented-out definition of
13705         EXPAND_BUILTIN_VA_END.
13706         * config/stormy16/stormy16.h: Likewise.
13707
13708 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13709
13710         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
13711         * targhooks.c (default_struct_value_rtx): Don't use
13712         STRUCT_VALUE_INCOMING_REGNUM.
13713
13714 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
13715
13716         PR bootstrap/12744
13717         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
13718         GENINSRC and not parsedir.  Define srcextra as a langhook.
13719         * configure: Regenerate.
13720         * Makefile.in: Suppress default .l.c rule.  Don't substitute
13721         parsedir and delete all references throughout.  Conditionally define
13722         rule for srcextra dependent on GENINSRC.
13723         (stmp-docobjdir): Delete.
13724         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
13725         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
13726         and gengtype-yacc.h back to source directory.
13727         (maintainer-clean): Delete all parse files in source directory.
13728         (distclean): Delete generated files.
13729
13730         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
13731         (objc-parse.c, objc-parse.y): Don't use parsedir.
13732         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
13733         directory if requested.
13734         (po-generated): Don't use parsedir.
13735         (objc.maintainer-clean): Delete above files from source directory.
13736
13737 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13738
13739         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
13740
13741 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13742
13743         * doc/tm.texi: Replace RETURN_IN_MEMORY with
13744         TARGET_RETURN_IN_MEMORY.
13745
13746 2004-01-15  Jan Hubicka  <jh@suse.cz>
13747
13748         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
13749         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
13750         functions accepting SSE arguments
13751         (function_arg): Warn only when asked to warn.
13752         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
13753
13754 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
13755
13756         * c-parse.in (stmts_and_decls): Make label at end of compound
13757         statement a hard error.
13758
13759 2004-01-14  Jan Hubicka  <jh@suse.cz>
13760
13761         * cgraph.c (create_edge): Use local.redefined_extern_inline.
13762         * cgraph.h (cgraph_local_info): Sort fields by size; add
13763         redefined_extern_inline
13764         (cgraph_global_info): Sort fields by size.
13765         (cgraph_node): Likewise.
13766         * cgraphunit.c (cgraph_finalize_function): Se
13767         local.redefined_extern_inline on redefinition.
13768         (cgraph_analyze_function): Use it; fix formating.
13769
13770 2004-01-14  Jan Hubicka  <jh@suse.cz>
13771
13772         PR c++/10776
13773         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
13774         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
13775         bitmaps
13776         (cache_size): New variable
13777         (add_dependence): Update use; canonize early memory locations
13778         (sched_analyze_1): Likewise.
13779         (sched_analyze_2): Likewise.
13780         (init_dependency_caches): Initialize bitmaps.
13781         (free_dependency_caches): Free bitmaps
13782
13783 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13784
13785         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
13786         targetm.calls.strict_argument_naming().
13787         * target.h: Likewise.
13788
13789 2004-01-14  Richard Henderson  <rth@redhat.com>
13790
13791         PR debug/13231
13792         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
13793         instructions.
13794
13795 2004-01-14  Richard Henderson  <rth@redhat.com>
13796
13797         PR c++/12491
13798         * except.c (struct eh_region): Add u.fixup.resolved.
13799         (resolve_one_fixup_region): Split out from ...
13800         (resolve_fixup_regions): ... here.
13801
13802 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13803
13804         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
13805
13806 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13807
13808         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
13809         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
13810         (STRUCT_VALUE): Remove.
13811
13812 2004-01-14  Steven Bosscher  <stevenb@suse.de>
13813
13814         * system.h: Poison PROMOTED_MODE
13815         * integrate.c (expand_inline_function): Don't mention the
13816         PROMOTED_MODE.
13817         * loop.c (update_giv_derive): Same.
13818         * tree.h (DECL_RTL): Same.
13819
13820 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
13821
13822         PR target/9365
13823         * sh.c (gen_block_redirect): Add special handling of RETURN.
13824         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
13825         far branch target (i.e. it's a return).
13826
13827 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13828
13829         * regrename.c (find_oldest_value_reg): Fix a warning.
13830
13831 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
13832
13833         PR bootstrap/12527
13834         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
13835         Move linux-gas.h and linux-elf.h before aout.h.
13836         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
13837         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
13838
13839 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13840
13841         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
13842         (CONST_INT, VOIDmode, ...).
13843
13844 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
13845
13846         * regrename.c (find_oldest_value_reg): If the replacement uses
13847         multiple hard registers, check that all of them are in CLASS.
13848
13849 2004-01-14  Jan Hubicka  <jh@suse.cz>
13850
13851         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
13852         impossible.
13853
13854 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
13855
13856         * Makefile.in: Define MAINT from --enable-maintainer-mode.
13857
13858 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13859
13860         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
13861         Calculate always vrsave_mask if TARGET_ALTIVEC.
13862         (rs6000_emit_prologue): Emit code for vrsave
13863         only if TARGET_ALTIVEC_VRSAVE.
13864         (rs6000_emit_epilogue): Likewise.
13865
13866 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
13867
13868         * config/sparc/sparc.md (tie_add32): Fix pasto.
13869         (tie_add64): Likewise.
13870
13871 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13872
13873         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
13874
13875 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13876
13877         * config/iq2000/iq2000-protos.h: Fix comment formatting.
13878         * config/iq2000/iq2000.c: Likewise.
13879         * config/iq2000/iq2000.md: Likewise.
13880
13881 2004-01-14  J. Brobecker  <brobecker@gnat.com>
13882
13883         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
13884         (subrange_type_die): Add handle for nameless subrange types.
13885
13886 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13887
13888         * config/h8300/h8300-protos.h: Replace do_movsi with
13889         h8300_expand_movsi.
13890         * config/h8300/h8300.c (do_movsi): Change to
13891         h8300_expand_movsi.
13892         * config/h8300/h8300.md (movsi): Replace do_movsi with
13893         h8300_expand_movsi.
13894         (movsf): Likewise.
13895
13896 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13897
13898         * config/h8300/h8300.c (dosize): Change to
13899         h8300_emit_stack_adjustment.  Update callers.
13900
13901 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13902
13903         * config/h8300/h8300.md (movstrictqi): Add an alternative with
13904         the source being post_inc.  Tighten the predicate for the
13905         destination to register_operand.
13906         (movstricthi): Likewise.
13907
13908 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13909
13910         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
13911         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
13912         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
13913
13914 2004-01-14  Jan Hubicka  <jh@suse.cz>
13915
13916         Partial fix PR c++/12850
13917         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
13918         at zero nest level.
13919
13920 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
13921
13922         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
13923         pseudo-register.
13924
13925 2004-01-13  Devang Patel <dpatel@apple.com
13926
13927         PR debug/7078
13928         * dbxout.c (dbxout_symbol_name): Emit mangled names for
13929         NAMESPACE_DECL memebers.
13930
13931 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
13932
13933         PR c++/12709
13934         * c-common.c (finish_fname_decls): Use the chain only if the
13935         tree is an expr_stmt.
13936
13937 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
13938
13939         * rtl.def: Add comment about new option in automata_option.
13940
13941         * genautomata.c (PROGRESS_OPTION): New macro.
13942         (progress_flag): New global variable.
13943         (gen_automata_option): Process `progress'.
13944         (transform_insn_regexps, check_unit_distributions_to_automata,
13945         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
13946         expand_automata, write_automata): Print about the progress only if
13947         progress_flag.  Remove fflush.
13948         (initiate_automaton_gen): Process command line flag `-progress'.
13949
13950         * doc/md.texi: Describe the new option.
13951
13952 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13953
13954         * cfg.c (dump_bb): Dump entry edges.
13955
13956 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
13957
13958         * arm.c (thumb_legitimate_address_p): Only allow constant pool
13959         references from SImode.
13960         * arm.md (thumb_movhi_insn): Don't allow minipool references.
13961
13962 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13963
13964         * system.h (TEXT_SECTION): Poison.
13965         * varasm.c (text_section): Don't use TEXT_SECTION.
13966         * config/sh/sh.c (sh_file_start): Fix a comment typo.
13967         * doc/tm.texi (TEXT_SECTION): Remove.
13968
13969 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
13970
13971         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
13972
13973 2004-01-12  James E Wilson  <wilson@specifixinc.com>
13974
13975         * unwind-libunwind.c: Delete.
13976
13977 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
13978
13979         PR 13656
13980         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
13981         oldtype is set, set *newtypep or *oldtypep too.  Do not set
13982         them at the very end.
13983         (validate_proto_after_old_defn): Restructure for comprehensibility;
13984         make error messages clearer.
13985
13986 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
13987
13988         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
13989         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
13990         * varray.c: No need to prototype error.
13991         (varray_check_failed): Wrap long string onto two lines.
13992         (varray_underflow): New function.
13993
13994 2004-01-13  Steven Bosscher  <stevenb@suse.de>
13995
13996         PR c++/13376
13997         * function.h (struct function): Kill `name' field.
13998         (current_function_name): Make it an extern function.
13999         * function.c (current_function_name): New function.
14000         * graph.c: Update all uses of current_function_name.
14001         * gcse.c: Likewise.
14002         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
14003         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
14004         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
14005         instead of a strcmp with "main".
14006
14007 2004-01-13  Jan Hubicka  <jh@suse.cz>
14008
14009         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
14010
14011         * cgraphunit.c (cgraph_optimize_function):  Always do
14012         optimize_inline_calls when there is always_inline callee.
14013         (cgraph_decide_inlining): Fix formating.
14014         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
14015         functions.
14016         (expand_call_inline): Likewise.
14017         * toplev.h (sorry): Fix prototype.
14018
14019 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14020
14021         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
14022         conditional jumps that drop through to unconditional jumps or the
14023         end of the sequence.
14024
14025 2004-01-13  Jan Hubicka  <jh@suse.cz>
14026
14027         * alias.c (new_alias_set): Construct the alias_set varray.
14028         (init_alias_once): Don't do it here.
14029
14030 2004-01-12  Marc Espie <espie@openbsd.org>
14031
14032         * system.h: handle YYBYACC like YYBISON.
14033
14034 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
14035
14036         PR target/10847
14037         * config.gcc: No longer includes conflicting header sparc/sol2.h when
14038         building on sparc64-*-openbsd*.
14039
14040 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
14041
14042         PR debug/13539
14043         * dbxout.c (dbxout_type): Protected inheritance is not
14044         private but protected.
14045
14046 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14047
14048         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
14049
14050 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
14051
14052         PR optimization/12508.
14053         * combine.c (try_combine): Remove a dead set in a parallel
14054         even if its destination is a subreg.
14055
14056         Revert:
14057         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
14058         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
14059         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
14060
14061 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
14062
14063         * real.c: Update copyright date.
14064         * emit-rtl.c: Likewise.
14065         * rtl.h: Likewise.
14066         * dwarf2out.c: Likewise.
14067         * config/rs6000/darwin-ldouble.c: Likewise.
14068         * config/rs6000/rs6000.md: Likewise.
14069
14070 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14071
14072         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
14073         TFmode to SImode libfuncs.
14074
14075 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14076
14077         PR middle-end/11397
14078         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
14079
14080 2004-01-12  Jan Hubicka  <jh@suse.cz>
14081
14082         PR opt/12826
14083         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
14084         stored.
14085
14086         PR opt/12863
14087         * cfgcleanup.c (label_is_jump_target_p): Move to...
14088         * rtlanal.c (label_is_jump_target_p): ... here.
14089         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
14090         edges unified with branch edges.
14091
14092 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
14093
14094         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
14095         high word of an integral CONST_DOUBLE.
14096
14097 2004-01-12  Paul Brook  <paul@codesourcery.com>
14098
14099         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
14100
14101 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
14102
14103         PR target/13585
14104         * sh-protos.h (check_use_sfunc_addr): Declare.
14105         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
14106         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
14107
14108 2004-01-12  Jan Hubicka  <jh@suse.cz>
14109
14110         * alias.c:  Invlude varray.h
14111         (alias_sets): Turn into varray.
14112         (get_alias_set_entry): Use VARRAY; mark inline.
14113         (mems_in_disjoint_alias_sets_p): Mark inline.
14114         (record_alias_subset): Use varray.
14115         (init_alias_once): Initialize varray.
14116         (new_alias_set): Grow array.
14117         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
14118
14119 2004-01-12  Jan Hubicka  <jh@suse.cz>
14120
14121         Partial fix for PR opt/10776 II
14122         * cselib.c: Include params.h
14123         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
14124         locations.
14125         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
14126         * Makefile.in (cselib.o): Depend on params.h
14127
14128 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14129
14130         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
14131         simplify_unary_operation if the operand has a known mode.
14132
14133 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
14134
14135         PR target/13534
14136         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
14137         predicate to handle 'ld' conform addresses.
14138         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
14139         contraint.
14140         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
14141         are memory contraints.
14142         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
14143         New prototype.
14144         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
14145         Change 'o' to 'Y' constraint.
14146         (*movdf_softfloat64): Ditto.
14147
14148 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
14149
14150         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
14151         brace-enclosed syntax in all C output statements.
14152
14153 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14154
14155         PR target/13401
14156         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
14157         Objective-C language type value is 14.
14158
14159 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
14160
14161         PR c/12148
14162         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
14163         `int' in a number of places to make sure we always have a SImode
14164         and not a HImode.  Add a 'L' suffix to a number of constants.
14165
14166 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14167
14168         * pa.c: Don't include obstack.h.
14169
14170         * pa.md: Correct constraint in pattern for loading PIC label address.
14171
14172 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14173
14174         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
14175          before defining.
14176
14177 2004-01-11  Steven Bosscher  <stevenb@suse.de>
14178
14179         PR fortran/9972
14180         * toplev.c (rest_of_handle_inline): Also consider functions
14181         for deferral if the language is GNU F77.
14182
14183 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
14184
14185         * c-decl.c (diagnose_arglist_conflict): Add missing space to
14186         diagnostic messages.
14187
14188 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
14189
14190         PR middle-end/13392
14191         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
14192         to drop through label.  Don't fall back to SCC even when conditional
14193         jump has not been found.
14194
14195 2004-01-11  Jan Hubicka  <jh@suse.cz>
14196
14197         * invoke.texi: Fix syntax error in previous patch.
14198
14199         Partial fix for PR opt/10776
14200         * Makefile.in (reload.o): Include param.h
14201         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
14202         * reload.c: Include params.h.
14203         (find_equiv_reg): Work limiting check.
14204         * invoke.texi: Document.
14205
14206 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14207
14208         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
14209         out-of-bounds accesses to string constants.  Simplify mips16
14210         case accordingly.
14211
14212 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14213
14214         PR optimization/13469
14215         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
14216         reload_cse_regs (-fnon-call-exceptions only).
14217
14218 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
14219
14220         * config/mcore/lib1.asm: Fix comment formatting.
14221         * config/mcore/mcore-elf.h: Likewise.
14222         * config/mcore/mcore.c: Likewise.
14223         * config/mcore/mcore.h: Likewise.
14224         * config/mcore/mcore.md: Likewise.
14225
14226 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14227
14228         * c-decl.c (duplicate_decls): Break apart into...
14229         (diagnose_arglist_conflict, validate_proto_after_old_defn)
14230         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
14231         ... these new functions.  Restructure for comprehensibility.
14232         Remove various archaic special cases.  Always report the
14233         location of the previous declaration when a diagnostic is issued.
14234         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
14235         (match_builtin_function_types): Delete unnecessary forward declaration.
14236
14237 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14238
14239         * genautomata.c (make_automaton, NDFA_to_DFA):
14240         Print progress bars with '.' characters instead of '*'.
14241         (build_automaton): Change notes to match.
14242
14243 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14244
14245         * config/m32r/m32r.md: Use define_constants for unspec and
14246         unspec_volatile.
14247
14248 2004-01-10  Jan Hubicka  <jh@suse.cz>
14249
14250         PR opt/11635
14251         * expr.c (expand_expr_real):  More curefully expand union casts.
14252
14253 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14254
14255         * config/m32r/m32r.md (flush_icache): Use 1 for
14256         unspec_volatile.
14257
14258 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
14259             James E Wilson  <wilson@specifixinc.com>
14260
14261         PR debug/12860
14262         * dbxout.c (dbxout_symbol): Remove initialization of
14263         current_sym_code, current_sym_value, and current_sym_addr.
14264         (dbxout_symbol_location): Same.
14265         (dbxout_prepare_symbol): Zero current_sym_code,
14266         current_sym_value, and current_sym_addr.
14267
14268 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
14269
14270         * tree.c (get_unwidened): Reorder conditions so that the null pointer
14271         check is done first.
14272
14273 2004-01-09  Eric Christopher  <echristo@redhat.com>
14274
14275         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
14276         if we're running mark_constant_function.
14277
14278 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
14279
14280         PR target/12561
14281         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
14282
14283 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
14284
14285         PR debug/11231
14286         * dbxout.c (dbxout_type_fields): Return if any item is
14287         error_mark_node or the type is error_mark_node.
14288
14289 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
14290
14291         * config/rs6000/darwin-ldouble.c: Add big comment explaining
14292         exactly what is expected as a 'long double'.
14293         (_xlqadd): When a value to be returned is representable as a
14294         'double', just return it directly, do not construct it using a union.
14295         Also, correct final fixup.
14296         (_xlqmul): Likewise.
14297         (_xlqdiv): Likewise.
14298         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
14299
14300         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
14301
14302 2004-01-09  Richard Henderson  <rth@redhat.com>
14303
14304         * recog.c (constrain_operands): Validate mem operands.
14305
14306 2004-01-09   James E Wilson  <wilson@specifixinc.com>
14307
14308         * gcc.c (init_spec): Remove -lunwind from shared case.
14309         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
14310
14311 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
14312
14313         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
14314         * configure: Regenerate
14315
14316 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
14317
14318         PR c/11234
14319         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
14320         between function and object pointers.
14321         (digest_init): When comparing a pointer to function type to the
14322         target type, only apply TREE_TYPE once to the pointer to function
14323         type.
14324         * except.c (for_each_eh_label_1): Treat data as a pointer to a
14325         function pointer rather than casting it to a function pointer.
14326         (for_each_eh_label): Update caller.
14327         * recog.h (struct insn_data): Use a struct or union for output.
14328         * genoutput.c (output_insn_data): Update.
14329         * final.c (get_insn_template): Update.
14330
14331 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
14332
14333         * expr.h (expand_expr): Make it a macro, not a function.
14334         (expand_expr_real): New function.
14335         * expr.c (store_expr): Adjust logic for deciding whether or not to
14336         copy the value returned by expand_expr.
14337         (expand_expr): Rename to ...
14338         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
14339         calls to language hooks.
14340         * c-common.h (c_expand_expr): Adjust prototype.
14341         * c-common.c (c_expand_expr): Add alt_rtl parameter.
14342         * langhooks-def.h (lhd_expand_expr): Change prototype.
14343         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
14344         * langhooks.h (lang_hooks): Change type of expand_expr.
14345         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
14346         (last_expr_alt_rtl): Likewise.
14347         (expand_expr_stmt_value): Set last_expr_alt_rtl.
14348         (clear_last_expr): Clear it.
14349         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
14350         (expand_end_bindings): Save and restor last_expr_alt_rtl.
14351         * tree.def (RTL_EXPR): Give it an additional operand.
14352         * tree.h (RTL_EXPR_ALT_RTL): New macro.
14353
14354 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14355
14356         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
14357         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
14358
14359 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14360
14361         PR target/13380.
14362         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
14363         or (ne:SI (reg:CC 17) (const_int 0)).
14364         Be specific about modes wherever possible.
14365
14366 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14367
14368         * config/m32r/m32r.c (m32r_expand_block_move): Call
14369         gen_movestrsi_internal with two more arguments.
14370         (m32r_output_block_move): Adjust operand numbers.
14371         Properly update the source and destination pointers.
14372         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
14373         'r+'.  Change the set detinations to match_operand.
14374
14375 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14376
14377         * final.c (FIRST_INSN_ADDRESS): Remove.
14378         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
14379         * system.h (FIRST_INSN_ADDRESS): Poison.
14380         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
14381         * config/m32r/m32r-protos.h: Remove the prototype for
14382         m32r_first_insn_address.
14383         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
14384         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
14385         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
14386
14387 2004-01-09  J. Brobecker  <brobecker@gnat.com>
14388
14389         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
14390         we just created.
14391         (is_ada_subrange_type): DIEs for enumeration subtypes should be
14392         emitted as subrange types too.
14393         (subrange_type_die): Add handling of enumeration subtypes.
14394
14395 2004-01-08  Richard Henderson  <rth@redhat.com>
14396
14397         PR opt/12441
14398         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
14399         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
14400         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
14401         (ix86_address_cost): Be prepared for SUBREGed registers.
14402         (legitimate_address_p): Accept SUBREGed registers.
14403
14404 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
14405
14406         * Makefile.in: Rename configure.in to configure.ac
14407         * doc/sourcebuild.texi: Likewise.
14408         * configure: Regenerate.
14409         * config.in: Regenerate.
14410
14411 2004-01-08  Stuart Hastings  <stuart@apple.com>
14412
14413         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
14414
14415 2004-01-08  Jan Hubicka  <jh@suse.cz>
14416
14417         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
14418
14419 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
14420
14421         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
14422         (UNSPEC_FIX_TRUNC_TF): New constant.
14423         (movtf_internal): Make splitter active only when insn is active.
14424         (extenddftf2): Rewrite to properly load zero into low part.
14425         (extenddftf2_internal): New.
14426         (extendsftf2): Rewrite.
14427         (truncdftf2): Correct length.
14428         (floatditf2): Delete.
14429         (fix_trunc_helper): New.
14430         (fix_trunctfdi2): Use fix_trunc_helper.
14431         (fix_trunctfsi2): Likewise.fix_trunc
14432         (fix_trunctfsi2_internal): New.
14433
14434         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
14435         addresses are legitimate on Darwin even when flag_pic.
14436         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
14437         non-offsettable addresses for loads of TFmode constants.
14438
14439 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14440
14441         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
14442         variables in the appropriate bss section.
14443
14444 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
14445
14446         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
14447         target_flags has MASK_POWERPC64 when -m64.
14448         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
14449         to 620, 630, power3, power4 and rs64a entries.
14450         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
14451
14452 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
14453
14454         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
14455         floating-point constants.
14456
14457 2004-01-08  J. Brobecker  <brobecker@gnat.com>
14458
14459         * dwarf2out.c (subrange_type_die): Add context_die parameter.
14460         Create the subrange_type DIE using the given context DIE.
14461         (modified_type_die): Update call to subrange_type_die.
14462
14463 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
14464
14465         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
14466         Add multiple-include guard.
14467
14468 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
14469
14470         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
14471         all vector constant loadable by vsplt*.
14472         (output_vec_const_move): Likewise.
14473
14474 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14475
14476         PR c/6024
14477         * c-typeck.c (comptypes): Only treat enumerated types in the same
14478         translation unit as compatible with each other when they are the
14479         same type.
14480         * doc/extend.texi: Update.
14481
14482 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14483
14484         PR c/12165
14485         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
14486         array type from the array element type.
14487
14488 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
14489
14490         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
14491         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
14492         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
14493         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
14494         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
14495
14496 2004-01-06  Eric Christopher  <echristo@redhat.com>
14497
14498         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
14499         (DWARF2_DEBUGGING_INFO): Define.
14500         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
14501         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
14502         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
14503         for irix as.
14504         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
14505         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
14506         * config/mips/iris5gas.h: Ditto.
14507         (DBX_DEBUGGING_INFO): Remove.
14508         (DWARF2_DEBUGGING_INFO): Ditto.
14509         (MIPS_DEBUGGING_INFO): Ditto.
14510         (PREFERRED_DEBUGGING_TYPE): Ditto.
14511         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
14512         (PREFERRED_DEBUGGING_TYPE): Ditto.
14513         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
14514         * config/mips/elf64.h: Ditto.
14515
14516 2004-01-06  Jan Hubicka  <jh@suse.cz>
14517
14518         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
14519         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
14520
14521 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
14522
14523         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
14524         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
14525         * config/rs6000/darwin-ldouble.c: New.
14526
14527         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
14528         for constants.
14529         (constant_subword): Delete.
14530         * rtl.h (constant_subword): Delete prototype.
14531         (immed_double_const): Is not in varasm.c.
14532         * simplify-rtx.c (simplify_immed_subreg): New.
14533         (simplify_subreg): Use simplify_immed_subreg.
14534
14535         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
14536         than trying to generate RTL directly.
14537         (fix_trunctfsi2): Use expand_fix rather than trying to generate
14538         RTL directly.
14539
14540         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
14541
14542 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
14543
14544         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
14545         function into a separate macro.
14546         (read_only_data_section): Add void argument.
14547         (private_data_section): Same.
14548         (read_only_private_data_section): Same.
14549         (toc_section): Same.
14550
14551 2004-01-06  Jan Hubicka  <jh@suse.cz>
14552
14553         * invoke.texi:  Remove typo in last change.
14554
14555         PR target/10301
14556         * config.gcc: Accept opteron and athlon-64 as variants
14557         of k8.
14558         * i386.c (override_options): Likewise.
14559         * invoke.texi (i386 -mtune): Expand documentation.
14560
14561 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
14562
14563         * alias.c: Fix comment typos.
14564         * builtins.c: Likewise.
14565         * cfg.c: Likewise.
14566         * df.c: Likewise.
14567         * dominance.c: Likewise.
14568         * dwarf2out.c: Likewise.
14569         * emit-rtl.c: Likewise.
14570         * expr.c: Likewise.
14571         * final.c: Likewise.
14572         * fold-const.c: Likewise.
14573         * gcse.c: Likewise.
14574         * genattrtab.c: Likewise.
14575         * genrecog.c: Likewise.
14576         * gensupport.c: Likewise.
14577         * ggc-zone.c: Likewise.
14578         * integrate.c: Likewise.
14579         * local-alloc.c: Likewise.
14580         * loop.c: Likewise.
14581         * recog.c: Likewise.
14582         * regmove.c: Likewise.
14583         * reg-stack.c: Likewise.
14584         * reorg.c: Likewise.
14585         * rtlanal.c: Likewise.
14586         * rtl.h: Likewise.
14587         * sched-ebb.c: Likewise.
14588         * simplify-rtx.c: Likewise.
14589         * toplev.c: Likewise.
14590         * varasm.c: Likewise.
14591
14592 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
14593
14594         * doc/install.texi: Fix typos.
14595         * doc/invoke.texi: Likewise.
14596         * doc/md.texi: Likewise.
14597
14598 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14599
14600         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
14601
14602 2004-01-06  Jan Hubicka  <jh@suse.cz>
14603
14604         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
14605         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
14606         of MMX_REGPARM.
14607         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
14608         add MMX_REGPARM.
14609         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
14610         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
14611         (MMX_REGPARM_MAX): Similarly for -mmmx.
14612
14613 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14614
14615         * config/sh/linux.h: Fix comment formatting.
14616         * config/sh/netbsd-elf.h: Likewise.
14617         * config/sh/sh.c: Likewise.
14618         * config/sh/sh.h: Likewise.
14619         * config/sh/vxworks.h: Likewise.
14620
14621 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14622
14623         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
14624         * toplev.c (output_file_directive): Don't use
14625         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
14626
14627 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
14628
14629         * toplev.c: Fix broken checkin of 2003-12-30.
14630
14631 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
14632
14633         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
14634         (USING_MMAP): We don't support non-mmap.
14635         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
14636         large objects.
14637         (struct page_entry): Remove bytes_free.
14638         (struct page_table_chain): Remove.
14639         (struct globals): Remove page_table member.
14640         (loookup_page_table_entry): Function deleted.
14641         (set_page_table_entry): Ditto.
14642         (ggc_allocated_p): No longer need page table lookups.
14643         (ggc_marked_p): Ditto.
14644         (alloc_small_page): Don't care about bytes_free anymore.
14645         (alloc_large_page): Round up size.
14646         (ggc_alloc_zone_1): Mark large objects as such, and calculate
14647         their size the new way.
14648         Remove page table lookups and setting.
14649         (ggc_get_size): Calculate large object size the new way.
14650         (sweep_pages): Redo to account for fact that we no longer have
14651         bytes_free.
14652         (ggc_collect): No longer need to reincrement bytes_free.
14653         (ggc_pch_alloc_object): Handle new large objects properly.
14654         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
14655
14656 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14657
14658         * doc/invoke.texi: Remove a page break.
14659
14660 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14661
14662         * config/avr/avr.c (avr_output_function_prologue): Remove an
14663         extra pair of curly braces.
14664
14665 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14666
14667         * config/mn10300/mn10300.c: Fix comment formatting.
14668         * config/mn10300/mn10300.h: Likewise.
14669
14670 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14671
14672         * tree.h: Update documentation on nothrow_flag.
14673         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
14674         types.
14675
14676 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14677
14678         * doc/invoke.texi: Remove traces of dead ports.
14679
14680 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14681
14682         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
14683         option.
14684
14685 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14686
14687         PR target/12945
14688         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
14689         counter labels.
14690         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
14691         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
14692         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
14693         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
14694         (mips_symbol_insns): Don't trust the local/global classification.
14695         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
14696         (override_options): Make -mabicalls -fno-unit-at-a-time imply
14697         -mno-explicit-relocs.
14698         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
14699         between local and global symbols.
14700
14701 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14702
14703         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
14704         (mips_preferred_reload_class): Declare.
14705         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
14706         (EXTRA_CONSTRAINT): Update accordingly.
14707         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
14708         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
14709         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
14710         mips_dangerous_for_la25_p.
14711         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
14712         if mips_dangerous_for_la25_p.
14713
14714 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
14715
14716         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
14717         warning.
14718
14719 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
14720
14721         * configure.ac: Use AC_PROG_CPP_WERROR.
14722         * configure: Regenerate.
14723
14724 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
14725
14726         * .cvsignore: Add autom4te.cache.
14727
14728 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
14729
14730         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
14731         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
14732         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
14733         then architecture options, then ABI options.  General rewording.
14734
14735 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
14736
14737         PR c/3414
14738         * doc/extend.texi: Clarify definition of malloc attribute.
14739
14740 2004-01-04  Jan Hubicka  <jh@suse.cz>
14741
14742         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
14743         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
14744         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
14745         (cgraph_inline_p): Add extra argument reason.
14746         * cgraphunit.c: Minor formating fixes.
14747         cgraph_first_inlined_callee): New functions.
14748         (record_call_1): Record builtins too.
14749         (cgraph_analyze_function): Update inline_failed messages.
14750         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
14751         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
14752         (cgraph_check_inline_limits): Likewise; Add argument reason.
14753         (cgraph_set_inline_failed): New static function.
14754         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
14755         reasons.
14756         (cgraph_inline_p): Add new argument reason.
14757         * tree-inline.c (expand_call_inline):  Update warning.
14758
14759 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
14760
14761         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
14762         with modern equivalents.
14763         * configure: Regenerate.
14764
14765         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
14766         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
14767         * configure: Regenerate.
14768
14769         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
14770
14771         * configure.in: Rename to configure.ac.
14772         * configure.ac: Renamed from configure.in; make minimum necessary
14773         changes for autoconf 2.5x.
14774         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
14775         * configure: Regenerate with autoconf 2.57.
14776
14777 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
14778
14779         * config/mips/linux.h: Fix comment formatting.
14780         * config/mips/mips.c: Likewise.
14781         * config/mips/mips.h: Likewise.
14782         * config/mips/mips.md: Likewise.
14783         * config/mips/netbsd.h: Likewise.
14784         * config/mips/windiss.h: Likewise.
14785
14786 2004-01-02  Richard Henderson  <rth@redhat.com>
14787
14788         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
14789         for sse and 387; add suppression for mmx.
14790
14791 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
14792
14793         * loop.c (loop_optimize): Free all loops_info's mems.
14794
14795         * c-typeck.c (finish_init): Free spelling_base before
14796         setting it again.
14797
14798         * cfgloop.c (flow_loops_find): Always free the sbitmap
14799         headers.
14800
14801         * predict.c (estimate_probability): Free bbs after being
14802         done with it.
14803
14804 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14805
14806         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
14807         const_8bit_operand and call_address_operand.
14808
14809 2004-01-02  Jan Hubicka  <jh@suse.cz>
14810
14811         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
14812         when there is nothing to inline but warnings are requested.
14813         (cgraph_decide_inlining):  Fix memory leak.
14814
14815 2004-01-02  Jan Hubicka  <jh@suse.cz>
14816
14817         * expr.c (store_constructor):  Fix pasto in previous patch.
14818
14819 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14820
14821         * config/i386/cygming.h: Fix comment formatting.
14822         * config/i386/djgpp.h: Likewise.
14823         * config/i386/gthr-win32.c: Likewise.
14824         * config/i386/i386-interix.h: Likewise.
14825         * config/i386/i386.c: Likewise.
14826         * config/i386/i386.h: Likewise.
14827         * config/i386/openbsd.h: Likewise.
14828         * config/i386/winnt.c: Likewise.
14829         * config/i386/xm-mingw32.h: Likewise.
14830
14831 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
14832
14833         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
14834         copyright and last modification dates.
14835
14836 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
14837
14838         * doc/install.texi (Specific): Mention x86_64.
14839
14840 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
14841
14842         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
14843         Call force_operand on plus_constant result.
14844
14845 2004-01-01  Jan Hubicka  <jh@suse.cz>
14846
14847         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
14848         * expr.c (store_constructor): Use vec_init pattern.
14849         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
14850         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
14851         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
14852         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
14853         New patterns.
14854         (sse2_unpc?pd): Fix pattern.
14855         (sse2_movlpd): Kill.
14856         (sse2_movsd): Deal with movlpd too.
14857         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
14858         (ix86_expand_vector_init): New.
14859         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
14860         * md.texi (vec_set, vec_extract): Document
14861
14862 2003-12-31  Jan Hubicka  <jh@suse.cz>
14863
14864         PR opt/13473
14865         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
14866         ASM input operands
14867
14868         PR opt/12617
14869         * toplev.c (dump_file_index): Reorder ce3 and bbro.
14870         (dump_file): Likewise.
14871         (rest_of_compilation): Likewise.
14872
14873         PR debug/13367
14874         * cgraph.c (cgraph_function_possibly_inlined):  Even with
14875         flag_really_no_inline we inline always_inline functions.
14876         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
14877         for non-always_inline functions when there is flag_really_no_inline.
14878         (cgraph_decide_inlining): Limit work done when not inlining.
14879         (cgraph_decide_inlining_incrementally): Likewise.
14880         (cgraph_optimize_function): Check whether something got inlined.
14881         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
14882         extern inline functions when not inlining.
14883
14884         * opts.c (decode_options):  Disable crossjumping at -O1
14885         * invoke.texi (-O1): Document change.
14886
14887 See ChangeLog.10 for earlier changes.