OSDN Git Service

16e8da7a6ec35c18021f37164f466bc02b5010b6
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2
3         * tree-ssa-live (calculate_live_on_entry): Free saw_def
4         at the end of the function.
5
6         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
7         el at the end of the function.
8
9         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
10         bitmaps allocated with BITMAP_XMALLOC.
11
12         * loop-unswitch.c (unswitch_single_loop): Free bbs at
13         the end.
14
15         * final.c (shorten_branches): Free uid_shuid before
16         reallocating it.
17
18         * bb-reoder.c (connect_traces): Free cold_traces at the end.
19
20 2004-05-13  Jeff Law  <law@redhat.com>
21
22         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
23         rather than iterating through the blocks testing each bit in
24         livein to initialize the worklist.
25         (mark_def_sites): Remove useless checks of KILLS for virtual
26         operands.
27
28         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
29         new parameters for the statement and variable worklist as well
30         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
31         worklist recording interesting variables in the variable worklist
32         and bitmap.  Handle casts between integral and boolean types.
33         (substitute_single_use_vars): Accept new parameters for the statement
34         and variable worklist.  When a substitution is made add a new
35         entry to the statement worklist.  Handle casts between integral
36         and boolean types.
37         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
38         worklists to children.  Iterate until the statement worklist
39         is empty.
40
41 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
42
43         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
44         the end of the block.
45
46         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
47         with BITMAP_XMALLOC.
48
49         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
50         with BITMAP_XMALLOC.
51
52         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
53         Free nonzero_vars at the end of the function.
54
55         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
56         need to generate code instead of a NOP_EXPR.
57
58 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
59
60         * gcc.c (default_compilers): Fill out initializers for new Fortran
61         entries.
62
63 2004-05-13  Paul Brook  <paul@codesourcery.com>
64
65         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
66
67 2004-05-13  Paul Brook  <paul@codesourcery.com>
68
69         * config/arm/arm.c (arm_default_short_enums): New function.
70         (TARGET_DEFAULT_SHORT_ENUMS): Define.
71
72 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
73
74         Merge from tree-ssa-20020619-branch.
75
76         * Makefile.in (reload1.o-warn): Add.
77         (tree-alias-ander.o-warn): Add.
78         (GMPLIBS): Define.
79         (GMPINC): Define.
80         (BANSHEELIB): Define.
81         (BANSHEEINC): Define.
82         (TREE_DUMP_H): Define.
83         (TREE_SIMPLE_H): Define.
84         (TREE_FLOW_H): Define.
85         (LIBDEPS): Add BANSHEELIB.
86         (INCLUDES): Add BANSHEEINC and GMPINC.
87         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
88         c-mudflap.o and c-pretty-print.o.
89         (C_OBJS): Remove c-pretty-print.o.
90         (OBJS-common): Remove sibcall.o.
91         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
92         tree-ssa.o, tree-optimize.o, tree-simple.o,
93         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
94         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
95         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
96         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
97         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
98         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
99         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
100         tree-tailcall.o, gimple-low.o, tree-iterator.o,
101         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
102         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
103         tree-profile.o.
104         (OBJC-archive): Add tree-nomudflap.o.
105         (cc1): Add dependency on @TREEBROWSER@.
106         (c-decl.o): Add dependency on TREE_DUMP_H.
107         (c-dump.o): Likewise.
108         (c-common.o): Add dependency on tree-iterator.h
109         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
110         (gtype-desc.o): Add dependency on TREE_FLOW_H.
111         (tree.o): Add dependency on tree-iterator.h,
112         BASIC_BLOCK_H and TREE_FLOW_H.
113         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
114         (langhooks.o): Add dependency on TREE_SIMPLE_H.
115         (tree-alias-type.o, tree-alias-ander.o,
116         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
117         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
118         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
119         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
120         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
121         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
122         tree-nested.o, tree-iterator.o, tree-dfa.o,
123         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
124         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
125         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
126         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
127         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
128         tree-sra.o, tree-complex.o, tree-profile.o,
129         rtl-profile.o): New rules.
130         (function.o): Add dependency on basic-block.h
131         (expr.o): Add dependency on tree-iterator.h.
132         (sibcall.o): Remove.
133         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
134         (cfg.o): Add dependency on TIMEVAR_H.
135         (cfghooks.o): Add dependency on TREE_FLOW_H.
136         (reg-stack.o): Add dependency on basic-block.h.
137         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
138         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
139         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
140         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
141         tree-alias-type.h, tree-alias-common.h,
142         tree-alias-type.c, tree-alias-common.c,
143         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
144         rtl-profile.c and tree-nested.c.
145         (gt-tree-alias-common.h, gt-tree-mudflap.h,
146         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
147         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
148         gt-tree-cfg.h, gt-tree-nested.h): New rules.
149         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
150         * basic-block.h: Include predict.h
151         (struct edge_def): Add GTY marker.
152         Change field 'insns' to be a union of tree and rtx.
153         (EDGE_TRUE_VALUE): Define.
154         (EDGE_FALSE_VALUE): Define.
155         (EDGE_EXECUTABLE): Define.
156         (struct bb_ann_d): Forward declare.
157         (struct basic_block_def): Add GTY marker.
158         Remove fields head_tree and end_tree.
159         Add fields stmt_list, rbi and tree_annotations.
160         (struct reorder_block_def): Define.
161         (basic_block_info): Add GTY marker.
162         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
163         variables instead of macros.
164         (flow_call_edges_add): Remove declaration.
165         (make_eh_edge): Remove declaration.
166         (brief_dump_cfg, find_edge, tree_predicted_by_p,
167         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
168         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
169         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
170         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
171         (try_redirect_by_replacing_jump): Modfiy return type to
172         edge instead of bool.
173         * bb-reorder.c (copy_bb): Call duplicate_block
174         instead of cfg_layout_duplicate_bb.
175         (copy_bb_p): Call can_duplicate_block_p instead of
176         cfg_layout_can_duplicate_bb_p.
177         * bitmap.c (bitmap_first_set_bit): Abort if word
178         wasn't found.
179         (bitmap_last_set_bit): Likewise.
180         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
181         (DEF_FUNCTION_TYPE_3): Add.
182         * builtins.c (c_strlen): Make extern.
183         (builtin_save_expr): New.
184         (expand_builtin_nonlocal_goto): New.
185         (expand_builtin_constant_p): Remove.
186         (expand_builtin_mathfn): Call builtin_save_expr instead
187         of save_expr.
188         (expand_builtin_mathfn_2): Likewise.
189         (expand_builtin_strcmp): Likewise.
190         (expand_builtin_strncmp): Likewise.
191         (expand_builtin_strcat): Likewise.
192         (fold_builtin_cabs): Likewise.
193         (expand_builtin_alloca): Don't trigger if -fmudflap is
194         given.
195         (build_string_literal): Set TREE_INVARIANT on new node.
196         (expand_builtin_profile_fun): New.
197         (round_trampoline_addr): New.
198         (expand_builtin_init_trampoline): New.
199         (expand_builtin_adjust_trampoline): New.
200         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
201         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
202         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
203         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
204         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
205         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
206         Handle.
207         (fold_builtin_expect): New.
208         (fold_builtin_isascii): Don't return non-constant results
209         in GIMPLE form.
210         (fold_builtin_isdigit): Likewise.
211         (fold_builtin_1): New.
212         (fold_builtin): Call it.
213         (build_function_call_expr): Update call to build a new
214         CALL_EXPR.
215         (purge_builtin_constant_p): Remove.
216         (simplify_builtin, simplify_builtin_memcmp,
217         simplify_builtin_strcmp, simplify_builtin_strncmp,
218         simplify_builtin_strpbrk, simplify_builtin_strstr,
219         simplify_builtin_strchr, simplify_builtin_strrchr,
220         simplify_builtin_strcat, simplify_builtin_strncat,
221         simplify_builtin_strspn, simplify_builtin_strcspn,
222         simplify_builtin_next_arg, simplify_builtin_va_start,
223         simplify_builtin_sprintf): New.
224         * builtins.def (BUILT_IN_STACK_ALLOC,
225         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
226         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
227         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
228         BUILT_IN_PROFILE_FUNC_EXIT): Define.
229         * c-common.c: Include tree-iterator.h and hashtab.h.
230         (lang_statement_code_p): Declare.
231         (lang_gimplify_stmt): Declare.
232         (fix_string_type): Set TREE_INVARIANT for value.
233         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
234         (c_type_hash): New.
235         (c_common_get_alias_set): Handle multiple type nodes
236         referring to "the same" type, currently for C90 only.
237         (c_add_case_label): Use create_artificial_label.
238         (finish_label_address_expr): Don't set TREE_CONSTANT on
239         result.
240         (c_expand_expr): Don't handle STMT_EXPR.
241         (handle_alias_attribute): Marke aliased variables to be
242         TREE_STATIC.
243         (handle_nonnull_attribute): Initialize arg_num.
244         (check_function_nonnull): Likewise.
245         (c_walk_subtrees): New.
246         (c_estimate_num_insns_1): Don't handle
247         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
248         (c_decl_uninit_1): Remove.
249         (c_decl_uninit): Remove.
250         (c_warn_unused_result): New.
251         * c-common.def (ASM_STMT): Change number of operands
252         to 4.
253         (FILE_STMT): Remove.
254         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
255         Remove.
256         (lang_gimplify_stmt): Add.
257         (expand_stmt): Remove.
258         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
259         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
260         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
261         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
262         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
263         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
264         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
265         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
266         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
267         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
268         genrtl_compound_stmt, genrtl_asm_stmt,
269         genrtl_cleanup_stmt, c_decl_uninit): Remove.
270         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
271         c_tree_chain_matters_p, c_warn_unused_result,
272         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
273         Declare.
274         * c-convert.c (convert): Make convert work when
275         converting to compatible types across translation unit.
276         * c-decl.c: Include langhooks.h, tree-mudflap.h,
277         tree-simple.h, diagnostic.h and tree-dump.h
278         (merge_decls): Initialize oldtype to NULL.
279         (finish_decl): Use DECL_HARD_REGISTER instead of
280         DECL_C_HARD_REGISTER.
281         (check_bitfield_type_and_width): Check for null
282         lang_type_specific when check the precision of an enum.
283         (grokdeclarator): Immediately layout an ARRAY_TYPE used
284         in a pointer-to-array declarator.
285         (finish_struct): Clear allocated struct lang_type.
286         (finish_enum): Set enum_min and enum_max.  Set
287         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
288         not to the enumerators.
289         (set_decl_nonlocal): New.
290         (store_parm_decls): Use it via walk_tree.
291         (c_finalize): New.
292         (finish_function): When !targetm.have_ctors_dtors,
293         record static constructors and destructors here...
294         (c_expand_body_1): ... not here.
295         (c_expand_decl): Rename from c_expand_decl_stmt.
296         Handle all C-specific expansion semantics.
297         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
298         STMT_LINENO.
299         * c-format.c (handle_format_arg_attribute): Initialize
300         format_num.
301         * c-lang.c: Include tree-inline.h
302         (LANG_HOOKS_EXPAND_DECL,
303         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
304         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
305         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
306         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
307         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
308         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
309         (c_types_compatible_p): New.
310         * c-mudflap.c: New file.
311         * c-objc-common.c: Include tree-mudflap.h
312         (start_cdtor, finish_cdtor): Collapse
313         together into
314         (build_cdtor): ...here.  Update to construct a complete tree
315         for the function.  No need to call push_scope, pop_scope, or
316         clear_last_expr, or set current_function_cannot_inline.
317         (c_missing_noreturn_ok_p): Change prototype to return
318         bool.
319         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
320         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
321         opts.c.
322         (c_common_post_options): Don't ever use rtl inlining.
323         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
324         * c-pragma.c (handle_pragma_redefine_extname): Define
325         always.
326         (init_pragma): Activate #pragma redefine_extname for mudflap.
327         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
328         (pp_c_initializer): Accept any type CONSTRUCTOR.
329         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
330         COMPLEX_TYPE.
331         (decl_name_str): New local function.
332         (pp_c_direct_declarator): Call it.
333         (pp_c_primary_expression): Call it.
334         (pp_c_id_expression): Call it.
335         (pp_c_statement): Call it.
336         (print_c_tree): Create new pp object.
337         * c-pretty-print.h (pp_c_tree_decl_identifier,
338         print_c_tree): Declare.
339         * c-semantics.c: Include langhooks.h
340         (lang_expand_stmt, lang_expand_decl_stmt,
341         find_reachable_label_1, find_reachable_label,
342         expand_unreachable_if_stmt, expand_unreachable_stmt,
343         genrtl_do_stmt_1): Remove.
344         (begin_stmt_tree): Don't check for changed filename.
345         Call annotate_with_locus.
346         (finish_stmt_tree): Don't set line for end of function.
347         (build_stmt): Don't check type nodes for
348         side effects.
349         (build_stmt): Set TREE_SIDE_EFFECTS.
350         Set EXPR_LOCUS instead of STMT_LINENO.
351         (lang_expand_stmt, lang_expand_decl_stmt,
352         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
353         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
354         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
355         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
356         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
357         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
358         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
359         find_reachable_label_1, expand_unreachable_if_stmt,
360         expand_unreachable_stmt): Remove.
361         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
362         * c-simplify.c: New file.
363         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
364         (struct lang_type): Add fields enum_min and enum_max.
365         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
366         (c_expand_decl, c_missing_noreturn_ok_p,
367         c_types_compatible_p): Declare.
368         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
369         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
370         (default_function_array_conversion): Rely on build to
371         set TREE_CONSTANT.
372         (parser_build_binary_op, pointer_diff): Likewise.
373         (build_unary_op, build_binary_op): Likewise.
374         (build_array_ref):
375         (build_external_ref): Set TREE_INVARIANT.
376         (build_c_cast, pop_init_level): Likewise.
377         (process_init_element): Use ASM_VOLATILE_P.
378         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
379         (c_finish_case): Call c_do_switch_warnings.
380         * c.opt (fdump-): Remove.
381         * calls.c (try_to_integrate): Remove.
382         (prepare_call_address): Replace fndecl arg with a
383         precomputed static chain value.
384         (emit_call_1): New argument for full call expr.
385         (flags_from_decl_or_type): Call special_function_p.
386         (initialize_argument_information): Add argument
387         may_tailcall.
388         (purge_reg_equiv_notes): New.
389         (expand_call): Do not try to expand calls inline.
390         (fixup_tail_calls): New.
391         * cfg.c: Include timevar.h and ggc.h.
392         (bb_pool, edge_pool): Remove.
393         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
394         (entry_exit_blocks): Remove.
395         (rbi_pool): Declare.
396         (init_flow): Do not create pools.
397         Allocate entry/exit block.
398         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
399         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
400         (unlink_block): Clear b->prev_bb and b->next_bb.
401         (compact_blocks): Clear all slots of BASIC_BLOCK array.
402         (dump_flow_info): Work on trees too.
403         (dump_cfg_bb_info): New.
404         (brief_dump_cfg): New.
405         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
406         (find_edge): New.
407         * cfgbuild.c (rtl_make_eh_edge): Rename from
408         make_eh_edge.  Update all users.
409         (find_basic_blocks): Don't call VARRAY_FREE on
410         basic_block_info.
411         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
412         and newpos2.
413         (delete_unreachable_blocks): Return changed status.
414         (merge_seq_blocks): New.
415         * cfghooks.c: Include tree-flow.h
416         (tree_register_cfg_hooks, ir_type): New.
417         (redirect_edge_and_branch): Change return type to edge.
418         (predict_edge, predicted_by_p, can_duplicate_block_p,
419         duplicate_block, block_ends_with_call_p,
420         block_ends_with_condjump_p, flow_call_edges_add): New.
421         * cfghooks.h (redirect_edge_and_branch): Change return
422         type to edge.
423         (predict_edge, predicted_by_p, can_duplicate_block_p,
424         duplicate_block, block_ends_with_call_p,
425         block_ends_with_condjump_p, flow_call_edges_add): Declare.
426         (redirect_edge_and_branch): Change return type to edge.
427         (struct cfg_hooks): Add fields block_ends_with_call_p,
428         block_ends_with_condjump_p, flow_call_edges_add,
429         predict_edge, predicted_by_p, can_duplicate_block_p and
430         duplicate_block.
431         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
432         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
433         (fixup_reorder_chain): Use initialize_bb_rbi.
434         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
435         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
436         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
437         (insn_locators_initialize): Use new info about blocks.
438         * cfglayout.h (typedef struct reorder_block_def): Moved to
439         basic_block.h.
440         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
441         removed.
442         * cfgloop.c: Include tree.h and tree-flow.h.
443         * cfgloop.h (create_loop_notes): Declare.
444         * cfgloopmanip.c (create_loop_notes): New.
445         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
446         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
447         and duplicate_block fields.
448         (create_basic_block_structure): Don't look at
449         RTX_INTEGRATED_P.
450         (rtl_block_ends_with_call_p): New.
451         (rtl_block_ends_with_condjump_p): New.
452         (need_fake_edge_p): Moved from cfganal.c.
453         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
454         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
455         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
456         (cfg_layout_rtl_cfg_hooks): Ditto.
457         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
458         functions to be reachable.
459         * cgraphunit.c (decide_is_function_needed):
460         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
461         inline functions don't need to be output.
462         (cgraph_assemble_pending_functions): Don't do anything
463         special for nested functions.
464         (cgraph_mark_functions_to_output): Likewise.
465         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
466         (cgraph_analyze_function): Use estimate_num_insns.
467         (cgraph_mark_functions_to_output): Likewise.
468         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
469         (cgraph_expand_function): Allow functions to not be
470         emitted.
471         (cgraph_remove_unreachable_nodes):
472         (cgraph_recursive_inlining_p): Simplify.
473         (lookup_recursive_calls,
474         cgraph_decide_recursive_inlining): New.
475         (cgraph_decide_inlining_*): Update calls of
476         cgraph_mark_inline.
477         * combine.c (get_pos_from_mask): Always set *plen.
478         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
479         ftree-based-profiling, ftree-ccp, ftree-ch,
480         ftree-combine-temps, ftree-copyrename, ftree-dce,
481         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
482         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
483         ftree-lrs): Add.
484         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
485         Undefine.
486         * configure.ac: Add --enable-tree-browser option.
487         Add --with-libbanshee option.
488         Add GMPLIBS and GMPINC.
489         * configure: Regenerate.
490         * coverage.c (tree_ctr_tables): New.
491         (coverage_counter_alloc): Use it.
492         (build_ctr_info_value): Ditto.
493         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
494         (tree_coverage_counter_ref): New.
495         * coverage.h (coverage_counter_ref): Remove declaration.
496         (rtl_coverage_counter_ref): Declare.
497         (tree_coverage_counter_ref): Declare.
498         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
499         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
500         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
501         (struct cse_basic_block_data): Rename enum values to not
502         conflict with profile.h; update all uses.
503         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
504         in comments.
505         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
506         * diagnostic.h (debug_output_buffer, dump_generic_node,
507         print_generic_stmt, print_generic_stmt_indented,
508         print_generic_expr, print_generic_decl,
509         debug_generic_expr, debug_generic_stmt, debug_c_tree):
510         Declare.
511         * dominance.c: Cache immediate dominators.
512         * domwalk.c: New file.
513         * domwalk.h: New file.
514         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
515         (gen_subprogram_die): Generate a DIE for a named
516         return value.
517         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
518         (add_location_or_const_value_attribute): Likewise.
519         (add_bound_info): Likewise.
520         (gen_decl_die): Likewise.
521         * emit-rtl.c (maybe_set_first_label_num): New.
522         (copy_most_rtx): Don't copy the integrated flag.
523         Copy the new return_val flag.
524         * et-forest.c (MAX_NODES): Define.
525         (record_path_before_1): Abort if len is greater than
526         MAX_NODES.
527         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
528         gen_eh_region_catch, gen_eh_region_allowed,
529         gen_eh_region_must_not_throw, get_eh_region_number,
530         get_eh_region_may_contain_throw, get_eh_region_tree_label,
531         set_eh_region_tree_label, expand_resx_expr): New.
532         (expand_eh_region_start, expand_start_catch): Use them.
533         (expand_end_catch): Tidy.
534         (note_eh_region_may_contain_throw): Take region argument.
535         (note_current_region_may_contain_throw): New.
536         (get_exception_filter): Export.
537         (collect_eh_region_array): Export.
538         (remove_unreachable_regions): Check ERT_TRY based on reachability
539         of catches, not reachability of continue_label.  Never remove
540         ERT_MUST_NOT_THROW regions.
541         (collect_rtl_labels_from_trees): New.
542         (convert_from_eh_region_ranges): Use it.
543         (connect_post_landing_pads): Handle dying cleanups.
544         (struct reachable_info): Add callback data.
545         (add_reachable_handler): Invoke the callback.
546         (foreach_reachable_handler): New.
547         (reachable_handlers): Use it.
548         (arh_to_landing_pad, arh_to_label): New.
549         (can_throw_internal_1): Split out from can_throw_internal.
550         (can_throw_external_1): Similarly.
551         * except.h: Update.
552         * explow.c (emit_stack_save): Remove savearea mode check.
553         (update_nonlocal_goto_save_area): New.
554         (allocate_dynamic_stack_space): Use it.
555         (probe_stack_range): Never emit loop notes.
556         * expmed.c (extract_fixed_bit_field): Always propagate the
557         target for the shift if it is a REG.
558         * expr.c: Include tree-iterator.h
559         (is_zeros_p): Remove.
560         (categorize_ctor_elements_1, categorize_ctor_elements): New.
561         (count_type_elements): New.
562         (mostly_zeros_p): Use them.
563         (expr_wfl_stack): Remove.
564         (convert_move): Do nothing if to and from are the same.
565         (emit_block_move_via_loop): Don't emit LOOP notes.
566         (emit_move_insn): Don't handle CONSTANT_P_RTX.
567         (emit_move_insn_1): Don't generate inline warnings.
568         (expand_vars, expand_var): Split from ...
569         (expand_expr_1): ... here.
570         (expand_expr_real, expand_expr_real_1):  Use new macros
571         EXPR_LOCATION and EXPR_HAS_LOCATION.
572         * expr.h (simplify_builtin_fputs,
573         simplify_builtin_strcpy, simplify_builtin_strncpy,
574         expand_var, fixup_tail_calls,
575         update_nonlocal_goto_save_area): Declare.
576         (lookup_static_chain, expand_inline_function,
577         mark_seen_cases): Remove.
578         (prepare_call_address): Change type of 2nd argument to
579         rtx.
580         * final.c (profile_function): Update static chain test.
581         (final): Don't look at RTX_INTEGRATED_P.
582         * flags.h (flag_mudflap, flag_mudflap_threads,
583         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
584         flag_tree_dce, flag_tree_combine_temps,
585         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
586         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
587         flag_tree_points_to): Declare.
588         (enum pta_type): Declare.
589         * flow.c (lang_missing_noreturn_ok_p): Remove.
590         (check_function_return_warnings): Remove.
591         (update_life_info): Update comments.
592         (free_basic_block_vars): Don't call VARRAY_FREE for
593         basic_block_info.
594         (regno_uninitialized): Remove.
595         * fold-const.c (int_const_binop): Make extern.
596         (non_lvalue): Rely on build to set TREE_CONSTANT.
597         (operand_equal_p): Replace only_const argument with
598         flags.  Allow pure functions if OEP_PURE_SAME.
599         (fold): Use OEP_ONLY_CONST.
600         (invert_truthvalue) <NOP_EXPR> Break if argument is of
601         boolean type.
602         (fold_relational_hi_lo,
603         nondestructive_fold_binary_to_constant,
604         nondestructive_fold_unary_to_constant,
605         fold_read_from_constant_string): New.
606         * function.c (struct function): Remove calls_constant_p.
607         (current_function_calls_constant_p): Remove.
608         (inline_function_decl): Remove.
609         (put_var_into_stack): Don't use it.
610         (fix_lexical_addr): Likewise.
611         (inline_function_decl): Remove extern declaration.
612         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
613         (trampolines_created): Move to varasm.c.
614         (free_after_compilation): Update for removed fields.
615         (allocate_struct_function): Likewise.
616         (delete_handlers, lookup_static_chain): Remove.
617         (fix_lexical_addr): Don't consider non-local variable refs.
618         (trampoline_address): Remove.
619         (round_trampoline_addr): Move to builtins.c.
620         (adjust_trampoline_addr): Remove.
621         (expand_function_start): Update for changes to static chain
622         and nonlocal goto handling.
623         (initial_trampoline): Move to varasm.c.
624         (expand_function_end): Don't build trampolines or kill
625         unreferenced nonlocal goto labels.
626         (free_after_compilation): Don't set it.
627         (expand_function_end): Likewise.
628         (setjmp_vars_warning): Rename from
629         uninitialized_vars_warning, remove uninitialized vars warning.
630         (uninitialized_vars_warning): Remove old comment
631         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
632         and do not call the langhook.
633         (expand_function_start, expand_function_end): Don't do
634         function instrumentation here.
635         (clear_block_marks): Rename from reorder_blocks_0, export.
636         (blocks_nreverse): Export.
637         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
638         of rtl.
639         (reset_block_changes, record_block_change, finalize_block_changes,
640         check_block_change, free_block_changes): New functions.
641         (assign_parms): Setting of current_function_stdarg
642         moved ...
643         (allocate_struct_function): ... here.
644         * function.h (struct function): Remove x_nonlocal_labels,
645         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
646         x_context_display, x_trampoline_list, needs_context.
647         Add static_chain_decl, nonlocal_goto_save_area.
648         (struct function): Remove x_clobber_return_insn.
649         Add tail_call_emit field, last_label_uid,
650         unexpanded_var_list, dont_emit_block_notes,
651         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
652         (clear_block_marks): Declare.
653         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
654         (mfwrap_spec, mflib_spec): Declare.
655         (cpp_unique_options, cc1_options): Ditto.
656         (default_compilers): Add .F and .f90.
657         (static_specs): Add mfwrap and mflib.
658         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
659         CONSTANT_RTX_P.
660         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
661         Update to match insns field in struct edge_def.
662         * gdbinit.in (pgs, pge): Define.
663         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
664         instead of the integrated flag.
665         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
666         * gengtype-yacc.y (bitfieldlen): Add empty action.
667         (struct_fields): Accept unnamed bitfields.
668         (bitfieldlen): Split from ...
669         (bitfieldopt): ... here.
670         * gengtype.c (ifiles): Add tree-alias-type.h and
671         tree-flow.h.
672         * genrecog.c (validate_pattern): Do not handle
673         CONSTANT_P_RTX.
674         * gimple-low.c: New file.
675         * gimplify.c: New file.
676         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
677         (restore_line_notes): Do not set RTX_INTEGRATED_P.
678         * ifcvt.c (dead_or_predicable): Initialize local variable
679         'earliest'.
680         * input.h (expr_wfl_stack): Remove.
681         * integrate.c (INTEGRATE_THRESHOLD): Remove.
682         (setup_initial_hard_reg_value_integration): Likewise.
683         (initialize_for_inline): Likewise.
684         (note_modified_parmregs): Likewise.
685         (integrate_parm_decls): Likewise.
686         (process_reg_param): Likewise.
687         (save_parm_insns): Likewise.
688         (copy_insn_list): Likewise.
689         (copy_insn_notes): Likewise.
690         (compare_blocks): Likewise.
691         (find_block): Likewise.
692         (inlining): Likewise.
693         (function_cannot_inline_p): Likewise.
694         (parmdecl_map): Likewise.
695         (in_nonparam_insns): Likewise.
696         (save_for_inline): Likewise.
697         (FIXED_BASE_PLUS): Likewise.
698         (expand_inline_function): Likewise.
699         (copy_rtx_and_substitute): Don't look at map->integrating,
700         map->inline_target, and inlining, since we are never copying
701         for integrating.
702         Don't abort on RTX_INTEGRATED_P.
703         (old_fun): Remove.
704         (output_inline_function): Remove.
705         * integrate.h (struct inline_map): Remove fields integrating,
706         block_map, leaf_reg_map, inline_target, and local_return_label.
707         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
708         copy_loop_headers, never_reached_warning): Removed.
709         (any_uncondjump_p): Reject nonlocal goto.
710         * langhooks-def.h (lhd_types_compatible_p,
711         lhd_expand_decl, lhd_gimplify_expr): Declare.
712         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
713         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
714         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
715         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
716         LANG_HOOKS_GIMPLIFY_EXPR,
717         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
718         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
719         LANG_HOOKS_GIMPLIFY_EXPR,
720         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
721         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
722         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
723         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
724         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
725         LANG_HOOKS_DECL_UNINIT,
726         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
727         * langhooks.c: Include tree-simple.h.
728         (lhd_expand_decl): New.
729         (lhd_types_compatible_p): New.
730         (lhd_decl_uninit): Remove.
731         (lhd_gimplify_expr): New.
732         * langhooks.h (struct lang_hooks_for_rtl_expansion):
733         Remove.
734         (struct lang_hooks_for_functions): Add field
735         missing_noreturn_ok_p.
736         (struct lang_hooks): Add field expand_decl,
737         types_compatible_p, gimplify_expr and
738         gimple_before_inlining.
739         Remove fields decl_uninit and rtl_expand
740         * opts.c (decode_options): Set flag_tree_ccp,
741         flag_tree_dce, flag_tree_dom, flag_tree_dse,
742         flag_tree_pre, flag_tree_ter,
743         flag_tree_live_range_split, flag_tree_sra,
744         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
745         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
746         OPT_fmudflapth, OPT_fmudflapir,
747         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
748         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
749         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
750         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
751         OPT_ftree_points_to_ and OPT_ftree_pre.
752         * output.h (regno_uninitialized, find_basic_blocks,
753         cleanup_cfg, delete_unreachable_blocks,
754         check_function_return_warnings): Remove.
755         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
756         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
757         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
758         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
759         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
760         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
761         Define.
762         * passes.c (rest_of_decl_compilation):
763         (rest_of_handle_sibling_calls): Remove.
764         (rest_of_handle_inlining): Remove.
765         (rest_of_handle_gcse): Do not run
766         purge_builtin_constant_p.
767         (rest_of_compilation): Update.
768         Do not call copy_loop_headers.
769         Do rtl-based profiling only when
770         !flag_tree_based_profiling.  Register rtl-based profiling
771         hooks.
772         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
773         (predicted_by_p): Rename to ...
774         (rtl_predicted_by_p): .. this one; make global
775         (tree_predicted_by_p): New.
776         (dump_prediction): Add FILE argument.
777         (predict_edge): Rename to ...
778         (rtl_predict_edge): .. this one.
779         (tree_predict_edge): New.
780         (combine_predictions_for_insn): Update calls of predict_edge.
781         (predict_loops): Break out from ...
782         (estimate_probability): ... here; update comments; move updating
783         of unknown probabilities from ...
784         (estimate_bb_frequencies): ... here.
785         (combine_predictions_for_bb): New.
786         (tree_predict_by_opcode): New.
787         (tree_estimate_probability): New.
788         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
789         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
790         * predict.h: Add include guard.
791         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
792         * pretty-print.c (pp_write_text_to_stream): Make extern.
793         * pretty-print.h (pp_write_text_to_stream): Declare.
794         * print-rtl.c (print_rtx): Don't print the integrated flag.
795         Print the return_val flag.
796         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
797         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
798         Remove support for EXPR_WITH_FILE_LOCATION nodes.
799         (print_node): Print TREE_INVARIANT and TREE_VISITED.
800         * profile.c: Include cfghooks.h, tree-flow.h.
801         (profile_hooks): New.
802         (profile_dump_file): New.
803         (instrument_edges): Use hooks instead of RTL-specific code.
804         (instrument_values): Ditto.
805         (get_exec_counts): Ditto.
806         (compute_branch_probabilities): Ditto.
807         (compute_value_histograms): Ditto.
808         (branch_prob): Ditto.
809         (find_spanning_tree): Ditto.
810         (end_branch_prob): Ditto.
811         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
812         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
813         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
814         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
815         (tree_register_profile_hooks): New.
816         (rtl_register_profile_hooks): New.
817         * ra-rewrite.c (rewrite_program): Clear variable info.
818         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
819         * regs.h: Add include guards.
820         * reload.c (decompose): Clear val using memset.
821         * rtl.def (CONSTANT_P_RTX): Remove.
822         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
823         (copy_loop_headers): Remove.
824         (struct rtx_def): Replace the integrated flag with the
825         return_val flag.
826         (maybe_set_first_label_num): Declare.
827         (init_branch_prob): Move declaration to value-prof.h.
828         (end_branch_prob): Ditto.
829         (branch_prob): Ditto.
830         (never_reached_warning): Don't declare it.
831         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
832         (hoist_insn_to_edge): Update to match field insns in
833         struct edge_def.
834         * sbitmap.c (sbitmap_realloc): New.
835         * sbitmap.h (sbitmap_realloc): Declare.
836         * sibcall.c: Remove file.
837         * simplify-rtx.c (simplify_rtx): Do not handle
838         CONSTANT_P_RTX.
839         * stmt.c (parse_output_constraint): Don't warn for read-write
840         memory operand.
841         (tail_recursion_args): Use types_compatible_p langhook.
842         (force_label_rtx): Don't look at inline_function_decl.
843         (label_rtx): Set LABEL_PRESERVE_P appropriately.
844         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
845         (declare_nonlocal_label): Remove.
846         (expand_goto): Don't handle nonlocal gotos.
847         (expand_nl_handler_label): Remove.
848         (expand_nl_goto_receivers): Remove.
849         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
850         update_nonlocal_goto_save_area.
851         (expand_expr_stmt_value): Check TREE_NO_WARNING.
852         (warn_if_unused_value): Likewise.
853         (expand_start_loop, expand_loop_continue_here,
854         expand_end_loop): Don't create loop notes.
855         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
856         mark_seen_cases, check_for_full_enumeration_handling): Remove.
857         (expand_end_case_type): Don't do warn_switch handling.
858         (pushcase, pushcase_range) Update add_case_node calls.
859         (add_case_node): Add dont_expand_label argument.
860         (same_case_target_p): Don't search rtl.
861         (expand_start_bindings_and_block, expand_end_bindings):
862         Don't emit block notes when dont_emit_block_notes.
863         (using_eh_for_cleanups_p): Export.
864         (expand_return): Allow any typed rhs.
865         (expand_stack_alloc): New.
866         (expand_stack_save, expand_stack_restore): New.
867         (containing_blocks_have_cleanups_or_stack_level): New
868         function.
869         (asm_op_is_mem_input): New fn.
870         (expand_asm_expr): New fn.
871         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
872         nodes.
873         * stor-layout.c (layout_type): Just return if type is
874         error_mark_node.
875         (update_alignment_for_field): Export.
876         (variable_size): We don't care about global_bindings_p if
877         the frontend doesn't want a list of the expressions.
878         * system.h: Poison INTEGRATE_THRESHOLD.
879         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
880         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
881         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
882         TV_TREE_SSA_OTHER, TV_TREE_OPS,
883         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
884         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
885         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
886         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
887         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
888         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
889         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
890         TV_CONTROL_DEPENDENCES): Define.
891         * toplev.c: Include tree-alias-common.h
892         (current_file_decl, flag_mudflap, flag_mudflap_threads,
893         flag_mudflap_ignore_reads, flag_tree_based_profiling,
894         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
895         flag_tree_dce, flag_tree_ch, flag_tree_sra,
896         flag_tree_combine_temps, flag_tree_ter,
897         flag_tree_live_range_split, flag_tree_dom,
898         flag_tree_copyrename, flag_tree_dse): Declare.
899         (f_options): Add tree-based-profiling, tree-gvn,
900         tree-pre, tree-ccp, tree-dce,
901         tree-dominator-opts, tree-copyrename, tree-dse,
902         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
903         (wrapup_global_declarations): Don't output nested inlined functions.
904         (general_init): Call init_tree_optimization_passes.
905         (process_options): Sorry for -ftree-based-profiling plus
906         -ftest-coverage or -fprofile-values.
907         * toplev.h (init_tree_optimization_passes,
908         flag_tree_based_profiling): Declare.
909         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
910         * tree-alias-ander.c: New file.
911         * tree-alias-ander.h: New file.
912         * tree-alias-common.c: New file.
913         * tree-alias-common.h: New file.
914         * tree-alias-type.c: New file.
915         * tree-alias-type.h: New file.
916         * tree-browser.c: New file.
917         * tree-browser.def: New file.
918         * tree-cfg.c: New file.
919         * tree-complex.c: New file.
920         * tree-dfa.c: New file.
921         * tree-dump.c (dump_enable_all): New.
922         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
923         (dump_node): Remove const from field suffix and swtch.
924         (dump_files): Add null entry, .generic, .nested, .vcg,
925         .xml and a match-all entry.
926         (extra_dump_files, extra_dump_files_in_use,
927         extra_dump_files_alloced): Declare
928         (dump_option_value_info): Add raw, details, stats,
929         blocks, vops, lineno, uid and all.
930         (dump_register): New.
931         (get_dump_file_info): New.
932         (dump_begin): Call it.
933         Do nothing for TDI_none.
934         (dump_begin): Include phase number in dump filename.
935         (dump_enable_all): New.
936         (dump_switch_p_1): Split out from dump_switch_p.
937         (dump_switch_p): Handle extra_dump_files.
938         Start our scan at TDI_none + 1.
939         If -fdump-tree-all was given, call dump_enable_all.
940         * tree-dump.h: Include splay-tree.h.
941         (dump_function, dump_function_to_file, dump_register):
942         Declare.
943         * tree-eh.c: New file.
944         * tree-flow-inline.h: New file.
945         * tree-flow.h: New file.
946         * tree-inline.c: Re-write to handle inlining on GIMPLE.
947         * tree-inline.h (walk_tree,
948         walk_tree_without_duplicates): Move to tree.h.
949         (estimate_num_insns): Declare.
950         * tree-into-ssa.c: New file.
951         * tree-iterator.c: New file.
952         * tree-iterator.h: New file.
953         * tree-mudflap.c: New file.
954         * tree-mudflap.h: New file.
955         * tree-nested.c: New file.
956         * tree-nomudflap.c: New file.
957         * tree-nrv.c: New file.
958         * tree-optimize.c (dump_flags, vars_to_rename,
959         in_gimple_form, all_passes, pass_gimple,
960         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
961         (execute_gimple, execute_rebuild_bind,
962         gate_all_optimizations, execute_del_cfg,
963         register_one_dump_file, register_dump_files, dup_pass_1,
964         init_tree_optimization_passes, execute_todo,
965         execute_one_pass, execute_pass_list): New.
966         (clear_decl_rtl): Remove.
967         (tree_rest_of_compilation): Update to use tree
968         optimizers.
969         * tree-outof-ssa.c: New file.
970         * tree-pass.h: New file.
971         * tree-phinodes.c: New file.
972         * tree-pretty-print.c: New file.
973         * tree-profile.c: New file.
974         * tree-simple.c: New file.
975         * tree-simple.h: New file.
976         * tree-sra.c: New file.
977         * tree-ssa-alias.c: New file.
978         * tree-ssa-ccp.c: New file.
979         * tree-ssa-copy.c: New file.
980         * tree-ssa-copyrename.c: New file.
981         * tree-ssa-dce.c: New file.
982         * tree-ssa-dom.c: New file.
983         * tree-ssa-dse.c: New file.
984         * tree-ssa-forwprop.c: New file.
985         * tree-ssa-live.c: New file.
986         * tree-ssa-live.h: New file.
987         * tree-ssa-loop.c: New file.
988         * tree-ssa-operands.c: New file.
989         * tree-ssa-operands.h: New file.
990         * tree-ssa-phiopt.c: New file.
991         * tree-ssa-pre.c: New file.
992         * tree-ssa.c: New file.
993         * tree-ssanames.c: New file.
994         * tree-tailcall.c: New file.
995         * tree.c: Include tree-iterator.h, basic-block.h and
996         tree-flow.h.
997         (tree_node_kind): Add phi_nodes and ssa names.
998         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
999         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
1000         (make_node_stat): Handle PHI_NODE and SSA_NAME.
1001         <'c'> Set TREE_INVARIANT.
1002         (copy_node_stat): Abort if trying to copy a
1003         STATEMENT_LIST.
1004         Clear TREE_VISITED.
1005         Clear annotation field.
1006         (build_constructor): Copy TREE_INVARIANT from vals.
1007         Don't clear TREE_CONSTANT.
1008         (expr_first, expr_last, expr_length): Remove.
1009         (staticp): Pass unknown component references to the language.
1010         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
1011         (skip_simple_arithmetic): Likewise.
1012         (stabilize_reference_1): Likewise.
1013         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
1014         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
1015         STATEMENT_LIST.
1016         (lhd_unsave_expr_now): Remove.
1017         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
1018         (recompute_tree_invarant_for_addr_expr): New.
1019         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
1020         Call recompute_tree_invarant_for_addr_expr.
1021         Set TREE_INVARIANT accordingly.
1022         (build2_stat): Don't handle CALL_EXPR.
1023         (build3_stat): Don't call build2_stat for CALL_EXPRs.
1024         (build_expr_wfl): Remove.
1025         (annotate_with_file_line, annotate_with_locus): New.
1026         (simple_cst_equal): Call simple_cst_list_equal to compare
1027         CONSTRUCTOR_ELTS pointers.
1028         (iterative_hash_expr): Don't hash types associated
1029         with conversions.  Instead hash on the signedness of the
1030         toplevel object and the operand of the conversion.
1031         (dump_tree_statistics): Call ssanames_print_statistics
1032         and phinodes_print_statistics.
1033         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
1034         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
1035         needs_to_live_in_memory): New.
1036         (initializer_zerop): Handle VECTOR_CST.  Don't check
1037         AGGREGATE_TYPE_P for CONSTRUCTOR.
1038         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
1039         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
1040         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
1041         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
1042         (CALL_EXPR): Add another operand.
1043         (EXPR_WITH_FILE_LOCATION): Remove.
1044         (SWITCH_EXPR): Add another operand.
1045         * tree.h: Update various comments.
1046         (union tree_ann_d): Forward declare.
1047         (struct tree_common): Add fields nowarning_flag,
1048         invariant_flag and visited.
1049         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
1050         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
1051         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
1052         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
1053         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
1054         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
1055         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
1056         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
1057         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
1058         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
1059         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
1060         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
1061         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
1062         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
1063         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
1064         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
1065         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
1066         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
1067         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
1068         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
1069         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
1070         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
1071         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
1072         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
1073         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
1074         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
1075         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
1076         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
1077         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
1078         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
1079         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
1080         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
1081         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
1082         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
1083         TDF_UID,): Define.
1084         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
1085         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
1086         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
1087         EXPR_WFL_SET_LINECOL): Remove.
1088         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
1089         make_phi_node, init_phinodes, fini_phinodes,
1090         release_phi_node, phinodes_print_statistics,
1091         init_ssanames, fini_ssanames, make_ssa_name,
1092         release_ssa_name, ssanames_print_statistics,
1093         annotate_with_file_line, build_empty_stmt,
1094         annotate_with_locus, expr_only, categorize_ctor_elements,
1095         count_type_elements, add_var_to_bind_expr, is_essa_node,
1096         expand_stack_alloc, expand_stack_save,
1097         expand_stack_restore, add_case_node, operand_equal_p,
1098         nondestructive_fold_unary_to_constant,
1099         nondestructive_fold_binary_to_constant,
1100         fold_read_from_constant_string, int_const_binop,
1101         strip_float_extensions, simplify_builtin, c_strlen,
1102         recompute_tree_invarant_for_addr_expr,
1103         needs_to_live_in_memory, make_vector,
1104         setjmp_vars_warning, update_alignment_for_field,
1105         expand_asm_expr, asm_op_is_mem_input,
1106         containing_blocks_have_cleanups_or_stack_level,
1107         create_artificial_label, gimplify_function_tree,
1108         get_name, unshare_expr, walk_tree,
1109         walk_tree_without_duplicates, in_gimple_form): Declare.
1110         (struct tree_exp): Add fields locus and block.
1111         (struct tree_ssa_name, struct edge_def, struct
1112         tree_phi_node, struct tree_eref_common, struct
1113         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
1114         union alias_var_def, struct tree_statement_list_node,
1115         struct tree_statement_list, enum operand_equal_flag): Declare.
1116         (enum tree_node_structure_enum): Add TS_SSA_NAME,
1117         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
1118         TS_STATEMENT_LIST.
1119         (union tree_node): Add fields ssa_name, phi, eref, ephi,
1120         euse and stmt_list.
1121         (function_cannot_inline_p, uninitialized_vars_warning,
1122         save_for_inline, output_inline_function, all_cases_count,
1123         check_for_full_enumeration_handling,
1124         declare_nonlocal_label): Remove.
1125         (enum tree_dump_index): Add TDI_none, TDI_tu,
1126         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
1127         * unroll.c (unroll_loop): Don't clear map->inline_target.
1128         * unwind-sjlj.c (uw_install_context): Make a proper static inline
1129         function.
1130         * value-prof.c (value_prof_hooks): New.
1131         (find_values_to_profile): Rename to rtl_find_values_to_profile.
1132         Move rtl-specific bits in from branch_prob.
1133         (value_profile_transformations): Rename to
1134         rtl_value_profile_transformations.
1135         (struct value_prof_hooks): New.
1136         (rtl_value_prof_hooks): New.
1137         (rtl_register_value_prof_hooks): New.
1138         (tree_find_values_to_profile): New stub.
1139         (tree_value_profile_transformations): New stub.
1140         (tree_value_prof_hooks): New stub.
1141         (tree_register_value_prof_hooks): New stub.
1142         (find_values_to_profile): New.
1143         (value_profile_transformations): New.
1144         * value-prof.h: Add multiple inclusion guard.
1145         (struct histogram_value): Change rtx fields to void *.
1146         (rtl_register_value_prof_hooks): New declaration.
1147         (tree_register_value_prof_hooks): New declaration.
1148         (find_values_to_profile): New declaration.
1149         (free_profiled_values): New declaration.
1150         (value_profile_transformations): New declaration.
1151         (struct profile_hooks): New declaration.
1152         (init_branch_prob): Declaration moved from rtl.h.
1153         (branch_prob): Declaration moved from rtl.h.
1154         (end_branch_prob): Declaration mooved from rtl.h.
1155         (tree_register_profile_hooks): New declaration.
1156         (rtl_register_profile_hooks): New declaration.
1157         (tree_profile_hooks): New declaration.
1158         (rtl_profile_hooks): New declaration.
1159         * varasm.c: Include tree-mudflap.h.
1160         (TRAMPOLINE_ALIGNMENT): Remove.
1161         (make_decl_rtl): Call mudflap_enqueue_decl.
1162         (assemble_static_space):
1163         (assemble_trampoline_template): Set and return
1164         TRAMPOLINE_ALIGNMENT.
1165         * varray.c (element): Add GENERIC_PTR_NOGC entry.
1166         Add entry for 'tree *'.
1167         Add entry for struct edge_def *.
1168         (varray_copy): New.
1169         * varray.h (enum varray_data_enum): Add
1170         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
1171         VARRAY_DATA_TREE_PTR.
1172         (union varray_data_tag): Corresponding changes.
1173         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
1174         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
1175         VARRAY_EDGE, VARRAY_TREE_PTR,
1176         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
1177         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
1178         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
1179
1180         * config/*/*: Various updates for changed macros, tree
1181         codes, etc.  Check ChangeLog.tree-ssa.
1182
1183         * doc/cfg.texi: New file.
1184         * doc/tree-ssa.texi: New file.
1185         * doc/c-tree.texi: Document new codes.
1186         * doc/gccint.texi: Include new files.
1187         * doc/install.texi: Document new features.
1188         * doc/invoke.texi: Document new switches.
1189         * doc/passes.texi: Document new passes.
1190         * doc/rtl.texi: Update changed RTL codes.
1191         * doc/sourcebuild.texi: Update build instructions.
1192         * doc/standards.texi: Document Fortran changes.
1193         * doc/tm.texi: Update.
1194
1195 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
1196
1197         Replace several arrays with a struct of arrays.
1198         * combine.c (struct reg_stat): New.
1199         (init_reg_last_arrays): Renamed to...
1200         (init_reg_last): ...this.  Callers adjusted.
1201         (reg_stat): New.
1202         (combine_instructions): Allocate it and use it.
1203         (reg_last_death, reg_last_set, reg_last_set_value,
1204         reg_last_set_label, reg_last_set_table_tick,
1205         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
1206         reg_last_set_mode, reg_last_set_nonzero_bits,
1207         reg_last_set_sign_bit_copies): Replace throughout
1208         with items of reg_stat.
1209
1210 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1211
1212         PR optimization/15100
1213         * combine.c (distribute_notes): Don't create a dangling
1214         REG_LIBCALL/REG_RETVAL note.
1215
1216 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1217
1218         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
1219
1220         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
1221         negv2si2.
1222
1223 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1224
1225         * doc/md.texi (Standard Names): Fix typo in vec_init description.
1226
1227 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
1228
1229         * doc/gty.texi (GTY Options): Clarify example.
1230
1231 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
1232
1233         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
1234         Add const qualifier to altivec vector type if one is needed.
1235
1236 2004-05-11  Paul Brook  <paul@codesourcery.com>
1237
1238         * flags.h (flag_short_enums): Update comment.
1239         * opts.c (decode_options): Set flag_short_enums to 2.
1240         * toplev.c (flag_short_enums): Update comment.
1241         (process_options): Call default_short_enums target hook.
1242
1243 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
1244
1245         PR target/14063
1246         * config/rs6000/altivec.md (altivec_dssall):
1247         Change to unspec_volatile.
1248         (altivec_dss): Likewise.
1249
1250 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
1251
1252         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
1253         vnor.
1254         ("one_cmplv8hi2"): Same.
1255         ("one_cmplv4si2"): Same.
1256
1257 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1258
1259         PR target/15130
1260         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
1261         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
1262         into account.  Compute the correct number of general registers
1263         for the return value.  Generate a special push/pop sequence when
1264         failing to get a temporary register for non SHmedia epilogue.
1265         (sh_expand_epilogue): Add an argument to show whether it's for
1266         sibcall or not.  Set the 3rd argument of output_stack_adjust to
1267         -1 if needed.
1268         (sh_need_epilogue): Call sh_expand_epilogue with 0.
1269         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
1270         with 1.
1271         (epilogue): Call sh_expand_epilogue with 0.
1272
1273 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
1274
1275         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
1276         goto a cleanup label.  After the cleanup, free the allocated memory.
1277
1278 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
1279
1280         * config/rs6000/altivec.h (vec_sld): Add overloads for
1281         argument/return types of 'vector bool int', 'vector bool short'
1282         and 'vector bool char'.
1283
1284 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
1285
1286         * c-decl.c (store_parm_decls_newstyle): Correct test for a
1287         nested function.
1288
1289 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
1290
1291         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
1292         treating missing ones as "".
1293         * config/mips/mips.md: Remove constraints from match_operands and
1294         match_scratches if they appear in define_expands (except reload*),
1295         define_peephole2s, define_splits or attribute specifications.
1296         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
1297         constraint strings.
1298
1299 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1300
1301         * config/rs6000/rs6000.c (function_arg_boundary): Always align
1302         AltiVec vectors.
1303         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
1304         vectors by refererence.  Align the same for TARGET_64BIT to a 16
1305         byte boundary.  Remove useless code.  Add function comment.
1306         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
1307         call to where it belongs.
1308         (function_arg_partial_nregs): Return true for all TARGET_32BIT
1309         -mabi=no-altivec AltiVec vectors.  Fix debug output.
1310         (rs6000_va_arg): Adjust for AltiVec change.
1311
1312 2004-05-10  Paul Brook  <paul@codesourcery.com>
1313
1314         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1315         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1316         (TARGET_DOUBLEWORD_ALIGN): Use it.
1317         (WCHAR_TYPE): Define.
1318         (WCHAR_SIZE_TYPE): Define.
1319         (SIZE_TYPE): Define.
1320
1321 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1322
1323         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
1324         when size is 8 bytes.
1325         (function_arg_advance): Account for stack space used by AltiVec
1326         args when -mabi=altivec.  Simplify alignment calculations.  For
1327         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
1328         (function_arg): Similarly.
1329         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
1330         not AltiVec ABI.
1331         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
1332         Correct alignment, and align before testing reg count.  Remove
1333         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
1334         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
1335         TARGET_FPRS here..
1336         (rs6000_function_value): .. not here before call.
1337
1338 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1339
1340         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
1341
1342 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
1343
1344         PR 15007
1345         * c-decl.c (current_file_decl): Rename to all_translation_units,
1346         adjust comment.
1347         (pop_scope): If popping file_scope, construct a
1348         TRANSLATION_UNIT_DECL and make it the context of all the
1349         symbols in the scope.
1350         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
1351         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
1352         anything to current_file_decl.
1353         (pushdecl_top_level): Likewise.
1354         (store_parm_decls_newstyle): Adjust check for nested function.
1355         (c_write_global_declarations): Update for renamed variable.
1356
1357 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1358
1359         * config/rs6000/rs6000-protos.h
1360         (rs6000_conditional_register_usage): Protoize.
1361
1362         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
1363
1364         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
1365         function.
1366
1367 2004-05-08  Roger Sayle  <roger@eyesopen.com>
1368
1369         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
1370         where op is a comparison operator and C1 and C2 are integer constants
1371         into a range check.
1372         (fold): Call fold_div_compare.
1373
1374 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1375
1376         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
1377         problems with earlier versions of the GNU compiler.
1378
1379 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
1380
1381         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
1382         Declare.
1383
1384         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
1385         (rs6000_hard_regno_mode_ok): New.
1386         (rs6000_init_hard_regno_mode_ok): New.
1387         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
1388
1389         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
1390         result.
1391
1392 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
1393
1394         * config/rs6000/altivec.h (vector, pixel, bool): Do not
1395         define as macros #ifdef __APPLE_ALTIVEC__.
1396
1397 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
1398
1399         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
1400         Generate appropriate parallels for vector arguments
1401         passed to vararg functions. (function_arg): make the call
1402         to rs6000_mixed_function_arg for vector args as needed.
1403
1404 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1405
1406         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
1407         EABI_FLOAT_VARARGS_P.
1408
1409 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1410
1411         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
1412         * config/mips/mips.c (override_options): Disable branch likely
1413         instructions if TUNE_MIPS5500.
1414
1415 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1416
1417         * config/mips/mips.c (override_options): Allow the hi and lo registers
1418         to store any integral mode, not just MODE_INTs.
1419
1420 2004-05-07  Paul Brook  <paul@codesourcery.com>
1421
1422         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1423         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1424         (TARGET_DOUBLEWORD_ALIGN): Use it.
1425         (WCHAR_TYPE): Define.
1426         (WCHAR_SIZE_TYPE): Define.
1427         (SIZE_TYPE): Define.
1428
1429 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1430
1431         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
1432         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
1433
1434 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
1435
1436         * loop-doloop.c (doloop_valid_p): Make sure that body
1437         gets freed.
1438
1439 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
1440
1441         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
1442         declaration.
1443         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
1444         (sparc_skip_caller_unimp): New global variable.
1445         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
1446         Use it instead of SKIP_CALLERS_UNIMP_P.
1447         * config/sparc/sparc.md (call expander): Add sanity check.
1448         (call_address_struct_value_sp32): Re-sync with expander.
1449         (call_symbolic_struct_value_sp32): Likewise.
1450         (return peepholes): Use 'sparc_skip_caller_unimp' instead
1451         of custom predicate.
1452
1453 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1454
1455         PR c++/14962
1456         * c-pragma.c (handle_pragma_redefine_extname): Only change
1457         the assembler name of FUNCTION_DECLs and VAR_DECLs.
1458
1459 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1460
1461         * optabs.h (enum optab_index): Add new OTI_log1p.
1462         (log1p_optab): Define corresponding macro.
1463         * optabs.c (init_optabs): Initialize log1p_optab.
1464         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
1465         patterns.
1466         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
1467         using log1p_optab.
1468         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
1469         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1470
1471         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
1472
1473         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
1474         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
1475         Prototype here.
1476         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
1477         x87's fyl2xp1 instruction.
1478         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
1479         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
1480         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
1481         log1p  and log1pl built-ins as inline x87 intrinsics.
1482
1483 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
1484
1485         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
1486         * config/arm/freebsd.h: Likewise.
1487         * config/ia64/freebsd.h: Likewise.
1488         * config/sparc/freebsd.h: Likewise.
1489
1490 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
1491
1492         PR optimization/15296
1493         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
1494         getting last consecutive label at a branch.
1495         (relax_delay_slots): Similar, near top of loop.
1496
1497 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1498
1499         PR target/15202
1500         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
1501         register to general register.
1502
1503 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
1504
1505         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
1506         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
1507         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
1508         (STACK_BOUNDARY): Delete.
1509
1510 2004-05-06  Stuart Hastings  <stuart@apple.com>
1511
1512         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
1513         mistakenly clobbered by 1.423.
1514
1515 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1516
1517         * doc/invoke.texi: Document -mvr4130-align.
1518         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
1519         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
1520         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
1521         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
1522         * config/mips/mips.md: Include sched-int.h.
1523         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
1524         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
1525         (override_options): Enable -mvr4130-align at -O3 and above.
1526         (mips_sim_insn): New variable.
1527         (mips_sim): New structure.
1528         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
1529         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
1530         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
1531         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
1532         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
1533         (mips_reorg): Call vr4130_align_insns.
1534         (vr4130_last_insn): New variable.
1535         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
1536         (vr4130_swap_insns_p, vr4130_reorder): New functions.
1537         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
1538         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
1539         (mips_use_dfa_pipeline_interface): Return true for the same.
1540         * config/mips/4130.md: New file.
1541         * config/mips/mips.md: Include it.  Add a peephole2 to convert
1542         "mult;mflo" into "mtlo;macc".
1543         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
1544         target of maccs.
1545         (*msac_using_macc): New pattern.
1546
1547 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1548
1549         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
1550         (ir_vr55_hilo): Split into...
1551         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
1552         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
1553         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
1554         Add various multiplication bypasses.
1555         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
1556         multiplication.
1557
1558 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
1559
1560         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
1561         attribute to "XF".
1562
1563 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
1564
1565         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
1566         (fmod_optab, drem_optab): Define corresponding macros.
1567         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
1568         * genopinit.c (optabs): Implement fmod_optab and drem_optab
1569         using fmod?f3 and drem?f3 patterns.
1570         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
1571         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
1572         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
1573         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
1574         flag_unsafe_math_optimizations is set.
1575
1576         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
1577         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
1578
1579         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
1580         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
1581         Prototype here.
1582         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
1583         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
1584         fprem and fprem1 instructions.
1585         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
1586         Rename insn definition to x86_fnstsw_1.
1587         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
1588         x87 instructions.
1589         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
1590         and fmodl built-ins as inline x87 intrinsics.
1591         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
1592         and dreml built-ins as inline x87 intrinsics.
1593
1594 2004-05-05  Roger Sayle  <roger@eyesopen.com>
1595
1596         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
1597
1598 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
1599
1600         PR driver/9822
1601         * doc/invoke.texi (Spec Files): Remove documentation of %c.
1602
1603 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
1604
1605         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
1606         representation.
1607
1608 2004-05-06  Paul Brook  <paul@codesourcery.com>
1609
1610         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
1611         (arm_coproc_mem_operand): ... To this.
1612         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
1613         (arm_legitimate_index_p): Ditto.
1614         (vfp_mem_operand): Rename ...
1615         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
1616         (vfp_secondary_reload_class): Use it.
1617         (output_move_double): Use doubleword load/store instructions.
1618         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
1619         * config/arm/arm.h (TARGET_LDRD): Define.
1620         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
1621         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
1622         New splitter for invalid doubleword loads.
1623         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
1624         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
1625         * doc/md.texi: Document Uy constraint.
1626
1627 2004-05-05  Jan Hubicka  <jh@suse.cz>
1628
1629         PR opt/14980
1630         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
1631         inline clones.
1632
1633 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1634
1635         PR target/15290
1636         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
1637         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
1638
1639 2004-05-05  Mike Stump  <mrs@apple.com>
1640
1641         * config/darwin-c.c (add_framework): Copy the directory name as it
1642         can be freed later.  Also, ensure we always allocate enough room
1643         for the cached framework information.
1644         (find_subframework_header): Keep track of the directory where the
1645         subframework header was found.
1646         (framework_construct_pathname): Speed up by not trying to re-add a
1647         framework.
1648         * cppfiles.c (search_path_exhausted): Arrange for the missing
1649         header callback to be able to set the directory where the header
1650         was found.
1651         (cpp_get_dir): Add.
1652         * cpplib.h (missing_header_cb): Add a parameter.
1653         (cpp_get_dir): Add.
1654
1655 2004-05-03  Mike Stump  <mrs@apple.com>
1656
1657         * doc/invoke.texi (Directory Options): Document -iquote.
1658         * doc/cpp.texi: Likewise.
1659         * doc/cppopts.texi: Likewise.
1660         * c-opts.c (c_common_missing_argument): Add -iquote processing.
1661         (c_common_handle_option): Likewise.
1662         * c.opt (iquote): Add.
1663         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
1664         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
1665
1666         * c-opts.c (case OPT_I): Deprecate -I- support.
1667         * doc/invoke.texi: Likewise.
1668         * doc/cpp.texi: Likewise.
1669         * doc/cppopts.texi: Likewise.
1670
1671 2004-05-05  Steven Bosscher  <stevenb@suse.de>
1672
1673         * basic-block.h (free_basic_block_vars): Update prototype.
1674         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
1675         argument.
1676         (life_analysis): Update call.
1677         * ifcvt.c (if_convert): Likewise.
1678         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
1679         * passes.c (rest_of_handle_final): Likewise.
1680         (rest_of_compilation): Likewise.
1681         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1682
1683         * emit-rtl.c (next_real_insn): Use INSN_P.
1684         (prev_real_insn): Likewise.
1685
1686 2004-05-05  Eric Christopher  <echristo@redhat.com>
1687
1688         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
1689         representation.
1690
1691 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
1692
1693         * config/rs6000/rs6000.c (build_opaque_vector_type):
1694         New function.
1695         (rs6000_init_builtins): Use it.
1696
1697 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
1698
1699         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
1700         (func_table): Change type from char ** to vms_func_ref.
1701         (write_rtnbeg):  Update to reflect func_table change.  Use
1702         fde->funcdef_number instead of rtnnum in output.
1703         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
1704
1705 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
1706             Richard Henderson  <rth@redhat.com>
1707
1708         PR target/14899
1709
1710         * c-common.c (vector_types_convertible_p): New function.
1711         * c-typeck.c (comptypes): Recurse on vector types.
1712         (convert_for_assignment): Use vector_types_convertible_p.
1713         (digest_init): Use vector_types_convertible_p to check
1714         validness of constant vector initializers; otherwise treat
1715         them as scalars.
1716         * tree.c (make_or_reuse_type): New.
1717         (build_common_tree_nodes): Use it.
1718         * cp/call.c (standard_conversion): Likewise.
1719         * cp/typeck.c (comptypes): Recurse on vector types.
1720         (convert_for_assignment): Use vector_types_convertible_p.
1721
1722 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
1723
1724         * config/mips/mips.c (override_options): Default to no
1725         generation of branch-likely operations when tuning for
1726         CPUs where they tend to have a negative performance impact
1727         (e.g., SB-1).
1728
1729 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1730
1731         * expr.c (store_constructor_field): Don't call store_constructor
1732         if bitsize is not a multiple of a byte.
1733
1734 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
1735
1736         * reload1.c (inherit_piecemeal_p): New function.
1737         (emit_reload_insns): When reloading a group of hard registers, use
1738         inherit_piecemeal_p to decide whether the values of individual hard
1739         registers can be inherited.
1740
1741 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1742
1743         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
1744         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
1745         * config/t-linux (LIB2ADDEHDEP): Likewise.
1746
1747 2004-05-04  Paul Brook  <paul@codesourcery.com>
1748
1749         * config/arm/crti.asm: Push an even number of registers.
1750         * config/arm/crtn.asm: And restore them.  Load via sp.
1751
1752 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
1753
1754         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
1755         Collect overhead information.
1756         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
1757         parameter and pass it through.
1758         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
1759         MEM_STAT_DECL parameter and pass it through.
1760         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
1761         MEM_STAT_DECL parameter and pass it through.
1762
1763 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
1764
1765         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
1766
1767         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
1768
1769         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
1770         rs6000_hard_regno_nregs.
1771
1772 2004-05-03  Eric Christopher  <echristo@redhat.com>
1773
1774         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
1775         prologue insn instead of setting up call.
1776         (s390_emit_epilogue): Ditto.
1777         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
1778         (define_constants): Add numbers for above patterns.
1779
1780 2004-05-03  Eric Christopher  <echristo@redhat.com>
1781
1782         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
1783         * config/s390/s390.c (s390_conditional_register_usage): ...here.
1784         * config/s390/s390-protos.h: Prototype.
1785
1786 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
1787
1788         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
1789         assignment.
1790
1791 2004-05-03  Eric Christopher  <echristo@redhat.com>
1792
1793         * config/mips/mips.md: Fix branch length attribute definition.
1794
1795 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
1796
1797         * config.gcc: Remove --enable-altivec support.
1798
1799         * config/rs6000/altivec-defs.h: Remove.
1800
1801 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1802
1803         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
1804         * fixinc/fixincl.x: Regenerate.
1805
1806 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
1807
1808         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
1809         definition.
1810         (log?f2, log10?f2, log2?f2): Reimplement expanders with
1811         float_truncate insn.
1812         (*fxtractsf3, *fxtractdf3): Remove insn definition.
1813         (logb?f2): Reimplement expanders with float_truncate insn.
1814
1815 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
1816
1817         PR 14718
1818         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
1819         force_type_die for CONST_DECL.
1820
1821 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1822             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1823
1824         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
1825         tm-dwarf2.h to tm_file.
1826         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
1827         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
1828         (ASM_DEBUG_SPEC): Delete.
1829
1830 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
1831
1832         * optabs.h (enum optab_index): Add new OTI_expm1.
1833         (expm1_optab): Define corresponding macro.
1834         * optabs.c (init_optabs): Initialize expm1_optab.
1835         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
1836         patterns.
1837         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
1838         using expm1_optab.
1839         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
1840         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1841
1842         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
1843         to implement expm1, expm1f and expm1l built-ins as inline x87
1844         intrinsics.
1845
1846 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
1847
1848         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
1849         * config/frv/frv.md (*return_true, *return_false): New patterns.
1850
1851 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1852
1853         * rtl.h (PHI_NODE_P): Remove.
1854
1855 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
1856
1857         PR middle-end/14988
1858         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
1859         when passed -2 as 'align'.
1860         (put_var_into_stack): Use 'bool' as the type for the three local
1861         predicates.  Adjust calls to put_reg_into_stack.
1862         When passed a CONCAT, instruct put_reg_into_stack to use
1863         a consecutive stack slot for the second part.
1864         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
1865         'consecutive_p' parameter.  Turn the three predicates into 'bool'
1866         parameters.  Retrieve the register mode from 'reg'.
1867         When consecutive_p is true, instruct assign_stack_local_1 to use
1868         BITS_PER_UNIT alignment.
1869         (put_addressof_into_stack): Use 'bool' as the type for the two
1870         local predicates. Adjust call to put_reg_into_stack.
1871
1872 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1873
1874         * fold-const.c (fold_convert_const, fold): Add missing
1875         FIX_ROUND_EXPR case.
1876
1877 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
1878
1879         * configure.ac (FLEX, BISON): Only use tools from the build tree
1880         if build equals host.
1881         * configure: Rebuilt.
1882
1883         * config/frv/frv-protos.h (frv_expand_epilogue,
1884         frv_expand_fdpic_call): Add bool argument.
1885         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
1886         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
1887         (frv_expand_epilogue): Use new argument to decide whether to emit
1888         return instruction or copy the return address to LR.
1889         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
1890         sibcalls.
1891         (sibcall_operand): New.
1892         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
1893         PLUS nor LABEL_REF.  Add sibcall_operand.
1894         * config/frv/frv.md (call, call_value): Pass false to
1895         frv_expand_fdpic_call.
1896         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
1897         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
1898         sibcall_value_internal, sibcall_value_fdpicdi): New.
1899         (return_unsigned_true, return_unsigned_false): New.
1900         (epilogue): Adjust call to frv_expand_epilogue.
1901         (sibcall_epilogue): New.
1902
1903         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
1904         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
1905         before redefining them.
1906
1907 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1908
1909         * builtins.c (fold_fixed_mathfn): New function.
1910         (fold_builtin_lround, fold_builtin): Use it.
1911
1912 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
1913
1914         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
1915         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
1916
1917 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1918
1919         * config/cris/cris.h: Revert my "fix comment typos" patch.
1920
1921 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
1922
1923         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
1924
1925 2004-05-01  Falk Hueffner  <falk@debian.org>
1926
1927         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
1928         builtin_insll): Disallow 0 as first input operand.
1929
1930 2004-05-01  Falk Hueffner  <falk@debian.org>
1931
1932         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
1933
1934 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
1935
1936         PR middle-end/15054
1937         * expr.c (expand_expr_real): Do not call preserve_temp_slots
1938         on a TARGET_EXPR temp.
1939         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
1940         TARGET_EXPR temp slots.
1941
1942 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
1943
1944         * simplify-rtx.c (simplify_ternary_operation): When
1945         converting an IF_THEN_ELSE to a relational op, return
1946         correct mode.
1947
1948 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1949
1950         * builtins.c (fold_builtin_round): Fix comment typo.
1951         (fold_builtin_lround): New function.
1952         (fold_builtin): Use it.
1953
1954 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
1955
1956         PR target/11608
1957         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
1958         more like the one in config/dbxelf.h.
1959
1960 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
1961
1962         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
1963         and adjust definition accordingly.
1964         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
1965         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
1966         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
1967         VECTOR_TYPE.
1968
1969 2004-04-30  Jason Merrill  <jason@redhat.com>
1970
1971         PR c++/14587
1972         * config/i386/winnt.c (associated_type): Look for attributes on
1973         the TYPE_MAIN_VARIANT of *this.
1974         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
1975         apply the attributes to the variants.
1976
1977 2004-04-30  Paul Brook  <paul@codesourcery.com>
1978
1979         * config.gcc: Simplify arm --with-{cpu,tune} test.
1980         * config/arm/arm-cores.def: Document whitespace restrictions.
1981
1982 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1983
1984         PR other/1963
1985         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
1986
1987 2004-04-30  Brian Ford  <ford@vss.fsi.com>
1988             DJ Delorie  <dj@redhat.com>
1989
1990         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
1991         (DWARF2_DEBUGGING_INFO): Define to enable.
1992         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
1993         DWARF2.
1994         * configure.ac (Target-specific assembler checks)
1995         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
1996         relocs.
1997         * configure: Regenerate.
1998         * config.in: Likewise.
1999
2000         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
2001         (ASM_OUPUT_DWARF_OFFSET): Define.
2002
2003 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2004
2005         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
2006         (s390_emit_call): New function prototype added.
2007         (s390_tls_get_offset): Function removed.
2008         * config/s390/s390.c (s390_function_ok_for_sibcall,
2009         s390_call_saved_register_used_p): New functions.
2010         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
2011         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
2012         (s390_emit_tls_call_insn): New function.
2013         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
2014         emit_call_insn.
2015         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
2016         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
2017         added.
2018         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
2019         register number used to hold the target address for sibcalls.
2020         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
2021         New expanders.
2022         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
2023         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
2024         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
2025         Expanders removed.
2026         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
2027         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
2028         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
2029         ("epilogue"): Changed the call to s390_emit_epilogue to use the
2030         new parameter.
2031
2032 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
2033
2034         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
2035         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
2036         reg-stack.c, varasm.c, config/alpha/ev4.md,
2037         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
2038         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
2039         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
2040         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
2041         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
2042         config/ia64/itanium2.md, config/ip2k/ip2k.c,
2043         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
2044         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
2045         comment typos.
2046
2047 2004-04-30  Paul Brook  <paul@codesourcery.com>
2048
2049         * config.gcc: Default ep9312 to hard-float.
2050         * config/arm/arm-cores.def: Add ARCH field.
2051         * config/arm/arm.c (FL_FOR_ARCH*): Define.
2052         (arm_arch_cirrus): New variable.
2053         (all_cores): Set and use arch.
2054         (all_architectures): Ditto.
2055         (arm_arch_name): New variable.
2056         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
2057         Set and use arm_arch_cirrus.
2058         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
2059         (enum processor_type): Update ARM_CORE define.
2060         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
2061         (CPP_SPEC): Remove %(cpp_cpu_arch).
2062         (CPP_ARCH_DEFAULT_SPEC): Remove.
2063         (CPP_CPU_ARCH_SPEC): Remove.
2064         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
2065         (FPUTYPE_DEFAULT): Don't define here.
2066
2067 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
2068
2069         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
2070         updates too.
2071
2072 2004-04-30  Paul Brook  <paul@codesourcery.com>
2073
2074         * arm.c (arm_needs_doubleword_align): Use mode alignment.
2075
2076 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
2077
2078         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
2079         vec_sububs.
2080         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
2081         duplicates.
2082
2083 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2084
2085         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
2086         atan2?f3 expanders.
2087
2088 2004-04-29  Nick Clifton  <nickc@redhat.com>
2089
2090         Bug 14093
2091         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
2092         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
2093         Delete static from definition.
2094         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
2095
2096 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2097
2098         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
2099         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
2100         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
2101         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
2102
2103 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
2104
2105         * commom.opt (Wfatal-errors): Add it.
2106         * diagnostic.c (flag_fatal_errors): Define it.
2107         (diagnostic_action_after_output): Check for flag_fatal_errors.
2108         * flags.h (flag_fatal_errors): Declare it.
2109         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
2110         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
2111
2112 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
2113
2114         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
2115         blocks which have kill flag set.
2116
2117 2004-04-29  Ben Elliston  <bje@au.ibm.com>
2118
2119         * configure.ac (--with-as): Abort if user-supplied assembler
2120         cannot be executed.
2121         (--with-ld): Likewise for the linker.
2122         * configure: Regenerate.
2123
2124 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2125
2126         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
2127         isn't NULL before using it.
2128
2129 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
2130
2131         PR target/15189
2132         * config/mips/mips.md (load_df_low): Use default length.
2133         (load_df_high, store_df_high): Likewise.
2134
2135 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2136
2137         * config/mips/mips.md, config/mips/sb1.md,
2138         config/rs6000/rs6000.c: Fix comment typos.
2139
2140 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2141
2142         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
2143         Fix comment typos.
2144
2145 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
2146
2147         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
2148         (delete_if_ordinary): Use above macro.
2149         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
2150         Update copyright.
2151         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
2152
2153 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
2154
2155         * c-decl.c (get_parm_info): Use the correct tag keywords when
2156         warning about type declarations in prototypes.
2157
2158 2004-04-29  Paul Brook  <paul@codesourcery.com>
2159
2160         * config.gcc: Pull list of cores from arm-cores.def.
2161
2162 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2163
2164         * combine.c (combine_simplify_rtx): Adjust call to use
2165         simplify_relational_operation.  Do not use SELECT_CC_MODE
2166         when a comparison already has a MODE_CC mode.
2167
2168 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2169
2170         (simplify_set): simplify_relational_operation may now
2171         return another relational expression.
2172         * cse.c (fold_rtx): simplify_relational_operation now
2173         takes of computing the comparison mode.
2174         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
2175         remove dead code.
2176         (do_compare_rtx_and_jump): Likewise.
2177         * integrate.c (subst_constants): simplify_relational_operation
2178         may now return another relational expression.
2179         * simplify-rtx.c (simplify_gen_relational): Move most code to
2180         the new simplify_relational_operation and
2181         simplify_relational_operation_1 functions.
2182         (simplify_relational_operation): Rewritten.
2183         (simplify_relational_operation_1): New function.
2184         (simplify_ternary_operation): simplify_relational_operation
2185         may now return another relational expression.
2186         (simplify_rtx): Remove unnecessary temp variable.
2187
2188 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
2189
2190         * reg-stack.c (swap_to_top): New function.
2191         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
2192         swap_to_top().
2193         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
2194         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
2195         UNSPEC_FSCALE_EXP.
2196
2197         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
2198         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
2199         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
2200         x87's fscale insn.
2201         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
2202         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
2203         patterns.
2204
2205 2004-04-28  Serge Belyshev  <1319@bot.ru>
2206
2207         PR 14944
2208         * coverage.c (read_counts_file): Fix usage of warning () call.
2209         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
2210
2211 2004-04-28  Ben Elliston  <bje@au.ibm.com>
2212
2213         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
2214         options with "-" in the option index.
2215         (SPARC Options): Likewise.
2216         (M32R/D Options): Likewise.
2217
2218 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2219
2220         * convert.c (convert_to_integer): Convert (long)round -> lround,
2221         etc.
2222
2223 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
2224
2225         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
2226         Return false if we do not have fp register.
2227         (addrs_ok_for_quad_peep): Rename to ...
2228         (mems_ok_for_quad_peep): this.
2229         Add check for volatile memory.
2230         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
2231         Rename to ...
2232         (mems_ok_for_quad_peep): this.
2233         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
2234         to peephole2's.
2235         (lfq_power2): New instruction.
2236         (stfq_power2): Likewise.
2237
2238 2004-04-28  Jan Hubicka  <jh@suse.cz>
2239
2240         PR c/15004
2241         * function.c (do_warn_unused_parameter): Break out form ...
2242         (expand_function_end): ... here; warn only when not using cgraphunit.
2243         * function.h (do_warn_unused_parameter): Declare.
2244         * cgraphunit.c: Include function.h.
2245         (cgraph_finalize_function): Do unused parameter warning.
2246         * Makefile.in (cgraphunit.o): Depend on function.h
2247
2248 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2249
2250         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
2251         calling install-info on $(DESTDIR)$(infodir)/dir already being
2252         present.
2253
2254 2004-04-28  Paul Brook  <paul@codesourcery.com>
2255
2256         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
2257
2258 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2259
2260         * gcse.c (find_moveable_store): Do not accept store insns with
2261         REG_EH_REGION note.
2262
2263 2004-04-28  Paul Brook  <paul@codesourcery.com>
2264
2265         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
2266         * function.c (assign_temp): Ditto.
2267         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
2268
2269 2004-04-28  Paul Brook  <paul@codesourcery.com>
2270
2271         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
2272
2273 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
2274
2275         * var-tracking.c (variable_different_p): Add a parameter
2276         compare_current_location, compare current location of variable parts
2277         if it is true.
2278         (dataflow_set_different_1): Pass compare_current_location == false.
2279         (dataflow_set_different_2): Pass compare_current_location == false.
2280         (emit_notes_for_differences_1): Pass compare_current_location == true.
2281
2282 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2283
2284         * config/s390/s390.md ("casesi"): Mark jump table access as
2285         non-trapping and unchanging.
2286
2287 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2288
2289         PR debug/14829
2290         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
2291         callers.
2292         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
2293         number for indexing hard_regno_nregs array.
2294
2295 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
2296
2297         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
2298         * config/darwin-crt2.c: Only have contents on __ppc__.
2299
2300 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
2301
2302         * config/xtensa/xtensa.c (call_insn_operand): Check
2303         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
2304         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
2305         * config/xtensa/xtensa.md (call, call_value): Likewise.
2306
2307 2004-04-27  Wu Yongwei  <adah@sh163.net>
2308
2309         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
2310         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
2311         (__gthread_mutex_init_function): Replace CreateMutex with
2312         initialization of custom mutex using CreateSemaphore.
2313         (__gthread_mutex_lock): Use InterlockedIncrement.
2314         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
2315         (__gthread_mutex_unlock): Use InterlockedDecrement and
2316         ReleaseSemaphore to unlock
2317         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
2318         __gthread_mutex_lock, __gthread_mutex_trylock,
2319         __gthread_mutex_unlock): Adjust to match inline versions in
2320         gthr-win32.h.
2321
2322 2004-04-27  Paul Brook  <paul@codesourcery.com>
2323
2324         * config/arm/arm.c (arm_promote_prototypes): New function.
2325         (TARGET_PROMOTE_PROTOTYPES): Use it.
2326
2327 2004-04-27  Paul Brook  <paul@codesourcery.com>
2328
2329         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
2330
2331 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
2332
2333         * config/alpha.c (alpha_end_function): For OpenVMS gas,
2334         correctly output .pdesc directive before .end.
2335
2336 2004-04-26  James E Wilson  <wilson@specifixinc.com>
2337
2338         Bug 14927
2339         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
2340         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
2341
2342 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
2343
2344         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
2345         * config/pa/pa-hpux10.h: Likewise.
2346         * config/pa/pa-hpux11.h: Likewise.
2347
2348 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
2349
2350         * doc/invoke.texi (Overall Options): Document default for -o
2351         for PCH files.
2352
2353 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2354
2355         * builtins.c (expand_builtin_update_setjmp_buf): New function.
2356         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
2357         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
2358
2359 2004-04-26  Paul Brook  <paul@codesourcery.com>
2360
2361         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
2362
2363 2004-04-26  Paul Brook  <paul@codesourcery.com>
2364
2365         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
2366
2367 2004-04-25  Roger Sayle  <roger@eyesopen.com>
2368
2369         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
2370         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
2371         X % -1 as 0.
2372
2373 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
2374
2375         PR bootstrap/15141
2376         * except.c (connect_post_landing_pads): Delete insns after the
2377         barrier when generating a unwind_resume_libfunc call.
2378
2379 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2380
2381         PR/c++ 15119
2382         * tree.c (substitute_placeholder_in_expr, case 4): New case,
2383         for TARGET_EXPR.
2384
2385 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2386
2387         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2388         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
2389         inhibit_libc is defined.
2390
2391 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
2392
2393         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
2394         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
2395         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
2396         (TARGET_SCHED_VARIABLE_ISSUE): Define.
2397         (mips_adjust_cost): Move later in file, next to other sched hooks.
2398         (mips_macc_chains_last_hilo): New variable.
2399         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
2400         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
2401         * config/mips/mips.md (may_clobber_hilo): New attribute.
2402
2403 2004-04-24  Roger Sayle  <roger@eyesopen.com>
2404             Bruce Korb  <bkorb@gnu.org>
2405
2406         * fixinc/inclhack.def (aix_syswait_2): New fix.
2407         * fixinc/fixincl.x: Regenerate.
2408         * fixinc/tests/base/sys/wait.h: Update for new test.
2409
2410 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
2411
2412         PR target/14960
2413         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
2414         to non_fixed_size, and leave out fixed_size from the sum.
2415         (generate_set_vrsave): Correct clobbers.
2416         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
2417         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
2418         (rs6000_libcall_value): Likewise.
2419         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
2420         (FUNCTION_ARG_REGNO_P): Likewise.
2421
2422 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2423
2424         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
2425         is a CONST_INT.
2426         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
2427         with NARROW_OP1 instead of OP1.
2428
2429 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2430
2431         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
2432         and __s390x__ hosts.
2433
2434 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2435
2436         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
2437         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
2438         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
2439         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
2440         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
2441         * builtins.c (expand_builtin_fork_or_exec): New.
2442         (expand_builtin): Call it.
2443         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
2444         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
2445         * c-common.c (PID_TYPE): New macro.
2446         (c_common_nodes_and_builtins): Initialize pid_type_node.
2447         * calls.c (special_function_p): Do not handle fork and exec.
2448         (expand_call): Do not handle ECF_FORK_OR_EXEC.
2449         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2450         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
2451         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2452         __gcov_execv, __gcov_execvp, __gcov_execve): New.
2453         * tree.h (enum tree_index): Add TI_PID_TYPE.
2454         (pid_type_node): New macro.
2455         (ECF_FORK_OR_EXEC): Removed.
2456
2457 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2458
2459         PR optimization/13985
2460         * cfgloopmanip.c (fix_loop_placements): New prototype.
2461         Call fix_bb_placements on the preheader of loops that have
2462         been reparented.
2463         (remove_path): Adjust call to fix_loop_placements.
2464
2465 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2466
2467         * config/darwin7.h: New file.
2468         * config.gcc (*-*-darwin*): Add darwin7.h if the
2469         version is greater than 6.
2470         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
2471         (MATH_LIBRARY): Wrap in ifdefs.
2472
2473 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
2474
2475         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
2476         loading iWMMXt registers with a frame pointer.  Use post-increment
2477         without a frame pointer.
2478         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
2479
2480 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
2481
2482         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
2483         mode" rather than "-funit-at-a-time" since -O2 enables it
2484         without requiring -f* options.  Refer to -fprofile-generate and
2485         -fprofile-use correctly.  Move -funit-at-a-time among options
2486         enabled by -O.  Add information about unit-at-a-time caveats.
2487
2488 2004-04-22  Per Bothner  <per@bothner.com>
2489
2490         * line-map.h (struct line_maps):  New field highest_line.
2491         (linemap_position_for_column):  Make non-inline function.
2492         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
2493         * line-map.c (linemap_init):  Clear highest_line field.
2494         (linemap_add):  Set highest_line field.
2495         (linemap_line_start):  Minor optimization - use highest_line field.
2496         Reduce maximum column hint to 10000.  Update highest_line field.
2497         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
2498         * cpphash.h (struct cpp_reader):  Remove line field - instead use
2499         line_table->highest_line.
2500         (saved_line):  Remove unused field.
2501         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
2502         Use  line_table's highest_line field instead of cpp_reader's line.
2503         * cpplib.c (start_directive):  Likewise use highest_line field.
2504         (do_line, do_linemarker):  Likewise just use newest map.
2505         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
2506         * cpperror.c (cpp_error):  Likewise use highest_line field.
2507         * cppfiles.c (open_file_failed:  Likewise.
2508         (cpp_make_system_header):  Likewise use newest map and highest_line.
2509         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
2510         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
2511         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
2512         _cpp_lex_direct):  Likewise use highest_line.
2513         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
2514         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
2515         and use newest map.
2516         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
2517         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
2518         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
2519
2520 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
2521
2522         PR bootstrap/14992
2523         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
2524         * config/linux.h (USE_LD_AS_NEEDED): Define.
2525         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
2526         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
2527         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
2528         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
2529         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
2530         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
2531         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
2532
2533 2004-04-22  Per Bothner  <per@bothner.com>
2534
2535         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
2536         Fixes PR preprocessor/15067.
2537
2538 2004-04-23  Andreas Schwab  <schwab@suse.de>
2539
2540         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
2541         avoid aliasing warning.
2542
2543 2004-04-22  Jan Hubicka  <jh@suse.cz>
2544             Mostafa Hagog <mustafa@il.ibm.com>
2545
2546       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
2547       * cfgloopanal.c (expected_loop_iterations): Change the return value
2548
2549 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
2550
2551         * cselib.h (struct elt_loc_list): Remove canon_loc field.
2552         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
2553         (cselib_invalidate_mem): Remove all canon_loc and canon_x
2554         traces.
2555
2556 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
2557
2558         Revert
2559         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2560
2561                 * var-tracking.c (variable_part_different_p): Variable parts
2562                 differ when the most recent locations differ.
2563
2564 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
2565
2566         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
2567         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
2568         (embedded_pic_offset): Delete.
2569         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
2570         MASK_* constants.
2571         (TARGET_EMBEDDED_PIC): Delete.
2572         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
2573         (ASM_SPEC): Remove -membedded-pic.
2574         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
2575         (ASM_OUTPUT_CASE_LABEL): Likewise.
2576         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
2577         * config/mips/windiss.h (ASM_SPEC): Likewise.
2578         * config/mips/mips.c (struct machine_function): Remove
2579         embedded_pic_fnaddr_rtx.
2580         (TARGET_ENCODE_SECTION_INFO): Remove override.
2581         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
2582         (override_options): Remove -membedded-pic handling.
2583         (print_operand): Remove handling of '%S'.
2584         (mips_select_section: Remove -membedded-pic handling.
2585         (mips_encode_section_info): Delete.
2586         (mips_output_conditional_branch): Remove mention of -membedded-pic.
2587         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
2588         -membedded-pic handling.
2589         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
2590
2591 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
2592
2593         * var-tracking.c (frame_base_decl): Remove useless GTY.
2594
2595 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
2596
2597         * config/rs6000/rs6000.c (rs6000_override_options): Error when
2598         user wants altivec and e500 instructions.
2599
2600 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
2601
2602         PR target/14813
2603         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
2604         in .init_array section to ...
2605         * config/ia64/crtbegin.asm: Here.
2606
2607         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
2608         and hidden if HAVE_INITFINI_ARRAY is defined.
2609
2610 2004-04-21  James E Wilson  <wilson@specifixinc.com>
2611
2612         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
2613         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
2614         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
2615         (fp_register_operand, lo_operand): New.
2616         (mips_rtx_costs): Add TUNE_SB1 support.
2617         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
2618         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
2619         (mips_multipass_dfa_lookahead): New.
2620         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
2621         TUNE_SB1): New.
2622         (TARGET_SWITCHES): Add -mfp-exceptions support.
2623         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
2624         (BRANCH_COST): Fix whitespace.
2625         * config/mips/mips.md: Include sb1.md.
2626         * config/mips/sb1.md: New file.
2627         * doc/invoke.texi: Document -mfp-exceptions.
2628
2629         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
2630         comment.
2631         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
2632         (fixincl.o-warn): Delete.
2633
2634 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
2635
2636         * config/rs6000/rs6000 (print_operand) ['z']:
2637         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
2638
2639 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
2640
2641         * config.gcc: Support --with-arch=iwmmxt for ARM.
2642
2643 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2644
2645         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
2646         in two more places; remove unneeded force_reg
2647
2648 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
2649
2650         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
2651         for TARGET_MACHO.
2652         (print_operand): For TARGET_MACHO check to see if we need a stub
2653         and output one if we need it.
2654
2655         PR debug/15033
2656         * dwarf2out.c (rtl_for_decl_location): Check for NULL
2657         rtl.
2658
2659 2004-04-20  James E Wilson  <wilson@specifixinc.com>
2660
2661         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
2662         (vall_value_gp): Likewise.
2663
2664 2004-04-20  DJ Delorie  <dj@redhat.com>
2665
2666         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
2667         variables stored in word registers, then in memory.
2668
2669 2004-04-20  Eric Christopher  <echristo@redhat.com>
2670
2671         * cp/parser.c (cp_parser_declaration): Move translate
2672         up before tokens are lexed.
2673
2674 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
2675
2676         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
2677         (asin_optab, acos_optab): Define corresponding macros.
2678         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
2679         * genopinit.c (optabs): Implement asin_optab and acos_optab
2680         using asin?f2 and acos?f2 patterns.
2681         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
2682         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
2683         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
2684         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2685
2686         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
2687         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
2688         acos, acosf and acosl built-ins as inline x87 intrinsics.
2689
2690 2004-04-20  Paul Brook  <paul@codesourcery.com>
2691
2692         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
2693
2694 2004-04-20  Paul Brook  <paul@codesourcery.com>
2695
2696         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
2697
2698 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
2699
2700         Revert part of 2004-04-17 change that moved -frename-registers
2701         to -O1.  -frename-registers is buggy.
2702
2703         * toplev.c (flag_rename_registers): Initialize to 0.
2704         * doc/invoke.texi (Optimize options): Move -frename-registers
2705         to "Not triggered by any -O level" section.  Adjust commentary
2706         accordingly.
2707
2708 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
2709
2710         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
2711
2712 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
2713
2714         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
2715         for mflo and mfhi instructions.
2716         (mips_output_move): Remove mflo and mfhi handling.
2717         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
2718         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
2719         Likewise various define_peephole2s.
2720         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
2721         alternatives.
2722         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
2723         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
2724         (mfhilo_di, mfhilo_si): New patterns.
2725
2726 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2727
2728         * function.c (assign_parms): Force
2729         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
2730
2731 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2732
2733         * var-tracking.c (variable_part_different_p): Variable parts differ
2734         when the most recent locations differ.
2735
2736 2004-04-19  James E Wilson  <wilson@specifixinc.com>
2737
2738         * rtl.h (reg_set_last): Delete declaration.
2739         * rtlanal.c (reg_set_last): Delete.
2740
2741 2004-04-19  Roger Sayle  <roger@eyesopen.com>
2742
2743         * fold-const.c (fold_convert): Make function extern/public.
2744         * tree.h (fold_convert): Prototype here.
2745         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2746         expand_builtin_strrchr, expand_builtin_strpbrk,
2747         expand_builtin_mempcpy, expand_builtin_bcopy,
2748         expand_builtin_bzero, expand_builtin_memcmp,
2749         expand_builtin_strcmp, expand_builtin_strncmp,
2750         stabilize_va_list, expand_builtin_sprintf,
2751         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
2752         fold_builtin_exponent, fold_builtin_mempcpy,
2753         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
2754         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
2755         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
2756
2757 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
2758
2759         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
2760         (move_from_CR_gt_bit): New.
2761         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
2762         E500.
2763         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
2764         E500.
2765
2766         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
2767         (tstsfeq_gpr): Same.
2768         (cmpsfgt_gpr): Same.
2769         (tstsfgt_gpr): Same.
2770         (cmpsflt_gpr): Same.
2771         (tstsflt_gpr): Same.
2772         (e500_cceq_ior_compare): New.
2773         (e500_flip_gt_bit): New.
2774
2775         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
2776         (print_operand): Add 'c' and 'D'.
2777         (rs6000_generate_compare): Rewrite to generate correct rtl.
2778         (rs6000_emit_sCOND): Handle E500.
2779         (output_cbranch): Adjust for changes in rs6000_generate_compare.
2780         (output_e500_flip_gt_bit): New.
2781
2782         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
2783         Protoize.
2784
2785 2004-04-19  Eric Christopher  <echristo@redhat.com>
2786
2787         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
2788
2789 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
2790
2791         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
2792         fix information.
2793
2794 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2795
2796         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
2797         download URL.
2798
2799 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
2800
2801         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
2802         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
2803
2804 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
2805
2806         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
2807         (fold_builtin): Update caller to match.
2808
2809         PR bootstrap/15009
2810         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
2811
2812         PR bootstrap/14999
2813         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
2814
2815 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2816
2817         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
2818
2819         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
2820         (expand_mult_highpart_optab): Likewise.
2821         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
2822
2823 2004-04-19  Paul Brook  <paul@codesourcery.com>
2824
2825         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
2826         floatunssisf2, floatunssidf2): New patterns.
2827
2828 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
2829
2830         PR other/14918
2831         * doc/invoke.texi (-fprofile-generate): Document requirement to
2832         use -fprofile-generate when linking.
2833
2834         * doc/extend.texi (Strong Using): Warn users against using this
2835         feature.
2836
2837 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
2838
2839         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
2840         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
2841         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
2842         * config/mips/mips.c (struct mips16_constant): Renamed from struct
2843         constant.  Propogate change throughout file.
2844         (struct machine_function): Remove insns_len.
2845         (mips_string_length, mips16_strings, string_constants): Delete.
2846         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
2847         when generating mips16 code.  Remove special mips16 treatment of
2848         string constants.
2849         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
2850         to have the form LABEL+CONSTANT.
2851         (mips_symbolic_address_p): Fix comment.
2852         (m16_usym8_4, m16_usym5_4): Delete.
2853         (mips_output_function_epilogue): Remove mips16 string handling.
2854         (mips_output_mi_thunk): Call mips16_lay_out_constants.
2855         (mips_select_section, mips_encode_section_info): Remove mips16
2856         string handling.
2857         (struct mips16_constant_pool): New.
2858         (add_constant): Take a mips16_constant_pool structure.  Keep pool
2859         sorted into order of ascending mode size.  Keep track of the highest
2860         possible start address, taking padding and the masking of the base PC
2861         value into account.
2862         (dump_constants_1): New function, split out from dump_constants.
2863         Handle vector constants.  Use gen_consttable_{int,float} rather than
2864         separate functions for each mode.
2865         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
2866         rather than separate functions for each alignment.
2867         (mips_find_symbol): Delete.
2868         (mips16_insn_length): New function, split out from
2869         mips16_lay_out_constants.
2870         (mips16_rewrite_pool_refs): New function.
2871         (mips16_lay_out_constants): Rework. Remove string handling.
2872         Always create an inline constant pool.
2873         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
2874         (UNSPEC_ALIGN): New constants.
2875         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
2876         (UNSPEC_ALIGN_[248]): Delete.
2877         (consttable_int, consttable_float, align): New patterns.
2878         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
2879
2880 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
2881
2882         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
2883         __unn_args_eq.
2884
2885 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
2886
2887         PR target/14715
2888         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
2889         with STARTING_FRAME_OFFSET.
2890
2891 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2892
2893         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
2894         * config/mips/mips.c (macc_msac_operand): New function.
2895         * config/mips/mips.md (*msac): Move after *macc.
2896         (*msac2): New.  Generalize macc-related peepholes so that they apply
2897         to msac too.
2898
2899 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
2900
2901         * opts.c (decode_options): Do not enable flag_rename_registers
2902         and flag_web at -O3.
2903         * toplev.c (flag_rename_registers): Initialize
2904         flag_rename_registers and flag_web to
2905         AUTODETECT_FLAG_VAR_TRACKING.
2906         (default_debug_hooks): New global.
2907         (process_options): Initialize default_debug_hooks.  Warn if
2908         -fvar-tracking specified but not supported by the current
2909         debug format.  Do not run var tracking at -O0 or if not
2910         supported by the current debug format, even if
2911         -fvar-tracking was given.  If -fno-rename-registers
2912         is not specified, always run register renaming if var
2913         tracking is supported by the default debugging information
2914         format for the target, and we are at -O1 or higher; similarly
2915         for -fweb, but only at -O2 or higher.
2916         * doc/invoke.texi (Optimize Options): Document this.
2917
2918 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2919
2920         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
2921         * configure: Regenerate.
2922
2923 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2924
2925         * gcc.c (used_arg): Check whether an option has been removed.
2926
2927 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2928
2929         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
2930         debugging on Solaris 7 and up.
2931
2932 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2933
2934         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
2935         IRIX 5 port.
2936         Remove -save-temps workaround, handled automatically.
2937         Require GNU binutils 2.15 for debugging.
2938         Remove SGI make warnings since GNU make is now required.
2939         (Specific, mips-sgi-irix6): Some markup fixes.
2940         Describe MIPSpro C problems and workarounds.
2941         Mention working O32 ABI support.
2942         Recommend GNU as 2.15 for O32 with debugging.
2943         Remove description of fixed structure pass/return bug.
2944
2945 2004-04-16  DJ Delorie  <dj@redhat.com>
2946
2947         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
2948         TYPE_FIELDS.
2949         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
2950
2951 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2952
2953         * pa.md: Remove unnecessary declarations for asm_out_file.
2954
2955         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
2956         SAR register.  Fix comment.
2957         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
2958         (%cr11).
2959
2960         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
2961
2962 2004-04-16  Nick Clifton  <nickc@redhat.com>
2963
2964         * config/arm/arm.c (arm_override_options): Revert previous patch.
2965         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
2966         be safely built.
2967
2968 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
2969
2970         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
2971         bug.
2972         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
2973         TARGET_DEFAULT): Changed. Ditto.
2974         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
2975         TARGET_ENDIAN_DEFAULT): Added. Ditto.
2976         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
2977         (TARGET_ENDIAN_DEFAULT): Added.
2978
2979 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2980
2981         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
2982         ATTR_CONST_NOTHROW_LIST.
2983
2984 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2985
2986         PR/middle-end 14915
2987         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
2988         BITS_BIG_ENDIAN.
2989
2990 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
2991
2992         * ra-debug.c (ra_print_rtx): Add break's to case legs.
2993
2994 2004-04-14  James E Wilson  <wilson@specifixinc.com>
2995
2996         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
2997
2998 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
2999
3000         * libada-mk.in: New file.
3001         * configure.ac: Create libada-mk from libada-mk.in.
3002         * configure: Regenerate.
3003
3004 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
3005
3006         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
3007         (logb_optab, ilogb_optab): Define corresponding macros.
3008         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
3009         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
3010         using logb?f2 and ilogb?i2 patterns.
3011         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
3012         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
3013         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
3014         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3015
3016         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
3017         and UNSPEC_XTRACT_EXP.
3018
3019         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
3020         patterns to implement fxtract x87 instruction.
3021         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
3022         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
3023         intrinsics.
3024         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
3025         x87's fxtract insn.
3026
3027 2004-04-14  Eric Christopher  <echristo@redhat.com>
3028
3029         * config/mips/t-elf: Enable multilibs by default.
3030
3031 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
3032
3033         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
3034         previous fix to check HAVE_return at runtime too.
3035
3036 2004-04-14  Nick Clifton  <nickc@redhat.com>
3037
3038         * config/arm/arm.c (arm_override_options): If the user has not
3039         specified an ABI, then default to AAPCS for the iWMMXt processor.
3040         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
3041         * config/arm/t-xscale-coff: Likewise.
3042
3043 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3044
3045         * builtins.c (fold_builtin_isdigit): New.
3046         (fold_builtin): Handle BUILT_IN_ISDIGIT.
3047         * defaults.h: Add TARGET_DIGIT0 and sort.
3048         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
3049
3050 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3051
3052         * builtins.c (fold_builtin_cabs, fold_builtin): Use
3053         `mathfn_built_in' to determine the new builtin.
3054         * fold-const.c (fold): Likewise.
3055
3056 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
3057
3058         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
3059         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
3060         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
3061         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
3062         (ASM_SPEC): Update accordingly.
3063         * config/mips/mips.c: Update after above renaming.
3064         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
3065         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
3066
3067 2004-04-13  James E Wilson  <wilson@specifixinc.com>
3068
3069         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
3070         increment errorcount and return false instead of true.
3071
3072 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
3073
3074         * optabs.c (expand_twoval_unop): Reorder function arguments.
3075         * builtins.c (expand_builtin_mathfn_3): Update calls to
3076         expand_twoval_unop.
3077
3078         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
3079         and UNSPEC_TAN_TAN. Add missing comment.
3080
3081         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
3082         patterns to implement fptan x87 instruction.
3083         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
3084         and tanl built-ins as inline x87 intrinsics. Define corresponding
3085         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
3086         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
3087         x87's fptan insn.
3088
3089 2004-03-13  Richard Henderson  <rth@redhat.com>
3090
3091         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
3092         for LABEL_REFs.
3093
3094         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
3095         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
3096         * doc/invoke.texi: Update to match.
3097
3098         * varasm.c (unlikely_text_section): Use assemble_align instead of
3099         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
3100         correct alignment argument.
3101
3102 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
3103
3104         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
3105         after setting reg_last_reload_reg for optional output reloads.
3106
3107 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
3108
3109         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
3110         Definition of these two macros are corrected by adding
3111         matchine right paren.
3112
3113 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
3114
3115         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
3116
3117 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3118
3119         * config/i386/i386.c (output_387_reg_move): New function.
3120         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
3121         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
3122         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
3123         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
3124         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
3125
3126 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3127
3128         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
3129         TYPE_DECL.
3130         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
3131         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
3132         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
3133         Use skip_simple_arithmetic to find SAVE_EXPR.
3134         (force_type_save_exprs, force_type_save_exprs_1): New functions.
3135         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
3136         Properly chain multiple pointers.
3137         (copy_tree_r): Copy a TYPE_DECL.
3138         * tree.c (variably_modified_type_p): Add some missing tests and
3139         make some other minor changes.
3140         * tree.h (force_type_save_exprs): New declaration.
3141
3142 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3143
3144         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
3145         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
3146         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
3147         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
3148         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
3149         x%-1 into 0 (or x&0 if x has side-effects).
3150
3151 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3152
3153         * config/rs6000/rs6000.md: Document why a pattern is not
3154         available.
3155
3156         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
3157         of floats on the E500.
3158         (branch_positive_comparison_operator): Do not allow NE even on the
3159         E500.
3160
3161 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3162
3163         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
3164         in_text_unlikely_section to in_unlikely_text_section.
3165
3166 2004-04-11  Roger Sayle  <roger@eyesopen.com>
3167
3168         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
3169         calling convention to allow a NULL_TREE to be returned.  Factor
3170         sanity checks from callers, return NULL_TREE when appropriate.
3171         (fold): Handle COMPOUND_EXPR operands of binary expressions
3172         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
3173         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
3174         calls to fold_binary_op_with_conditional_arg.
3175
3176 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3177
3178         * config/mips/iris5.h (current_section_flags):  Add
3179         in_unlikely_executed_text and default case.
3180
3181 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
3182
3183         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
3184         failure on solaris. Place ifdef HAVE_return around gen_ret call.
3185         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
3186         HAVE_return and place it around the place where it is needed.
3187
3188 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3189
3190         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
3191         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
3192         and NORMAL_TEXT_SECTION_NAME.
3193         (unlikely_text_section): Check targetm.have_named_sections
3194         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
3195         instead of SECTION_FORMAT_STRING.
3196         * config/mips/iris5.h (current_section_name): Add
3197         in_unlikely_executed_text case and move the abort into the switch.
3198         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
3199         (NORMAL_TEXT_SECTION_NAME): Remove.
3200         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3201         (SECTION_FORMAT_STRING): Remove.
3202         * defaults.h (SECTION_FORMAT_STRING): Remove.
3203         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
3204         (SECTION_FORMAT_STRING): Remove.
3205
3206 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3207
3208         * c-typeck.c (common_type): Prefer long long to long when same
3209         precision.
3210
3211 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
3212
3213         PR 14887
3214         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
3215         mode argument.
3216         * config/ia64/ia64.c (ia64_hpux_file_end): Check
3217         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
3218
3219 2004-04-09  Roger Sayle  <roger@eyesopen.com>
3220
3221         * simplify-rtx.c (mode_signbit_p): New function to check whether
3222         an RTX is an immediate constant that represents the most significant
3223         bit of a given machine mode.
3224         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
3225         C is the sign bit.
3226         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
3227         when C2 is the sign bit.
3228         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
3229         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
3230         sign bit.
3231
3232 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3233
3234         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
3235         TYPE_MODE.
3236
3237 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
3238
3239         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
3240         of TREE_READONLY for types.
3241
3242 2004-04-09  Caroline Tice  <ctice@apple.com>
3243
3244         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
3245         (struct basic_block_def):  Add new field, partition.
3246         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
3247         definitions.
3248         (partition_hot_cold_basic_blocks): Add extern function
3249         declaration.
3250         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
3251         include statements.
3252         (N_ROUNDS): Increase the maximum number of rounds by 1.
3253         (branch_threshold): Add array value for new round.
3254         (exec_threshold): Add array value for new round.
3255         (push_to_next_round_p): New function.
3256         (add_unlikely_executed_notes): New function.
3257         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
3258         (mark_bb_for_unlikely_executed_section): New function.
3259         (add_labels_and_missing_jumps): New function.
3260         (add_reg_crossing_jump_notes): New function.
3261         (fix_up_fall_thru_edges): New function.
3262         (find_jump_block): New function.
3263         (fix_crossing_conditional_branches): New function.
3264         (fix_crossing_unconditional_branches): New function.
3265         (fix_edges_for_rarely_executed_code): New function.
3266         (partition_hot_cold_basic_blocks): New function.
3267         (find_traces):  Add an extra round for partitioning hot/cold
3268         basic blocks.
3269         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
3270         and only cold blocks, into the last (extra) round of collecting traces.
3271         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
3272         over crossing edges.
3273         (bb_to_key):  Add code to correctly identify cold blocks when
3274         doing partitioning.
3275         (connect_traces): Modify to connect all the non-cold traces first, then
3276         go back and connect up all the cold traces.
3277         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
3278         * cfg.c (entry_exit_blocks): Add initialization for partition field in
3279         entry and exit blocks.
3280         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
3281         if we are doing hot/cold partitioning.
3282         * cfgcleanup.c (cfglayout.h): Add new include statement.
3283         (try_simplify_condjump): Modify to not attempt on blocks with jumps
3284         that cross section boundaries.
3285         (try_forward_edges): Likewise.
3286         (merge_blocks_move_predecessor_nojumps): Likewise.
3287         (merge_blocks_move_successor_nojumps): Likewise.
3288         (merge_blocks_move): Likewise.
3289         (try_crossjump_to_edge): Modify to not attempt after we have done
3290         the block partitioning.
3291         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
3292         cross section boundaries.
3293         (try_optimize_cfg): Likewise.
3294         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
3295         jumps that cross section boundaries.
3296         * cfglayout.c (flags.h): Add new include statement.
3297         (update_unlikely_executed_notes):  New function.
3298         (fixup_reorder_chain):  Add code so when a new jumping basic block is
3299         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
3300         updated appropriately.
3301         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
3302         introduced by this optimization.
3303         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
3304         extern function declaration.
3305         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
3306         list of notes that can be deleted.
3307         (create_basic_block_structure):  Add initialization for partition field.
3308         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
3309         section boundaries.
3310         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
3311         cross section boundaries.
3312         (commit_one_edge_insertion): Add code so newly created basic block
3313         ends up in correct (hot or cold) section.  Modify to disallow
3314         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
3315         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
3316         crosses section boundaries.
3317         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
3318         cross section boundaries.
3319         (force_nonfallthru_and_redirect): Modify to make sure new basic block
3320         ends up in correct section, with correct notes attached.
3321         * common.opt (freorder-blocks-and-partition):  Add new flag for this
3322         optimization.
3323         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
3324         the end of functions are written into the correct (hot or cold)
3325         section.
3326         (dbx_source_file): Add code so writing debug file information
3327         doesn't incorrectly change sections.
3328         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
3329         in partitioning hot/cold basic blocks into separate sections.
3330         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
3331         section partitioning.
3332         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
3333         conditional branches can span all of memory.
3334         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
3335         unconditional branches can span all of memory.
3336         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
3337         (final_scan_insn):  Add code to check for NOTE instruction indicating
3338         whether basic block belongs in hot or cold section, and to make sure
3339         the current basic block is being written to the appropriate section.
3340         Also added code to ensure that jump table basic blocks end up in the
3341         correct section.
3342         * flags.h (flag_reorder_blocks_and_partition):  New flag.
3343         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
3344         one of the branches has a jump that crosses between sections.
3345         (find_if_case_2): Likewise.
3346         (ifcvt): Modify to not attempt to mark loop exit edges after
3347         hot/cold partitioning has occurred.
3348         * opts.c (decode_options): Code to handle new flag,
3349         flag_reorder_blocks_and_partition; also to turn it off if
3350         flag_exceptions is on.
3351         (common_handle_option): Code to handle new flag,
3352         flag_reorder_blocks_and_partition.
3353         * output.h (unlikely_text_section): New extern function declaration.
3354         (in_unlikely_text_section): New extern function declaration.
3355         * passes.c (rest_of_handle_stack_regs):  Add
3356         flag_reorder_blocks_and_partition as an 'or' condition for calling
3357         reorder_basic_blocks.
3358         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
3359         as an 'or' condition for calling reorder_basic_blocks.
3360         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
3361         * print-rtl.c (print_rtx): Add code for handling new note,
3362         NOTE_INSN_UNLIKELY_EXECUTED_CODE
3363         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
3364         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
3365         cross between section boundaries.
3366         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
3367         indicating the basic block containing it belongs in the cold section.
3368         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
3369         between hot and cold sections.
3370         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
3371         initialize this flag, and to tie it to the command-line option
3372         freorder-blocks-and-partition.
3373         * varasm.c (cfglayout.h):  Add new include statement.
3374         (unlikely_section_label_printed):  New global variable, used for
3375         determining when to output section name labels for cold sections.
3376         (in_section):  Add in_unlikely_executed_text to enum data structure.
3377         (text_section):  Modify code to use SECTION_FORMAT_STRING and
3378         NORMAL_TEXT_SECTION_NAME macros.
3379         (unlikely_text_section):  New function.
3380         (in_unlikely_text_section):  New function.
3381         (function_section):  Add code to make sure beginning of function is
3382         written into correct section (hot or cold).
3383         (assemble_start_function):  Add code to make sure stuff is written to
3384         the correct section.
3385         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
3386         to an if statement that was checking 'in_text_section'.
3387         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
3388         condition to an if statement that was checking 'in_text_section'.
3389         (default_section_type_flags_1):  Add check: if in cold section
3390         flags = SECTION_CODE.
3391         * config/darwin.c (darwin_asm_named_section):  Modify to use
3392         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
3393         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
3394         specifically for the i386.
3395         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
3396         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
3397         text string to something more informative.
3398         (NORMAL_TEXT_SECTION_NAME): Add new definition.
3399         (SECTION_FORMAT_STRING):  Add new definition.
3400         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
3401         '!in_unlikely_text_section' as an 'and' condition to an if statement
3402         that was already checking '!in_text_section'.
3403         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
3404         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
3405         sure these are properly defined for linux on ppc.
3406         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
3407         for this new flag.
3408         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
3409         reg_note.
3410         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
3411         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
3412         these new macros.
3413
3414 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3415
3416         * function.c (gen_mem_addressof): When changing the RTX from a REG
3417         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
3418
3419 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3420
3421         PR target/14888
3422         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
3423         truncxfdf2_noop): Provide dummy "fmov" implementations.
3424
3425 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
3426
3427         * gcc.c (default_compilers): Add missing initializers.
3428
3429         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3430         Return 1 if file was successfully mapped.
3431
3432 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
3433
3434         PR pch/13419
3435         PR pch/14137
3436         Radar #: 3315288
3437         * doc/invoke.texi (Precompiled Headers): Suggest -o
3438         to put an output file in a particular place.  Be more detailed
3439         about which options affect PCH validity and which options
3440         might not work.
3441         * c-pch.c (pch_matching): New.
3442         (MATCH_SIZE): New.
3443         (struct c_pch_validity): New field 'match'.
3444         (pch_init): Handle pch_matching.
3445         (c_common_valid_pch): Check pch_matching.
3446
3447         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
3448
3449 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
3450
3451         * doc/invoke.texi (Precompiled Headers): Warn about known
3452         problems.
3453
3454 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
3455
3456         PR c++/14808
3457         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
3458         to 1 if ASM_OUTPUT_DEF is defined.
3459         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
3460         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
3461         Set to non-zero iff not a one_only decl.
3462
3463 2004-04-08  Paul Brook  <paul@codesourcery.com>
3464
3465         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
3466
3467 2004-04-08  Paul Brook  <paul@codesourcery.com>
3468
3469         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
3470         PROMOTE_FOR_CALL_ONLY.
3471         * config/arm/arm-protos.h (arm_function_value): Declare.
3472         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
3473         (TARGET_PROMOTE_PROTOTYPES): Return false.
3474         (arm_function_value): New function.
3475         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
3476         (FUNCTION_VALUE): Call arm_function_value.
3477         * config/cris/cris.h (PROMOTE_MODE): Rename ...
3478         (PROMOTE_FUNCTION_MODE): ... to this.
3479         (PROMOTE_FOR_CALL_ONLY): Remove.
3480         * config/mmix/mmix.h: Likewise.
3481         * config/s390/s390.h: Likewise.
3482         * config/sparc/sparc.h: Likewise.
3483         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
3484         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
3485         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
3486         (PROMOTE_FOR_CALL_ONLY): Remove.
3487
3488 2004-04-08  Joel Sherrill <joel@oarcorp.com>
3489
3490         PR ada/14538
3491         * ada/5rosinte.adb: Remove fake mprotect() body.
3492         * ada/5rosinte.ads: Add SA_SIGINFO.
3493         * ada/5rtpopsp.adb: Rewrite to use new interface.
3494         * ada/init.c: Reorder so the simple single OS conditional __rtems__
3495         is tested before more complex ones which mix UNIX and embedded
3496         systems in the conditional.
3497
3498 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
3499
3500         PR ada/14665
3501         * ada/osint.adb (Find_Program_Name): Rework to properly handle
3502         filenames which end in .exe or have versioning suffixes like VMS.
3503
3504 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
3505
3506         PR target/10129
3507         * config/darwin.c (darwin_encode_section_info): When the decl has
3508         a DECL_INITIAL, it is only defined also when it is not a common.
3509
3510 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3511
3512         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
3513         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
3514
3515 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
3516
3517         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
3518         global register variables.
3519
3520 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3521
3522         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
3523         rpc_xdr_lvalue_cast_b): New fixes.
3524         * fixinc/fixincl.x: Regenerate.
3525         * fixinc/tests/base/rpc/xdr.h: Add new tests.
3526
3527 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
3528
3529         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
3530         to power4 and power5 entries.
3531
3532 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
3533
3534         * c-common.h (pending_lang_change): Mark for PCH.
3535
3536 2004-04-07  Caroline Tice  <ctice@apple.com>
3537
3538         * gcc.c (main): Move 'break' in main loops (on an error)
3539         to wait until error processing has occurred.
3540
3541 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
3542
3543         * config.gcc: Stop changing enable_threads midstream.
3544         Replace uses of enable_threads_flag with enable_threads.
3545         * configure.ac: Replace uses of enable_threads_flag with
3546         enable_threads.  Improve autoconf quotation in one place.
3547         * configure: Regenerate.
3548
3549 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
3550
3551         * builtins.c: Implement support for sincos function.
3552         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
3553         BUILT_IN_COS{,F,L}.
3554         (expand_builtin_mathfn_3): New function.
3555         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
3556         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
3557         flag_unsafe_math_optimization is set.
3558
3559         * optabs.h (enum optab_index): Add new OTI_sincos.
3560         (sincos_optab): Define corresponding macro.
3561
3562         * optabs.c (init_optabs): Initialize sincos_optab.
3563         (expand_twoval_unop): New function.
3564
3565         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
3566         patterns.
3567
3568         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
3569         and UNSPEC_SINCOS_SIN.
3570
3571         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
3572         sincosxf3): New patterns to implement sincos, sincosf and sincosl
3573         built-ins as inline x87 intrinsics. Define splits for
3574         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
3575         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
3576         sincos patterns.
3577         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
3578         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
3579
3580         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
3581         x87's fsincos insn.
3582
3583 2004-04-06  Devang Patel  <dpatel@apple.com>
3584
3585         PR 14467
3586         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
3587
3588 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3589
3590         * doc/install.texi: Update HP-UX 11 installation procedure.
3591
3592 2004-04-06  Paul Brook  <paul@codesourcery.com>
3593
3594         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
3595
3596 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3597
3598         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
3599         when the TLS address is generated by a function call.
3600         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
3601         (tls_local_dynamic): Likewise.
3602
3603 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
3604
3605         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
3606         and TYPE_VOLATILE.
3607
3608 2004-04-05  Caroline Tice  <ctice@apple.com>
3609
3610         * gcc.c (combine_flag): New global variable, for new driver option.
3611         (struct compiler): Add two new fields, to be used when
3612         combining multiple input files in a single pass (IMA).
3613         (default_compilers):  Add values for the new fields to all
3614         compiler entries. Modify the "@c" compiler entry for doing IMA
3615         properly with "-save-temps" and the "combine" flag.
3616         (option_map):  Add new driver option, "--combine", to tell driver
3617         to pass multiple input files to compiler at one time.
3618         (have_o_argbuf_index): New global variable.
3619         (store_arg): Modify to assign value to have_o_argbuf_index.
3620         (struct infile):  Add three new fields, to help with IMA.
3621         (display_help): Add help for new "combine" option.
3622         (process_command): Remove local variable have_o; add code to check
3623         for new "combine" option; remove assignment to combine_inputs.
3624         (do_spec_1):  Modify to deal with IMA better.
3625         (main): Make variable 'lang_n_infiles' local to entire function
3626         rather than to a single block.  Use flag combine_flag to
3627         determine whether to do IMA or not; Modify loop initializing
3628         infiles to deal properly with linker files.
3629         Add code for doing preprocessing in presence of
3630         IMA with "-save-temps" flag.  Modify "main" loop to handle
3631         multiple input files, in multiple languages, with or without
3632         preprocessing,  gracefully.
3633         * toplev.c (set_src_pwd): Modify to not complain if attempting to
3634         re-set it to same directory it's previously been set to (avoid
3635         irritating, meaningless warning messages when doing IMA with
3636         save-temps).
3637         * doc/invoke.texi: Add "-combine" to list of Overall Options;
3638         remove documentation about IMA that is no longer accurate; Add
3639         documentation explaining what "-combine" does.
3640         * ada/lang-specs.h: Add initialization values for new fields in
3641         "struct compiler".
3642         * cp/lang-specs.h: Likewise.
3643         * f/lang-specs.h: Likewise.
3644         * java/lang-specs.h: Likewise.
3645         * objc/lang-specs.h: Likewise.
3646         * treelang/lang-specs.h: Likewise.
3647
3648 2004-04-05  David Edelsohn
3649
3650         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
3651         symbol handling.
3652
3653 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
3654             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3655
3656         PR optimization/13424 (hppa), bootstrap/14462, c/14828
3657         * pa.md: Use replace_equiv_address to retain the attributes of the
3658         memory operands used in the split and peephole2 patterns for optimizing
3659         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
3660
3661 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3662
3663         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
3664         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3665         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
3666         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
3667         PARM_DECL.
3668         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
3669         for a type.
3670         * print-tree.c (print_node): Properly handle side-effects, readonly,
3671         and constant flags.
3672         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
3673         and TREE_CONSTANT if not a type.
3674         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
3675         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
3676         (NON_TYPE_CHECK): New macro.
3677         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
3678
3679 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
3680
3681         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
3682         to DWARF2_DEBUG unconditionally.
3683         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
3684
3685 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
3686             Nathanael Nerode  <neroden@gcc.gnu.org>
3687
3688         PR target/14548
3689         * config.host: Set the shell variable host_can_use_collect2.
3690         Set it to yes by default, and to no for alpha*-dec-*vms*,
3691         i[34567]86-*-mingw32*, and powerpc-*-beos*.
3692         * configure.ac: Set and substitute the shell variable collect2.
3693         Give an error if use_collect2 is yes and host_can_use_collect2 is
3694         no.
3695         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
3696         uses.  Initialize to @collect2@.
3697         (STAGESTUFF): Remove $(USE_COLLECT2).
3698         * config/alpha/x-vms (USE_COLLECT2): Don't set.
3699         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
3700         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
3701         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
3702         * configure: Regenerate.
3703
3704 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3705
3706         * simplify-rtx.c (simplify_binary_operation): Constant fold
3707         DIV, MOD, UDIV and UMOD using div_and_round_double.
3708
3709 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
3710
3711         PR c++/14804
3712         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
3713         RECORD_TYPEs.
3714
3715 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
3716
3717         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
3718         documentation.
3719
3720 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3721
3722         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
3723         updating the REG_EQUAL note on an insn's libcall_insn.
3724
3725 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3726
3727         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
3728
3729 2004-04-03  Roger Sayle  <roger@eyesopen.com>
3730
3731         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
3732         with reorder_operands_p.
3733
3734 2004-04-03  Jan Hubicka  <jh@suse.cz>
3735
3736         * md.texi (vec_set, vec_extract, vec_init): Document.
3737
3738 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
3739
3740        * opts.c (decode_options): Do function inlining with very small
3741        max-inline-insns-* parameters when optimizing for size.
3742
3743 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
3744
3745         * config/i386/i386.h (TARGET_NOCONA): New macro.
3746         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
3747         (processor_type): Add PROCESSOR_NOCONA.
3748
3749         * config/i386/i386.md (cpu): Add nocona to the attribute values.
3750
3751         * config/i386/i386.c (nocona_cost): New variable.
3752         (m_NOCONA): New macro.
3753         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
3754         x86_branch_hints, x86_use_sahf, x86_single_stringop,
3755         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
3756         x86_integer_DFmode_moves, x86_partial_reg_dependency,
3757         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
3758         x86_decompose_lea, x86_arch_always_fancy_math_387,
3759         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
3760         x86_ext_80387_constants, x86_four_jump_limit):
3761         (override_options): Add nocona_cost to processor_target_table.
3762         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
3763         (incdec_operand): Prevent inc/dec generation for Nocona too.
3764         (ix86_issue_rate): Add PROCESSOR_NOCONA.
3765
3766 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
3767
3768         * rtlanal.c (find_reg_note): Manually
3769         unswitch the loop.
3770
3771 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
3772
3773         * genemit.c (gen_split): Change prototype of generated code.
3774         * genrecog.c (write_action): Adjust prototype for and calls to
3775         gen_split_*.
3776         * gensupport.c (struct queue_elem): Add split field.
3777         (queue_pattern): Return a value.  Clear the split field.
3778         (process_rtx): Maintain an association between an insn and the
3779         split generated from it for a define_insn_and_split.
3780         (process_one_cond_exec): Generate a new split for a
3781         define_insn_and_split.
3782         * config/arm/arm-protos.h (arm_split_constant): Add insn
3783         parameter.
3784         (emit_constant_insn): New function.
3785         (arm_gen_constant): Use it.
3786         * config/arm/arm.md: Adjust calls to arm_split_constant.
3787
3788 2004-04-02  Jan Hubicka  <jh@suse.cz>
3789
3790         * cgraph.c: Add overall comment.
3791         (cgraph_inline_hash): New global variable.
3792         (cgraph_create_node): Break out from ...
3793         (cgraph_node): ... here.
3794         (cgraph_edge): New function.
3795         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
3796         (cgraph_remove_edge): Accept edge, intead of source and destination.
3797         (cgraph_redirect_edge_callee): New.
3798         (cgraph_remove_node): Update all new datastructures.
3799         (cgraph_record_call, cgraph_remove_call): Kill.
3800         (dump_cgraph_node): Break out from ... ; dump new datastructures.
3801         (dump_cgraph): ... here.
3802         (cgraph_function_possibly_inlined_p): Use new hashtable.
3803         (cgraph_clone_edge, cgraph_clone_node): New.
3804         * cgraph.h: Include hashtab.h
3805         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
3806         fields, add inlined_to pointer.
3807         (cgraph_node): Add pointer to next_clone.
3808         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
3809         (cgraph_remove_call, cgraph_record_call): Kill.
3810         (cgraph_inline_hash): Declare.
3811         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
3812         cgraph_redirect_edge_callee): Declare.
3813         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
3814         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
3815         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
3816         * cgraphunit.c: Add overall comment.
3817         (cgraph_optimize_function): Kill.
3818         (cgraph_assemble_pending_functions): Do not assemble inline clones.
3819         (cgraph_finalize_function): Update call of cgraph_remove_node
3820         (record_call_1): Record call sites.
3821         (cgraph_create_edges): Accept node instead of decl argument.
3822         (error_found): New static variable.
3823         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
3824         (cgraph_analyze_function): Update for new datastructures.
3825         (cgraph_finalize_compilation_unit): Plug memory leak.
3826         (cgraph_optimize_function): Kill.
3827         (cgraph_expand_function): Do not use cgraph_optimize_function.
3828         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
3829         cgraph_inlined_callees): Kill.
3830         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
3831         clones.
3832         (estimate_growth): Simplify.
3833         (cgraph_clone_inlined_nodes): New function.
3834         (cgraph_mark_inline_edge): Re-implement.
3835         (cgraph_mark_inline): Likewise.
3836         (cgraph_check_inline_limits): Simplify.
3837         (cgraph_recursive_inlining_p): New.
3838         (update_callee_keys): Break out from ...
3839         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
3840         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
3841         Likewise.
3842         (cgraph_expand_all_functions):  Remove inline clones from the ordered
3843         list.
3844         (cgraph_preserve_function_body_p): New predicate.
3845         (cgraph_optimize): Verify cgraph.
3846         * function.h (struct function): Add fields saved_tree/saved_args.
3847         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
3848         * toplev.c (rest_of_compilation): Do not free cfun.
3849         * tree-inline.c: Include function.h
3850         (struct inline_data): Add saving_p field; replace decl/current_decl by
3851         node/current_node.
3852         (insert_decl_map): New function.
3853         (copy_body_r): Handle saving; update cgraph datastructure.
3854         (copy_body): Handle recursive inlining.
3855         (initialize_inlined_parameters): Likewise.
3856         (expand_call_inline): Propagate node attributes; update cgraph.
3857         (optimize_inline_calls): Verify that datastructure still match.
3858         (save_body): New function.
3859         * tree-inline.h (save_body): New.
3860         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
3861         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
3862         * langhooks.c (lang_hooks): Add update_decl_after_saving.
3863
3864 2004-04-01  Serge Belyshev  <1319@bot.ru>
3865
3866         PR target/14702
3867         * config/i386/i386.md: fix source operand constraints in
3868         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
3869
3870 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
3871
3872         * fold-const.c (folda): Preserve types of comparisons.
3873
3874 2004-04-01  Richard Henderson  <rth@redhat.com>
3875
3876         * toplev.c (backend_init): Move init_optimization_passes call ...
3877         (lang_dependent_init): ... here.
3878
3879 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
3880             Jakub Jelinek  <jakub@redhat.com>
3881
3882         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
3883         -lgcc --as-needed -lgcc_s --no-as-needed by default.
3884         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
3885         * configure: Rebuilt.
3886         * config.in: Rebuilt.
3887         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
3888         (stage2-start, stage3-start, stage4-start): Likewise.
3889         (stageprofile-start, stagefeedback-start): Likewise.
3890
3891 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
3892
3893         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
3894         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3895         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3896         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3897         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
3898         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
3899         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
3900         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
3901         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
3902         * config/sparc/t-linux: Removed.
3903
3904 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
3905
3906         PR c++/14755
3907         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
3908         "bitfld++ == const" to "++bitfld == const + incr" transformations.
3909
3910 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3911
3912         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
3913         * stor-layout.c (layout_decl): Likewise.
3914         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
3915         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
3916         * print-tree.c (print_node): Handle various used of unsigned_flag.
3917         * tree.def (BIT_FIELD_REF): Update comment.
3918         * tree.h (TREE_UNSIGNED): Deleted.
3919         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
3920
3921 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3922
3923         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
3924         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
3925         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
3926         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
3927         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
3928         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
3929         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
3930         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
3931         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
3932         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
3933         REAL_TYPE, not INTEGER_TYPE.
3934         (layout_type, case VECTOR_TYPE): Simplify code.
3935         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
3936         * tree.h: Update comments.
3937         (STRIP_NOPS): Use TYPE_UNSIGNED.
3938         (TYPE_UNSIGNED): New macro.
3939         (TYPE_TRAP_SIGNED): Remove now redundant check.
3940         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
3941
3942 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3943
3944         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
3945
3946 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
3947
3948         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
3949         Add darwin-fpsave.asm, darwin-vecsave.asm,
3950         and darwin-world.asm.
3951         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
3952         as the asm files contain altivec instructions.
3953         * config/rs6000/darwin-fpsave.asm: New file.
3954         * config/rs6000/darwin-vecsave.asm: New file.
3955         * config/rs6000/darwin-world.asm: New file.
3956
3957 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
3958
3959         * gengtype-yacc.y (option, stringseq): Add missing
3960         terminating semicolon.
3961
3962 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
3963
3964         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
3965         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
3966         tls_dtprel_ha_32, tls_dtprel_ha_64,
3967         tls_dtprel_lo_32, tls_dtprel_lo_64,
3968         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
3969         tls_tprel_ha_32, tls_tprel_ha_64,
3970         tls_tprel_lo_32, tls_tprel_lo_64,
3971         tls_got_tprel_32, tls_got_tprel_64,
3972         tls_tls_32, tls_tls_64): Replace register_operand with
3973         gpc_reg_operand.
3974
3975 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
3976
3977         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
3978         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
3979         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
3980         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
3981         *ctrdi_internal6): Replace register_operand with
3982         nonimmediate_operand.
3983
3984 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
3985
3986         * fold-const.c (fold): Reassociate multiply expression
3987         with an adjacent non-multiply expression to use
3988         architecture's multiply-add instruction.
3989
3990 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
3991
3992         * gengtype.c (create_option): New function.
3993         * gengtype.h: Prototype it.
3994         * gengtype-yacc.y (stringseq): New rule.
3995         (option): Use create_option.  Add new bare ID production.  Use
3996         stringseq, not STRING directly.
3997
3998         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
3999         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
4000         * varray.h, config/alpha/alpha.c:
4001         Use new shorter form of GTY markers.
4002
4003         * doc/gty.texi: Rewrite.
4004
4005 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
4006
4007         * config/darwin.c (machopic_function_base_name):
4008         Remove current_name and getting the name of the
4009         current function.
4010
4011 2004-03-30  Nick Clifton  <nickc@redhat.com>
4012
4013         * config/arm/arm.md (thumb_jump): Reduce the backward branch
4014         range, and increase the forward branch range, to allow for
4015         the fact that the PC will be off by 4.
4016
4017 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
4018
4019         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
4020
4021 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
4022
4023         * config/rs6000/rs6000.c (output_vec_const_move):
4024         Find all cases of EASY_VECTOR_15_ADD_SELF.
4025         (easy_vector_constant_add_self): Accept
4026         all vector constant loadable by vsplt* and vadd*.
4027         (easy_vector_same): Use easy_vector_splat_const.
4028         (easy_vector_const): Use easy_vector_splat_const.
4029         (easy_vector_splat_const): New function.
4030         (gen_easy_vector_constant_add_self): New function.
4031
4032         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
4033         New prototype.
4034
4035         * config/rs6000/altivec.md (movv4si splitter): Change to
4036         emit move insn with halfed vector constant.
4037         (*movv8hi splitter): Likewise.
4038         (*movv16qi splitter): Likewise.
4039
4040 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
4041
4042         PR 11591
4043         * config/rs6000/rs6000.c (rs6000_legitimate_address):
4044         Allow any offset to argument pointer in no-strict case.
4045
4046 2004-03-30  Jan Hubicka  <jh@suse.cz>
4047
4048         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
4049         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
4050         dump file in non-unit-at-a-time mode.
4051
4052 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
4053
4054         * config/cris/cris.h: Correct #ifdef to test for
4055         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
4056         HAVE_AS_MUL_BUG_ABORT_OPTION.
4057
4058 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4059
4060         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
4061         the address inside the old RTL.
4062
4063 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
4064
4065         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
4066         (struct c_binding, struct c_scope): Add chain_next
4067         attributes to GTY markers.
4068         (struct lang_identifier, struct lang_tree_node): Define
4069         here...
4070         * c-tree.h: ... not here.  No longer need to declare struct
4071         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4072         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
4073         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4074
4075         PR 14734, 11944
4076         * c-decl.c (get_parm_info): If error_mark_node is encountered
4077         in the bindings chain, unbind and discard it; don't abort.
4078
4079 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
4080             Dorit Naishlos <dorit@il.ibm.com>
4081
4082         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
4083         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
4084
4085 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
4086
4087         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
4088
4089         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
4090         (m68hc11_attribute_table): New attribute "page0" to mark a global
4091         variable as being allocated from within page0 section.
4092         (m68hc11_encode_label): New function.
4093         (m68hc11_strip_name_encoding): New function.
4094         (m68hc11_page0_symbol_p): New function.
4095         (m68hc11_indirect_p): Accept global variables marked in page0.
4096         (m68hc11_encode_section_info): Lookup "page0" attribute.
4097
4098         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
4099         represents access to page0 variables.
4100
4101         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
4102         ("*logicalsi3_silshl16_zext"): Likewise.
4103         ("*ashldi3_const32"): Likewise.
4104         (peephole2 ashift): Likewise.
4105
4106 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4107
4108         * c-tree.h (C_DECL_REGISTER): New.
4109         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
4110         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
4111         (build_array_ref, c_mark_addressable): Set and use it.
4112         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
4113         Allow structures with volatile fields to be declared register.
4114         Don't check TREE_ADDRESSABLE before warning about taking address
4115         of register.
4116         * c-decl.c (finish_decl): Don't allow structures with volatile
4117         fields to be placed in named register.
4118         * doc/trouble.texi: Remove reference to structures with volatile
4119         fields in registers.
4120
4121 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4122
4123         * function.c (thread_prologue_and_epilogue): Move
4124         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
4125         before the epilogue.
4126
4127 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4128
4129         * expr.c (store_constructor): Use gen_int_mode to correctly
4130         sign-extend CONST_INT value.
4131
4132 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4133
4134         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
4135         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
4136         * doc/extend.texi: Likewise.
4137
4138 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
4139
4140         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
4141           with TYPE_ORIG_SIZE_TYPE.
4142
4143 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
4144
4145         PR 14219
4146         * c-typeck.c (build_binary_op): Do not allow comparisons of
4147         vectors.
4148
4149 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
4150
4151         * config.gcc: Remove sparc-tti-*.
4152         * config/sparc/pbd.h: Delete.
4153
4154         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
4155         * config/sparc/aout.h: Likewise.
4156
4157         * config/sparc/sparc.h: Remove if 0'd code.
4158         * config/sparc/sparc.md (call): Remove if 0'd code.
4159         (call_value): Likewise.
4160         (nonlocal_goto): Likewise.
4161         (unimp_insn): Delete.
4162
4163 2004-03-25  Roger Sayle  <roger@eyesopen.com>
4164
4165         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
4166         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
4167
4168 2004-03-25  Richard Henderson  <rth@redhat.com>
4169
4170         PR 11527
4171         * c-typeck.c (pop_init_level): Emit pending init elements earlier
4172         rather than later.
4173
4174 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4175
4176         * builtins.c (fold_builtin): Fix error in last change.
4177
4178 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
4179
4180         * config/mips/mips.h: Formatting fix.
4181
4182 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4183
4184         * builtins.def: Add ctype builtins.
4185         * doc/extend.texi: Likewise.
4186
4187 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4188
4189         * builtins.c (fold_builtin): Add new builtin optimizations for
4190         sqrt and/or cbrt.
4191         * fold-const.c (fold): Likewise.
4192
4193 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
4194
4195         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
4196         (rs6000_sched_groups): New variable.
4197         (processor_target_table): Add power5.
4198         (rs6000_override_options): Set rs6000_sched_insert_nops,
4199         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
4200         from rs6000_sched_groups.
4201         (output_cbranch): Use rs6000_always_hint.
4202         (rs6000_variable_issue): Use rs6000_sched_groups.
4203         (rs6000_adjust_cost): Add CPU_POWER5.
4204         (is_microcoded_insn): Use rs6000_sched_groups.
4205         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
4206         Return 2 for POWER5 cracked instructions.
4207         (is_cracked_insn): Use rs6000_sched_groups.
4208         (is_branch_slot_insn): Use rs6000_sched_groups.
4209         (rs6000_issue_rate): Add CPU_POWER5.
4210         (rs6000_sched_finish): Use rs6000_sched_groups.
4211         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
4212         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
4213         (DEFAULT_SCHED_COSTLY_DEP): Delete.
4214         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
4215         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
4216         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
4217         * config/rs6000/power5.md: New file.
4218         * doc/invoke.texi: Add power5 option.
4219
4220 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4221
4222         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
4223         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
4224         * doc/invoke.texi: Fix a typo.
4225
4226 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4227
4228         PR optimization/9707.
4229         * stmt.c (emit_case_nodes): Emit equality comparisons instead
4230         of recursing if both children are single-valued cases with no
4231         children.
4232
4233 2004-03-25  Paul Brook  <paul@codesourcery.com>
4234
4235         * config/arm/arm.c (vfp_print_multi): Remove.
4236         (arm_output_fldmx): New function.
4237         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
4238         (arm_expand_prologue): Update to match.
4239         (arm_get_vfp_saved_size): New Function.
4240         (arm_get_frame_offsets): Use it.
4241         (arm_output_epilogue): Use new functions.
4242
4243 2004-03-24  Richard Henderson  <rth@redhat.com>
4244
4245         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
4246         (reg_known_value, reg_known_value_size): Likewise; make static.
4247         (reg_known_equiv_p): Make static.
4248         (clear_reg_alias_info): Update for new indexing.
4249         (get_reg_known_value, set_reg_known_value): New.
4250         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
4251         (canon_rtx): Use them.
4252         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
4253         Don't play queer offsetting games with reg_known_value and
4254         reg_known_equiv_p.
4255         (end_alias_analysis): Free reg_known_value with gc.
4256         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
4257         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
4258         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
4259         functions instead.
4260
4261 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4262
4263         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
4264         config/i386/mmintrin.h: Update copyright.
4265
4266 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4267
4268         * configure.ac: Add --enable-werror-always (for top level bootstrap
4269         support).
4270         * configure: Regenerate.
4271
4272 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
4273
4274         * objc/objc-act.c (objc_comptypes): Treat comparisons
4275         between 'Class' and '<class> *' as explicitly invalid.
4276
4277 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
4278
4279         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
4280         (-fprofile-values): Add enabled with profile-{generate,use}.
4281         (-fvpt): Same.
4282         (-ftracer): Add enabled with profile-use.
4283         (-funit-at-a-time): Add enabled at -O2,-O3.
4284         (-funroll-loops): Add enabled with profile-use.
4285         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
4286         (max-gcse-passes): Mention default.
4287         (max-cse-path-length): Mention default.
4288
4289 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4290
4291         * Makefile.in (STRICT2_WARN): Reorder.
4292         * configure.ac: Check for -Wold-style-definition, and use it
4293         in strict1_warn if it's available.
4294         * configure: Regnerate.
4295
4296 2004-03-24  Paul Brook  <paul@nowt.org>
4297
4298         * config.gcc <arm>: Add --with-abi=
4299         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
4300         thumb_far_jump_used): Remove prototypes.
4301         (arm_needs_doubleword_align): Add prototype.
4302         (thumb_compute_initial_elimination_offset): Ditto.
4303         * config/arm/arm.c (arm_get_frame_offsets): New function.
4304         (use_return_insn, output_return_instruction, arm_output_epilogue,
4305         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
4306         arm_expand_prologue, thumb_expand_epilogue): Use it.
4307         (arm_abi, target_abi_name, all_arm_abis): New variables.
4308         (arm_override_options): Set them.  Set structure padding for AAPCS.
4309         (arm_return_in_memory): Update ABI check.
4310         (arm_init_cumulative_args): Initialize can_split.
4311         (arm_needs_doubleword_align): New function.
4312         (arm_function_arg): Don't split args after pushing to stack. Handle
4313         doubleword/even reg alignment.
4314         (arm_va_arg): Handle all doubleword aligned args.
4315         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
4316         on ABI, not CPU.
4317         (arm_compute_save_reg0_reg12_mask): Fix comment.
4318         (thumb_get_frame_size, thumb_get_frame_size): Remove.
4319         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
4320         value for alignment.
4321         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
4322         to match.
4323         (thumb_compute_initial_elimination_offset): New function.
4324         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
4325         unneccessary rounding.
4326         * config/arm/arm.h (target_abi_name): Declare.
4327         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
4328         arm_abi_type, ARM_DEFAULT_ABI): Define.
4329         (ARM_FLAG_ATPCS): Remove.
4330         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
4331         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
4332         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
4333         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
4334         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
4335         Contitionalize on ABI, not CPU.
4336         (struct arm_stack_offsets): Define.
4337         (struct machine_function): Add stack_offsets.  Remove frame_size.
4338         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
4339         pushed.
4340         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
4341         doubleword alignment.
4342         (THUMB_INITIAL_ELIMINATION_OFFSET,
4343         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
4344         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
4345         * config/arm/arm.md (align_8): Enable for all targets.
4346         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
4347         (ARM_DEFAULT_ABI): Define.
4348         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
4349         -mstructure-size-boundary.
4350
4351 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4352
4353         * configure.ac: Check for -Wno-variadic-macros; don't use
4354         -pedantic (in stage 1 or a simple 'make all') unless it's available,
4355         and if it's available, use it.  Also, clean up check for
4356         -Wno-long-long.
4357         * configure: Regenerate.
4358
4359 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4360
4361         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
4362         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
4363         (MULTILIB_DEFAULTS): Use it.
4364         (MIPS_CPU_STRING_DEFAULT): Remove.
4365         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
4366         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
4367         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
4368         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
4369         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
4370         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
4371         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
4372         accordingly.
4373
4374 2004-03-24  DJ Delorie  <dj@redhat.com>
4375             Richard Sandiford  <rsandifo@redhat.com>
4376
4377         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
4378         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
4379         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
4380         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
4381         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
4382         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
4383         if TARGET_FIX_VR4122.
4384         * config/mips/mips.md (define_attr length): Account for nops inserted
4385         after macc and dmult when using -mfix-vr4122-bugs.
4386         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
4387         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
4388         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
4389         * config/mips/vr4122-div.S: New file.
4390         * doc/invoke.texi: Document -mfix-vr4122-bugs.
4391
4392 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4393
4394         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
4395         (TARGET_MIPS4130): New macro.
4396         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
4397         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
4398         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
4399         with PROCESSOR_R4130.
4400         * config/mips/mips.md (define_attr cpu): Add r4130.
4401         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
4402
4403 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4404             Richard Sandiford  <rsandifo@redhat.com>
4405
4406         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
4407
4408 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
4409
4410         PR preprocessor/14438
4411         * cpplib.c (do_pragma): Remove line_change call after pragma
4412         handler.
4413
4414 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
4415
4416         * doc/extend.texi (ARM Built-in Functions): Replace with correct
4417         declarations.
4418
4419 2004-03-23  Roger Sayle  <roger@eyesopen.com>
4420
4421         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
4422         if flag_unsafe_math_optimizations.
4423         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
4424         and TARGET_80387 expand using truncdfsf2_noop pattern.
4425         (truncxfsf2): Likewise using truncxfsf2_noop.
4426         (truncxfdf2): Likewise using truncxfdf2_noop.
4427         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
4428
4429 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
4430
4431         * hooks.c (hook_constcharptr_tree_null): New hook.
4432         * hooks.h (hook_constcharptr_tree_null): New prototype.
4433         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
4434         * target.h (mangle_fundamental_type): New target hook.
4435         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
4436         target hook at rs6000_mangle_fundamental_type.
4437         (rs6000_mangle_fundamental_type): New function.
4438         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
4439
4440 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
4441
4442         PR 12267, 12391, 12560, 13129, 14114, 14133
4443         * c-tree.h: Forward declare struct c_binding.  Declare
4444         c_override_bindings_to_false.  Update prototypes.
4445         (struct lang_identifier): Update comments.  Change fields to be
4446         struct c_binding *.
4447         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
4448         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
4449         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
4450         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
4451         * c-common.h: Update prototypes.
4452         * c-decl.c (struct c_scope): Update commentary.  Remove names,
4453         names_last, parms, parms_last, tags, and shadowed fields.  Add
4454         bindings and depth fields.
4455         (scope_freelist): Move to more appropriate location.
4456         (c_print_identifier): Update for changes to struct lang_identifier.
4457         (objc_mark_locals_volatile): Update for new bindings structures.
4458         (global_bindings_p): Honor c_override_global_bindings_to_false.
4459         (pushlevel): Rename to push_scope; take no arguments; use the
4460         scope_freelist; initialize scope->depth and check for overflow.
4461         (poplevel): Rename to pop_scope; totally rewritten for new bindings
4462         structures.
4463         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
4464         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
4465         Improve some commentary.  Adjust handling of forward parm decls.
4466         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
4467         Preserve C_DECL_IN_EXTERNAL_SCOPE.
4468         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
4469         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
4470         decls.  Rewrite for new bindings structures.  Improve commentary.
4471         Eliminate the copy_node call.
4472         (implicit_decl_warning): Use the "diag" idiom (as seen in
4473         locate_old_decl) to reduce code duplication; call locate_old_decl
4474         if appropriate.  Relocate to remove need for forward declaration.
4475         (implicitly_declare): Adjust for new bindings structures.  Kludge
4476         around Objective-C not-really-builtin functions.
4477         (undeclared_variable): Improve diagnostics.  If current_function_decl
4478         is nonnull but current_function_scope is null, use current_scope.
4479         Use bind.
4480         (lookup_tag): Adjust for new bindings structures.  Kludge around
4481         Objective-C's tag declarations that wind up in the external scope.
4482         (lookup_name): Adjust for new bindings structures.  Kludge around
4483         c-common.c's pseudo-typedefs that wind up in the external scope.
4484         (lookup_name_current_level): Rename lookup_name_in_scope; take a
4485         second argument indicating the scope to examine; rewrite for
4486         new bindings structures.
4487         (c_init_decl_processing): Adjust for renamed functions.  Do not
4488         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
4489         First scope pushed is the external scope, not the global scope.
4490         (builtin_function): Use bind, not pushdecl.  Adjust other bits
4491         for new data structures.  Keep track of builtins that should be
4492         made visible automatically.
4493         (start_decl): Adjust diagnostics.  Remove unnecessary call to
4494         expand_decl.
4495         (grokparms): Return 0 if arg_types is error_mark_node.
4496         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
4497         reversed sense.  Rewrite for new bindings structures.  Do not
4498         leave any decls in the scope, to prevent pop_scope from doing
4499         contradictory things with them.
4500         (finish_struct, finish_enum): Remove redundant diagnostics.
4501         (build_enumerator): Don't cascade diagnostics for error_mark_node.
4502         Mark location where -pedantic changes the meaning of the program.
4503         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
4504         parameter decls into the function's scope structure using bind.
4505         Warn here about function definitions in the wrong style.
4506         Adjust diagnostics.
4507         (store_parm_decls): Correct the determination of whether a
4508         function was defined with a prototype.
4509         (c_write_global_declarations): Operate on all file decls and on
4510         the external scope.  Split body of the loop to...
4511         (c_write_global_declarations_1): ... this new function, to avoid
4512         code duplication.
4513         (truly_local_externals, first_builtin_decl, last_builtin_decl)
4514         (make_scope, pop_scope, in_parm_level_p, set_block)
4515         (any_external_decl, record_external_decl, bind_label, getdecls)
4516         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
4517         (c_reset_state): Delete.
4518         (visible_builtins, c_override_global_bindings_to_false)
4519         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
4520         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
4521         (external_scope, binding_freelist, bind, free_binding_and_advance)
4522         (push_file_scope, pop_file_scope): New.
4523         (pushtag, pushdecl_top_level, lookup_label, declare_label)
4524         (define_label, c_make_fname_decl, finish_decl)
4525         (mark_forward_parm_decls, build_compound_literal)
4526         (grokdeclarator, start_function, check_for_loop_decls)
4527         (identifier_global_value, record_builtin_type): Minor adjustments
4528         for new bindings structures.  Improve diagnostics and commentary.
4529         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
4530         pushlevel/poplevel respectively.
4531         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
4532         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
4533         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
4534         correct loop over multiple translation units; call fatal_error if
4535         requested to compile more than one file at once.  (This disables
4536         IMA temporarily - an up-front error being preferable to a crash.)
4537         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
4538         (all actions): Adjust calls to pushlevel/poplevel.
4539         (parsing_iso_function_signature): Delete.
4540         (extdef_1): Fold into extdef.
4541         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
4542         warn here about function definitions in the wrong style.
4543         (after_tyle_declarator, parm_declarator_starttypename)
4544         (parm_declarator_nostarttypename, notype_declarator): Remove
4545         commented-out productions.
4546         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
4547         an empty TREE_LIST node.  Adjust calls to get_parm_info.
4548         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
4549         to suppress -Wold-style-definition after this error.
4550         (c_parse_file): Don't clear the binding stack or call
4551         finish_fname_decls here.  Correct comment.
4552         * c-typeck.c (same_translation_unit_p): Export.
4553         (common_type): Use c_override_global_bindings_to_false, not
4554         pushlevel/poplevel/declare_parm_level.
4555         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
4556         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
4557         and LANG_HOOKS_GETDECLS with do-nothing stubs.
4558         * objc/objc-lang.c: Likewise.
4559         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
4560         get_parm_info.
4561         (OBJC_VOID_AT_END): Delete; replace all uses
4562         with void_list_node.
4563         (generate_forward_declaration_to_string_table): Delete.
4564         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
4565
4566         * coverage.c (create_coverage): Don't pushdecl anything.
4567         * langhooks.c (lhd_clear_binding_stack): Call
4568         lang_hooks.decls.poplevel, not poplevel.
4569         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
4570         circular list rather than going into an infinite loop.
4571
4572 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
4573
4574         * optabs.c (expand_binop): When synthesizing double word rotates
4575         from single word shifts, use a new register target if the provided
4576         target is not a REG already.
4577
4578 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4579
4580         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
4581         * c-common.c (handle_mode_attribute): Add extra arg to
4582         build_pointer_type_for_mode and build_reference_type_for_mode.
4583         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
4584         for INTEGER_CST.
4585         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
4586         Chain pointers via TYPE_NEXT_PTR_TO.
4587         (build_reference_type_for_mode): Similarly.
4588         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
4589         and build_reference_type_for_mode.
4590         (tree_check4_failed): New function.
4591         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
4592         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
4593         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
4594         Add check.
4595
4596 2004-03-23  Roger Sayle  <roger@eyesopen.com>
4597
4598         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
4599         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
4600         when both A and B are nonnegative.
4601         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
4602         nonzero.
4603
4604 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4605
4606         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
4607         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
4608
4609 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4610
4611         PR optimization/14669
4612         * fold-const.c (fold): Only unwiden integer comparisons for equality
4613         and inequality operators, or when the signedness doesn't change.
4614
4615 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
4616
4617         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
4618         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
4619         * config/sparc/t-linux: New file.
4620
4621 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
4622
4623         * gcse.c (can_assign_to_reg_p): New function, split out from...
4624         (want_to_gcse_p): ...here.
4625         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
4626         the rhs of a store.
4627
4628 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
4629
4630         * c-typeck.c (same_translation_unit_p): Fix pasto.
4631
4632 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
4633
4634         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
4635         (PARAM_MAX_SCHED_REGION_INSNS): New.
4636         * sched-rgn.c: Include params.h
4637         (MAX_RGN_BLOCKS): Delete.
4638         (MAX_RGN_INSNS): Delete.
4639         (too_large): Return bool.  Convert to PARAM_VALUE.
4640         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
4641         * doc/invoke.texi (param): Document max-sched-region-blocks and
4642         max-sched-region-insns.
4643
4644 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
4645
4646         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
4647         for base types.
4648
4649 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
4650
4651         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
4652         change.
4653
4654 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
4655
4656         PR c/14069
4657         * c-decl.c (finish_struct): Change type of incorrect flexible array
4658         field into error_mark_node.
4659
4660 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
4661
4662         PR target/14580
4663         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
4664         who are not local for Darwin PIC.
4665
4666 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
4667
4668         * regrename.c (regrename_optimize): Set regs_ever_live for all
4669         registers introduced as replacement.
4670
4671 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4672
4673         PR middle-end/14470
4674         * expr.c (mark_queue): New function.
4675         (emit_insns_enqueued_after_mark): New function replacing
4676         emit_queue.  Clear the body of emitted queued insns.
4677         (emit_queue): Call emit_insns_enqueued_after_mark.
4678         (store_expr): Mark the increment queue on entry.  Emit
4679         only the incrementations queued when expanding the source.
4680
4681 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
4682
4683         * configure.ac: Allow --disable-coverage-flags (for the future benefit
4684         of top level bootstrap, and consistency).  Reindent.
4685         * configure: Regenerate.
4686
4687 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4688
4689         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
4690         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
4691         unnecessary casts.
4692
4693 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
4694
4695         PR target/14291
4696         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
4697         __MINGW32__.
4698
4699 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4700
4701         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
4702         to nonimmediate_operand.
4703         ("*doloop_di"): Likewise.
4704
4705 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
4706
4707         * real.h (struct real_value): Use the same type for all
4708         bitfields.  Rename exp to uexp.
4709         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
4710         Adjust all uses of exp...
4711         * builtins.c: ... here, ...
4712         * emit-rtl.c: ... here, and ...
4713         * real.c: ... and here.
4714
4715 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4716
4717         * pretty-print.c (pp_base_maybe_space): New function.
4718         * pretty-print.h (pp_base_maybe_space): Declare.
4719         (pp_maybe_space): New macro.
4720
4721 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4722
4723         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
4724
4725 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4726
4727         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
4728         of using register multiplication cost.
4729         (expand_mult): Adapt choose_mult_variant call.
4730         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
4731         of MODE; pass appropriate cost bound.  Adjust result when
4732         performing signed multiplication by a negative constant.
4733         Don't use intermediate modes larger than word_mode.
4734
4735 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4736
4737         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
4738         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
4739         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
4740         * explow.c (expr_size): Likewise.
4741         * expr.h (placeholder_list, find_placeholder): Deleted.
4742         * expr.c (store_constructor): Likewise.
4743         (get_inner_reference): Likewise.  Also don't call find_placeholder.
4744         (placeholder_list, find_placeholder): Deleted.
4745         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
4746         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
4747         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
4748         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
4749         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
4750         Likewise.
4751         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
4752         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
4753         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
4754         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
4755         Clean up by using first_rtl_op.
4756         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
4757         (substitute_placeholder_in_expr): New function.
4758         * tree.def (WITH_RECORD_EXPR): Deleted.
4759         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
4760         (substitute_placeholder_in_expr): New.
4761
4762 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
4763
4764         * dojump.c (prefer_and_bit_test): Fix which part of
4765         the and_test is replaced.
4766
4767 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
4768
4769         * frontends.texi: Add missing line.
4770
4771 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
4772             Chris Devers  <cdevers@pobox.com>
4773             Joseph S. Myers  <jsm@polyomino.org.uk>
4774
4775         * doc/frontends.texi: Rewrite.
4776         * doc/gcc.texi: Update last modification date.
4777
4778 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
4779
4780         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
4781         message before redirecting the edge.
4782
4783 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4784
4785         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
4786         flag.
4787         * explow.c (force_not_mem): Set REG_POINTER flag according to
4788         MEM_POINTER one.
4789         * rtl.h (MEM_POINTER): New macro.
4790         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
4791         for MEM_POINTER.
4792
4793 2004-03-20  Roger Sayle  <roger@eyesopen.com>
4794
4795         PR target/13889
4796         * cse.c (fold_rtx): Avoid substituting constants into unary
4797         conversion operations.
4798
4799 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4800
4801         * fold-const.c (fold): Replace "expr" with "t".
4802
4803 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
4804
4805         PR c/12373
4806         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
4807         DECL_ORIGINAL_TYPE if there isn't one.
4808
4809 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4810
4811         * fold-const.c (fold): Replace "final_type" with "type".
4812         Remove variable "final_type".
4813
4814 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4815
4816         * fold-const.c (fold): Constify "type".
4817         Replace "TREE_TYPE (t)" with "type".
4818
4819 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4820
4821         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
4822         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
4823         via (*targetm.foo) () with targetm.foo ().
4824
4825 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
4826
4827         PR other/14630
4828         * doc/install.texi: Add info directory category and entry.
4829
4830 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4831
4832         * fold-const.c (fold): Replace "t" with "tem" where it is used
4833         as a temporary variable.  Remove "orig_t" and all of its uses.
4834
4835 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4836
4837         * fold-const.c (fold): Remove variable "invert".
4838         Move the handling of relational expressions that can be folded
4839         to a constant ...
4840         (fold_relational_const): ... here.
4841         (tree_expr_nonzero_p): New.
4842
4843 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
4844
4845         PR c/14635
4846         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
4847         DEF_GCC_BUILTIN.
4848
4849 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
4850
4851         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
4852         (GTFILES): Add $(srcdir)/dojump.h.
4853         (gt-dojump.h): New dependency.
4854         * dojump.c (and_reg, and_test, shift_test): New static variables.
4855         (prefer_and_bit_test): New function.
4856         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
4857
4858 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4859
4860         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
4861         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
4862         reorg.c, tree.h: Fix comment typos.
4863
4864 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4865
4866         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
4867         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
4868         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
4869         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
4870         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
4871         vmsdbgout.c: Replace calls via (*targetm.foo) () with
4872         targetm.foo ().
4873
4874 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
4875
4876         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
4877         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
4878         always_inline attribute.
4879         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
4880         Treat expansion as completed even if literal argument is
4881         invalid (so that other expansions are not tried in vain).
4882
4883 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4884
4885         * loop-doloop.c (add_test): Replace GEN_INT (0) with
4886         const0_rtx.
4887
4888 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4889
4890         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
4891         ...
4892         (fold_abs_const): ... here.
4893
4894 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4895
4896         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
4897
4898 2004-03-19  Denis Chertykov  <denisc@overta.ru>
4899
4900         PR target/11520
4901         * config/avr/avr.md ("call_insn"): Handle explicit integer
4902         specially.
4903         (call_value_insn): Likewise.
4904
4905 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4906
4907         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
4908
4909 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4910
4911         * fold-const.c (negate_expr): Move the handling of constants
4912         ...
4913         (fold_negate_const): ... here.
4914
4915 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4916
4917         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
4918         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
4919         * tree.c (debug_no_type_hash): Deleted.
4920         (type_hash_canon): Abort if passed a variant.
4921         Check lang_hooks.types.hash_types.
4922         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
4923         (build_array_type): Remove unnecessary allocation of pointer type.
4924         (build_complex_type): Properly qualify resulting type.
4925
4926 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
4927
4928         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
4929
4930 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
4931
4932         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
4933         (expand_mult): ...here.
4934         (extract_high_half): New, split out from expand_mult_highpart.
4935         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
4936         (expand_highpart): Evaluate the cost of a shift/add sequence,
4937         then see if any of the specialized optabs are cheaper.
4938
4939 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
4940
4941         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
4942
4943 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4944
4945         * convert.c (convert_to_real): Add more math builtins.
4946
4947 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4948
4949         * convert.c (convert_to_real): Reformat using switch stmt.
4950
4951 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
4952
4953         * c-common.c (pointer_int_sum): Do not complain about using
4954         pointers to pointers-to-members.
4955
4956 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
4957
4958         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
4959         have moved to the target hooks structure".
4960
4961 2004-03-18  James E Wilson  <wilson@specifixinc.com>
4962
4963         * config/mips/mips.md (type): Split move into arith and fmove.  Split
4964         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
4965         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
4966         Likewise.
4967         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
4968         Likewise.
4969         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
4970         rm7_fp_quick): Likewise.
4971         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
4972         rm9k_fquick): Likewise.
4973         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
4974         Likewise.
4975         (ir_sr70_icmp): Delete.
4976
4977 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4978
4979         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
4980         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
4981         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
4982         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
4983         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
4984         Protect with proper check.
4985         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
4986         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
4987         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
4988         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
4989         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
4990         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
4991         not TYPE_FIELDS.
4992         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
4993
4994 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
4995
4996         * gcse.c (eliminate_partially_redundant_loads): Reject change if
4997         dest is set between beginning and current insn.
4998
4999 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
5000
5001         * c-decl.c (grokdeclarator): Do not complain about redeclaring
5002         visible "static" identifiers "extern" in a local scope.
5003         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
5004         post-increments/decrements.
5005
5006 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
5007
5008         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
5009         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
5010         (xtensa_va_start): Remove assignment to current_function_arg_words.
5011
5012 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
5013
5014         * alias.c (record_set): Detect the case where a register is assigned
5015         a new value that has the same base term as the old one.
5016
5017 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5018
5019         * doloop.c: Removed.
5020         * loop-doloop.c: New file.
5021         * Makefile.in (doloop.o): Remove.
5022         (loop-doloop.o): New.
5023         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
5024         * cfgloopanal.c (get_loop_level): New function.
5025         * loop-iv.c (iv_number_of_iterations): Handle case when loop
5026         is leaved immediatelly.
5027         * loop.c (strength_reduce): Do not call doloop optimization.
5028         * loop.h (LOOP_BCT): Removed.
5029         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
5030         (rest_of_handle_loop2): Call doloop_optimize_loops.
5031         (rest_of_compilation): Test for optimizations moved to
5032         rest_of_handle_loop2.
5033
5034 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
5035
5036         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
5037         for mixed mode.
5038         (rs6000_emit_prologue): Ditto.
5039         (rs6000_emit_epilogue): Ditto.
5040         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
5041         macro for mixed mode.
5042
5043 2004-03-18  Jan Hubicka  <jh@suse.cz>
5044
5045         * predict.c (propagate_freq): Compute correctly frequency of
5046         EXIT_BLOCK.
5047
5048 2004-03-17  Eric Christopher  <echristo@redhat.com>
5049
5050         * builtins.c (apply_args_size): Use reg_raw_mode.
5051         (apply_result_size): Ditto.
5052
5053 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5054
5055         PR target/14620
5056         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
5057
5058 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
5059
5060         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
5061         32-bit builds when defaulting to 32-bit.
5062
5063 2004-03-17  Jan Hubicka  <jh@suse.cz>
5064
5065         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
5066         array.
5067
5068 2004-03-17  James E Wilson  <wilson@specifixinc.com>
5069
5070         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
5071         (hazard_nop): Change type to nop.
5072         (type): Split arith into arith, shift, slt, clz.  Delete darith.
5073         Fix all uses.  Change arith to multi if more than one insn emitted.
5074         * config/mips/5400.md (ir_vr54_arith): Likewise.
5075         * config/mips/5500.md (ir_vr55_arith): Likewise.
5076         * config/mips/7000.md (rm7_int_other): Likewise.
5077         * config/mips/9000.md (rm9k_int): Likewise.
5078         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
5079
5080 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
5081
5082         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
5083         to hold the subtype tree instead of recomputing it several times.
5084
5085 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
5086
5087         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
5088         CC_INVERT.
5089         * config/mn10300/mn10300.md (cc): Remove "invert".
5090
5091 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5092
5093         * builtins.c (integer_valued_real_p): Add builtin rint.
5094         (fold_builtin): Likewise.
5095         * convert.c (convert_to_real): Likewise.
5096
5097         * convert.c (convert_to_real): Fix typos in `long double'
5098         builtins.
5099
5100 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
5101
5102         PR c++/14481
5103         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
5104         generated COMPOUND_EXPRs.
5105
5106 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5107
5108         * config/h8300/t-rtems (h8300-*-rtems*): New.
5109
5110 2004-03-16  Eric Christopher  <echristo@redhat.com>
5111
5112         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
5113
5114 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5115
5116         * config/i386/i386-protos.h: Add a prototype for
5117         ix86_reverse_condition.
5118         * config/i386/i386.c (ix86_reverse_condition): New.
5119         * config/i386/i386.h (REVERSE_CONDITION): Use
5120         ix86_reverse_condition.
5121         * config/i386/i386.md: Use ix86_reverse_condition instead of
5122         REVERSE_CONDITION.
5123
5124 2004-03-16  J. Brobecker  <brobecker@gnat.com>
5125
5126         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
5127
5128 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5129
5130         PR bootstrap/12974
5131         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
5132
5133 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5134
5135         * c-common.c (c_common_type_for_mode): Build vector types on
5136         demand.
5137         (handle_mode_attribute): Deprecate using the mode attribute
5138         to create vector types.  Fix indentation.
5139         (vector_type_node_list): Remove.
5140         (handle_vector_size_attribute): Create vector types on demand.
5141         Strip a NON_LVALUE_EXPR from the attribute if there is one.
5142         * c-typeck.c (comptypes): Make vector types compatible if they
5143         have the same underlying mode.
5144         (convert_for_assignment): Use comptypes to convert between
5145         vector types.
5146         * tree.c (build_common_tree_nodes_2): Do not create vector types.
5147         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
5148         vector types.
5149         * tree.h: Remove vector types.
5150         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
5151         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
5152         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
5153         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
5154         * doc/extend.texi (Vector Types): Document how to use the
5155         vector_size attribute to create vectors, rather than mode.
5156
5157         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
5158         * config/i386/emmintrin.h: Likewise.
5159         * config/i386/mmintrin.h: Likewise.
5160         * config/i386/xmmintrin.h: Likewise.
5161         * config/sh/ushmedia.h: Likewise.
5162
5163 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5164
5165         * config/freebsd-spec.h, config/arc/arc-protos.h,
5166         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
5167         config/arm/linux-gas.h, config/arm/semi.h,
5168         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
5169         config/ia64/freebsd.h, config/mips/7000.md,
5170         config/mips/9000.md, config/ns32k/ns32k-protos.h,
5171         config/sparc/pbd.h: Update copyright.
5172
5173 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5174
5175         PR target/14577
5176         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
5177
5178 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5179
5180         * combine.c (combine_simplify_rtx): Remove the "last"
5181         parameter and its documentation.  Adjust recursive calls.
5182         (simplify_logical): Always perform the only simplification
5183         controlled by "last", if the simplified expression is
5184         actually different.
5185         (try_combine): Do not pass the "last" parameter to
5186         combine_simplify_rtx.
5187
5188 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
5189
5190         PR target/14599
5191         * config/mips/mips.md (UNSPEC_GP): New constant.
5192         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
5193         an UNSPEC instead of (reg $gp).
5194         (mips16_gp_pseudo_reg): Change accordingly.
5195         (print_operand): Print $gp directly when handling CONST_GP_P.
5196
5197 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5198
5199         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
5200         * longlong.h: Make code 68060 clean when compiling for m68060.
5201
5202 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5203
5204         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
5205         * doc/md.texi: Clarify description of "i" constraint.
5206
5207 2004-03-15  James E Wilson  <wilson@specifixinc.com>
5208
5209         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
5210         Split store into store, fpstore, fpidxstore.  Fix all uses.
5211         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
5212         Likewise.
5213         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
5214         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
5215         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
5216         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
5217         ir_sr70_fstore): Likewise.
5218
5219 2004-03-15  Richard Henderson  <rth@redhat.com>
5220
5221         PR middle-end/14535
5222         * except.c (collect_one_action_chain): Record action for cleanup
5223         outer of exception spec.
5224
5225 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
5226
5227         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5228         Fix the check for abort and only do the mmap if we can.
5229
5230 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
5231
5232         * config/sparc/sparc.h: Rework comments about the code model
5233         in 64-bit environment and the mode 'Pmode'.
5234         * doc/invoke.texi (SPARC options): Rework description of the
5235         different code models supported in 64-bit environment.
5236
5237 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5238
5239         * defaults.h (REVERSIBLE_CC_MODE): Define.
5240         * jump.c (reversed_comparison_code_parts): Don't check if
5241         REVERSIBLE_CC_MODE is defined.
5242
5243 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5244
5245         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
5246         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
5247         hosthooks.h, params.h, ra-colorize.c, web.c,
5248         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
5249         config/avr/avr-protos.h, config/avr/avr.md,
5250         config/fr30/fr30-protos.h, config/fr30/fr30.md,
5251         config/h8300/fixunssfsi.c, config/i386/darwin.h,
5252         config/i386/freebsd.h, config/i386/freebsd64.h,
5253         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
5254         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
5255         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
5256         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
5257         config/pa/pa64-regs.h, config/rs6000/aix41.h,
5258         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
5259         config/sparc/aout.h, config/sparc/freebsd.h,
5260         config/sparc/litecoff.h, config/vax/vax-protos.h,
5261         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
5262         copyright.
5263
5264 2004-03-15  Paul Brook  <paul@codesourcery.com>
5265
5266         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
5267
5268 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5269
5270         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
5271         (pp_c_cv_qualifier): Document.
5272         (pp_c_space_for_pointer_operator): Likewise.
5273         (pp_c_integer_constant): Likewise.
5274         (pp_c_identifier): Likewise.
5275         (pp_c_init_declarator): Don't print function body.
5276
5277 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5278
5279         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
5280         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
5281         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
5282         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
5283         wording and grammar.
5284
5285 2004-03-14  Roger Sayle  <roger@eyesopen.com>
5286
5287         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
5288         with lang_hooks.foo ().
5289         * builtins.c (expand_builtin_va_arg): Likewise.
5290         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
5291         c_common_type_for_mode, c_common_nodes_and_builtins,
5292         handle_mode_attribute, handle_vector_size_attribute): Likewise.
5293         * c-convert.c (convert): Likewise.
5294         * c-format.c (check_format_types): Likewise.
5295         * c-objc-common.c (c_tree_printer): Likewise.
5296         * c-typeck.c (build_unary_op, build_conditional_expr,
5297         build_binary_op): Likewise.
5298         * calls.c (try_to_integrate, expand_call,
5299         emit_library_call_value_1): Likewise.
5300         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
5301         Likewise.
5302         * cgraphunit.c (record_call_1, cgraph_analyze_function,
5303         cgraph_expand_function): Likewise.
5304         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
5305         * coverage.c (build_fn_info_type, build_ctr_info_type,
5306         build_gcov_info, create_coverage): Likewise.
5307         * dbxout.c (dbxout_init): Likewise.
5308         * diagnostic.c (diagnostic_report_current_function): Likewise.
5309         * dojump.c (do_jump): Likewise.
5310         * dwarf2out.c (dwarf2_name): Likewise.
5311         * except.c (init_eh): Likewise.
5312         * explow.c (expr_size, int_expr_size): Likewise.
5313         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
5314         Likewise.
5315         * expr.c (store_expr, store_constructor, safe_from_p,
5316         expand_expr_real, do_store_flag, try_casesi): Likewise.
5317         * function.c (push_function_context_to, pop_function_context_from,
5318         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
5319         put_var_into_stack, allocate_struct_function, current_function_name):
5320         Likewise.
5321         * integrate.c (copy_decl_for_inlining, expand_inline_function):
5322         Likewise.
5323         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
5324         lhd_print_error_function): Likewise.
5325         * opts.c (handle_option, decode_options): Likewise.
5326         * passes.c (open_dump_file): Likewise.
5327         * print-tree.c (print_node): Likewise.
5328         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
5329         expand_decl_cleanup, emit_case_nodes): Likewise.
5330         * stor-layout.c (variable_size): Likewise.
5331         * toplev.c (announce_function, wrapup_global_declarations,
5332         check_global_declarations, compile_file, default_tree_printer,
5333         process_options, lang_dependent_init, finalize): Likewise.
5334         * tree-dump.c (dequeue_and_dump): Likewise.
5335         * tree-inline.c (remap_decl, remap_block, copy_body_r,
5336         initialize_inlined_parameters, declare_return_variable,
5337         inlinable_function_p, expand_call_inline, optimize_inline_calls,
5338         walk_tree, copy_tree_r): Likewise.
5339         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5340         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
5341         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
5342         variably_modified_type_p, dump_tree_statistics): Likewise.
5343         * varasm.c (assemble_variable, compare_constant, copy_constant,
5344         force_const_mem, compute_reloc_for_constant, output_constant,
5345         output_addressed_constants, initializer_constant_valid_p): Likewise.
5346
5347 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
5348
5349         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
5350
5351 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
5352
5353         * doc/install.texi: Reflect autoconf and automake version for
5354         libffi. Update autoconf version to 2.59.
5355
5356 2004-03-13  Roger Sayle  <roger@eyesopen.com>
5357
5358         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
5359         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
5360         make_range, build_range_check, fold_range_test, unextend,
5361         constant_boolean_node, fold_binary_op_with_conditional_arg,
5362         fold_truthop, fold_mathfn_compare, fold_inf_compare,
5363         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
5364         with lang_hooks.foo ().
5365
5366 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
5367
5368         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
5369
5370 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
5371
5372         * doc/install.texi: Note status of -fnew-ra.
5373
5374 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
5375
5376         PR middle-end/14470
5377         * expr.c (store_expr): Call emit_queue before generating the move
5378         from the temporary to the original target.  Protect the temporary
5379         from emit_queue.
5380
5381 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
5382
5383         PR target/14533
5384         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
5385         other than UNSPEC_GOTOFF.
5386
5387 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
5388
5389         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
5390         to arm_legitimate_index_p.  Update all callers with SET as default
5391         value.
5392         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
5393         range if OUTER is a sign-extend operation on QImode.  Correctly
5394         reject shift operations on sign-extended QImode addresses.
5395         (bad_signed_byte_operand): Delete.
5396         (arm_extendqisi_mem_op): New function.
5397         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
5398         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
5399         constraints.
5400         (CONSTRAINT_LEN): New.
5401         (EXTRA_CONSTRAINT): Delete.  Replace with...
5402         (EXTRA_CONSTRAINT_STR): ... this.
5403         (PREDICATE_CODES): Remove bad_signed_byte_operand.
5404         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
5405         is now always default.
5406         (define_splits for bad sign-extend loads): Delete.
5407         (arm_extendqisi, arm_extendqisi_v5): Likewise.
5408         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
5409         Rework 'U' constraint to 'Uv'.
5410         * arm-protos.h: Remove bad_signed_byte_operand.  Add
5411         arm_extendqisi_mem_op.
5412         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
5413         Add Uq constraint.
5414
5415 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
5416
5417         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
5418         with targetm version.
5419
5420         PR target/14567
5421         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
5422         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
5423         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
5424         Update all users of RS6000_ARG_SIZE.
5425         (function_arg_advance): Count fregno using mode size.
5426         (function_arg): Handle long double split over regs and memory.
5427         (function_arg_partial_nregs): Likewise.
5428         (rs6000_va_arg): Repackage complex args.
5429
5430 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
5431
5432         PR target/14047
5433         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
5434         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
5435         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
5436
5437 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
5438
5439         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
5440         prototype.
5441         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
5442         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5443
5444 2003-03-12  Andrew Pinski  <apinski@apple.com>
5445
5446         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5447         Use ret instead of result. Use addr instead of base.
5448
5449 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
5450
5451         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
5452         fixes required by libstdc++ and update installation instructions
5453         for libstdc++.a.
5454
5455 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
5456
5457         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
5458         leading '@' on fastcall symbols before stripping suffix.
5459
5460 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5461
5462         * combine.c (unmentioned_reg_p): New function to check whether an
5463         expression is a "specialization" of another, i.e. that there are
5464         no registers or memory references mentioned in the first that don't
5465         appear in the second.
5466         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
5467         (combine_instructions): Also try combining instructions using the
5468         REG_EQUAL note from a preceding log-linked instruction.
5469
5470 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5471
5472         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
5473
5474 2004-03-12  Matt Austern  <austern@apple.com>
5475
5476         * target.h (struct gcc_target): New target hook, unwind_label.
5477         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
5478         * output.h (default_emit_unwind_label): New function.
5479         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
5480         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
5481         (TARGET_SUPPORTS_HIDDEN): New target macro.
5482         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
5483         that corresponds to this FDE.
5484         (FRAME_BEGIN_LABEL): Allow target to override default label.
5485         (output_call_frame_info): If FDEs are linknonce, then use extra
5486         indirection for FDE encoding, output a label for each FDE, and
5487         output an empty label for each function without an FDE.
5488         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
5489         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
5490         decls with DECL_ONE_ONLY set, if that macro is defined.
5491         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
5492         for a SUPPORTS_ONE_ONLY target.
5493         * config/darwin-protos.h (darwin_unique_section): Declare.
5494         (darwin_asm_named_section): Likewise.
5495         (darwin_section_type_flags): Likewise.
5496         (darwin_non_lazy_pcrel): Likewise.
5497         (darwin_emit_unwind_label): Likewise.
5498         (darwin_make_decl_one_only): Likewise.
5499         * config/darwin.c (machopic_finish): Get rid of tweak that
5500         eliminate stubs for symbols that are defined.
5501         (darwin_encode_section_info): Don't treat weak functions as defined.
5502         (darwin_make_decl_one_only): Define.
5503         (darwin_asm_named_section): Likewise.
5504         (darwin_section_type_flags): Likewise.
5505         (darwin_unique_section): Likewise.
5506         (darwin_emit_unwind_label): Likewise.
5507         (darwin_non_lazy_pcrel): Likewise.
5508         (darwin_asm_output_dwarf_delta): Difference between two labels is
5509         local only if both labels are local.
5510         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
5511         (ASM_MAKE_LABEL_LINKONCE): Likewise.
5512         (TARGET_SUPPORTS_HIDDEN): Likewise.
5513         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
5514         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
5515         (FRAME_BEGIN_LABEL): Likewise.
5516         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
5517         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5518         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
5519         (TARGET_ASM_UNIQUE_SECTION): Define.
5520         (EH_FRAME_SECTION_NAME): Define.
5521         (EH_FRAME_SECTION_ATTR): Likewise.
5522         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
5523         (TARGET_ASM_NAMED_SECTION): Likewise.
5524         (TARGET_SECTION_TYPE_FLAGS): Likewise.
5525         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
5526         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
5527         TARGET_ASM_EMIT_UNWIND_LABEL.
5528
5529 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5530
5531         * builtins.c (expand_builtin_mathfn): Add pow10* to the
5532         existing exp10* case.
5533         (expand_builtin): Likewise.
5534
5535 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5536
5537         * doc/tm.texi (registers) <Values in Registers>: Add
5538         entry for REGMODE_NATURAL_SIZE.
5539
5540 2004-03-12  Richard Henderson  <rth@redhat.com>
5541
5542         PR target/14547
5543         * target.h (struct gcc_target): Move calls substructure before
5544         booleans.  Add split_complex_arg.
5545         * function.c (assign_parms, split_complex_args): Use it.
5546         * calls.c (expand_call): Likewise.
5547         (split_complex_values): Likewise.  Check for splittable types
5548         before allocating memory.
5549         (split_complex_types): Likewise.
5550         * system.h (SPLIT_COMPLEX_ARGS): Poison.
5551         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
5552         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
5553         * config/alpha/alpha.c (alpha_split_complex_arg): New.
5554         (TARGET_SPLIT_COMPLEX_ARG): New.
5555         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
5556         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
5557         (rs6000_override_options): Zap it for non-AIX.
5558         (rs6000_function_value): Use targetm.calls.split_complex_arg.
5559         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
5560         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
5561         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
5562         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
5563         SPLIT_COMPLEX_ARGS entry.
5564
5565 2004-03-11  Richard Henderson  <rth@redhat.com>
5566
5567         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
5568         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
5569         (alpha_emit_xfloating_arith): Update to match.
5570         (alpha_emit_xfloating_compare): Likewise.
5571         (alpha_emit_xfloating_cvt): Likewise.
5572         (alpha_emit_xfloating_libcall): Take already built symbol,
5573         mark call const.
5574         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
5575         op1 in a register.
5576
5577 2004-03-11  Richard Henderson  <rth@redhat.com>
5578
5579         PR target/14539
5580         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
5581
5582         * simplify-rtx.c (simplify_relational_operation): Fix typo.
5583
5584 2004-03-11  Richard Henderson  <rth@redhat.com>
5585
5586         PR middle-end/14477
5587         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
5588
5589 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5590
5591         PR target/14262
5592         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
5593         defined, pass small BLKmode values in registers in the low-order part.
5594
5595 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5596
5597         * combine.c (if_then_else_cond): Check for NULL return value of
5598         simplify_gen_subreg.
5599
5600 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
5601
5602         PR target/14496
5603         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
5604         TARGET_SINGLE_FLOAT.
5605
5606 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
5607
5608         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
5609         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
5610         * config/ia64/ia64.c (ia64_init_libfuncs): New.
5611         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
5612
5613 2004-03-11  Roger Sayle  <roger@eyesopen.com>
5614
5615         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
5616         -((int)X>>C) where C is an integer constant one bit less than the
5617         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
5618         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
5619
5620         * simplify-rtx.c (simplify_unary_operation): Also implement the
5621         above transformations at the RTL level.
5622
5623 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
5624
5625         * real.c (encode_ibm_extended): Do round low word.
5626
5627 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
5628
5629         * config/arm/arm.md (is_xscale): Comment this attribute and move
5630         it a bit further up in the file, closer to related attributes.
5631
5632 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5633
5634         * config/host-solaris.c (sol_gt_pch_use_address): Add
5635         missing terminating marker to comment.
5636
5637 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
5638
5639         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
5640         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
5641         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
5642         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
5643         move_operand as source predicate in all cases.
5644         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
5645         Test reg_or_0_operand.  Use move_operand as source predicate.
5646         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
5647         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
5648         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
5649         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
5650         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
5651         Use move_operand as source predicate.  Remove 'K' constraint.
5652         (*movqi_internal): Likewise movqi_internal.
5653         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
5654         reg_or_0_operand.  Use move_operand as source predicate.
5655         (*movsf_softfloat): Likewise movsf_internal2.
5656         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
5657         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
5658         (*movdf_softfloat): Likewise movdf_internal2.
5659         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
5660         for DImode if !TARGET_64BIT.
5661         (mips_legitimize_move): Simplify accordingly.
5662
5663 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
5664
5665         PR/14362
5666         * var-tracking.c (struct variable_def): Added field refcount.
5667         (variable_htab_free): Decrease the refcount and delete variable
5668         only if there are no more references.
5669         (unshare_variable): New function.
5670         (vars_copy_1): Increase refcount instead of copying the variable.
5671         (variable_union): Share the variables where possible, unshare
5672         the variables if needed.
5673         (variable_different_p): Return false if var1 and var2 are
5674         the same structure.
5675         (variable_was_changed): Init the refcount of new variable.
5676         (set_frame_base_location): Unshare variable if needed.
5677         (set_variable_part): Init the refcount of new variable.
5678         Unshare the variables if needed.
5679         (delete_variable_part): Unshare the variables if needed.
5680         (emit_notes_for_differences_1): Init the refcount of new variable.
5681         (vt_add_function_parameters): Do not add function parameters to
5682         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
5683         (vt_initialize): Do not add frame_base_decl to IN set of
5684         ENTRY_BLOCK_PTR because it is unused anyway.
5685
5686 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
5687
5688         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
5689         (vars_copy): Likewise.
5690         (variable_union): Likewise.
5691         (set_variable_part): Likewise.
5692         (delete_variable_part): Likewise.
5693
5694 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
5695
5696         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
5697         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
5698         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
5699         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
5700         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
5701         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
5702         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
5703         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
5704         config/stormy16/stormy16.c: Fix comment typos and formatting.
5705
5706 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
5707
5708         * configure: Regenerate, since I forgot to while committing Paolo's
5709         changes.
5710
5711 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
5712
5713         PR ada/14131
5714         Move language detection to the top level.
5715         * configure.ac: Remove code to detect languages,
5716         it now lives exclusively in the top level.
5717         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
5718         top level, renamed to ACX_PROG_GNAT.
5719
5720 2004-03-10  Richard Henderson  <rth@redhat.com>
5721
5722         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
5723         extra arguments.
5724         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
5725         and host_xmake_file fragments.
5726         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
5727         (gt_pch_restore): Similarly for gt_pch_use_address.
5728         (default_gt_pch_get_address): New.
5729         (mmap_gt_pch_get_address): Split out of gt_pch_save.
5730         (default_gt_pch_use_address): Split out of gt_pch_restore.
5731         (mmap_gt_pch_use_address): Likewise.
5732         * hooks.c (hook_voidp_size_t_null): Remove.
5733         (hook_bool_voidp_size_t_false): Remove.
5734         * hooks.h: Likewise.
5735         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
5736         default_ or mmap_ definitions.
5737         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
5738         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
5739         and gt_pch_use_address.
5740         * config/host-linux.c, config/host-solaris.c: New files.
5741         * config/x-linux, config/x-solaris: New files.
5742         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
5743         Update for changed definition.
5744         (darwin_rs6000_gt_pch_use_address): Likewise.
5745         * doc/hostconfig.texi: Update docs.
5746
5747 2004-03-10  Richard Henderson  <rth@redhat.com>
5748
5749         PR c/14517
5750         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
5751         except for pedantic c90 mode.
5752
5753 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
5754
5755         * configure.ac: Bump AC_PREREQ to 2.59.
5756         * configure: Regenerate.
5757
5758 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
5759
5760         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
5761         (exp10_optab, exp2_optab): Define corresponding macros.
5762         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
5763         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
5764         using exp10?f2 and exp2?f2 patterns.
5765         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
5766         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
5767         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
5768         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5769
5770         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
5771         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
5772         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
5773
5774 2004-03-10  Anthony Green  <green@redhat.com>
5775
5776         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
5777
5778 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
5779
5780         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
5781         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
5782         __LONGDOUBLE128.
5783         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
5784         TARGET_OS_AIX_CPP_BUILTINS.
5785         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
5786         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
5787         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
5788         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
5789         previous change.
5790
5791 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5792
5793         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
5794
5795 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
5796
5797         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5798         __LONGDOUBLE128 on AIX.
5799
5800 2004-03-10  Andrew Haley  <aph@redhat.com>
5801
5802         PR optimization/14381
5803         * function.c (expand_function_end): Emit a blockage insn before
5804         the epilogue when -fnon-call-exceptions is used.
5805
5806         * except.c (expand_start_all_catch): Make comment more accurate.
5807
5808 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
5809
5810         PR target/14480
5811         * config/rs6000/t-rtems: Add missing file on branch.
5812
5813 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
5814
5815         * dbxout.c (dbxout_symbol_location): Do not output references
5816         to optimized-out constant pool symbols.
5817
5818 2004-03-10  Andreas Schwab  <schwab@suse.de>
5819
5820         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
5821         twon34_r.
5822
5823 2004-03-09  James E Wilson  <wilson@specifixinc.com>
5824
5825         * alias.c (alias_sets_might_conflict_p): New.
5826         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
5827         * common.opt (Wstrict-aliasing=): New.
5828         * flags.h (warn_strict_aliasing): Change type to int.
5829         * opts.c (warn_strict_aliasing): Change type to int.
5830         (common_handle_option): Handle OPT_Wstrict_aliasing_.
5831         * tree.h (alias_sets_might_conflict_p): Declare it.
5832         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
5833
5834 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
5835
5836         PR bootstrap/12371
5837         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
5838         (CALL_USED_REGISTERS): Likewise.
5839         (REG_CLASS_CONTENTS): Likewise.
5840         (REG_ALLOC_ORDER): New.
5841         (REGNO_REG_CLASS): Use regno_reg_class.
5842         * config/m68k/m68k.c: Add regno_reg_class array.
5843
5844 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
5845
5846         * config/ia64/ia64.md (divsi3): Fix algorithm.
5847           (udivsi3): Ditto.
5848           (setf_exp_xf): Remove '*' from name.
5849         * testsuite/gcc.dg/20040309-1.c: New test.
5850
5851 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
5852
5853         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
5854         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
5855         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
5856         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
5857         (sparc_aout_select_rtx_section): Don't check
5858         SUNOS4_SHARED_LIBRARIES.
5859         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
5860
5861 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
5862
5863         PR other/14474
5864         * doc/md.texi (Pattern Ordering, Dependent Patterns)
5865         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
5866         INTERNALS".
5867
5868 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
5869
5870         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
5871         (LIBGCC_SPEC): Update to match.
5872
5873 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
5874
5875         * c-decl.c (last_function_parms, last_function_parm_tags)
5876         (last_function_parm_others, current_function_parms)
5877         (current_function_parm_tags, current_function_parm_others):
5878         Delete.
5879         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
5880         New macros.
5881         (grokdeclarator): For function definitions, save the arg-info
5882         block from the declarator in DECL_ARGUMENTS.
5883         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
5884         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
5885         contains only PARM_DECLs.  Improve diagnostics.
5886         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
5887         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
5888         (store_parm_decls_newstyle): Take the function to operate on,
5889         and an arg-info block, as arguments; don't get anything from
5890         current_function_* globals.
5891         (store_parm_decls_oldstyle): Likewise.
5892         (store_parm_decls): Pass fndecl and its arg-info block down to
5893         store_parm_decls_newstyle/oldstyle.  Send functions with empty
5894         argument lists through store_parm_decls_newstyle to reduce
5895         overhead.
5896         (pushdecl): Comment on the problems with the call to copy_node.
5897         Clear DECL_ARGUMENTS of the old node after copying it, if it
5898         is an arg-info block instead of a chain of decls.
5899         (start_function): Do not manipulate current_function_parm* or
5900         last_function_parm*.
5901
5902 2004-03-09  Roger Sayle  <roger@eyesopen.com>
5903             Andrew Pinski  <pinskia@physics.uc.edu>
5904
5905         * ifcvt.c (noce_try_sign_mask): New function to transform
5906         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
5907         (noce_process_if_block): Call noce_try_sign_mask.
5908
5909 2004-03-09  Andrew Pinski  <apinski@apple.com>
5910
5911         * c-typeck.c (tagged_types_tu_compatible_p):
5912         Fix typo.
5913
5914 2004-03-09  Roger Sayle  <roger@eyesopen.com>
5915
5916         * simplify-rtx.c (simplify_const_relational_operation): New function
5917         renamed from simplify_relational_operation.
5918         (simplify_relational_operation): Change prototype to accept an
5919         additional mode argument.  Call simplify_const_relational_operation.
5920         (simplify_gen_relational): Update simplify_relational_operation call.
5921         (simplify_ternary_operation): Update simplify_relational_operation
5922         subroutine call to use simplify_const_relational_operation instead.
5923
5924         * rtl.h (simplify_const_relational_operation): Prototype here.
5925         (simplify_relational_operation): Add addtional mode argument.
5926
5927         * combine.c (combine_simplify_rtx): Update calls to
5928         simplify_relational_operation.
5929         (simplify_set): Likewise.
5930         (gen_binary): Likewise.
5931         * cse.c (fold_rtx): Likewise.
5932         * dojump.c (compare_from_rtx): Likewise.
5933         (do_compare_rtx_and_jump): Likewise.
5934         * integrate.c (subst_constants): Likewise.
5935         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
5936
5937 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
5938
5939         * config/m32r/m32r.md: Remove all define_peephole's.
5940
5941 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
5942
5943         * config/rs6000/rs6000.md: Remove trailing whitespace.
5944
5945 2004-03-08  Eric Christopher  <echristo@redhat.com>
5946
5947         * Makefile.in (site.exp): Add libiconv variable definition.
5948
5949 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
5950
5951         * configure: Regenerate for config/accross.m4 correction.
5952
5953 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
5954
5955         PR target/14480
5956         * config/rs6000/t-rtems: Add missing file on branch.
5957
5958 2004-03-08  Roger Sayle  <roger@eyesopen.com>
5959
5960         PR middle-end/14289
5961         * c-typeck.c (c_mark_addressable): A register variable should
5962         be considered global if its not automatic, i.e. TREE_PUBLIC,
5963         TREE_STATIC or DECL_EXTERNAL.
5964         * function.c (put_var_into_stack): Call abort when placing a
5965         hard register into the stack, if x_parm_reg_stack_loc is NULL.
5966
5967 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
5968
5969         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
5970         ("*extendqisi2_short_displ"): Likewise.
5971
5972 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
5973
5974         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
5975         (comp_operator): Likewise.
5976         * config/pdp11/pdp11-protos.h: Remove corresponding
5977         prototypes.
5978
5979 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
5980
5981         * expr.c (highest_pow2_factor_for_type): Rename into
5982         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
5983         TYPE_ALIGN when the target is a COMPONENT_REF.
5984         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
5985
5986 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
5987
5988         * config/rs6000/rs6000.c: Formatting fix.
5989         (legitimate_offset_address_p): Correct offset range check.
5990
5991         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
5992         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
5993         and MASK_STRING.
5994
5995 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
5996
5997         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
5998         for little endian.
5999         ("ashrdi3_no_power"): Disable for little endian.
6000         (ashrdi3): Same.
6001
6002 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6003
6004         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
6005         builtins.
6006
6007 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
6008
6009         PR target/14471
6010         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
6011         case, checking for -no-mul-bug-abort option.
6012         * configure, config.in: Regenerate.
6013         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
6014         and -mno-mul-bug-workaround.
6015         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
6016         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
6017         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
6018         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
6019         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
6020         sure mulu.d is not last on cache-line.
6021         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
6022         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
6023         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
6024         (TARGET_SWITCHES): New options -mmul-bug-workaround and
6025         -mno-mul-bug-workaround.
6026         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
6027         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
6028         * config/cris/cris.c (cris_operand_extend_operator): Clarify
6029         relation to MULT in head comment.
6030         (cris_op_str): Abort for MULT.
6031         (cris_print_operand) <case '!'>: New case.
6032
6033 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
6034
6035         PR debug/11983
6036         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
6037         dw_val_class_vec.  Replace use throughout file.
6038         (dw_float_const): Delete.
6039         (dw_vec_const): New.
6040         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
6041         throughout file.
6042         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
6043         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
6044         (size_of_die): Adjust dw_val_class_vec sizing.
6045         (output_die): Output dw_val_class_vec.
6046         (insert_int, extract_int, insert_float): New functions.
6047         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
6048         Handle CONST_VECTOR.
6049         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
6050
6051 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
6052
6053         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
6054         AltiVec abi cannot co-exist.
6055
6056         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
6057
6058 2004-03-07  Jan Hubicka  <jh@suse.cz>
6059
6060         * except.c (emit_to_new_bb_before):  Break fallthru edges.
6061
6062 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
6063
6064         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
6065         ("*lshrsi3"): Also accept an immediate for 68HC12.
6066         ("*ashrsi3_const"): Likewise.
6067         ("*ashrsi3"): Likewise.
6068         ("*ashlsi3_const"): Likewise.
6069         ("*ashlsi3"): Likewise.
6070         ("cmphi_1_hc12"): Compare two hard register by pushing them and
6071         comparing with a pop; don't use a split for that.
6072         ("cmphi split"): Disable compare split for 68HC12.
6073
6074         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
6075         the status operands if they have side effects.
6076
6077 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
6078
6079         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
6080         definition.
6081         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
6082         config/h8300/h8300.h, config/ia64/ia64.h,
6083         config/mcore/mcore.h, config/mmix/mmix.h,
6084         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
6085         config/stormy16/stormy16.h, config/v850/v850.h,
6086         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
6087         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
6088         definition.
6089
6090 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6091
6092         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
6093         <XOR_EXPR>: Fold x ^ x as zero.
6094         <AND_EXPR>: Fold x & x as x.
6095
6096 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6097
6098         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
6099         "foo++ == const" into "++foo == const+incr".
6100
6101 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
6102
6103         * config/mips/mips.c (mips_in_small_data_p): Return false if
6104         TARGET_ABICALLS.
6105
6106 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
6107
6108         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
6109         the stack register.
6110         (expand_prologue): Don't make an interrupt or a trap handler a far
6111         symbol.
6112         (m68hc11_initial_elimination_offset): Likewise.
6113
6114 2004-03-06  Richard Henderson  <rth@redhat.com>
6115
6116         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
6117
6118 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6119
6120         * config/ns32k/ns32k-protos.h: Add a prototype for
6121         ns32k_notice_update_cc.
6122         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
6123         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
6124         ns32k_notice_update_cc.
6125
6126 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6127
6128         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
6129         "*load_multiple_si"): Allow only if reload_completed.
6130         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
6131         Likewise.
6132
6133 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6134
6135         * config/vax/vax-protos.h: Add a prototype for
6136         vax_notice_update_cc.
6137         * config/vax/vax.c (vax_notice_update_cc): New.
6138         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
6139         vax_notice_update_cc.
6140
6141 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
6142
6143         * collect2.c (main): Only export initfunc and finifunc if
6144         LD_INIT_SWITCH not defined.
6145         (scan_prog_file): Only export constructors and destructors if
6146         LD_INIT_SWITCH not defined.  Only export symbols not found in
6147         shared objects.
6148
6149 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6150
6151         * pa.md (icacheflush): Reorder operands to make match_scratch operand
6152         last.
6153         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
6154         from calls to gen_icacheflush.
6155
6156 2004-03-06  Richard Henderson  <rth@redhat.com>
6157
6158         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
6159         (TARGET_LONG_DOUBLE_128): New.
6160         (TARGET_SWITCHES): Add long-double-{128,64}.
6161         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
6162         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
6163         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
6164         (WIDEST_HARDWARE_FP_SIZE): New.
6165         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
6166         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
6167         if TARGET_VAX_FLOAT.
6168         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
6169         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
6170
6171 2004-03-06  Richard Henderson  <rth@redhat.com>
6172
6173         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
6174         botched rtx class conversion.
6175
6176 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6177
6178         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
6179         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
6180
6181         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
6182         macros.
6183         * fold-const.c (fold_mathfn_compare, fold): Likewise.
6184
6185 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6186
6187         PR target/14343
6188         * config/i386/i386.md (movv2di_internal): Conditionalize on
6189         TARGET_SSE, not TARGET_SSE2.
6190
6191 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
6192
6193         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
6194         duplicated line.
6195
6196 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6197
6198         * builtins.c: Consistently use logN not log* in comments.
6199
6200 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
6201
6202         * rtl.h (mem_expr_equal_p): Function prototype added.
6203         * cfgcleanup.c (merge_memattrs): New function.
6204         (flow_find_cross_jump): Call merge_memattrs for matching insns.
6205         * emit-rtl.c (mem_expr_equal_p): New function.
6206
6207 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
6208
6209         * objc/objc-act.c (synth_module_prologue): Const-qualify
6210         objc_selector type if using the GNU runtime; fix generated
6211         signatures for objc_msg_lookup and objc_msg_lookup_super
6212         to match what GNU ObjC headers provide; reformat and clean up.
6213         (synth_self_and_ucmd_args): Use previously constructed (and
6214         hence possibly const-qualified) objc_selector type.
6215
6216 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6217
6218         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
6219
6220 2004-03-05  Jason Merrill  <jason@redhat.com>
6221
6222         * tree.h (TYPE_HASH): Use TYPE_UID.
6223         (TREE_HASH): New macro with old definition of TYPE_HASH.
6224         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
6225         (build_array_type, build_function_type): Likewise.
6226         (build_method_type_directly): Likewise.
6227         (build_offset_type, build_complex_type): Likewise.
6228         (type_hash_list, attribute_hash_list): Likewise. Now static.
6229         * except.c: s/TYPE_HASH/TREE_HASH/.
6230
6231 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
6232
6233         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
6234         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
6235         __va_ndx by 2 words when referencing an argument on the stack.
6236         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
6237         words when an arg on the stack is first seen.
6238
6239 2004-03-05  Paul Brook  <paul@codesourcery.com>
6240
6241         * arm.h (ARM_FLAG_VFP): Remove.
6242         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
6243         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
6244
6245 2004-03-05  Paul Brook  <paul@codesourcery.com>
6246
6247         * function.c (assign_parms): Include pretend alignment offset.
6248
6249 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6250
6251         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
6252         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
6253
6254 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
6255
6256         * configure.ac: When passing --enable-languages to subdir
6257         configure when host != build, make sure we don't pass an empty
6258         value.
6259         * configure: Regenerate.
6260
6261 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
6262
6263         PR 13577
6264         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
6265         options.
6266
6267 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6268
6269         * simplify-rtx.c (simplify_relational_operation): If
6270         flag_wrapv is set, do not move terms between the two
6271         side of a relational operator.
6272
6273 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6274
6275         * rtlanal.c: Include target.h and output.h
6276         (rtx_cost, address_cost, default_address_cost): Move from...
6277         * cse.c (rtx_cost, address_cost, default_address_cost):
6278         ... this file.
6279         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
6280         * Makefile.in: Adjust dependencies.
6281
6282 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
6283
6284         * cse.c (cse_end_of_basic_block): Make static.
6285         * local-alloc.c (function_invariant_p): Move to
6286         reload1.c.
6287         * loop.c (libcall_other_reg, record_excess_regs):
6288         Make static.
6289         * reload1.c (function_invariant_p): Moved here
6290         from local-alloc.c, made static.
6291         * rtl.h (cse_end_of_basic_block, function_invariant_p,
6292         libcall_other_reg, record_excess_regs): Remove
6293         declarations.
6294
6295 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6296
6297         * config/m32r/m32r.c (signed_comparison_operator): Add a
6298         missing parenthesis.
6299
6300 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
6301
6302         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
6303         going to call mmap again.  Read the file into the right place.
6304         Give a fatal error if we have to relocate.
6305
6306 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
6307
6308         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
6309         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
6310
6311 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
6312
6313         PR other/14354
6314         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
6315         round the same.  When rounding, clear bits that would cause a
6316         second rounding in pack_d.
6317         (_fpmul_parts): Ditto.  Remove #if 0:d code.
6318
6319 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
6320
6321         PR c++/14425, c++/14426
6322         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
6323         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
6324         Change C++ definitions to accept a 'const int' argument;
6325         the prototypes already do.
6326         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
6327         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
6328         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
6329         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
6330         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
6331         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
6332         end in ..._int; change them to accept an int instead of a char
6333         as the last parameter.
6334
6335 2004-03-04  Phil Edwards  <phil@codesourcery.com>
6336
6337         * genmultilib:  Change '=' to '-' when translating option names
6338         to directory names.
6339
6340 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6341
6342         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
6343         stack slot for temp used for result of BLKmode but in integral mode.
6344
6345 2004-03-04  Jan Hubicka  <jh@suse.cz>
6346
6347         * reload.c (find_reloads): Reorganize if seqeunce to switch.
6348
6349         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
6350         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
6351
6352 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
6353
6354         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
6355         * testsuite/gcc.dg/20040303-1.c: New test.
6356
6357 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6358
6359         * ppro.md: Rewrite as a DFA pipeline description.
6360         * i386.md: Remove all uses of the ppro_uops attribute.
6361         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
6362         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
6363         ix86_sched_reorder, ix86_variable_issue,
6364         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
6365         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
6366         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
6367         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
6368         * athlon.md (athlon_ssecmp_load): Fix comment
6369
6370 2004-03-04  Stuart Hastings  <stuart@apple.com>
6371
6372         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
6373
6374 2004-03-04  Stuart Hastings  <stuart@apple.com>
6375
6376         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
6377         686, tell Darwin assembler to allow prefetch insns, non-empty def
6378         of SUBTARGET_OPTION_TRANSLATE_TABLE.
6379
6380 2004-03-04  DJ Delorie  <dj@redhat.com>
6381
6382         PR optimization/14282
6383         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
6384         between a call and the assignment of its return value.
6385
6386 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6387
6388         * config/h8300/h8300.c: Put a comment for every function.
6389
6390 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6391
6392         * config/h8300/h8300.md: Add comments about peephole2's.
6393
6394 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6395
6396         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
6397
6398 2004-03-04  Jan Hubicka  <jh@suse.cz>
6399
6400         * cfgcleanup.c (thread_jump): Update call of cselib_init.
6401         * cselib.c (cselib_record_memory): New static variable.
6402         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
6403         Give up on memories when asked for.
6404         (cselib_init): Accept new argument.
6405         * cselib.h (cselib_init): Update prototype.
6406         * gcse.c (local_cprop_pass): Update call of cselib_init.
6407         * loop.c (load_mems): Update call of cselib_init.
6408         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
6409         * sched-deps.c (sched_analyze): Update call of cselib_init.
6410
6411 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6412             GP <gp@qnx.com>
6413
6414         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
6415         when compiling PIC.
6416
6417 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
6418
6419         PR/14362
6420         * var-tracking.c (track_expr_p): Do not track variables which
6421         should be ignored for debugging purposes.
6422
6423 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6424
6425         * real.c (encode_ibm_extended): Don't bother rounding low double.
6426         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
6427         when fmt->pnan < fmt->p.
6428
6429 2004-03-04  Eric Christopher  <echristo@redhat.com>
6430
6431         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
6432         only range of valid arg registers and fixed_regs.
6433
6434 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6435
6436         PR target/14406
6437         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
6438         (abstf2, abstf2_internal): New define_expand.
6439
6440 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6441
6442         PR optimization/14235
6443         * expr.c (convert_move): Copy the source to a new pseudo
6444         when converting from a sub-word source to a larger-than-word
6445         register which conflicts with the source.
6446
6447 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
6448
6449         PR 13728
6450         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
6451         parameters with the same name, unless one is a forward decl.
6452         Do not issue a redundant-redeclaration warning for forward
6453         decls of parameters.
6454
6455 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6456
6457         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
6458         configuration.
6459
6460 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
6461
6462         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
6463
6464 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6465
6466         * target-def.h (TARGET_OPTF): Delete.
6467         * c-opts.c (TARGET_OPTF): Define.
6468
6469 2004-03-04  Jan Hubicka  <jh@suse.cz>
6470
6471         * cselib.c (cselib_finish): Fix another miss-application of my previous
6472         patch.
6473
6474 2004-03-03  Mike Stump  <mrs@apple.com>
6475
6476         Add framework support for darwin.
6477
6478         * c-incpath.c: Include target.h and machmode.h.
6479         (add_path): Use a consistent style for cpp_dir.  Initialize
6480         p->construct to 0.
6481         (add_cpp_dir_path): New.
6482         (register_include_chains): Add use of extra_includes callback.
6483         (hook_void_int): Add.
6484         (target_c_incpath): Add.
6485         * c-incpath.h (add_cpp_dir_path): New.
6486         (target_c_incpath_s): Add.
6487         (target_c_incpath): Add.
6488         (C_INCPATH_INIT): Add.
6489         * c-opts.c (c_common_missing_argument,
6490         c_common_handle_option): Add -F argument processing.
6491         * c.opt: Add -F argument processing.
6492         * gcc.c (trad_capable_cpp): Add -F argument processing.
6493         * cppfiles.c (find_file_in_dir): Update to use construct
6494         callback.
6495         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
6496         cpp_get_prev): New.
6497         (_cpp_find_file): Use search_path_exhausted.
6498         (make_cpp_dir): Initialize construct to 0.
6499         * cpplib.h (missing_header_cb
6500         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
6501         (cpp_callbacks): Add missing_header
6502         (cpp_dir): Add construct.
6503         * target-def.h: (TARGET_OPTF): New.
6504         * hooks.c (hook_void_int, hook_void_charptr): Add.
6505         * hooks.h (hook_void_int, hook_void_charptr): Add.
6506         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
6507         $(MACHMODE_H) dependencies.
6508         * doc/invoke.texi (Darwin Options): Document -F.
6509         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
6510         (TARGET_OPTF): Add.
6511         * fix-header.c (target_c_incpath): Add.
6512
6513         * config/darwin-c.c: Add c-incpath.h include.
6514         (using_frameworks, find_subframework_file,
6515         find_subframework_header, add_system_framework_path,
6516         frameworks_in_use, num_frameworks, max_frameworks,
6517         add_framework, find_framework, struct framework_header,
6518         framework_header_dirs, framework_construct_pathname,
6519         find_subframework_file, add_system_framework_path,
6520         add_framework_path, framework_defaults,
6521         darwin_register_frameworks, find_subframework_header): Add.
6522         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
6523         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
6524         (CPP_SPEC): Add __APPLE_CC__ support.
6525         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
6526
6527 2004-03-04  Jan Hubicka  <jh@suse.cz>
6528
6529         * cselib.c (cselib_finish): Fix miss-application of my previous
6530         patch.
6531
6532 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6533
6534         * hooks.c (hook_tree_tree_identity): New.
6535         * hooks.h: Add a prototype for hook_tree_tree_identity.
6536         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
6537         instead of MD_ASM_CLOBBERS.
6538         * system.h (MD_ASM_CLOBBERS): Poison.
6539         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
6540         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
6541         * target.h (gcc_target): Add md_asm_clobbers.
6542         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
6543         (ix86_md_asm_clobbers): New.
6544         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
6545         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
6546         TARGET_MD_ASM_CLOBBERS.
6547
6548 2004-03-03  Stuart Hastings  <stuart@apple.com>
6549
6550         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
6551
6552 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6553
6554         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
6555
6556         * config/sparc/sparc.h (ASM_FLOAT): Delete.
6557         (ASM_DOUBLE): Likewise.
6558         (ASM_LONGDOUBLE): Likewise.
6559         * config/sparc/pbd.h (ASM_INT_OP): Delete.
6560
6561 2003-03-03  Richard Henderson  <rth@redhat.com>
6562
6563         PR opt/13862
6564         * cselib.c (cselib_record_sets): Don't record multiple sets in
6565         asm insns.
6566
6567 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
6568
6569         * common.opt: Add description of the new -fgcse-after-reload flag.
6570
6571         * flags.h (flag_gcse_after_reload): Declaration of global variable.
6572
6573         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
6574         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
6575         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
6576         get_bb_avail_insn, hash_scan_set_after_reload,
6577         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
6578         gcse_after_reload, get_bb_avail_insn): New functions to implement
6579         gcse-after-reload.
6580         (gcse_after_reload_main): New function, the main entry point to
6581         gcse-after-reload.
6582
6583         * rtl.h (gcse_after_reload_main): Declaration of the new function.
6584
6585         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
6586
6587         * toplev.c (flag_gcse_after_reload): Initialization.
6588
6589         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
6590
6591         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
6592         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
6593         the gcse after reload optimization.
6594
6595         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
6596         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
6597         parameters.
6598
6599         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
6600
6601 2004-03-03  Nicolas Pitre <nico@cam.org>
6602
6603         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
6604         small negative values.
6605
6606 2004-03-03  Jan Hubicka  <jh@suse.cz>
6607
6608         * cselib.c (hash_table):  Remove GTY marker.
6609         (reg_values): Turn into array.
6610         (used_regs): Likewise.
6611         (n_used_regs): New static variable.
6612         (reg_values_old): Kill.
6613         (clear_table): Update uses of arrays.
6614         (cselib_lookup): Likewise.
6615         (cselib_record_set): Likewise.
6616         (cselib_init): Likewise.
6617         (cselib_finish): Likewise.
6618         (cselib_udpate_varray_sizes): Kill.
6619         * cselib.h (cselib_update_varray_sizes): Kill.
6620
6621 2004-03-03  Paul Brook  <paul@codesourcery.com>
6622
6623         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
6624
6625 2004-03-03  Jan Hubicka  <jh@suse.cz>
6626
6627         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
6628         Rename from ...; make statistics transparent.
6629         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
6630         (loc_descriptor): New structure.
6631         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
6632         add_statistics):
6633         New static function.
6634         (ggc_record_overhead, dump_statistics): New global function.
6635         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
6636         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
6637         from ...; accept locations
6638         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
6639         ggc_realloc, ggc_alloc_typed):  ... this one.
6640         from ...; accept locations
6641         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
6642         ggc_alloc_stat): Rename from ... ; pass locations
6643         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
6644         ... this one.
6645         (ggc_alloc_stat): Record overehead.
6646         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
6647         ggc_realloc, ggc_alloc_typed):  Turn to macros
6648         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
6649         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
6650         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
6651         * langhooks.h (lhd_make_node): Declare.
6652         (LANG_HOOKS_MAKE_TYPE): Default to new function,
6653         * langhooks.c (lhd_make_node): New.
6654         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
6655         locations.
6656         (rtx_alloc, swallow_copy_rtx): ... this one.
6657         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
6658         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
6659         * toplpev.c (finalize): Dump stats.
6660         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
6661         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
6662         Rename from ... ; pass locators.
6663         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
6664         build?,  build_decl): Declare.
6665         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
6666         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
6667         Declare.
6668         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
6669         build?,  build_decl): New macros.
6670         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
6671         * statistics.h: New file.
6672
6673 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6674             Richard Sandiford  <rsandifo@redhat.com>
6675
6676         * config/mips/mips.h (MASK_FIX_SB1): Bump.
6677         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
6678         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
6679         * config/mips/mips.c (mips_output_division): Fill the branch delay
6680         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
6681         TARGET_FIX_R4400.
6682         (mips_output_division): Adjust accordingly.
6683         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
6684         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
6685
6686 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
6687
6688         * alias.c (rtx_equal_for_memref_p): Use predicates
6689         to test rtx classes and new rtx class codes, possibly
6690         splitting conditionals that tested against '<' and 'o'.
6691         * caller-save.c (save_call_clobbered_regs): Likewise.
6692         * combine.c (contains_muldiv, find_split_point, subst,
6693         combine_simplify_rtx, simplify_if_then_else,
6694         simplify_set, simplify_logical, expand_compound_operation,
6695         make_compound_operation, if_then_else_cond, known_cond,
6696         apply_distributive_law, cached_nonzero_bits,
6697         cached_num_sign_bit_copies, simplify_shift_const,
6698         gen_binary, simplify_comparison, update_table_tick,
6699         record_value_for_reg, get_lsat_value_validate): Likewise.
6700         * cse.c (mention_regs, find_best_addr, find_comparison_args,
6701         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
6702         Likewise.
6703         * emit-rtl.c (copy_insn_1): Likewise.
6704         * expr.c (force_operand): Likewise.
6705         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
6706         * flow.c (notice_stack_pointer_modification_1,
6707         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
6708         and_reg_cond, elim_reg_cond): Likewise.
6709         * function.c (update_epilogue_consts): Likewise.
6710         * genattrtab.c (attr_rtx_1): Likewise.
6711         * genopinit.c (gen_insn): Likewise.
6712         * integrate.c (subst_constants): Likewise.
6713         * jump.c (reversed_comparison_code_parts,
6714         reversed_comparison_code, delete_related_insns,
6715         rtx_renumbered_equal_p): Likewise.
6716         * local-alloc.c (block_alloc): Likewise.
6717         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
6718         canonicalize_condition): Likewise.
6719         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
6720         Likewise.
6721         * optabs.c (add_equal_node, expand_binop): Likewise.
6722         * predict.c (estimate_probability): Likewise.
6723         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
6724         * recog.c (validate_replace_rtx_1, comparison_operator,
6725         offsettable_address_p, constrain_operands): Likewise.
6726         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
6727         Likewise.
6728         * regclass.c (scan_one_insn): Likewise.
6729         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
6730         * regrename.c (kill_autoinc_value): Likewise.
6731         * reload.c (find_reusable_reload, find_reloads,
6732         reg_overlap_mentioned_for_reload_p): Likewise.
6733         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
6734         * rtl.c (copy_rtx): Likewise.
6735         * rtl.h (CONSTANT_P, INSN_P): Likewise.
6736         * rtlanal.c (commutative_operand_precedence): Likewise.
6737         * sched-deps.c (conditions_mutex_p): Likewise.
6738         * sched-rgn.c (is_cfg_nonregular): Likewise.
6739         * simplify-rtx.c (simplify_gen_binary,
6740         simplify_gen_relational, simplify_replace_rtx,
6741         simplify_unary_operation, simplify_binary_operation,
6742         simplify_ternary_operation, simplify_rtx): Likewise.
6743         * unroll.c (reg_dead_after_loop): Likewise.
6744         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
6745         print_operand): Likewise.
6746         * config/arc/arc.c (proper_comparison_operator): Likewise.
6747         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
6748         Likewise.
6749         * config/avr/avr.c (_reg_unused_after): Likewise.
6750         * config/frv/frv.c (frv_ifcvt_modify_tests,
6751         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
6752         * config/i386/i386.c (ix86_comparison_operator,
6753         ix86_carry_flag_operator, fcmov_comparison_operator,
6754         arith_or_logical_operator, print_operand,
6755         ix86_expand_binary_operator, ix86_binary_operator_ok):
6756         Likewise.
6757         * config/i386/i386.md: Likewise.
6758         * config/ia64/ia64.c (not_postinc_memory_operand,
6759         ia64_print_operand, update_set_flags, errata_emit_nops):
6760         Likewise.
6761         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
6762         CONSTRAINT_OK_FOR_S): Likewise.
6763         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
6764         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
6765         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
6766         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
6767         Likewise.
6768         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
6769         eqne_comparison_operator, signed_comparison_operator):
6770         Likewise.
6771         * config/mips/mips.c (cmp_op, symbolic_expression_p):
6772         Likewise.
6773         * config/mmix/mmix (mmix_foldable_comparison_operator,
6774         mmix_comparison_operator): Likewise.
6775         * config/pa/pa.c (hppa_legitimize_address): Likewise.
6776         * config/rs6000/rs6000.c (stmw_operation,
6777         branch_comparison_operator, trap_comparison_operator,
6778         ccr_bit): Likewise.
6779         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
6780         * config/s390/s390.c (s390_alc_comparison,
6781         s390_slb_comparison):L Likewise.
6782         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
6783         Likewise.
6784         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
6785         noov_compare_op, noov_compare64_op, v9_regcmp_op,
6786         emit_hard_tfmode_operation, reg_unused_after)
6787         * doc/md.texi, doc/rtl.texi: Likewise.
6788
6789         * ra-debug.c: Add 2004 to list of copyright years.
6790         * unroll.c: Likewise.
6791
6792         * combine.c (simplify_logical): Remove dummy test,
6793         (apply_distributive_law): Fix typo in comment.
6794         GET_CODE (x) == AND so x is a commutative binary op.
6795         * jump.c (delete_related_insns): simplify loop
6796         condition, move testing of RTX codes inside the loop.
6797         (rtx_renumbered_equal_p): do not use RTX_CODE.
6798         * rtl.c (rtx_class): Declare as enum rtx_class.
6799         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
6800         Move to RTX_COMM_COMPARE class.
6801         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
6802         Move to RTX_CONST_OBJ class.
6803         * rtl.h (enum rtx_class): New declaration,
6804         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
6805         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
6806         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
6807         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
6808         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
6809         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
6810         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
6811         OBJECT_P): New macros.
6812         * config/sparc/sparc.c (noov_compare_op): Remove register
6813         from parameter.
6814
6815 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6816
6817         * target.h: Remove texi jargons in comments.
6818
6819 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6820
6821         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
6822         threshold to 0x4f.
6823
6824         Revert:
6825         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
6826         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
6827         as well.
6828         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
6829         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
6830
6831 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6832
6833         * doc/md.texi (cbranchmode4): New.
6834
6835 2004-03-02  Eric Christopher  <echristo@redhat.com>
6836
6837         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
6838         fix_trunc.
6839         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
6840         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
6841         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
6842         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
6843
6844 2004-03-02  Richard Henderson  <rth@redhat.com>
6845
6846         PR middle-end/11767
6847         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
6848         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
6849         before the compare, if flag_non_call_exceptions.
6850
6851 2004-03-02  Richard Henderson  <rth@redhat.com>
6852
6853         PR middle-end/14327
6854         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
6855         emitting the label, not after.
6856
6857 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6858
6859         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
6860         (m68hc11_mov_addr_mode): Likewise.
6861         (m68hc11_override_options): Initialize them based on target.
6862         (register_indirect_p): Allow a MEM for indirect addressing modes and
6863         use flags to control what is allowed.
6864         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
6865         supported addressing modes.
6866         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
6867         (go_if_legitimate_address_internal): Likewise.
6868         (m68hc11_indirect_p): Likewise and check the mode.
6869         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
6870
6871 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6872
6873         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
6874         (expand_builtin_setjmp_setup): Use
6875         targetm.builtin_setjmp_frame_value instead of
6876         BUILTIN_SETJMP_FRAME_VALUE.
6877         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
6878         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
6879         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
6880         * target.h (gcc_target): Add builtin_setjmp_frame_value.
6881         * targhooks.c (default_builtin_setjmp_frame_value): New.
6882         * targhooks.h: Add a prototype for
6883         default_builtin_setjmp_frame_value.
6884         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
6885         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
6886
6887 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6888
6889         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
6890         sequences of moves.
6891         (add peepholes): New peepholes to optimize sequences adding small
6892         constants.
6893         (bset peepholes): New peepholes to transform an OR in a bset form
6894         (bclr peepholes): Likewise for bclr form.
6895         (cmp peepholes): New peepholes to avoid register copies when comparing.
6896
6897 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6898
6899         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
6900         to separate push from moves.
6901         ("*pushdf_internal"): Likewise.
6902         ("*pushsf_internal"): Likewise.
6903         ("*pushsi_internal"): Likewise.
6904         ("movdi_internal"): Use define_insn_and_split; non push operand.
6905         ("movdf_internal"): Likewise.
6906         ("movsf_internal"): Likewise.
6907         ("movsi_internal"): Likewise.
6908         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
6909         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
6910         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
6911
6912 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6913
6914         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
6915         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
6916         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
6917         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
6918         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
6919         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
6920         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
6921         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
6922         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
6923         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
6924         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
6925
6926 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6927
6928         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
6929         (SOFT_XY_REGNUM): Define.
6930         (cmp split): Use the above instead of hard coded numbers.
6931         (8-bit op split): No need to check the mode; allow Q_REG.
6932         (ashift split): Adjust the first operand if it uses the SP and we
6933         are pushing the shifted value.
6934         (plus shift split): Fix when a source is in register D+X.
6935         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
6936
6937 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6938
6939         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
6940         comparing with Z register.
6941
6942 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6943
6944         * cfgloop.h (struct loop_desc): Removed.
6945         (struct loop): Fields simple, desc and has_desc removed.
6946         (simple_loop_p, count_loop_iterations): Declaration removed.
6947         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
6948         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
6949         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
6950         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
6951         simple_loop_exit_p, variable_initial_value, variable_initial_values,
6952         simple_condition_p, simple_increment, count_strange_loop_iterations,
6953         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
6954         Removed.
6955         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
6956
6957 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6958
6959         * genattrtab.c: Don't handle MATCH_INSN.
6960         * genrecog.c: Likewise.
6961         * gensupport.c: Likewise.
6962         * rtl.def (match_insn): Remove.
6963         * doc/md.texi (match_insn, match_insn2): Remove.
6964
6965 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
6966
6967         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
6968         macro results in memory allocation.
6969
6970 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
6971
6972         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
6973         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
6974         %(fbsd_dynamic_linker),
6975         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
6976         config/i386/freebsd.h
6977         * config/arm/freebsd.h: Ditto.
6978         * config/i386/freebsd.h: Ditto.
6979         * config/i386/freebsd64.h: Ditto.
6980         * config/ia64/freebsd.h: Ditto.
6981         * config/rs6000/sysv4.h: Ditto.
6982         * config/sparc/freebsd.h: Ditto.
6983
6984 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
6985
6986         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
6987
6988 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6989
6990         * rtl.def (define_combine): Remove.
6991
6992 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6993
6994         * config/h8300/h8300.md: Tweak formatting.
6995
6996 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6997
6998         * config/h8300/h8300.md (*cmphi_h8300): Rename to
6999         *cmphi_h8300_znvc.
7000         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
7001
7002 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
7003
7004         PR bootstrap/14356
7005         * gcc.c (process_command): Remove const-qualification from argv.
7006         (main): Likewise.
7007
7008 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7009
7010         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
7011         pushqi1_h8300hs_advanced.  Adjust its caller.
7012         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
7013         Adjust its caller.
7014
7015 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
7016
7017         * Makefile.in (install-libgcc, install-multilib): Pass
7018         mkinstalldirs var to libgcc.mk.
7019
7020 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7021
7022         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
7023         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
7024
7025 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7026
7027         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
7028         * config/h8300/h8300.md: Split several peephole2's, each into
7029         two.
7030
7031 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7032
7033         * dominance.c (recount_dominator): Handle postdominators.
7034
7035 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
7036
7037         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
7038         (NUM_SYMBOL_TYPES): Likewise.
7039         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
7040         (mips_unspec_address): Declare.
7041         (mips_gotoff_page, mips_gotoff_global): Delete.
7042         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
7043         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
7044         (mips_symbolic_constant_p, mips_symbolic_address_p)
7045         (mips_symbol_insns): Handle new symbol types.
7046         (general_symbolic_operand): New predicate.
7047         (mips_unspec_address): Make extern.
7048         (mips_gotoff_page, mips_gotoff_global): Delete.
7049         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
7050         Handle new symbol types.
7051         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
7052         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
7053         mips_unspec_address directly.
7054         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
7055         the documentation of -mexplicit-relocs.
7056
7057 2004-03-01  Jeff Law  <law@redhat.com>
7058
7059         * fold-const.c (fold): An equality comparison of a non-weak object
7060         against zero has a known result.  Similarly an equality comparison
7061         of the address of two non-weak, unaliased symbols has a known result.
7062
7063         * ggc-page.c (struct page_entry): New field PREV.
7064         (ggc_alloc): Update PREV field appropriately.
7065         (sweep_pages): Likewise.
7066         (ggc_free): Likewise.  Use PREV field rather than loop to
7067         improve ggc_free performance.
7068
7069 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
7070
7071         * config/mips/mips.c (mips_output_division): Use the division
7072         instruction to fill the delay slot of a zero check.
7073         (mips_idiv_insns): Adjust accordingly.
7074
7075 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
7076
7077         * config.gcc: Create a default tmake_file for linux, and use
7078         it in all but two linux clauses.  Comment those two.
7079
7080 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
7081
7082         * combine.c (try_combine):  Do not refer to is_replaced.
7083         (gen_lowpart_for_combine):  Perverse subregs now have a
7084         more politically correct name.
7085         * cse.c (cse_insn): Likewise.
7086         * jump.c: Fix bogus reference to delete_insn.
7087
7088 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
7089
7090         PR debug/14328
7091         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
7092         constants as signed values.
7093
7094         PR middle-end/13448
7095         * c-tree.h (readonly_warning): Rename to ...
7096         (readonly_error): ... this.
7097         * c-typeck.c (build_unary_op): Adjust accordingly.
7098         (readonly_warning): Rename to ...
7099         (readonly_error): ... this and issue errors, not warnings.
7100         (build_modify_expr): Call readonly_error, not readonly_warning.
7101         (c_expand_asm_operands): Likewise.
7102         * tree-inline.c (optimize_inline_calls): Do not inline functions
7103         after errors have occurred.
7104
7105 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7106
7107         * configure.ac: Rearrange some threading code for clarity;
7108         add section comment.
7109         * configure: Regenerate.
7110
7111 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7112
7113         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
7114         typos.
7115         * doc/cppopts.texi: Fix a typo.
7116
7117 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7118
7119         * config/i386/i386.md: Fix formatting.
7120
7121 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7122
7123         * configure.ac: Add some comments delineating sections of code.
7124
7125         * doc/install.texi: Note that libada uses autoconf 2.57 also.
7126
7127         * doc/install.texi: Fix idiot typo in previous commit.
7128
7129         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
7130
7131 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7132
7133         * config/h8300/h8300.md: Add comments about peephole2's.
7134
7135 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7136
7137         * config/h8300/h8300.md: Tweak operand numbers of some
7138         peephole2's.
7139
7140 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7141
7142         * config/h8300/h8300.md: Tweak comments about peephole2's.
7143
7144 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7145
7146         PR middle-end/14203
7147         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
7148         instead of testing whether DECL_RTL is not NULL.
7149
7150 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7151
7152         * config/sh/sh.c: Fix formatting.
7153
7154 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7155
7156         * config/sh/sh.c: Convert to ISO-C.
7157
7158 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
7159
7160         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
7161         my previous patch.
7162
7163         * config/darwin.h (machopic_finish): Output stub even if the
7164         symbol is already defined.
7165
7166 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7167
7168         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
7169
7170 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7171
7172         * genattr.c (main): Don't define
7173         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
7174         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
7175         (DFA_PIPELINE_INTERFACE): Likewise.
7176         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
7177         (DFA_PIPELINE_INTERFACE): Likewise.
7178
7179 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
7180
7181         * config/mips/mips.md (tstsi, tstdi): Delete.
7182
7183 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7184
7185         * config/mips/mips.c (override_options): Remove an obsolete
7186         duplicate definition of the "e" constraint.
7187         * config/mips/mips.h: Update a comment accordingly.
7188
7189 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7190
7191         * config/mips/mips.md: Complete the unfinished R4000
7192         multiply/shift errata workaround.  Improve documentation.
7193         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
7194         has a hilo hazard.
7195         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
7196         (muldi3, muldi3_internal): Likewise.
7197         (muldi3_internal2): Remove, replacing with...
7198         (muldi3_mult3, muldi3_r4000): ...these new patterns.
7199         (mulsidi3): Take the errata into account.
7200         (mulsidi3_32bit): Remove, replacing with...
7201         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
7202         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
7203         (umulsidi3): Take the errata into account.
7204         (umulsidi3_32bit): Remove, replacing with..
7205         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
7206         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
7207         TARGET_FIX_R4000.
7208         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
7209         (smuldi3_highpart, umuldi3_highpart): Likewise.
7210         * doc/invoke.texi: Document the errata workaround.
7211
7212 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7213
7214         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
7215         * config/mips/mips.h (MASK_FIX_SB1): Bump.
7216         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
7217         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
7218         * config/mips/mips.c (mips_idiv_insns): New function.
7219         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
7220         (mips_output_division): Add a workaround for the R4000 divide/shift
7221         errata.
7222         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
7223         the length of an "idiv" instruction.
7224         * doc/invoke.texi: Document the new switches.
7225
7226 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7227
7228         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
7229         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
7230
7231 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7232
7233         PR optimization/14229
7234         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
7235
7236 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
7237
7238         * fold-const.c (fold): Strip NOPs that change the signedness
7239         for RSHIFT too.  Expand comment.
7240
7241 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
7242
7243         PR optimization/7871
7244         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
7245         from or to call insns.
7246
7247 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
7248
7249         PR optimization/7871
7250         * flow.c (propagate_one_insn): Interpret calls as setting global
7251         registers, not merely clobbering them.
7252
7253 2004-02-27  Dale Johannesen  <dalej@apple.com>
7254
7255         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
7256         config/darwin-protos.h:  Ditto.
7257         config/darwin.h:  Remove call to it.
7258         * combine.c (distribute_notes): Do not place a REG_DEAD note
7259         when value is both set and used.
7260
7261 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7262
7263         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
7264         as well.
7265         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
7266         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
7267
7268 2004-02-27  Andrew Pinski  <apinski@apple.com>
7269
7270         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
7271         Speedup common case of the type values being in the same order.
7272
7273 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
7274
7275         * config/ia64/ia64.h (no-inline-float-divide): New option.
7276         * config/ia64/ia64.h (no-inline-int-divide): New option.
7277         * config/ia64/ia64.h (no-inline-sqrt): New option.
7278         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
7279         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
7280         * config/ia64/ia64.c (ia64_override_options): Modify error
7281         checking for inlined division/sqrt.
7282
7283 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7284
7285         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
7286         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
7287         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
7288         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
7289         copyright.
7290
7291 2004-02-27  Paul Brook  <paul@codesourcery.com>
7292
7293         * function.c (assign_parms): Don't count pretend args for alignment.
7294
7295 2004-02-27  Richard Henderson  <rth@redhat.com>
7296
7297         * passes.c: New file.
7298         * Makefile.in (OBJS-common): Add it.
7299         * diagnostic.c (rtl_dump_and_exit): Move decl ...
7300         * flags.h (rtl_dump_and_exit): ... here.
7301         * output.h (size_directive_output, last_assemble_variable_decl):
7302         Move from toplev.c.
7303         * rtl.h (reg_alloc): Move from toplev.c.
7304         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
7305         struct dump_file_info, enum dump_file_index, dump_file_tbl,
7306         open_dump_file, close_dump_file, rest_of_decl_compilation,
7307         rest_of_type_compilation, rest_of_handle_final,
7308         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
7309         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
7310         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
7311         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
7312         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
7313         rest_of_handle_tracer, rest_of_handle_if_conversion,
7314         rest_of_handle_if_after_combine, rest_of_handle_web,
7315         rest_of_handle_branch_prob,
7316         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
7317         rest_of_handle_addressof, rest_of_handle_sibling_calls,
7318         rest_of_handle_jump_bypass, rest_of_handle_inlining,
7319         rest_of_handle_null_pointer, rest_of_handle_combine,
7320         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
7321         rest_of_handle_gcse, rest_of_handle_loop_optimize,
7322         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
7323         (decode_d_option): Use enable_rtl_dump_file.
7324         (compile_file, finalize, do_compile): Move profile+combine+graph
7325         cleanup to finish_optimization_passes.
7326         * toplev.h (init_optimization_passes, finish_optimization_passes,
7327         enable_rtl_dump_file): Declare.
7328
7329 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
7330             Roger Sayle  <roger@eyesopen.com>
7331
7332         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
7333         operands to build a tree with swapped operands.
7334         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
7335         'unsignedp' predicate to specify the signedness.
7336
7337 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7338
7339         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
7340         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
7341         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
7342         comment typos and formatting.  Follow spelling conventions.
7343
7344 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
7345
7346         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
7347         fix_truncsfsi2.
7348
7349         * config/rs6000/spe.md: Delete spe_efsctuiz.
7350         Add spe_fixuns_truncsfsi2.
7351         Add spe_fix_truncsfsi2.
7352
7353 2004-02-26  Eric Christopher  <echristo@redhat.com>
7354
7355         * c-lex.c (c_lex_string_translate): New variable.
7356         (lex_string): Use to determine string translation.
7357         * c-pragma.h: Prototype.
7358         * c-parse.in (start_string_translation): New. Set above.
7359         (stop_string_translation): Ditto.
7360         (attribute, attribute_list, asm_def, asm_stmt,
7361         asm_operand): Use above functions.
7362         * cp/parser.c (cp_parser_declaration): Translate strings
7363         unless token is RID_EXTERN. Set c_lex_string_translate
7364         for recursive use.
7365         (cp_parser_asm_definition): Only translate argument strings
7366         to asms.
7367         (cp_parser_asm_operand_list): Ditto.
7368         (cp_parser_attribute_list): Do not translate attribute strings.
7369
7370 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7371
7372         * stmt.c (expand_start_case_dummy): Remove.
7373         * tree.h: Remove the corresponding prototype.
7374
7375 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7376
7377         * builtins.c (apply_args_register_offset): Remove.
7378         * tree.h: Remove the corresponding prototype.
7379
7380 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7381
7382         * stor-layout.c (is_pending_size): Remove.
7383         * tree.h: Remove the corresponding prototype.
7384
7385 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7386
7387         * recog.c (validate_replace_src): Remove.
7388         * recog.h: Remove the corresponding prototype.
7389
7390 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7391
7392         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
7393         MAYBE_REG_PARM_STACK_SPACE.
7394         * function.c: Likewise.
7395         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
7396         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7397         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
7398         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7399
7400 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7401
7402         * c-decl.c (c_expand_deferred_function): Remove.
7403         * c-tree.h: Remove the corresponding prototype.
7404
7405 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7406
7407         * postreload.c (reload_cse_move2add): Generate just a PLUS
7408         instead of an entire SET.
7409
7410 2004-02-26  Jan Hubicka  <jh@suse.cz>
7411
7412         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
7413         /pentium4m.
7414         * i386.c (override_options): Add support for new CPUs.
7415         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
7416         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
7417         constants.
7418         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
7419
7420 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
7421
7422         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
7423
7424 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
7425
7426         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
7427         (sparc_emit_fixunsdi): New prototype.
7428         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
7429         (sparc_emit_fixunsdi): New function.
7430         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
7431         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
7432         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
7433         to sparc_emit_floatunsdi.
7434         (fixuns_truncsfdi2): New expander.
7435         (fixuns_truncdfdi2): Likewise.
7436
7437 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
7438
7439         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
7440         unless HAVE_cc0.
7441
7442 2004-02-25  Richard Henderson  <rth@redhat.com>
7443
7444         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
7445         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
7446         use (op0-op1) == 0 if op0 is a pointer.
7447         * config/alpha/alpha.md (cmpdi): Use some_operand.
7448         (three comparison combine splits): Remove.
7449
7450 2004-02-25  Richard Henderson  <rth@redhat.com>
7451
7452         PR c/12794
7453         * c-common.c (handle_alias_attribute): Reject the attribute if
7454         current_function_decl is set.
7455
7456 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7457
7458         * config.gcc: Add comment describing extra_gcc_objs.
7459         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
7460         * configure.ac (extra_gcc_objs): New substitution variable.
7461         (host_extra_gcc_objs): Don't substitute.
7462         * configure: Regenerate.
7463         * Makefile.in: Use extra_gcc_objs.
7464
7465 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7466
7467         * doc/contrib.texi: Add an entry for myself.
7468
7469 2004-02-25  Jan Hubicka  <jh@suse.cz>
7470
7471         * basic-block.h (make_eh_edge, break_superblocks): Declare.
7472         * cfgbuild.c (make_eh_edge):  Make global.
7473         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
7474         * except.c (build_post_landing_pads, connect_post_landing_pads,
7475         dw2_build_landing_pads, sjlj_emit_function_enter,
7476         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7477         sjlj_build_landing_pads): Update CFG.
7478         (emit_to_new_bb_before): New function.
7479         (finish_eh_generation): Do not rebuild the CFG.
7480
7481 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7482
7483         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
7484         target_cpu_default defines.
7485         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
7486         * pa.h (TARGET_DEFAULT): Likewise.
7487
7488 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
7489
7490         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
7491         comparisons with regard to signedness.
7492
7493 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7494
7495         * arm.c (thumb_legitimize_address): New function.
7496         * arm-protos.h: Prototype it.
7497         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
7498         (LEGITIMIZE_ADDRESS): Use it.
7499
7500 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
7501
7502         * reload1.c (reload): Only spill eliminable register with multiple
7503         adjacent elimination alternatives if all alternatives fail.
7504
7505 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7506
7507         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
7508         is -4095...+4095 inclusive.
7509
7510 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
7511
7512         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
7513         the bootstrap failure with Sun CC 5.4 and 5.5.
7514
7515 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
7516
7517         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
7518         which modifies NEWREG.
7519         (cse_condition_code_reg): Update the mode of CC_REG in
7520         CC_SRC_INSN on our own.
7521
7522 2004-02-24  Michael Matz  <matz@suse.de>
7523
7524         * config/i386/i386.c (ix86_comp_type_attributes): Check for
7525         regparm attributes.
7526
7527 2004-02-24  Richard Henderson  <rth@redhat.com>
7528
7529         * toplev.c (dump_file_tbl): Rename from dump_file.
7530         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
7531         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
7532         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
7533         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
7534         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
7535         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
7536         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
7537         s/rtl_dump_file/dump_file/g.
7538
7539 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
7540
7541         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
7542         (spe_fixuns_truncsfsi2): Delete.
7543
7544         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
7545         (fixuns_truncsfsi2): Delete.
7546
7547 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
7548
7549         PR/14240
7550         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
7551
7552 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
7553
7554         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
7555
7556 2004-02-24  Jason Merrill  <jason@redhat.com>
7557
7558         * tree.c (check_qualified_type): New fn.
7559         (get_qualified_type): Use it.  If type already has the desired
7560         quals, just return it.
7561         * tree.h: Declare it.
7562
7563 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
7564
7565         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
7566         TARGET_SCHED_FINISH_GLOBAL): New macros.
7567
7568         * target.h (md_init_global, md_finish_global): Function
7569         declarations corresponding to new target macros.
7570
7571         * haifa-sched.c (sched_init, sched_finish): Allow target to
7572         call the new schedular hooks.
7573
7574         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
7575         call to update_life_info.
7576
7577         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
7578         flag_schedule_insns for SH4.
7579
7580         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
7581         find_set_regmode_weight, find_insn_regmode_weight,
7582         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
7583         sh_variable_issue, high_pressure, ready_reorder,
7584         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
7585         functions used to throttle the insn movement in first
7586         scheduling pass for SH.
7587
7588         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
7589         TARGET_SCHED_FINISH_GLOBAL.
7590
7591 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
7592
7593         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
7594         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
7595         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
7596         symbols in sections named by the user.
7597         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
7598         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
7599         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
7600         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
7601         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
7602         the above.
7603         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
7604         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
7605         one more pseudo to further improve code generation.
7606         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
7607         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
7608         inside UNSPEC.
7609         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
7610         * config/frv/frv.c (frv_legitimate_address_p): Added
7611         allow_double_reg_p argument.  Adjust all callers.  Use it to
7612         decide whether to enable double-register indirect addressing.
7613         (frv_funcdesc_alias_set): Remove.
7614         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
7615         register.  Emit movdi_ldd.
7616         (ldd_address_operand): New.
7617         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
7618         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
7619         (PREDICATE_CODES): Add ldd_address_operand.
7620         * config/frv/frv.md (movdi_ldd): New.
7621         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
7622         intermediate computations if possible.
7623         (symGOTOFF2reg_i): Fix harmless typo.
7624         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
7625         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
7626         relocated p_vaddr to vaddr type.
7627         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
7628         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
7629         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
7630         MEM, or use a funcdesc alias set.  Use regular move instead of
7631         ldd.
7632         (dbl_memory_one_insn_operand): Recognize function descriptors by
7633         type or by alias set, and don't split them.
7634         * config/frv/frv.md (call, call_value): Never use call_internal
7635         for fdpic.
7636         (call_internal, call_value_internal): Never match for FDPIC.
7637         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
7638         call_value_fdpicsi): Require FDPIC.
7639         (ldd): Removed.
7640         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
7641         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
7642         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
7643         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
7644         FDPIC.  Compute data base address.
7645         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
7646         before the other self-specs are processed.
7647         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
7648         Build with -fPIC.
7649         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
7650         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
7651         inhibit_libc is defined.
7652         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
7653         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
7654         __FRV_FDPIC__.
7655         (__RELOC_POINTER): Define.
7656         (_Unwind_IteratePhdrCallback): Use it.
7657         * config/frv/frv.h (Twrite): Define.
7658         (TRANSFER_FROM_TRAMPOLINE): Use it.
7659         * config/frv/linux.h (INVOKE__main): Undefine.
7660         (Twrite): Override.
7661         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
7662         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
7663         (-mlibrary-pic): Emphasize that this option generates EABI code.
7664         (-mcpu): Add fr550.
7665         (-mpack): Remove.
7666         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
7667         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
7668         and CONSTs in FDPIC mode.
7669         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
7670         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
7671         * config/frv/frv.c (move_source_operand): Don't accept symbolic
7672         constants.
7673         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
7674         rather than 'i' constraint for the 2-instruction alternative.
7675         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
7676         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
7677         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
7678         EXTRA_CONSTRAINT_FOR_Y.
7679         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
7680         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
7681         (addsi3): Change 'Y' constraint to 'Q'.
7682         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
7683         * reload.c (CONST_POOL_OK_P): New macro.
7684         (find_reloads): Use it to decide whether a constant can be forced
7685         into memory.
7686         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
7687         constant satisfies got12_operand.
7688         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
7689         (frv_legitimate_address_p): Check for valid unspec offsets using
7690         got12_operand rather than frv_legitimate_fdpic_operand_p.
7691         (frv_legitimate_fdpic_operand_p): Delete.
7692         (frv_emit_movsi): Abort if we try to use the FDPIC register during
7693         or after reload.
7694         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
7695         TARGET_FDPIC.
7696         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
7697         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7698         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
7699         (frv_fdpic_fptr_operand): Don't declare here.
7700         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
7701         rather than fdpic_got12_operand.
7702         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
7703         got12_operand and const_unspec_operand.
7704         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
7705         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
7706         (symbolic_operand): Remove.
7707         (const_unspec_operand): New predicate.
7708         * config/frv/frv.md (*movsi_got): Use got12_operand.
7709         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
7710         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
7711         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
7712         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
7713         * config/frv/frv.c (frv_unspec): New structure.
7714         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
7715         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
7716         validate CONST indices.  Use frv_output_const_unspec to print them.
7717         (frv_print_operand): Update call to unspec_got_name.  Use
7718         frv_output_const_unspec to print constant unspecs.
7719         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
7720         Reject UNSPECs otherwise.
7721         (unspec_got_name): Take the relocation number as argument, not an
7722         rtx containing it.
7723         (frv_output_addr_const_extra): Remove, replacing with...
7724         (frv_output_const_unspec): ...this new function.
7725         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
7726         (gpr_or_int12_operand): Use fdpic_got12_operand.
7727         (dbl_memory_one_insn_operand): Likewise.
7728         (fdpic_got12_operand): Use frv_const_unspec_p.
7729         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
7730         are already legitimate.  Use frv_small_data_reloc_p when deciding
7731         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
7732         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
7733         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
7734         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
7735         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
7736         label, for real this time.
7737         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
7738         representation of visibility.
7739         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
7740         such.
7741         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
7742         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
7743         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
7744         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
7745         it was explicitly disabled.
7746         (frv_stack_info): There is no need to save the link register in every
7747         frame unless TARGET_LINKED_FP is true.
7748         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
7749         frame pointer if the stack pointer might change value.
7750         (frv_return_addr_rtx): Check and process "count" argument.
7751         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
7752         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
7753         (frv_find_base_term): Declare.
7754         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
7755         (FIND_BASE_TERM): Define.
7756         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
7757         small_data_register_operand, small_data_symbolic_operand.  Add
7758         symbolic_operand.
7759         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
7760         (frv_print_operand_memory_reference, output_move_single): Remove
7761         special handling for unlegitimized sdata addresses.
7762         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
7763         and symbolic addresses.
7764         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
7765         (frv_find_base_term): New function.
7766         (int_2word_operand): Check specifically for symbolic address constants.
7767         (pic_register_operand, pic_symbolic_operand): Delete.
7768         (small_data_register_operand, small_data_symbolic_operand): Delete.
7769         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
7770         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
7771         (move_source_operand): Only accept CONSTs if they're a two-insn
7772         symbolic constant.
7773         (fdpic_got12_operand): Don't require TARGET_FDPIC.
7774         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
7775         using gen_symGOTOFF2reg*.
7776         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
7777         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
7778         themselves a cost of 3 insns.
7779         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
7780         Change predicate to symbolic_operand.
7781         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
7782         (*movsi_lda_sdata): Delete.
7783         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
7784         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
7785         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
7786         frv-*-*linux*.
7787         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
7788         label.
7789         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
7790         -multilib-library-pic.
7791         (LINK_SPEC): Add -z text for -mfdpic.
7792         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
7793         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
7794         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
7795         Override.
7796         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
7797         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
7798         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
7799         crtstuff-generated files.
7800         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
7801         * config.gcc: Add frv-*-*linux*.
7802         * config/frv/linux.h, config/frv/t-linux: New.
7803         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
7804         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
7805         when -mfdpic even if a linker script is explicitly listed.
7806         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
7807         * config/frv/frv.c (frv_override_options): Clear asm_out
7808         unaligned_op for SImode on FDPIC.
7809         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
7810         argument passed to decl_readonly_section.
7811         (frv_assemble_integer): Revert 2003-09-30's change, but make the
7812         whole block run with FDPIC even with -fno-PIC.
7813         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
7814         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
7815         symbol or label plus offset to memory.
7816         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
7817         GOTOFF and GPREL for LABEL_REF.
7818         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
7819         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
7820         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
7821         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
7822         * doc/invoke.texi: Document them.
7823         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
7824         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
7825         (frv_splittable_got_operand): Removed.
7826         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
7827         LO_SUM.  Add comments.
7828         (frv_override_options): Moved enabling of FDPIC to
7829         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
7830         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
7831         (frv_legitimize_fdpic_address): Don't duplicate logic in
7832         frv_emit_movsi.
7833         (frv_gen_GPsym2reg): New.
7834         (unspec_got_name): Added gprel.
7835         (frv_expand_fdpic_call): Add support for inlining PLTs.
7836         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
7837         (gpr_or_int12_operand): Added GPREL12.
7838         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
7839         (small_data_symbolic_operand): Fail if FDPIC.
7840         (fdpic_splittable_got_operand): Removed.
7841         (fdpic_got12_operand): Added GPREL12.
7842         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
7843         when appropriate.  Fix sdata GOTOFF.
7844         (frv_legitimate_constant_p): Require legitimate PIC operand for
7845         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
7846         (frv_assemble_integer): Move FDPIC funcdesc handling out of
7847         flag_pic case.
7848         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
7849         frv_assemble_integer fails.
7850         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
7851         (SUBTARGET_DRIVER_SELF_SPECS): New.
7852         (ASM_SPEC): Don't pass -mno-fdpic.
7853         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
7854         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
7855         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
7856         -multilib-library-pic.
7857         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
7858         condexec_si_media_operator, condexec_sf_add_operator and
7859         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
7860         and condexec_sf_unary_operator.
7861         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
7862         New.
7863         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
7864         movsi_internal.  Give them internal names.  movsi_got has type
7865         int.
7866         (fdpic got splitters): Remove.
7867         (symGPREL2reg, symGPREL2reg_hilo): New.
7868         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
7869         to -mlibrary-pic.  Map -multilib-library-pic to it.
7870         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
7871         Document.
7872         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
7873         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
7874         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
7875         (frv_cannot_force_const_mem): New function.
7876         (const_small_data_p, plus_small_data_p): Update comments on sdata
7877         on FDPIC.
7878         (frv_override_options): Set flag_pie for FDPIC too.
7879         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
7880         call-saved registers on FDPIC.
7881         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
7882         don't force LR to be preserved.
7883         (frv_expand_prologue): Likewise.
7884         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
7885         (frv_frame_pointer_required): Don't force it just because the
7886         FDPIC register is used.
7887         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
7888         operand only if !condexec_p.
7889         (frv_legitimize_address): Return the FDPIC-legitimized address.
7890         Don't match small data here on FDPIC.
7891         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
7892         symbols.  Use TRUE/FALSE instead of 1/0.
7893         (frv_local_funcdesc_p): New.
7894         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
7895         immediates when possible.
7896         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
7897         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
7898         an UNSPEC_GOT.
7899         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
7900         12-bit immediates when possible.
7901         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
7902         are not legitimate pic operands.
7903         (frv_in_small_data_p): Re-enable for FDPIC.
7904         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
7905         (FRV_GLOBAL_P): Removed.
7906         * config/frv/frv.md: Add modes to CONSTs.
7907         (movsi_got): New.
7908         (movsi_lo_sum_got): Use separate matches instead of match_dup.
7909         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
7910         (fdpic splittable operations): Match on flag_pic != 1.
7911         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
7912         * config/frv/frv.c (frv_asm_out_constructor,
7913         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
7914         bytes, not bits.
7915         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
7916         * config/frv/frv.c (frv_assemble_integer): Reject complex
7917         expressions referencing function SYMBOL_REFs.
7918         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
7919         (move_source_operand): Reject CONSTs that reference function
7920         SYMBOL_REFs on FDPIC.
7921         (frv_emit_movsi): If we get such a CONST, break it up.
7922         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
7923         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
7924         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
7925         MEM.
7926         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
7927         (frv_trampoline_size): Increase for FDPIC.
7928         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
7929         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
7930         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
7931         Disable use of GOTOFF for now.
7932         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
7933         Disable use of small data in FDPIC for now.
7934         (frv_asm_output_mi_thunk): Implement for FDPIC.
7935         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
7936         * config/frv/frv.c (frv_asm_out_constructor): Use
7937         frv_assemble_integer for FDPIC pointers.
7938         (frv_asm_out_destructor): Likewise.
7939         * config/frv/frv.md (ldd): Fix order of operands.  Use
7940         address_operand for input.
7941         2003-09-18  DJ Delorie  <dj@redhat.com>
7942         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
7943         (unspec_got_name): Correct typo.
7944         (frv_emit_movsi): Pre-expand splittable GOTs.
7945         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
7946         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
7947         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
7948         * config/frv/t-frv: Add -mfdpic multilibs.
7949         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
7950         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
7951         * config/frv/frv.c (frv_override_options): -mfdpic assumes
7952         flag_pic, default to 32-bit pics, require DWORD ops.
7953         (frv_override_options): Add W and Z constraints.
7954         (frv_expand_prologue): No pic prologue for -mfdpic.
7955         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
7956         (frv_print_operand_memory_reference): Handle GOT constants.
7957         (frv_legitimate_address_p): Allow GOT constants.
7958         (frv_legitimize_address): Handle GOT addresses too.
7959         (frv_legitimate_fdpic_operand_p): New.
7960         (frv_legitimize_fdpic_address): New.
7961         (unspec_got_name): New.
7962         (frv_output_addr_const_extra): New.
7963         (frv_expand_fdpic_call): New.
7964         (frv_fdpic_fptr_operand): New.
7965         (gpr_or_int12_operand): Handle GOT operands.
7966         (int_2word_operand): Handle GOT operands.
7967         (fdpic_operand): New.
7968         (fdpic_splittable_got_operand): New.
7969         (fdpic_got12_operand): New.
7970         (frv_emit_movsi): Handle GOT operands.
7971         (frv_assemble_integer): -mfdpic doesn't use rofixups.
7972         (frv_print_operand): Support 'g' code for GOT operands.
7973         * config/frv/frv-protos.h: Add prototypes as needed.
7974         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
7975         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
7976         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
7977         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
7978         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
7979         R_FRV_GOTOFFLO): New.
7980         (movsi_high_got, movsi_lo_sum_got): New.
7981         (*movsi_pic): Don't use this splitter for -mfdpic.
7982         (addsi3): Allow GOT references also.
7983         (call, call_value): Handle -mfdpic separately.
7984         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
7985         call_value_fdpicsi): New.
7986         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
7987         symGOTOFF2reg_i): New.
7988         * config/frv/frv.h (MASK_FDPIC): New.
7989         (TARGET_FDPIC): New.
7990         (TARGET_SWITCHES): Add -mfdpic.
7991         (FDPIC_FPTR_REGNO): New.
7992         (FDPIC_REGNO): New.
7993         (OUR_FDPIC_REG): New.
7994         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
7995         FDPIC_CALL_REGS.
7996         (REG_CLASS_NAMES): Likewise.
7997         (REG_CLASS_CONTENTS): Likewise.
7998         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
7999         (EXTRA_CONSTRAINT): Add it here.
8000         (FRV_GLOBAL_P): New.
8001         (OUTPUT_ADDR_CONST_EXTRA): New.
8002
8003 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8004
8005         * config/sparc/sparc.h: Remove commented-out definitions of
8006         TARGET_EDOM and GEN_ERRNO_RTX.
8007
8008 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8009
8010         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
8011         df_analyse with df_analyze.
8012
8013 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
8014
8015         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
8016         beginning of block.
8017
8018 2004-02-23  James E Wilson  <wilson@specifixinc.com>
8019
8020         * calls.c (precompute_arguments): Update comment.
8021
8022 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8023
8024         * et-forest.c: Replace et_occurences with et_occurrences.
8025
8026 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8027
8028         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
8029         with iv_analyze.
8030
8031 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
8032
8033         * config/i386/i386.c: Rename pni to sse3.
8034         * config/i386/i386.h: Likewise.
8035         * config/i386/i386.md: Likewise.
8036         * config/i386/pmmintrin.h: Likewise.
8037         * doc/extend.texi: Likewise.
8038         * doc/invoke.texi: Likewise.
8039
8040 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
8041             Kazu Hirata  <kazu@cs.umass.edu>
8042
8043         Remove -fwritable-strings.
8044         * c-common.c (fix_string_type): Don't check
8045         flag_writable_strings.
8046         (fix_string_type): Likewise.
8047         * c-opts.c (set_std_c89): Don't initialize
8048         flag_writable_strings.
8049         (set_std_c99): Likewise.
8050         * common.opt (fwritable-strings): Remove.
8051         * flags.h: Remove the external declaration of
8052         flag_writable_strings.
8053         * opts.c (common_handle_option) <OPT_fwritable_strings>:
8054         Remove.
8055         * toplev.c (flag_writable_strings): Remove.
8056         (f_options): Remove an entry for writable-strings.
8057         * varasm.c (const_hash_1) <STRING_CST>: Don't check
8058         flag_writable_strings.
8059         (compare_constant) <STRING_CST>: Likewise.
8060         (build_constant_desc): Likewise.
8061         * config/darwin.c (machopic_select_section): Likewise.
8062         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
8063         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
8064         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
8065         * config/mips/mips.c (mips_select_section): Likewise.
8066         (mips_encode_section_info): Likewise.
8067         * config/pa/pa.c (pa_select_section): Likewise.
8068         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
8069         * config/v850/v850.c (v850_select_section): Likewise.
8070         * doc/invoke.texi (-fwritable-strings): Remove.
8071         (-fno-const-strings): Don't mention -fwritable-strings.
8072         * doc/trouble.texi: Don't mention -fwritable-strings.
8073
8074 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
8075
8076         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
8077
8078 2004-02-23  Dale Johannesen  <dalej@apple.com>
8079
8080         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
8081         (movdf_hardfloat64):  Ditto.
8082         (movdf_softfloat64):  Ditto.
8083
8084 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
8085         * config/rs6000/rs6000.c (function_arg): call to
8086         rs6000_mixed_function_arg for DFmode moved to allow
8087         normal DFmode incoming register assignment.
8088
8089 2004-02-23  Dale Johannesen  <dalej@apple.com>
8090
8091         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
8092         (movdf_hardfloat64):  Ditto.
8093
8094 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8095
8096         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
8097         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
8098         copyright.
8099
8100 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
8101
8102         PR c/14156
8103         * c-typeck.c (c_expand_return): Change check for VAR_DECL
8104         to use DECL_P instead.
8105
8106         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
8107         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
8108
8109 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8110
8111         * Makefile.in (opts.o): Depend on target.h.
8112         * opts.c (decode_options): Use targetm.default_short_enums
8113         instead of DEFAULT_SHORT_ENUMS.
8114         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8115         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
8116         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
8117         * target.h (gcc_target): Add default_short_enums.
8118         * config/cris/cris.h: Remove a comment about
8119         DEFAULT_SHORT_ENUMS.
8120         * config/ip2k/ip2k.h: Likewise.
8121         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
8122         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
8123
8124 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8125             Falk Hueffner  <falk@debian.org>
8126
8127         PR c/14188
8128         * builtins.c (expand_builtin_va_arg): Emit an informative message
8129         if a trap is generated.
8130         * c-typeck.c (build_function_call): Likewise.
8131
8132 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8133
8134         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
8135         fopen.
8136         * libgcov.c: Include sys/stat.h.
8137         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
8138         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
8139         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
8140         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
8141
8142 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
8143
8144         * reorg.c: Remove comments about dead ports.
8145
8146 2004-02-22  Christopher Faylor  <cgf@redhat.com>
8147
8148         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
8149         extra host object file when targetting cygwin rather than generic
8150         object files.
8151
8152 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
8153
8154         Merge from tree-ssa:
8155         2003-11-20  Richard Henderson  <rth@redhat.com>
8156
8157                 * tree-inline.c (insert_decl_map): New.
8158                 (remap_decl, remap_type, remap_block, copy_body_r,
8159                 initialize_inlined_parameters, declare_return_variable,
8160                 remap_save_expr): Use it.
8161
8162         * function.c (copy_body_r): Add mapping from id->ret_label to
8163         id->ret_label.  Revert test for ret_label.
8164
8165 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8166
8167         * genoutput.c (process_template): Strip trailing whitespace in @
8168         templates and issue a warning if there was any.
8169
8170 2004-02-21  Christopher Faylor  <cgf@redhat.com>
8171
8172         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
8173         object file when targetting cygwin.
8174         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
8175         overridden by top-level Makefile.
8176
8177 2004-02-21  Roger Sayle  <roger@eyesopen.com>
8178
8179         * config/i386/i386.c (standard_80387_constant_p): Also prefer
8180         the x87's load constant instructions when optimizing for size.
8181
8182 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
8183
8184         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
8185         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
8186         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
8187         * fold-const.c: Likewise.
8188         * simplify-rtx.c: Likewise.
8189
8190 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
8191
8192         * combine.c (can_combine_p): Don't ignore SETs marked with
8193         REG_EH_REGION notes.
8194         (try_combine): When attemting to fix unrecognized insns, don't
8195         split a PARALLEL that contains the original i2.
8196
8197 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
8198
8199         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
8200         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
8201         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
8202         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
8203         (vector, pixel, bool): #define to __vector, __pixel and __bool.
8204         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
8205         portion of header.
8206         (__altivec_link_error_invalid_argument): Remove prototype; will use
8207         __builtin_altivec_compiletime_error("vec_*") instead.
8208         (vec_*): Fix/complete set of available operation overloads given the
8209         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
8210         cv-correctness of pointer arguments; in C, always check for correct
8211         argument types before macro expansion.
8212         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
8213         defining Darwin/PowerPC-specific '-f[no-]altivec' and
8214         '-W[no-]altivec-long-deprecated' switches.
8215         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
8216         '__vector', '__pixel' and '__bool' macros using
8217         '__attribute__((altivec(...)))' types.
8218         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
8219         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
8220         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
8221         New type nodes.
8222         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
8223         handling '-W[no-]altivec-long-deprecated'.
8224         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
8225         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
8226         altivec_expand_dst_builtin): Remove casts from integer literals.
8227         (altivec_expand_builtin): Likewise; handle expansion of new
8228         '__builtin_altivec_compiletime_error' function.
8229         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
8230         types, and make them distinct from other vector types; register
8231         '__builtin_altivec_compiletime_error' function.
8232         (print_operand): For 'P', print a full target register name instead of
8233         merely its number.
8234         (rs6000_attribute_table): Add "altivec" attribute.
8235         (rs6000_handle_altivec_attribute): New function.
8236         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
8237         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
8238         maps to).
8239         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
8240         declare.
8241         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
8242
8243 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8244
8245         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
8246         check.
8247         (shift_mix4left+2): Delete redundant pattern.
8248
8249 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8250
8251         * alias.c (OUTGOING_REGNO): Don't define the default.
8252         * builtins.c (OUTGOING_REGNO): Likewise.
8253         (INCOMING_REGNO): Likewise.
8254         (apply_args_register_offset): Always use OUTGOING_REGNO.
8255         * combine.c (OUTGOING_REGNO): Likewise.
8256         * sibcall.c (OUTGOING_REGNO): Likewise.
8257         * defaults.h (INCOMING_REGNO): Provide the default.
8258         (OUTGOING_REGNO): Likewise.
8259
8260 2004-02-21  Jan Hubicka  <jh@suse.cz>
8261
8262         * params.def (max-peeled-insns, max-completely-peeled-insns,
8263         max-once-peeled-insns): Set to 400.
8264
8265 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8266
8267         PR c++/12007
8268         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
8269         are set for parameters before outputing debugging information.
8270
8271 2004-02-20  Falk Hueffner  <falk@debian.org>
8272
8273         PR target/14201
8274         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
8275         numbers.
8276
8277 2004-02-20  Per Bothner  <per@bothner.com>
8278
8279         * input.h:  Don't #include line-map.h.  It may cause link problems
8280         with undefined linemap_line_start when line-map.h is included but
8281         line-map.o is not linked, as currently happens with gengtype on
8282         compilers that don't support inline.
8283         * toplev.c:  So we do have to explicitly #include line-map.h here.
8284
8285 2004-02-20  Richard Henderson  <rth@redhat.com>
8286
8287         * doc/invoke.texi: Add -Wvariadic-macros.
8288
8289 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8290
8291         * haifa-sched.c (sched_emit_insn): Remove.
8292         * sched-int.h: Remove the corresponding prototype.
8293
8294 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8295
8296         Revert:
8297         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8298         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8299         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8300         * config/cris/cris.h: Remove a comment about
8301         DEFAULT_SHORT_ENUMS.
8302         * config/ip2k/ip2k.h: Likewise.
8303         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8304
8305 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
8306             Tom Tromey  <tromey@redhat.com>
8307
8308         * doc/install.texi: Moved --disable-libgcj and
8309         --with-system-zlib documentation to new section for
8310         Java-specific options.
8311         Added explicit Cross-Compiler-Specific Options subheading.
8312         Added section for Java-specific options.
8313
8314 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
8315
8316         * doc/install.texi (Building the Ada compiler): Remove
8317         example.
8318
8319 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8320
8321         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
8322
8323 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8324
8325         * gcc.c (process_command): Allow translation of the copyright
8326         symbol but not the rest of the copyright message.
8327         * gcov.c (print_version): Likewise.  Allow translation of the
8328         message about warranty.
8329
8330 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
8331
8332         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
8333         predicate.
8334         ("*andsi_clear"): Tweak constraints to not match postincrement.
8335         Adjust the predicate to exclude a volatile memory reference.
8336         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
8337         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
8338
8339 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
8340
8341         * move-if-change: Remove.
8342         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
8343         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
8344         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
8345         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
8346         (s-gtyp-gen, s-iov): Use the top level move-if-change.
8347         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
8348
8349 2004-02-19  James E Wilson  <wilson@specifixinc.com>
8350
8351         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
8352         for operand2.  Add condition that requires register_operand operand2
8353         before reload.
8354
8355 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
8356             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8357
8358         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
8359         * config/mips/mips.md: Expand comment above unaligned loads and stores.
8360
8361 2004-02-19  Richard Henderson  <rth@redhat.com>
8362
8363         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
8364         * tree.c (build0, build1, build2, build3, build4): Split out from...
8365         (build): ... here.  Call them.
8366         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
8367
8368         * convert.c (convert_to_integer): Remove extra build argument.
8369         * tree-inline.c (expand_call_inline): Likewise.
8370
8371 2004-02-19  Richard Henderson  <rth@redhat.com>
8372
8373         * c-opts.c (warn_variadic_macros): New.
8374         (c_common_handle_option): Set it.
8375         (sanitize_cpp_opts): Copy it to cpp_opts.
8376         * c.opt (Wvariadic-macros): New.
8377         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
8378         * cppinit.c (cpp_create_reader): Initialize it.
8379         * cppmacro.c (parse_params): Check it.
8380
8381 2004-02-19  David Daney <ddaney@avtrex.com>
8382
8383         PR preprocessor/14198
8384         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
8385         builtin_assert ("machine=mips")
8386
8387 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8388
8389         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8390         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8391         * config/cris/cris.h: Remove a comment about
8392         DEFAULT_SHORT_ENUMS.
8393         * config/ip2k/ip2k.h: Likewise.
8394         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8395
8396 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8397
8398         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
8399         when passing single SFmode quantities in general registers,
8400         put them in the high half.
8401
8402 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8403
8404         * doc/md.texi (Standard Names): Document additional dependency on
8405         fix pattern.
8406
8407         * optabs.c (ftruncify): Remove.
8408         (expand_fix): Manually inline ftruncify above.
8409         (can_fix_p): Add FIXME note.
8410
8411 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8412
8413         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
8414         spe_fixuns_truncsfsi2.
8415
8416         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
8417         fixuns_truncsfsi2.
8418
8419 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
8420
8421         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
8422         * testsuite/gcc.dg/20040219-1.c: New test.
8423
8424 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
8425
8426         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
8427         "*subsf3_cconly"): Subtraction is not commutative.
8428
8429 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8430
8431         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
8432         (sdbout_symbol): If called before sdbout_init, queue DECL for
8433         later and return.
8434         (sdbout_init): Set sdbout_initialized true, process decls
8435         queued earlier by sdbout_symbol.
8436         (sdbout_finish): Use size_t for index variable.
8437
8438 2004-02-19  Jeff Law  <law@redhat.com>
8439
8440         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
8441         for unordered comparison codes.
8442
8443 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
8444
8445         * reload1.c (reload): Correct comment.
8446         (scan_paradoxical_subregs): Remove #if 0 and old comment.
8447         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
8448         register variables are not used by reload.
8449
8450 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
8451
8452         PR target/14209
8453         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
8454         constraints to not match postincrement.  Adjust the predicate to
8455         exclude a volatile memory reference.
8456
8457 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8458
8459         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
8460
8461 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8462
8463         * hooks.c (hook_void_tree_int): Remove.
8464         (hook_void_constcharptr): Likewise.
8465         (hook_int_void_0): Likewise.
8466         * hooks.h: Remove the prototypes for the above three
8467         functions.
8468         * targhooks.c (hook_bool_machine_mode_true): Remove.
8469         * targhooks.h: Remove the prototype for
8470         hook_bool_machine_mode_true.
8471
8472 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8473
8474         * emit-rtl.c (subreg_realpart_p): Remove.
8475         (reorder_insns_with_line_notes): Likewise.
8476         (end_full_sequence): Likewise.
8477         * rtl.h: Remove the prototype for the above functions.
8478
8479 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8480
8481         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
8482         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8483         config/iq2000/iq2000.h, config/m32r/m32r.h,
8484         config/pdp11/pdp11.h, config/sparc/sparc.h,
8485         config/xtensa/xtensa.h: Remove commented-out or useless
8486         definitions of CASE_VECTOR_PC_RELATIVE.
8487
8488 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8489
8490         * loop.c (all_sets_invariant_p): Remove.
8491
8492 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
8493
8494         PR target/12916
8495         * config/sparc/sparc.h (NPARM_REGS): Delete.
8496         (BASE_RETURN_VALUE_REG): Likewise.
8497         (BASE_OUTGOING_VALUE_REG): Likewise.
8498         (BASE_PASSING_ARG_REG): Likewise.
8499         (BASE_INCOMING_ARG_REG): Likewise.
8500         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
8501         TARGET_ARCH64, not TARGET_V9.
8502         (function_arg_slotno): Dispatch based on the mode class.
8503         Handle vector modes like floating-point modes.
8504         (function_arg_record_value_1): Handle vector types like
8505         floating-point types.
8506         (function_arg_record_value_2): Likewise.
8507         Calculate regno after mode transformation.
8508         (function_arg): Handle vector modes like floating-point modes.
8509         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
8510         If ARCH64, do not recheck alignment.
8511         (function_arg_pass_by_reference): Reorder the conditions.
8512         (sparc_return_in_memory): Move after function_arg_padding.
8513         Implement calling conventions for vector modes.
8514         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
8515         (function_value): Move scope of 'regbase'.
8516         Implement calling conventions for vector modes.
8517         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
8518         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
8519         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
8520         the argument is passed by reference.
8521         (sparc_type_code): Handle vector types.
8522
8523 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
8524
8525         * function.c (assign_parms): When building decl_rtl for
8526         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
8527
8528 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
8529
8530         * expr.c (is_aligning_offset): Check if we are aligning the
8531         expressions's address over BIGGEST_ALIGNMENT in bytes, not
8532         in bits.
8533
8534 2003-02-18  Matt Austern  <austern@apple.com>
8535
8536         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
8537         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
8538         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
8539         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
8540         spec string.
8541         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
8542
8543 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
8544
8545         * dwarf2out.c (loclabel_num): Move outside #ifdef
8546         DWARF2_DEBUGGING_INFO and mark with GTY(()).
8547         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
8548         Mark with GTY(()).
8549         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
8550         Allocate memory with ggc_alloc.  No need to copy anything.
8551         (ia64_hpux_file_end): Update to match.
8552
8553 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
8554
8555         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
8556         by default.
8557
8558 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8559
8560         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
8561         ("divmodtisi3"): Likewise.
8562         ("udivmoddi4", "udivmodtidi3"): Likewise.
8563         ("divmodsi4", "divmoddisi3"): Likewise.
8564         ("udivmodsi4", "udivmoddisi3"): Likewise.
8565         ("udivsi3", "umodsi3"): Likewise.
8566
8567 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8568
8569         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
8570         placeholder insn when chunkifying the pool.
8571
8572 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8573
8574         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
8575         generating PIC code.
8576
8577 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8578
8579         * config/h8300/h8300-protos.h: Add a prototype for
8580         h8300_expand_branch.
8581         * config/h8300/h8300.c (h8300_expand_branch): New.
8582         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
8583         bgtu, beq, bne): Call h8300_expand_branch().
8584
8585 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8586
8587         * config/h8300/h8300-protos.h: Add prototypes for
8588         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
8589         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
8590         (h8300_hard_regno_mode_ok): Likewise.
8591         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
8592         h8300_hard_regno_nregs().
8593         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
8594
8595 2004-02-18  Per Bothner  <per@bothner.com>
8596
8597         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
8598         partly reverts my 2003-10-01 change, because we're back to logically
8599         including <command line> inside the main line.
8600         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
8601         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
8602         Fixes PR preprocessor/14103.
8603
8604         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
8605         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
8606         (cpp_push_include):  Don't need to increment pfile's line field.
8607         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
8608
8609         * c-ppoutput.c (print struct):  New first_time field.
8610         (init_pp_output):  Set print.first_time.
8611         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
8612         which is set also for (say) <command line>.  Clear print.first_time.
8613
8614         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
8615         does not match the code, so fix both.
8616         (should_stack_file):  Inline include_pch_p function.
8617         (include_pch_p):  Remove pointless function.
8618
8619         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
8620
8621 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8622
8623         * config/h8300/h8300.md (four define_peephole2's): Use
8624         h8300_regs_ok_for_stm().
8625
8626 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8627
8628         * config/h8300/h8300-protos.h: Update the prototype for
8629         expand_a_rotate().
8630         * config/h8300/h8300.c (expand_a_rotate): Remove the first
8631         argument.
8632         * config/h8300/h8300.md: Update all callers.
8633
8634 2004-02-18  Jan Hubicka  <jh@suse.cz>
8635
8636         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
8637         floats.
8638         (simplify_binary_operation): Deal with logicals on floats.
8639
8640         * i386.md (SSE fabs splitters): Emit new patterns.
8641         (SSE cmov splitters): Likewise.
8642         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
8643         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
8644         subregs.
8645         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
8646         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
8647
8648 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8649
8650         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
8651         by hand.
8652         (output_a_rotate): Tweak a comment.
8653         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
8654         (*rotlhi3_1): Change to rotlhi3_1.
8655         (*rotlsi3_1): Change to rotlsi3_1.
8656
8657 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
8658
8659         PR target/13866
8660         * arm.c (load_multiple_operation): Don't insist that the source reg
8661         of a post-increment component is the same as the destination.
8662         (store_multiple_operation): Likewise.
8663
8664 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8665
8666         * config/h8300/h8300.md: Move movsf patterns into one section
8667         of the file.
8668
8669 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8670
8671         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
8672         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
8673         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
8674         config/mips/linux64.h, config/pa/pa-64.h,
8675         config/rs6000/aix51.h, config/rs6000/aix52.h,
8676         config/rs6000/spe.md, config/sparc/linux.h,
8677         config/sparc/linux64.h: Update copyright.
8678
8679 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8680
8681         * config/h8300/h8300.md: Move push patterns into one
8682         section of the file.
8683
8684 2004-02-18  Mark Mitchell <mark@codesourcery.com>
8685
8686         PR c++/11326
8687         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
8688         fntype.
8689
8690 2004-02-18  Paul Brook  <paul@codesourcery.com>
8691
8692         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
8693
8694 2004-02-18  Paul Brook  <paul@codesourcery.com>
8695
8696         PR debug/12934
8697         * dwarf2out.c (loc_descriptor_from_tree): Handle
8698         EXPR_WITH_FILE_LOCATION.
8699
8700 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
8701
8702         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
8703         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
8704         trailing whitespace from instructions.
8705
8706 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
8707
8708         * configure.ac: When generating auto-build.h, pass
8709         --enable-languages to the sub-configure.
8710         Put quotes around ${program_transform_name} when generating
8711         name of as, ld, nm, objdump.
8712         * configure: Regenerate.
8713
8714 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
8715
8716         * Makefile.in (s-check, s-config, s-conditions, s-flags)
8717         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
8718         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
8719         (s-preds, s-iov): Do not depend on move-if-change.
8720
8721 2004-02-17  James E Wilson  <wilson@specifixinc.com>
8722
8723         * caller-save.c (insert_restore): Pass mem through copy_rtx.
8724         (insert_save): Likewise.
8725
8726 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8727
8728         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
8729         warning.
8730
8731 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8732
8733         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
8734         *one_cmplsi2_h8300.
8735         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
8736
8737 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8738
8739         * config/h8300/h8300-protos.h: Update the prototype of
8740         fix_bit_operand().
8741         * config/h8300/h8300.c (fix_bit_operand): Remove the second
8742         argument "what".
8743         * config/h8300/h8300.md: Update all callers.
8744
8745 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8746
8747         * config/h8300/h8300.c (fix_bit_operand): Change the name of
8748         the last argument to "code" from "type".
8749
8750 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8751
8752         * config/h8300/h8300.c: Remove an extern declaration of
8753         rtx_equal_function_value_matters.
8754
8755 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8756
8757         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
8758         by hand.
8759         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
8760         (*iorqi3_1): Change to iorqi3_1.
8761         (*xorqi3_1): Change to xorqi3_1.
8762
8763 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8764
8765         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
8766         typos.
8767
8768 2004-02-17  Jan Hubicka  <jh@suse.cz>
8769
8770         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
8771
8772 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
8773
8774         PR optimization/14119
8775         * combine.c (try_combine): When attemting to fix unrecognized insns,
8776         don't delete SETs marked with REG_EH_REGION notes.
8777
8778 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
8779
8780         * combine.c (simplify_if_then_else): Do not replace
8781         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
8782         modes differ.
8783
8784 2004-02017  Steven Bosscher  <stevenb@suse.de>
8785
8786         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
8787         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
8788         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
8789         * ada/utils.c: Likewise.
8790         * cp/decl.c: Likewise.
8791         * f/com.c: Likewise.
8792         * java/class.c: Likewise.
8793
8794 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8795
8796         * config/h8300/h8300.md: Fix comment typos.
8797
8798 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8799
8800         * config/mips/t-iris6gld: Renamed to ...
8801         * config/mips/t-irix-gld: ... this.
8802         * config.gcc (mips-sgi-irix6*): Reflect this
8803         (mips-sgi-irix5*): Use it with GNU ld.
8804
8805         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
8806         to ...
8807         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
8808         * config/mips/t-irix-gld: Reflect this.
8809         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
8810
8811         * config/mips/iris5gld.h: New file.
8812         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
8813         Only use collect2 without gas.
8814
8815         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
8816         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
8817         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
8818         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
8819
8820         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
8821         * config/mips/iris5.h: ... here.
8822
8823         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
8824         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
8825         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
8826
8827         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
8828         using irix_startfile_spec, irix_endfile_spec.
8829
8830 2004-02-16  Gunther Nikl  <gni@gecko.de>
8831
8832         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
8833
8834 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8835
8836         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
8837         insns by hand.
8838
8839 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8840
8841         * cfghooks.c (split_edge): Speed up updating of dominators.
8842
8843 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
8844
8845         PR c++/11326
8846         * c-common.c (flag_abi_version): Remove.
8847         * c-common.h (flag_abi_version): Likewise.
8848         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
8849         * c.opt (fabi-version): Remove.
8850         * calls.c (expand_call): Always pass a function type to
8851         struct_value_rtx.  Use convert_memory_address.
8852         * common.opt (fabi-version): Add it.
8853         * flags.h (flag_abi_version): Likewise.
8854         (abi_version_at_least): New macro.
8855         * opts.c (common_handle_option): Add OPT_fabi_version.
8856         * toplev.c (flag_abi_version): Define it.
8857         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
8858         New function.
8859         (ia64_output_mi_thunk): Use it.
8860         (ia64_struct_value_rtx): Likewise.
8861
8862 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8863
8864         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
8865         Don't generate insns by hand.
8866
8867 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
8868
8869         PR c++/14178
8870         * doc/invoke.texi (fabi-version): The default is 2 now.
8871
8872 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8873
8874         * loop-iv.c: New file.
8875         * Makefile.in (loop-iv.o): New.
8876         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
8877         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
8878         num_loop_branches): New functions.
8879         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
8880         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
8881         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
8882         get_simple_loop_desc, free_simple_loop_desc): Declare.
8883         (simple_loop_desc): New inline function.
8884         (struct rtx_iv, struct niter_desc): New.
8885         * cfgloopmanip.c (loopify): Specify semantics more precisely.
8886         * expr.c (force_operand): Handle subregs of expressions created by
8887         loop unroller.
8888         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
8889         parts of the initialization to toplev.c
8890         * loop-unroll.c (loop_exit_at_end_p): New.
8891         (unroll_and_peel_loops): Call iv_analysis_done.
8892         (decide_peel_once_rolling, decide_peel_completely,
8893         decide_unroll_stupid, decide_unroll_constant_iterations,
8894         decide_unroll_runtime_iterations, decide_peel_simple,
8895         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
8896         unroll_loop_runtime_iterations): Use new simple loop analysis.
8897         * loop-unswitch.c (compare_and_jump_seq): New.
8898         (may_unswitch_on_p): Renamed to ...
8899         (may_unswitch_on): Use new iv analysis.
8900         (reversed_condition): Export.
8901         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
8902         * predict.c (estimate_probability): Use new simple loop analysis.
8903         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
8904         canon_condition, simplify_using_condition): Declare.
8905         * stor-layout.c (get_mode_bounds): New.
8906         * toplev.c (rest_of_handle_loop2): Some parts of
8907         initialization/finalization moved here from loop-init.c.
8908
8909 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8910
8911         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
8912         pointer.
8913         (CALL_USED_REGISTERS): Likewise.
8914         (REG_ALLOC_ORDER): Likewise.
8915         (REG_CLASS) <GENERAL_REGS>: Likewise.
8916
8917 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
8918
8919         * doc/md.texi (Insn Canonicalizations): Document left-chaining
8920         in associative operators.
8921         * rtlanal.c (commutative_operand_precedence): Create some new
8922         variables.  Prefer a commutative operand on the left, then
8923         binary expressions, then NEG and NOT.
8924
8925 2004-02-16  Matthias Klose  <doko@debian.org>
8926
8927         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
8928         in terms of SHLIB_SOVERSION.
8929         * config/m68k/t-slibgcc-elf-ver: New file.
8930         * config/pa/t-slibgcc-elf-ver: New file.
8931         * config.gcc (m68k-linux, parisc-linux): Use them when not
8932         sjlj exceptions are not configured.
8933
8934 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
8935
8936         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
8937
8938 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
8939
8940         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
8941
8942 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
8943
8944         * doc/sourcebuild.texi: Mention backends.html.
8945
8946 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
8947
8948         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
8949         line-map.c, line-map.h, var-tracking.c: Fix comment
8950         formatting.
8951
8952 2004-02-16  Richard Henderson  <rth@redhat.com>
8953
8954         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
8955
8956         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
8957
8958 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
8959
8960         * config/h8300/h8300.md: Remove unnecessary parallels from
8961         all define_insn and define_split patterns.
8962
8963 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
8964
8965         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
8966         "clobber").
8967
8968 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
8969
8970         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
8971         '%#'.
8972
8973 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
8974
8975         * config/ia64/ia64.c, config/mips/mips.c,
8976         config/mmix/mmix-modes.def: Fix comment typos.
8977
8978 2004-02-15  Roger Sayle  <roger@eyesopen.com>
8979
8980         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
8981         (get_directive_line): Remove unused function prototype.
8982
8983 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
8984
8985         * tree-inline.c (copy_body_r): Do not replace ret_label.
8986
8987 2004-02-14  Jan Hubicka  <jh@suse.cz>
8988
8989         * i386.c (x86_four_jump_limit): New variable.
8990         (k8_avoid_jump_misspredicts): Rename to ...
8991         (ix86_avoid_jump_misspredicts): .. this one.
8992         (ix86_pad_returns): Break out from ...
8993         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
8994         to.
8995         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
8996
8997 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
8998
8999         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
9000         PARALLEL is NULL.
9001
9002 2004-02-14  Per Bothner  <per@bothner.com>
9003
9004         * fix-header.c (line_table):  Move local variable in main to global.
9005         * scan.h (line_table):  Use it.
9006         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
9007         line (recently renamed to src_loc) before calling recognized_function.
9008
9009 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
9010
9011         * Makefile.in: Fix comment typos.
9012
9013 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
9014
9015         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
9016         for start_value when it is directly moved into reg, and factorize
9017         the retrieval of GET_MODE (reg).
9018
9019 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
9020
9021         * config/mips/mips-protos.h (mips_load_got_page): Delete.
9022         (mips_load_got_global): Delete.
9023         (mips_gotoff_page): Declare.
9024         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
9025         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
9026         UNSPEC_LOAD_GOT pattern rather than a MEM.
9027         (*load_got[sd]i): New patterns.
9028         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
9029         (mips_load_got_page, mips_load_got_global): Delete.
9030         (mips_gotoff_page): New function.
9031         (override_options): Don't initialize mips_got_alias_set.
9032
9033 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
9034
9035         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
9036         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
9037         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
9038         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
9039         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
9040         * config/mips/mips.c: Fix some overly-long lines.
9041         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
9042         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
9043
9044 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9045
9046         * configure.ac: Search for as, ld below libexec/gcc.
9047         * configure: Regenerate.
9048
9049 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
9050
9051         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
9052         __builtin_arm_setwcx ().
9053         * config/arm/arm.c (arm_expand_builtin): Generate operands
9054         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
9055
9056 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
9057
9058         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
9059         and "wmuluh" to "wmulsm" and "wmulum", respectively.
9060         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
9061         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
9062         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
9063         (_mm_mulhi_pu16): Likewise.
9064
9065 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
9066
9067         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
9068         DECL_NAME != 0 before dereferencing.
9069
9070 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
9071
9072         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
9073         (s390_output_addr_const_extra): Declare.
9074         (s390_output_pool_entry): Remove FILE * argument.
9075         * config/s390/s390.c (s390_output_symbolic_const): Remove.
9076         (s390_output_addr_const_extra): New function.
9077         (print_operand_address): Call output_addr_const instead of
9078         s390_output_symbolic_const.
9079         (print_operand): Likewise.
9080         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
9081         Remove FILE * argument.
9082         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
9083         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
9084         call.
9085
9086 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9087
9088         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
9089         (struct edge, struct vertex, struct graph): New.
9090         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
9091         free_graph): New functions.
9092
9093 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
9094
9095         * config/mips/mips.md (casesi_internal, casesi_internal_di):
9096         Use ".set macro" to avoid warnings about multi-instruction
9097         macros, since they're intentional.
9098
9099 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
9100
9101         * config/darwin.h: Add include guards.  Remove old, now incorrect,
9102         comment about STANDARD_EXEC_PREFIX.
9103
9104         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
9105         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
9106         for installing .1 manpages.  Add rules for installing cpp
9107         and gcov manpages under their installed names.
9108
9109 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
9110
9111         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
9112         host, but try LD_FOR_TARGET first.
9113         * configure: Rebuilt.
9114
9115 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9116
9117         * dbxout.c: Move declaration of dbxout_type_decl outside
9118         #ifdef DBX_DEBUGGING_INFO.
9119         * c-parse.in: Don't give the asmdef production a type.
9120
9121 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9122
9123         * debug.h (struct gcc_debug_hooks): Add type_decl field.
9124         (debug_nothing_tree_int): Prototype.
9125         (dwarf_debug_hooks): Delete, unused.
9126         * debug.c (do_nothing_debug_hooks): Update.
9127         (debug_nothing_tree_int): New function.
9128         * langhooks.h (struct lang_hooks_for_decls):
9129         Remove builtin_type_decls field.
9130         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
9131         (LANG_HOOKS_DECLS): Update.
9132         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
9133         Use debug_hooks->type_decl.
9134         * dbxout.c (preinit_symbols): New static.
9135         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9136         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
9137         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
9138         for symbols to output.
9139         (dbxout_type_decl): New function.
9140         (dbxout_symbol): If called before dbxout_init has run, queue
9141         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
9142         to TYPE_DECLs before emitting them.
9143         * xcoffout.c (assign_type_number): Delete.
9144         (xcoff_type_numbers): New static table.
9145         (xcoff_assign_fundamental_type_number): New function.
9146         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
9147         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
9148         * sdbout.c: Include varray.h.
9149         (deferred_global_decls): New static.
9150         (sdb_debug_hooks): Update.
9151         (sdbout_global_decl): If we can't emit something right now,
9152         remember it in deferred_global_decls.
9153         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
9154         (sdbout_init): Initialize deferred_global_decls.
9155         * Makefile.in: Update dependencies of sdbout.o.
9156         * dwarf2out.c (dwarf2out_type_decl): New function.
9157         (dwarf2_debug_hooks): Update.
9158         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
9159         * c-decl.c (getdecls): Just return 0.
9160         (check_for_loop_decls): Don't use getdecls.
9161         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
9162         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
9163
9164 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
9165
9166         * config/s390/s390.c (s390_sched_reorder2): Remove.
9167         (TARGET_SCHED_REORDER2): Do not redefine.
9168
9169 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9170
9171         * c-parse.in (maybe_type_qual): Delete.
9172         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
9173         (asm_argument): New grammar rules.
9174         (extdef_1): Use asmdef.
9175         (maybeasm): Move down with other asm rules; use simple_asm_expr.
9176         (xexpr): Move up with other expression rules.
9177         (stmt): Use asm_stmt.
9178
9179         * c-typeck.c (build_asm_expr): New function - body mostly
9180         pulled from build_asm_stmt.
9181         (build_asm_stmt): Just handle tacking on the volatile qualifier.
9182         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
9183
9184 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
9185
9186         PR bootstrap/13617
9187         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
9188         (mips_declare_object): Make variadic.
9189         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
9190         mips_output_aligned_decl_common.
9191         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
9192         (mips_declare_object): Make variadic.
9193
9194 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9195
9196         * function.c (update_epilogue_consts): Teach about binary operations.
9197
9198         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
9199         previous MEM_VOLATILE in REF.
9200         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
9201         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
9202
9203 2004-02-12  Gunther Nikl  <gni@gecko.de>
9204
9205         * config.gcc: Restore support for m68k-openbsd.
9206
9207 2004-02-12  Jan Hubicka  <jh@suse.cz>
9208
9209         * tree-optimize.c (tree_rest_of_compilation): Do not release
9210         DECL_ARGUMENTS.
9211
9212 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
9213
9214         * doc/install.texi: Fix the spelling of "explicitly".
9215
9216 2004-02-11  Eric Christopher  <echristo@redhat.com>
9217
9218         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
9219         duplicate argument structure of cpp_interpret_string.
9220         * cpphash.h: Move prototype...
9221         * cpplib.h: Here.
9222         * cpplib.c: Fix calls to match new function signature.
9223
9224 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
9225
9226         PR c/456
9227         * cppexp.c (num_binary_op): Don't allow comma operators in #if
9228         constant expressions at all outside C99 mode if pedantic.
9229
9230 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
9231
9232         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
9233         (log10_optab, log2_optab): Define corresponding macros.
9234         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
9235         * genopinit.c (optabs): Implement log10_optab and log2_optab
9236         using log10?f2 and log2?f2 patterns.
9237         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
9238         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
9239         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
9240         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9241
9242         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
9243         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
9244         log2, log2f and log2l built-ins as inline x87 intrinsics.
9245
9246 2004-02-11  Richard Henderson  <rth@redhat.com>
9247
9248         PR target/1532
9249         * flow.c (insn_dead_p): A clobber of a dead hard register is a
9250         dead insn after reload.
9251
9252 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
9253
9254         * tree.h (frame_base_decl): Add GTY marker.
9255         * var-tracking.c (frame_base_decl): Likewise.
9256
9257 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
9258
9259         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
9260         incorrect, hunk.
9261         (add_location_or_const_value_attribute): Use text_section_label,
9262         not TEXT_SECTION_NAME.
9263
9264 2004-02-11  Per Bothner  <per@bothner.com>
9265
9266         Represent column numbers using line-map's source_location.
9267         The "next available source_location" is now managed internally by
9268         line-maps.c rather than by clients.
9269         * line-map.h (struct line_map):  New field column_bits.
9270         <from_line>:  Rename field to start_location.
9271         (struct line_maps):  New fields highest_location and max_column_hint.
9272         (linemap_check_files_exited):  New declaration.
9273         (linemap_line_start):  New declaration.
9274         (linemap_add):  Remove from_line parameter; use highest_location field.
9275         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
9276         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
9277         (CURRENT_LINE_MAP):  Remove macro.
9278         (linemap_position_for_column):  New inline function.
9279         * line-map.c (linemap_init):  Clear new fields.
9280         (linemap_check_files_exited):  New function, extracted from ...
9281         (linemap_free):  Use linemap_check_files_exited.
9282         (linemap_add):  Remove from_line parameter.  Various updates.
9283         (linemap_line_start):  New function.
9284         (linemap_lookeup):  Update for new field names.
9285         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
9286         linemap_position_for_column may unpredictably change the current map,
9287         it is cleaner and simpler for us to not cache it in cpp_reader.
9288         (struct cpp_buffer):  New sysp field.
9289         Changed warned_cplusplus_comments and from_stage3 to bitfields.
9290         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
9291         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
9292         current map using linemap_lookup.
9293         (do_linemarker):  Also set buffer's sysp field.
9294         (destringize_and_run):  No longer need to decrement current line.
9295         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
9296         (search_path_head, open_file_failed):  Use buffer's sysp.
9297         (cpp_make_system_header):  Get current map using linemap_lookup.
9298         Also set buffer's sysp flag.
9299         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
9300         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
9301         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
9302         (struct cpp_reader):  ... and adding saved_line_base field.
9303         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
9304         Update accordingly.  Don't adjust line.
9305         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
9306         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
9307         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
9308         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
9309         * cpplex.c (_cpp_lex_direct):  Likewise.
9310         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
9311         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
9312         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
9313         Remove col field as it is now subsumed by src_loc.
9314         * cpperror.c:  Update various field, parameter, and macro names.
9315         (print_location):  If col==0, try SOURCE_COLUMN of line.
9316         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
9317         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
9318         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
9319         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
9320         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
9321         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
9322         (_cpp_lex_direct):  Use linemap_position_for_column.
9323         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
9324         parameter.  Instead get it from the line_table global.  Adjust callers.
9325         (print):  Remove map field.  Replace line field to src_line.
9326         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
9327         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
9328         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
9329         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
9330         * cpptrad.c (copy_comment):  Rename variable.
9331         * c-lex.c (map):  Remove static variable, for same reason we removed
9332         cpp_reader's map field.
9333         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
9334         to call linemap_lookup.
9335         (cb_line_change):  Token's line field replaced by src_loc.
9336         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
9337         Don't save new_map.
9338
9339         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
9340         source_location.
9341
9342 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9343
9344         * config/rs6000/altivec.md (*movv4si_internal): At least one
9345         operand must be register_operand.
9346         (*movv8hi_internal1): Likewise.
9347         (*movv16qi_internal1): Likewise.
9348         (*movv4sf_internal1): Likewise.
9349
9350 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
9351
9352         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
9353         operand.
9354         (movv4hi_internal): Same.
9355         (movv2sf_internal): Same.
9356         (movv1di_internal): Same.
9357
9358 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
9359
9360         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
9361         TARGET_OLDABI consistently.
9362         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
9363         mips_va_arg,override_options,compute_frame_size,
9364         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
9365         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
9366         and TARGET_OLDABI consistently.
9367         * config/mips/mips.md (exception_receiver): Likewise.
9368         * config/mips/linux64.h: Likewise.
9369
9370 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9371
9372         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
9373         Set AltiVec ABI and vrsave as default for ppc64 linux.
9374         (init_cumulative_args): Post error, if try to return
9375         value in AltiVec register without enable AltiVec.
9376         (function_arg_advance): Ditto for passing arguments.
9377
9378 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
9379
9380         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
9381         a label before updating its usage count.
9382
9383 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
9384
9385         * doc/install.texi: Remove extra cd.
9386
9387 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
9388
9389         * c-common.c (vector_size_helper): Remove; call
9390         reconstruct_complex_type() instead.
9391         * tree.c (reconstruct_complex_type): New function
9392         (formerly vector_size_helper() in c-common.c).
9393         (make_vector): Make externally visible.
9394         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
9395
9396 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9397
9398         * config/h8300/h8300-protos.h: Add a prototype for
9399         h8300_regs_ok_for_stm.
9400         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
9401         * config/h8300/h8300.md (stm_h8300s_2_advanced,
9402         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
9403         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
9404         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
9405         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
9406         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
9407         ldm_h8300s_4_normal, ldm_h8300s_4): Use
9408         h8300_regs_ok_for_stm().
9409
9410 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9411
9412         PR c/14088
9413         * real.c (real_from_string): Look for 'X' as well as 'x' in
9414         hexfloat strings.
9415
9416 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9417
9418         * config/h8300/h8300.md: Remove an incorrect comment about
9419         peephole2.  Add comments.
9420
9421 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
9422
9423         PR/14058
9424         * emit-rtl.c (set_decl_incoming_rtl): New.
9425         * tree.h (set_decl_incoming_rtl): New.
9426         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
9427         DECL_INCOMING_RTL.
9428         * ada/misc.c (adjust_decl_rtl): Likewise.
9429
9430 2004-02-10  Per Bothner  <per@bothner.com>
9431
9432         * c-opts.c (c_common_post_options):   Don't emit working directory
9433         in cpp output if -P was specified.
9434
9435 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9436
9437         PR c/14092
9438         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
9439         negate_expr back to the original type.
9440
9441 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
9442
9443         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
9444         bump retaddr here.
9445
9446 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9447
9448         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
9449         gen_lowpart_SUBREG): Move under the file in which they
9450         are actually declared.
9451
9452 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
9453
9454         * doc/sourcebuild.texi: Add libada documentation.
9455
9456         * doc/install.texi: Update documentation on Ada build, now
9457         that the GNAT lib and tools are built automatically.
9458
9459 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
9460
9461         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
9462         && TARGET_IRIX.
9463
9464 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
9465
9466         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
9467         boundaries outside build_component_ref() call (a macro in ObjC++).
9468
9469 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
9470
9471         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
9472         (init_cumulative_args): Likewise.
9473         (a7_overlap_mentioned_p): Delete prototype.
9474         * config/xtensa/xtensa.c (struct machine_function): Replace
9475         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
9476         Add set_frame_ptr_insn field.
9477         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
9478         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
9479         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
9480         at the function entry and replace the operand with the pseudo.
9481         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
9482         argument and record this flag in CUMULATIVE_ARGS.
9483         (function_arg): Remove result_mode and special-case code to handle
9484         arguments in a7.  Instead, set need_a7_copy flag when there is an
9485         incoming argument in a7.
9486         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
9487         and use the value recorded in cfun->machine->set_frame_ptr_insn.
9488         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
9489         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
9490         special-case code.
9491         (a7_overlap_mentioned_p): Delete.
9492         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
9493         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
9494         arguments to init_cumulative_args and pass "incoming" flag instead.
9495         (BLOCK_REG_PADDING): Delete.
9496         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
9497         checks for reload_in_progress and reload_completed.  Update calls to
9498         xtensa_copy_incoming_a7.
9499         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
9500         to call xtensa_copy_incoming_a7.
9501
9502 2004-02-09  DJ Delorie  <dj@redhat.com>
9503
9504         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
9505         longer modify standard_exec_prefix, standard_bindir_prefix, or
9506         standard_startfile_prefix.
9507
9508 2004-02-09  James E Wilson  <wilson@specifixinc.com>
9509
9510         PR c++/11295
9511         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
9512         to expand_expr_real call, and pass in alt_rtl as last argument.
9513
9514         PR libstdc++/5625
9515         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
9516         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
9517         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
9518         * except.c (expand_builtin_extend_pointer): New.
9519         * except.h (expand_builtin_extend_pointer): Declare.
9520
9521 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
9522
9523         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
9524         unaligned loads and stores.
9525
9526 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9527
9528         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
9529         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
9530
9531         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
9532         * config/mips/iris5.h: ... here.
9533         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
9534
9535         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
9536         * config/mips/iris5.h: ... here.
9537
9538 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9539
9540         * configure.ac: Remove default executable files before AC_PROG_CC.
9541         * configure: Regenerate.
9542
9543 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
9544
9545         PR target/13721
9546         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
9547         print a operand other than a register.
9548
9549 2004-02-09  Roger Sayle  <roger@eyesopen.com>
9550
9551         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
9552         tree code rather than call fold_convert, which doesn't specify a
9553         default floating point to integer conversion.
9554
9555 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
9556
9557         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
9558         code to support SGS assembler.  Reformat adjacent code where possible.
9559         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
9560         definition.
9561         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
9562         for '%#'.
9563         * config/m68k/linux.h, config/m68k/m68k.c,
9564         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
9565         macros and asm_printf() format strings.
9566         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
9567         * config/m68k/linux.h: Update copyright.
9568         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
9569
9570 2004-02-08  Andreas Schwab  <schwab@suse.de>
9571             Bernardo Innocenti  <bernie@develer.com>
9572
9573         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
9574         REGISTER_PREFIX.
9575         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
9576         frame pointer register, overridable by OS targets.
9577         * (M68K_REGNAME): Macro to obtain register name for asm output,
9578         eventually replacing %a6 with M68K_FP_REG_NAME.
9579         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
9580         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
9581         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
9582         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
9583         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
9584
9585 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9586
9587         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
9588         hook_rtx_tree_int_null.
9589         * targhooks.c (default_struct_value_rtx): Remove.
9590         * targhooks.h: Remove the prototype for
9591         default_struct_value_rtx.
9592         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
9593         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
9594         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9595         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
9596         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
9597         config/rs6000/rs6000.c, config/s390/s390.c,
9598         config/stormy16/stormy16.c, config/v850/v850.c,
9599         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
9600         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
9601
9602 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
9603
9604         * README.Portability: Change "ISO C89" to "ISO C90".
9605         * c-parse.in (primary, initelt): Likewise.
9606
9607 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
9608
9609         * real.c (encode_ibm_extended): Normalize the input value before
9610         converting it to a double.  Handle the case where a normal value
9611         rounds to infinity.
9612
9613 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9614
9615         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
9616         warning.
9617         * cse.c (preferrable): Change to preferable. Update all of its
9618         callers.
9619         * genautomata.c (ainsn): Change
9620         first_ainsn_with_given_equialence_num to
9621         first_ainsn_with_given_equivalence_num.  Update all of its
9622         references.
9623
9624 2004-02-08  Jan Hubicka  <jh@suse.cz>
9625
9626         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
9627
9628 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
9629
9630         * function.c (assign_parms): Fix formatting.
9631
9632 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9633
9634         * default.h (PROMOTE_PROTOTYPES): Remove.
9635         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
9636         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
9637         EXPAND_BUILTIN_SAVEREGS): Poison.
9638         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
9639         hook_bool_tree_false.
9640         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9641         * target.h: Replace SETUP_INCOMING_VARARGS with
9642         targetm.calls.setup_incoming_varargs().
9643         * targhooks.c (default_promote_function_return): Remove.
9644         (default_promote_prototypes): Likewise.
9645         (default_struct_value_rtx): Always abort().
9646         (default_expand_builtin_saveregs): Always print an error
9647         message.
9648         (default_setup_incoming_varargs): Do nothing.
9649         (default_pretend_outgoing_varargs_named): Don't depend on
9650         SETUP_INCOMING_VARARGS.
9651         * targhooks.h: Remove the prototype for
9652         default_promote_function_return and
9653         default_promote_prototypes.
9654
9655 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9656
9657         * system.h (SHARED_SECTION_ASM_OP): Poison.
9658         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
9659         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
9660
9661 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
9662
9663         Bug 13856
9664         * c-decl.c (diagnose_mismatched_decls): Only give special
9665         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
9666         is also true.
9667         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
9668         DECL_FUNCTION_CODE when defining a built-in function.
9669         Don't update DECL_ESTIMATED_INSNS.
9670         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
9671         FUNCTION_DECLs.
9672         * tree.h: Delete DECL_ESTIMATED_INSNS.
9673         * tree-inline.c (struct inline_data): Delete inlined_insns field.
9674         (expand_call_inline, optimize_inline_calls): Don't update
9675         DECL_ESTIMATED_INSNS nor inlined_insns.
9676         * cgraphunit.c (cgraph_analyze_function): Don't update
9677         DECL_ESTIMATED_INSNS.
9678
9679 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
9680
9681         * c-common.c (shadow_warning): Delete.
9682         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
9683         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
9684         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
9685         * c-parse.in (free_parser_stacks): Delete.
9686
9687 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
9688
9689         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
9690         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
9691         Use the top level mkinstalldirs, not the one in the gcc subdir.
9692         * mkinstalldirs: Remove (from the gcc subdir).
9693
9694 2004-02-07  Roger Sayle  <roger@eyesopen.com>
9695
9696         PR middle-end/13696
9697         * fold-const.c (fold_convert): New function to provide type
9698         conversion to the middle-end without using convert.
9699         (negate_expr, associate_trees, size_diffop, omit_one_operand,
9700         operand_equal_for_comparison_p, pedantic_omit_one_operand,
9701         invert_truthvalue, optimize_bit_field_compare, range_binop,
9702         decode_field_reference, make_range, build_range_check, unextend,
9703         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
9704         fold_binary_op_with_conditional_arg, fold_inf_compare,
9705         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
9706         convert with calls to fold_convert.
9707
9708 2004-02-07  Jan Hubicka  <jh@suse.cz>
9709
9710         * genrecog.c (find_operand): add extra argument stop.
9711         (validate_pattern): Verify that mach_dup is duplicating operand
9712         defined lexically earlier.
9713
9714 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9715
9716         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
9717         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
9718         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
9719         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
9720         config/ia64/ia64.h, config/ip2k/ip2k.h,
9721         config/iq2000/iq2000.h, config/mips/iris5.h,
9722         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
9723         config/rs6000/aix51.h, config/rs6000/aix52.h,
9724         config/rs6000/darwin.h, config/rs6000/rs6000.h,
9725         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
9726         config/sparc/linux.h, config/sparc/linux64.h,
9727         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
9728         config/xtensa/xtensa.h: Remove the definitions of
9729         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
9730         MAX_WCHAR_TYPE_SIZE.
9731         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
9732         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
9733
9734 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
9735
9736         PR bootstrap/13990
9737         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
9738         gen_rtx_NE.
9739
9740 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
9741
9742         * var-tracking.c (vt_add_function_parameters): Surround checkings by
9743         #ifdef ENABLE_CHECKING and #endif.
9744
9745 2004-02-07  Roger Sayle  <roger@eyesopen.com>
9746
9747         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
9748         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
9749         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
9750         integer types and floating point with unsafe_math_optimizations.
9751         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
9752         Optimize A - B as A + (-B), if B is easily negated.
9753
9754 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9755
9756         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
9757         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
9758         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
9759         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
9760         Update copyright.
9761
9762 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9763
9764         * c-ppoutput.c, var-tracking.c: Fix comment typos.
9765
9766 2004-02-06  James E Wilson  <wilson@specifixinc.com>
9767
9768         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
9769         glibc 2.3 or better.
9770
9771 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9772
9773         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
9774         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
9775
9776 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
9777
9778         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
9779         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
9780         (SHLIB_MKMAP_OPTS): Delete.
9781         (TARGET_LIBGCC2_CFLAGS): Add -specs.
9782         (bispecs): Add rule.
9783         * config/rs6000/libgcc-ppc64.ver: New file.
9784         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
9785         (__floatdidf, __floatdisf): Optimize multiply.
9786         (__fixunstfdi): New function.
9787         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
9788         real and imag parts larger than one register.
9789         (function_arg): Correct type of reg used when fp arg split partially
9790         to stack.
9791         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
9792         and __MACH__ or __powerpc64__.
9793
9794 2004-02-06  Roger Sayle  <roger@eyesopen.com>
9795             Ulrich Weigand  <uweigand@de.ibm.com>
9796
9797         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
9798         of gen_highpart or gen_lowpart when the floating point format is
9799         wider than the result mode.
9800
9801 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
9802
9803         * dwarf2out.c (loclabel_num): Move into #ifdef
9804         DWARF2_DEBUGGING_INFO.
9805
9806 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
9807
9808         * objc/objc-act.c (build_super_template) the 'class' field of
9809         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
9810         (get_super_receiver): Likewise.
9811
9812 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9813
9814         * reload1.c (check_eliminable_occurrences): Optimize the reset
9815         of can_eliminate.
9816         (eliminate_regs_in_insn): Likewise.
9817
9818 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
9819             Josef Zlomek  <zlomekj@suse.cz>
9820
9821         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
9822         at the beginning of function, call dwarf2out_var_location for
9823         NOTE_INSN_VAR_LOCATION note.
9824         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
9825         decl_loc_table): New.
9826         (lookup_decl_loc): New function.
9827         (add_var_loc_to_decl): New function.
9828         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
9829         only if can_use_fbreg.
9830         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
9831         functions.
9832         (loc_descriptor): Likewise. Process VAR_LOCATION.
9833         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
9834         (loc_descriptor_from_tree): Call mem_loc_descriptor with
9835         can_use_fbreg == true.
9836         (add_location_or_const_value_attribute): Added parameter enum
9837         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
9838         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
9839         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
9840         with attr == DW_AT_location.
9841         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
9842         if frame_base_decl is defined and has a location list.
9843         (gen_variable_die): Call add_location_or_const_value_attribute with
9844         attr == DW_AT_location.
9845         (dwarf2out_var_location): New function.
9846         (dwarf2out_begin_function): New function.
9847         (dwarf2out_init): Create decl_loc_table.
9848
9849 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9850
9851         * loop.c (force_movables): Transitively increase the priorities of
9852         all insns forces by an insn, not just the first one.
9853
9854 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
9855             Daniel Berlin <dberlin@dberlin.org>
9856
9857         Josef Zlomek  <zlomekj@suse.cz>
9858         * Makefile.in (var-tracking.o): New.
9859         * common.opt (fvar-tracking): New.
9860         * flags.h (flag_var_tracking): New.
9861         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
9862         * opts.c (common_handle_option): Add OPT_fvar_tracking.
9863         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
9864         * rtl.c (note_insn_name): Likewise.
9865         * rtl.def (VAR_LOCATION): New.
9866         * rtl.h (NOTE_VAR_LOCATION): New.
9867         (NOTE_VAR_LOCATION_DECL): New.
9868         (NOTE_VAR_LOCATION_LOC): New.
9869         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
9870         (variable_tracking_main): New exported function.
9871         * timevar.def (TV_VAR_TRACKING): New.
9872         * toplev.c (enum dump_file_index): Added DFI_vartrack.
9873         (dump_file): "vartrack" was added (-dV).
9874         (flag_var_tracking): New.
9875         (f_options): "var-tracking" was added.
9876         (rest_of_handle_variable_tracking): New function.
9877         (rest_of_compilation): Run variable tracking.
9878         (process_options): If user has not specified flag_var_tracking set it
9879         according to optimize, debug_info_level and debug_hooks.
9880         * tree.h (frame_base_decl): New.
9881         * var-tracking.c: New file.
9882         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
9883         (ia64_override_options): Set flags to run variable tracking in machine
9884         dependent reorg instead of toplev.c.
9885         (ia64_reorg): Run variable tracking if wanted.
9886         * doc/invoke.texi: Mention variable tracking in -dV,
9887         add and -fvar-tracking.
9888         * doc/passes.texi: Added variable tracking pass.
9889
9890         Daniel Berlin <dberlin@dberlin.org>
9891         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
9892         * dbxout.c (dbx_debug_hooks): Likewise.
9893         (xcoff_debug): Likewise.
9894         * debug.c (do_nothing_debug_hooks): Likewise.
9895         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
9896         * dwarfout.c (dwarf_debug_hooks): Likewise.
9897         * sdbout.c (sdb_debug_hooks): Likewise.
9898         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9899         * final.c (final_scan_insn): Call var_location debug hook for each
9900         NOTE_INSN_VAR_LOCATION.
9901
9902 2004-02-06  Jan Hubicka  <jh@suse.cz>
9903
9904         * flow.c (update_life_info): Allocate reg_deaths when called from
9905         scheudler.
9906         (attempt_auto_inc):  Update life ranges accordingly.
9907
9908 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9909
9910         PR debug/11816
9911         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
9912
9913 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9914
9915         * cfganal.c (flow_call_edges_add): Never split a libcall block.
9916
9917 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
9918
9919         * dwarf2out.c (output_loc_list): Don't use deltas if we have
9920         a separate line info table in use.
9921         Use the correct size for terminators.
9922         (output_die): Use offset, not delta.
9923
9924 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
9925
9926         * doc/invoke.texi: Remove the pni option from -mfpmath=.
9927
9928 2004-02-06  Jan Hubicka  <jh@suse.cz>
9929
9930         * recog.c (split_all_insns): Do not update reg info.
9931         * regrename.c (regrename_optimize): Likewise.
9932         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
9933         * flow.c (struct propagate_block_info): Add insn_num field.
9934         (reg_deaths): New array.
9935         (life_analysis): Free reg_deaths info.
9936         (allocate_reg_life_data): Allocate reg_deaths array.
9937         (propagate_one_insn): Use new array.
9938         (init_propagate_block): Initialize it.
9939         (free_propagate_block_info): Finish compuation of
9940         REG_LIVE_LENGTH
9941         (attempt_auto_inc): Sanity check that REG_INFO is not
9942         computed at same time.
9943         (mark_used_regs): Update new array.
9944
9945         * reg-stack.c (subst_stack_regs): Unshare clobbers before
9946         substitution.
9947
9948 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9949
9950         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
9951         *extendqisi2_short_displ.
9952
9953 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
9954
9955         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
9956         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
9957         (emit_library_call_value_1): Likewise pass nargs.
9958         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
9959         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
9960         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
9961         parameter instead of scanning TYPE_ARGS_TYPES to count args.
9962         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
9963         prototype.
9964         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
9965         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
9966         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
9967         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
9968         INIT_CUMULATIVE_ARGS.
9969         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
9970         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
9971         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
9972         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
9973         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
9974         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
9975         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
9976         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
9977         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
9978         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
9979         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
9980         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
9981
9982 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9983
9984         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
9985         possible.
9986
9987 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9988
9989         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
9990         note containing (plus (reg) (const_int)), where reg is an
9991         eliminable reg, then perform the register elimination without
9992         depending on eliminate_regs().
9993
9994 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9995
9996         * config/arc/arc.c (arc_return_in_memory): Check the return
9997         value of int_size_in_bytes against -1.  Don't check
9998         TREE_ADDRESSABLE.
9999         * config/avr/avr.c (avr_return_in_memory): Check the return
10000         value of int_size_in_bytes against -1.
10001         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
10002         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
10003         Likewise.
10004         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
10005         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
10006         Likewise.
10007
10008 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10009
10010         * config/frv/frv-protos.h: Remove the prototype for
10011         frv_setup_incoming_varargs.
10012         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
10013         (frv_setup_incoming_varargs): Make it static.
10014         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
10015
10016 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10017
10018         * config/fr30/fr30-protos.h: Remove the prototype for
10019         fr30_setup_incoming_varargs.
10020         Update the prototypes for fr30_num_arg_regs and
10021         fr30_function_arg_partial_nregs.
10022         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
10023         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10024         (fr30_setup_incoming_varargs): Make it static.
10025         Add argument second_time.  Don't do anything when second_time
10026         is nonzero.
10027         (fr30_num_arg_regs): Change the type of the first argument to
10028         enum machine_mode.
10029         (fr30_function_arg_partial_nregs): Change the type of the
10030         second argument to enum machine_mode.
10031         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
10032         (SETUP_INCOMING_VARARGS): Remove.
10033
10034 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10035
10036         * config/arc/arc-protos.h: Remove the prototype for
10037         arc_setup_incoming_varargs.
10038         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10039         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10040         (arc_setup_incoming_varargs): Make it static.
10041         (arc_external_libcall): Likewise.
10042         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
10043         Remove the commented-out definition of
10044         ASM_OUTPUT_EXTERNAL_LIBCALL.
10045
10046 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
10047
10048         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
10049         to $$(slibdir) in the installation commands.
10050
10051 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
10052
10053         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
10054         with inner_regno, not regno.
10055         * rtlanal.c (refers_to_regno_p): Same.
10056
10057 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10058
10059         * config.gcc: Remove i370 support.
10060
10061 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10062
10063         * doc/install.texi:  Update automake and autoconf version
10064         requirements.  Note where to find gcj automake version.
10065
10066 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10067
10068         * Makefile.in (generate-manpages): Move dependencies to ...
10069         (man): here.
10070         * doc/makefile.texi: Document new targets.
10071         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
10072
10073 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10074
10075         PR/13485
10076         Makefile.in (srcextra):  Add a level of indirection to ...
10077         (gcc.srcextra): ... here.
10078         (po-generated): Delete.
10079         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
10080         options.c.
10081         (start.encap): Remove superfluous lang.srcextra dependency.
10082         objc/Make-lang.in (po-generated):  Delete.
10083
10084 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10085
10086         * config/ia64/ia64.c (REG_GP): Remove.
10087
10088 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10089
10090         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
10091
10092 2004-02-05  Devang Patel  <dpatel@apple.com>
10093
10094         * dwarf2out.c (force_type_die): Look up input type itself
10095         instead of root_type() of type.
10096
10097 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10098
10099         * config/s390/s390.md ("*tmqidi_ext"): New insn.
10100         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
10101         pre-reload splitters are transformed to post-reload
10102         define_insn_and_split patterns.
10103         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
10104
10105 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10106
10107         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
10108         TARGET_PROMOTE_PROTOTYPES.
10109
10110 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10111
10112         PR middle-end/13750
10113         Revert:
10114         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10115         PR pch/13361
10116         * c-typeck.c (constructor_asmspec): Delete.
10117         (struct initializer_stack): Delete field 'asmspec'.
10118         (start_init): Delete saving of asmspec.
10119         (finish_init): Don't update constructor_asmspec.
10120         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10121         * stmt.c (expand_asm): Duplicate strings from tree.
10122         (expand_asm_operands): Likewise.
10123         * tree.c (tree_size): Update computation of size of STRING_CST.
10124         (make_node): Don't make STRING_CST nodes.
10125         (build_string): Allocate string with tree node.
10126         * tree.def (STRING_CST): Update comment.
10127         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10128         (tree_string): Place contents of string in tree node.
10129         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10130         from tree.
10131
10132 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10133
10134         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
10135         msgid.
10136
10137 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
10138
10139         * config/rs6000/altivec.md (*movv4si_internal): At least one
10140         operand must be altivec_register_operand.
10141         (*movv8hi_internal1): Likewise.
10142         (*movv16qi_internal1): Likewise.
10143         (*movv4sf_internal1): Likewise.
10144
10145 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
10146
10147         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
10148         * configure: Regenerate.
10149
10150 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
10151
10152         * doc/install.texi: Update description of --gxx-include-dir to
10153         give correct default value.
10154
10155 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10156
10157         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
10158         8 with MAC_REG.
10159
10160 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10161
10162         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
10163         gen_rtx_PARALLEL.
10164
10165 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10166
10167         * emit-rtl.c: Update the comment about the file.
10168
10169 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10170
10171         * sourcebuild.texi (Test Idioms): Update testcase naming
10172         conventions.
10173
10174 2004-02-04  Per Bothner  <per@bothner.com>
10175
10176         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
10177         * c-ppoutput.c (pp_dir_change):  New function.
10178         * c-common.h (pp_dir_change):  New declaration.
10179         * cpplib.h (struct cpp_options):  Remove working_directory field.
10180         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
10181         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
10182         Don't handle -fworking_directory here, but in c_common_post_options.
10183         (read_original_directory): Don't back up when done.
10184         Don't clear no-longer used working_directory flag.
10185         * cpplib.h:  Update declarations to match.
10186         * c-lex.c (cb_dir_change):  Move to c-opts.c.
10187         (init_c_lex):  Don't set dir_change callback here, since we want
10188         to set it even if flag_preprocess_only.
10189         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
10190         (c_common_post_options):  Set dir_change callback.
10191         Call pp_dir_change if approporiate.
10192         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
10193         unneeded parameter and result. Do LC_RENAME for <built-in>.
10194         (c_common_post_options):  Call cpp_read_main_file here instead.
10195         (c_common_init):  Update accordingly.
10196         (push_command_line_include):  Don't cpp_push_main_file.
10197         Do LC_RENAME rather than LC_LEASE to get back to main file.
10198         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
10199         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
10200         files, but call finish_options for all files.
10201         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
10202         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
10203         cpp_find_main_file + cpp_push_main_file.
10204         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
10205         * opts.c (handle_options):  Only set main_input_filename first time.
10206
10207 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
10208
10209         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
10210
10211 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
10212
10213         * reload.c (find_equiv_reg): When checking for register overlap,
10214         don't index hard_regno_nregs with a pseudo-reg.
10215
10216 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10217
10218         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
10219
10220 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
10221
10222         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
10223         against FIRST_PSEUDO_REGISTER.
10224
10225 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10226
10227         * Makefile.in: Move target, host overrides after per-language
10228         fragments.
10229
10230         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
10231         (GNATLIBCFLAGS): Remove -g.
10232
10233 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10234
10235         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10236         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10237         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10238         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
10239         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
10240         config/sparc/sparc.c, config/vax/vax.c: Revert the
10241         replacements of "FALLTHRU" with "Fall through" done in the
10242         previous patch.
10243
10244 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10245
10246         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
10247         config/arm/arm.c, config/arm/arm.md,
10248         config/cris/cris-protos.h, config/fr30/fr30.c,
10249         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
10250         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
10251         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
10252         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
10253         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
10254         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
10255         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
10256         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
10257         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10258         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
10259         config/s390/s390.md, config/sparc/netbsd-elf.h,
10260         config/sparc/openbsd.h, config/sparc/sparc.c,
10261         config/xtensa/lib2funcs.S: Fix comment formatting.
10262
10263 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10264
10265         * config/alpha/alpha.c, config/arc/arc.c,
10266         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
10267         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
10268         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
10269         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
10270         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10271         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10272         config/iq2000/iq2000.c, config/m32r/m32r.c,
10273         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
10274         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
10275         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
10276         config/rs6000/rs6000.h, config/sparc/sparc.c,
10277         config/vax/vax.c: Fix comment typos.  Follow spelling
10278         conventions.
10279
10280 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10281
10282         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
10283         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
10284         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
10285         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
10286         config/arm/fpa.md, config/arm/iwmmxt.md,
10287         config/arm/netbsd-elf.h, config/arm/netbsd.h,
10288         config/m68hc11/m68hc11.md, config/mips/iris5.h,
10289         config/mn10300/mn10300.md, config/rs6000/altivec.md,
10290         config/sparc/netbsd-elf.h: Update copyright.
10291
10292 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10293
10294         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10295         for all modes whose size is greater than 8 bytes if ARCH32.
10296         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
10297         by reference if ARCH32.
10298
10299 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
10300
10301         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
10302
10303 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10304
10305         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
10306         to before adddi3 insn patterns.
10307         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
10308         "reload_insi"): Move to before addsi3 insn patterns.
10309
10310 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
10311
10312         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
10313         parameter.  Use it instead of current_function_is_thunk.
10314         * function.h (struct function): Update documentation for is_thunk.
10315         * tree.h (CALL_FROM_THUNK_P): New macro.
10316         * config/alpha/alpha.c (alpha_sa_mask): Do not check
10317         no_new_pseudos when testing current_function_is_thunk.
10318         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
10319
10320 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10321
10322         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
10323         TARGET_SETUP_INCOMING_VARARGS.
10324
10325 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10326
10327         * emit-rtl.c (gen_rtx): Remove.
10328         * genattrtab.c: Don't mention gen_rtx in a comment.
10329         * rtl.h: Remove the prototype for gen_rtx.
10330         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
10331
10332 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10333
10334         * config/arc/arc.h, config/fr30/fr30.h
10335         (SETUP_INCOMING_VARARGS): Remove the target-independent
10336         comments.
10337         * doc/tm.texi: Don't mention deprecated target macros.
10338
10339 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10340
10341         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
10342         target-independent comment.
10343
10344 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10345
10346         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
10347         mention deprecated target macros.
10348
10349 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10350
10351         * config.gcc: Remove obsolete ports and configurations.
10352         * config/linux-aout.h, config/netware.h,
10353         config/t-linux-gnulibc1, config/d30v/abi,
10354         config/d30v/d30v-protos.h, config/d30v/d30v.c,
10355         config/d30v/d30v.h, config/d30v/d30v.md,
10356         config/d30v/libgcc1.asm, config/d30v/t-d30v,
10357         config/dsp16xx/dsp16xx-modes.def,
10358         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10359         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
10360         config/i370/README, config/i370/i370-c.c,
10361         config/i370/i370-protos.h, config/i370/i370.c,
10362         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
10363         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
10364         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
10365         config/i386/moss.h, config/i386/netware.h,
10366         config/i386/svr3.ifile, config/i386/svr3dbx.h,
10367         config/i386/svr3gas.h, config/i386/svr3z.ifile,
10368         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
10369         config/i960/i960-c.c, config/i960/i960-coff.h,
10370         config/i960/i960-modes.def, config/i960/i960-protos.h,
10371         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
10372         config/i960/rtems.h, config/i960/t-960bare,
10373         config/m68k/hp310.h, config/m68k/hp320.h,
10374         config/m68k/hp320base.h, config/m68k/m68kv4.h,
10375         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
10376         Remove.
10377         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
10378         doc/md.texi: Remove mentions of obsolete ports.
10379
10380 2004-02-04  Jan Hubicka  <jh@suse.cz>
10381
10382         * alias.c (find_base_term, get_addr):  Do not dereference NULL
10383         pointer when all VALUE's locations has been invalidated.
10384         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
10385
10386 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
10387
10388         * doc/invoke.texi (x86 options): Fix spelling/wording.
10389
10390 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
10391
10392         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
10393         put the original string in a comment.
10394         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
10395         * config/mips/mips.c (mips_output_ascii): Likewise.
10396         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
10397
10398 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10399
10400         * system.h (GIV_SORT_CRITERION): Poison.
10401         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
10402         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
10403
10404 2004-02-03  Roger Sayle  <roger@eyesopen.com>
10405
10406         PR target/9348
10407         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
10408         multiplies with a multiplication of the wrong signedness, its the
10409         signedness of the multiplication that we've performed that needs to
10410         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
10411         if expand_mult_highpart_adjust places the result in target.
10412
10413 2004-02-03  Richard Henderson  <rth@redhat.com>
10414
10415         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
10416
10417 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
10418
10419         * config.gcc (sh[234]l): Use little endian fragments.
10420
10421 2004-02-03  Paul Koning  <pkoning@equallogic.com>
10422
10423         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
10424         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
10425         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
10426         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
10427         floating point format.
10428         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
10429         the above functions.
10430         (output_move_quad): Output float values in correct target format.
10431         (legitimate_const_double_p): New function.
10432         * config/pdp11/pdp11.h: Fix typos.
10433         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
10434         (TARGET_FLOAT_FORMAT): Ditto.
10435         (pdp11_f_format, pdp11_d_format): Add external declarations.
10436         (MAX_REGS_PER_ADDRESS): Corrected.
10437         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
10438         (PRINT_OPERAND): Output float literals in target format.
10439
10440 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
10441
10442         PR c++/13975
10443         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
10444         TI_PRIVATE.
10445         (access_public_node): Redefine.
10446         (access_protected_node): Likewise.
10447         (access_private_node): Likewise.
10448         * tree.c (build_common_tree_nodes): Create access_public_node,
10449         access_protected_node, and access_private_node.
10450
10451 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
10452
10453         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
10454         (MASK_INLINE_INT_DIV_THR): Ditto.
10455         (MASK_INLINE_SQRT_LAT): Ditto.
10456         (MASK_INLINE_SQRT_THR): Ditto.
10457         (MASK_DWARF2_ASM): Ditto.
10458         (MASK_EARLY_STOP_BITS): Ditto.
10459
10460 2004-02-02  Paul Brook  <paul@codesourcery.com>
10461
10462         Merge from csl-arm-branch.
10463
10464         2004-01-30  Paul Brook  <paul@codesourcery.com>
10465
10466         * aof.h (REGISTER_NAMES): Add vfp reg names
10467         (ADDITIONAL_REGISTER_NAMES): Ditto.
10468         * aout.h (REGISTER_NAMES): Ditto.
10469         (ADDITIONAL_REGISTER_NAMES): Ditto.
10470         * arm-protos.h: Update/Add Prototypes.
10471         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
10472         Only allow 0.0 for VFP.
10473         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
10474         (values_fp): Rename from values_fpa.  Update Users.
10475         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
10476         Update users.  Only check valid constants for this hardware.
10477         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
10478         Only allow consts for FPA.
10479         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
10480         Only allow consts for FPA.
10481         (use_return_insn): Check for saved VFP regs.
10482         (arm_legitimate_address_p): Handle VFP DFmode addressing.
10483         (arm_legitimize_address): Ditto.
10484         (arm_general_register_operand): New function.
10485         (vfp_mem_operand): New function.
10486         (vfp_compare_operand): New function.
10487         (vfp_secondary_reload_class): New function.
10488         (arm_float_compare_operand): New function.
10489         (vfp_print_multi): New function.
10490         (vfp_output_fstmx): New function.
10491         (vfp_emit_fstm): New function.
10492         (arm_output_epilogue): Output VPF reg restore code.
10493         (arm_expand_prologue): Output VFP reg save code.
10494         (arm_print_operand): Add 'P'.
10495         (arm_hard_regno_mode_ok): Return modes for VFP regs.
10496         (arm_regno_class): Return classes for VFP regs.
10497         (arm_compute_initial_elimination_offset): Include space for VFP regs.
10498         (arm_get_frame_size): Ditto.
10499         * arm.h (FIXED_REGISTERS): Add VFP regs.
10500         (CALL_USED_REGISTERS): Ditto.
10501         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
10502         (FIRST_VFP_REGNUM): Define.
10503         (LAST_VFP_REGNUM): Define.
10504         (IS_VFP_REGNUM): Define.
10505         (FIRST_PSEUDO_REGISTER): Include VFP regs.
10506         (HARD_REGNO_NREGS): Handle VFP regs.
10507         (REG_ALLOC_ORDER): Add VFP regs.
10508         (enum reg_class): Add VFP_REGS.
10509         (REG_CLASS_NAMES): Ditto.
10510         (REG_CLASS_CONTENTS): Ditto.
10511         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
10512         (REG_CLASS_FROM_LETTER): Add 'w'.
10513         (EXTRA_CONSTRAINT_ARM): Add 'U'.
10514         (EXTRA_MEMORY_CONSTRAINT): Define.
10515         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
10516         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
10517         (REGISTER_MOVE_COST): Ditto.
10518         (PREDICATE_CODES): Add arm_general_register_operand,
10519         arm_float_compare_operand and vfp_compare_operand.
10520         * arm.md (various): Rename as above.
10521         (divsf3): Enable when TARGET_VFP.
10522         (divdf3): Ditto.
10523         (movdfcc): Ditto.
10524         (sqrtsf2): Ditto.
10525         (sqrtdf2): Ditto.
10526         (arm_movdi): Disable when TARGET_VFP.
10527         (arm_movsi_insn): Ditto.
10528         (movsi): Only split with general regs.
10529         (cmpsf): Use arm_float_compare_operand.
10530         (push_fp_multi): Restrict to TARGET_FPA.
10531         (vfp.md): Include.
10532         * vfp.md: New file.
10533         * fpa.md (various): Rename as above.
10534         * doc/md.texi: Document ARM w and U constraints.
10535
10536         2004-01-15  Paul Brook  <paul@codesourcery.com>
10537
10538         * config.gcc: Add with_fpu.  Allow with-float=softfp.
10539         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
10540         Break out of loop when we find a float-abi.  Fix typo.
10541         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
10542         Set -mfloat-abi=.
10543         * doc/install.texi: Document --with-fpu.
10544
10545         2003-01-14  Paul Brook  <paul@codesourcery.com>
10546
10547         * config.gcc (with_arch): Add armv6.
10548         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
10549         * config/arm/arm.c (arm_overrride_options): Ditto.
10550
10551         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
10552
10553         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
10554         (FL_ARCH6): Renamed from FL_ARCH6J.
10555         (arm_arch3m): Renamed from arm_fast_multiply.
10556         (arm_arch6): Renamed from arm_arch6j.
10557         * arm.h: Update all uses of above.
10558         * arm-cores.def: Likewise.
10559         * arm.md: Likewise.
10560
10561         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
10562         not arm6j.  Add entry for arch armv6.
10563
10564         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
10565
10566         * arm.c (arm_emit_extendsi): Delete.
10567         * arm-protos.h (arm_emit_extendsi): Delete.
10568         * arm.md (zero_extendhisi2): Also handle zero-extension of
10569         non-subregs.
10570         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
10571         (thumb_zero_extendhisi2): Only match if not v6.
10572         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
10573         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
10574         (thumb_extendqisi2): Likewise.
10575         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
10576         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
10577         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
10578         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
10579         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
10580         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
10581         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
10582         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
10583         (arm_extendqisi2addsi): Likewise.
10584
10585         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
10586
10587         Revert this change:
10588         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
10589         + REG addressing modes.
10590
10591         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
10592         + REG addressing modes.
10593
10594         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
10595
10596         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
10597         CONSTANT_P_RTX.
10598
10599         2003-30-12  Paul Brook  <paul@codesourcery.com>
10600
10601         * longlong.h: protect arm inlines with !defined (__thumb__)
10602
10603         2003-30-12  Paul Brook  <paul@codesourcery.com>
10604
10605         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
10606
10607         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
10608
10609         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
10610         change.
10611
10612         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10613
10614         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
10615         to the virtual incoming args pointer for downward stacks.
10616
10617         2003-12-29  Paul Brook  <paul@codesourcery.com>
10618
10619         * config/arm/arm-cores.def: Add cost function.
10620         * config/arm/arm.c (arm_*_rtx_costs): New functions.
10621         (arm_rtx_costs): Remove
10622         (struct processors): Add rtx_costs field.
10623         (all_cores, all_architectures): Ditto.
10624         (arm_override_options): Set targetm.rtx_costs.
10625         (thumb_rtx_costs): New function.
10626         (arm_rtx_costs_1): Remove cases handled elsewhere.
10627         * config/arm/arm.h (processor_type): Add COSTS parameter.
10628
10629         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10630
10631         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
10632         (arm926ejs.md): Include it.
10633         * config/arm/arm926ejs.md: New pipeline description.
10634
10635         2003-12-24  Paul Brook  <paul@codesourcery.com>
10636
10637         * config/arm/arm.c (arm_arch6j): New variable.
10638         (arm_override_options): Set it.
10639         (arm_emit_extendsi): New function.
10640         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
10641         * config/arm/arm.h (arm_arch6j): Declare.
10642         * config/arm/arm.md: Add sign/zero extend insns.
10643
10644         2003-12-23  Paul Brook  <paul@codesourcery.com>
10645
10646         * config/arm/arm.c (all_architectures): Add armv6.
10647         * doc/invoke.texi: Document it.
10648
10649         2003-12-19  Paul Brook  <paul@codesourcery.com>
10650
10651         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
10652         insn patterns to match.
10653         * config/arm/arm-generic.md: Ditto.
10654         * config/arm/cirrus.md: Ditto.
10655         * config/arm/fpa.md: Ditto.
10656         * config/amm/iwmmxt.md: Ditto.
10657         * config/arm/arm1026ejs.md: Ditto.
10658         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
10659         for 11_loadb.
10660
10661         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
10662
10663         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
10664         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
10665         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
10666         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
10667         arm_no_early_mul_dep): Correctly deal with conditional execution,
10668         parallels and single shift operations.
10669         (arm_no_early_alu_shift_value_dep): Define.
10670         * arm.md (attr type): Replace 'normal' with 'alu',
10671         'alu_shift' and 'alu_shift_reg'.
10672         (attr core_cycles): Adjust.
10673         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
10674         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
10675         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
10676         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
10677         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
10678         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
10679         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
10680         attribute appropriately.
10681         * config/arm/arm1026ejs.md (alu_op): Adjust.
10682         (alu_shift_op, alu_shift_reg_op): New.
10683         * config/arm/arm1136.md: Add better bypasses for early
10684         registers. Remove load[234] and store[234] bypasses.
10685         (11_alu_op): Adjust.
10686         (11_alu_shift_op, 11_alu_shift_reg_op): New.
10687
10688         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
10689
10690         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
10691         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
10692         * config/arm/arm.c (arm_no_early_store_addr_dep,
10693         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
10694         * config/arm/arm1026ejs.md: Add load-store bypass.
10695         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
10696         Add bypasses between instructions.
10697
10698         2003-12-10  Paul Brook  <paul@codesourcery.com>
10699
10700         * config/arm/arm.c (arm_fpu_model): New variable.
10701         (arm_fload_abi): New variable.
10702         (target_fpe_name): Rename from target_fp_name.
10703         (target_fpu_name): New variable.
10704         (arm_is_cirrus): Remove.
10705         (fpu_desc): New struct.
10706         (all_fpus): Define.
10707         (pf_model_for_fpu): Define.
10708         (all_loat_abis): Define.
10709         (arm_override_options): Set fp arch flags based on -mfpu=
10710         and -float-abi=.
10711         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
10712         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
10713         (*): Use new TARGET_* flags.
10714         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
10715         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
10716         (TARGET_SOFT_FLOAT): Ditto.
10717         (TARGET_SOFT_FLOAT_ABI): New.
10718         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
10719         TARGET_HARD_FLOAT.
10720         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
10721         (TARGET_OPTIONS): Add -mfpu=.
10722         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
10723         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
10724         (arm_pf_model): Define.
10725         (arm_float_abi_type): Define.
10726         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
10727         * config/arm/arm.md: Use new TARGET_* flags.
10728         * config/arm/cirrus.md: Ditto.
10729         * config/arm/fpa.md: Ditto.
10730         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
10731         * config/arm/semi.h (ASM_SPEC): Ditto.
10732         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
10733         (FPUTYPE_DEFAULT): Set to VFP.
10734         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
10735
10736         2003-11-22  Phil Edwards  <phil@codesourcery.com>
10737
10738         PR target/12476
10739         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
10740         'bx' instead of 'b' to avoid branch range restrictions.  Output
10741         the thunk immediately before the thunked-to function.
10742         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
10743         .thumb_func if a thunk is being generated.  Emit .code 16 along
10744         with .thumb_func if a thunk is not being generated.
10745
10746         2003-11-15  Nicolas Pitre <nico@cam.org>
10747
10748         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
10749         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
10750         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
10751         (lshrdi3_iwmmxt): Renamed from lshrdi3.
10752         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
10753
10754         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
10755             Ian Lance Taylor  <ian@wasabisystems.com>
10756
10757         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
10758         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
10759
10760         2003-11-05  Phil Edwards  <phil@codesourcery.com>
10761
10762         * config/arm/arm.md (insn):  Add new V6 instruction names.
10763         (generic_sched):  New attr.
10764         * config/arm/arm-generic.md:  Use generic_sched here.
10765         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
10766         stages of pipeline.  Adjust latency counts accordingly.
10767         * config/arm/arm1136jfs.md:  New file.
10768
10769         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
10770
10771         * config/arm/arm.h (processor_type): New enumeration type.
10772         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
10773         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
10774         (CPP_CPU_ARCH_SPEC): Likewise.
10775         * config/arm/arm.c (arm_tune): New variable.
10776         (all_cores): Use cores.def.
10777         (all_architectures): Add representative processor.
10778         (arm_override_options): Restructure way in which tuning
10779         information is deduced.
10780         * arm.md: Update "insn" and "type" attributes throughout.
10781         (insn): New attribute.
10782         (type): Compute "mult" from "insn" attribute.  Add load2,
10783         load3, load4 alternatives.
10784         (arm automaton): Move to arm-generic.md.
10785         * config/arm/arm-cores.def: New file.
10786         * config/arm/arm-generic.md: Likewise.
10787         * config/arm/arm1026ejs.md: Likewise.
10788
10789 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10790
10791         * doc/invoke.texi (SPARC options): Remove -mflat and
10792         all -mxxx (xxx:chip) options.
10793         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
10794         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
10795         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
10796         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
10797         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
10798         * config/sparc/sparc.c: Likewise.
10799         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
10800         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
10801         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
10802         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
10803         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
10804         (sparc_flat_must_save_register_p): Likewise.
10805         (sparc_flat_compute_frame_size): Likewise.
10806         (sparc_flat_save_restore): Likewise.
10807         (sparc_flat_function_prologue): Likewise.
10808         (sparc_flat_function_epilogue): Likewise.
10809         (sparc_flat_epilogue_delay_slots): Likewise.
10810         (sparc_flat_eligible_for_epilogue_delay): Likewise.
10811         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
10812         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
10813         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
10814         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
10815         (CONDITIONAL_REGISTER_USAGE): Likewise.
10816         (FRAME_POINTER_REQUIRED): Likewise.
10817         (INITIAL_ELIMINATION_OFFSET): Likewise.
10818         (BASE_RETURN_VALUE_REG): Likewise.
10819         (BASE_OUTGOING_VALUE_REG): Likewise.
10820         (BASE_PASSING_ARG_REG): Likewise.
10821         (BASE_INCOMING_ARG_REG): Likewise.
10822         (INCOMING_REGNO): Likewise.
10823         (OUTGOING_REGNO): Likewise.
10824         (LOCAL_REGNO): Likewise.
10825         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
10826         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
10827         (EPILOGUE_USES): Likewise.
10828         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
10829         ("flat" attribute): Delete.
10830         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
10831         handling.
10832         (call followed by jump define_peephole's): Delete.
10833         (exception_receiver): Likewise.
10834         (builtin_setjmp_receiver): Likewise.
10835         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
10836
10837 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
10838
10839         PR c/11658
10840         PR c/13994
10841         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
10842         on langhooks.h.
10843         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
10844         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
10845         Include langhooks.h.  Replace c_common_truthvalue_conversion
10846         with the truthvalue_conversion language hook throughout.
10847         (expr_no_commas): Call default_conversion before save_expr
10848         for the first term of the production 'x ? : y'.
10849         * c-common.c (c_common_truthvalue_conversion): Remove
10850         obsolete block.  Invoke recursively the hook instead
10851         of this function.
10852         * c-convert.c (convert): handle ERROR_MARK_NODE.
10853         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
10854         returned by the truthvalue_conversion language hook.
10855         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
10856         c_objc_common_truthvalue_conversion.
10857         * c-objc-common.c (c_objc_common_truthvalue_conversion):
10858         New function.
10859         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
10860         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
10861         c_objc_common_truthvalue_conversion.
10862
10863 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10864
10865         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
10866         of gen_rtx.
10867         (LIBCALL_VALUE): Likewise.
10868         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
10869         gen_rtx_CC0 instead of gen_rtx.
10870         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
10871         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
10872         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
10873         gen_rtx.
10874         (m68hc11_emit_logical): Likewise.
10875
10876 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10877
10878         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
10879         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
10880         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
10881         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
10882         config/mips/mips.md, config/mmix/mmix.c,
10883         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
10884         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
10885         config/rs6000/altivec.md, config/s390/s390.c,
10886         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
10887         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
10888         Use const0_rtx instead of GEN_INT (0).  Do the same for other
10889         constants that are readily available.
10890
10891 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10892
10893         * doloop.c, optabs.c, regmove.c, sched-deps.c,
10894         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
10895         instead of GEN_INT (0).  Do the same for other constants that
10896         are readily available.
10897
10898 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10899
10900         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
10901         gen_rtx.
10902         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
10903         instead of gen_rtx.
10904         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
10905         gen_rtx.
10906         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
10907         gen_rtx_ASHIFT instead of gen_rtx.
10908         (udivmodqi4): Likewise.
10909
10910 2004-02-02  Richard Henderson  <rth@redhat.com>
10911
10912         PR target/13789
10913         * expr.c (store_expr): Use force_operand before emit_move_insn.
10914
10915 2004-02-02  Jeff Law  <law@redhat.com>
10916             Roger Sayle  <roger@eyesopen.com>
10917
10918         * tree.c (commutative_tree_code, associative_tree_code): New
10919         functions.
10920         (iterative_hash_expr): Use commutative_tree_code.
10921         * tree.h (commutative_tree_code, associative_tree_code): Declare.
10922         * fold-const.c (operand_equal_p): Use commutative_tree_code
10923         rather than inlining the commutativity check.
10924         (fold): Likewise.
10925
10926 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10927
10928         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
10929         * config/frv/frv-protos.h: Remove the prototype for
10930         frv_function_arg_keep_as_reference.
10931         * config/frv/frv.c (frv_function_arg_keep_as_reference):
10932         Remove.
10933         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
10934         * config/stormy16/stormy16.h: Remove the commented-out
10935         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
10936
10937 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
10938
10939         PR target/13914
10940         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
10941         for retaddr_column.
10942
10943 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10944
10945         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
10946         gen_rtx.
10947
10948 2004-02-02  Eric Christopher  <echristo@redhat.com>
10949             Zack Weinberg  <zack@codesourcery.com>
10950
10951         * c-opts.c (c_common_handle_option): Add -finput-charset.
10952         * c.opt: Ditto.
10953         * cppcharset.c (one_iso88591_to_utf8): Remove.
10954         (convert_iso88591_utf8): Ditto.
10955         (conversion_tab): Remove 8859-1 converter.
10956         (_cpp_input_to_utf8): Remove.
10957         (_cpp_init_iconv_buffer): Ditto.
10958         (_cpp_close_iconv_buffer): Ditto.
10959         (_cpp_convert_input): New function.
10960         (_cpp_default_encoding): Ditto.
10961         * cpphash.h: Add/remove prototypes for above.
10962         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
10963         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
10964         for narrow execution and input character sets.
10965         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
10966         * doc/cppopts.texi: Document -finput-charset.
10967
10968 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
10969
10970         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
10971         against FIRST_PSEUDO_REGISTER.
10972
10973 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
10974
10975         * doc/invoke.texi (SPARC options): Further improve.
10976
10977 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10978
10979         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
10980         config/h8300/h8300.c, config/ip2k/ip2k.md,
10981         config/iq2000/iq2000.c, config/mips/mips.c,
10982         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
10983         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
10984         config/v850/v850.md: Fix indentation.
10985
10986 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
10987
10988         * config/sparc/sparc.c (function_arg_slotno): Align TImode
10989         arguments on a 16-byte boundary in the parameter array if ARCH64.
10990         Split handling of TFmode.
10991
10992 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
10993
10994         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
10995         Don't test CONSTANT_P (x).
10996         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
10997         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
10998         Fix misindentation.
10999
11000 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
11001
11002         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
11003
11004 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
11005
11006         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
11007         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
11008         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
11009         config/iq2000/iq2000.c, config/m32r/m32r.c,
11010         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
11011         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
11012         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
11013         config/stormy16/stormy16.c, config/v850/v850.md,
11014         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
11015
11016 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11017
11018         * config/mcore/mcore.c (block_move_sequence): Replace
11019         gen_rtx_CONST_INT with GEN_INT.
11020
11021 2004-02-02  Jan Hubicka  <jh@suse.cz>
11022
11023         * alias.c (record_set): Use hard_regno_nregs.
11024         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
11025         * builtins.c (apply_args_size): Likewise.
11026         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
11027         mark_set_regs, add_stored_regs, mark_referenced_regs,
11028         insert_restore, insert_save, insert_one_insn): Likewise.
11029         * cfgcleanup.c: Include regs.h
11030         (mark_effect, mentions_nonequal_regs): Likewise.
11031         * cfgrtl.c (mark_killed_regs): Likewise
11032         * combine.c (update_table_tick, record_value_for_reg,
11033         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
11034         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
11035         reg_bitfield_target_p, distribute_notes): Likewise.
11036         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
11037         exp_equiv_p, cse_insn): Likewise.
11038         * cselib.c (cselib_lookup): Likewise.
11039         (cselib_invalidate_regno, cselib_record_set): Likewise.
11040         * df.c (df_ref_record): Likewise.
11041         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
11042         Likewise.
11043         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
11044         count_or_remove_death_notes_bb): Likewise.
11045         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
11046         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
11047         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
11048         * integrate.c (mark_stores): Likewise.
11049         * jump.c (delete_prior_computation): Likewise.
11050         * lcm.c (reg_dies, reg_becomes_live): Likewise.
11051         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
11052         * loop.c (LOOP_REGNO_NREGS): Likewise.
11053         * postreload.c (reload_combine, reload_combine_note_store,
11054         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
11055         * ra-colorize.c (combine, color_usable_p, get_free_reg,
11056         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
11057         try_recolor_web, insert_coalesced_conflicts, check_colors,
11058         break_precolored_alias): Likewise.
11059         * ra-debug.c: Include regs.h
11060         (ra_print_rtx_object): Likewise.
11061         * ra-rewrite (choose_spill_colors): Likewise.
11062         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
11063         * ra.c (init_ra): Likewise.
11064         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
11065         peep2_find_free_register): Likewise.
11066         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
11067         * regclass.c (hard_regno_nregs): New array.
11068         (init_reg_modes_once): Initialize it.
11069         (choose_hard_reg_mode): Use it.
11070         (record_reg_classes): Likewise.
11071         * regmove.c (mark_flags_life_zones): Likewise.
11072         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
11073         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
11074         copy_value, maybe_mode_change, find_oldest_value_reg,
11075         copyprop_hardreg_forward_1):
11076         * regs.h (hard_regno_nregs): Declare.
11077         * realod.c (reload_inner_reg_of_subreg): Use it.
11078         (push_reload, combine_reloads, find_dummy_reload,
11079         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
11080         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
11081         reload_adjust_reg_for_mode): Likewise.
11082         * reload1.c (compute_use_by_pseudos, count_pseudo,
11083         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
11084         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
11085         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
11086         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
11087         delete_output_reload): Likewise.
11088         * resource.c (update_live_status, mark_referenced_resources,
11089         mark_set_resources, mark_target_live_regs): Likewise.
11090         * rtlanal.c:  Include regs.h
11091         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
11092         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
11093         subreg_regno_offset, subreg_offset_representable_p,
11094         hoist_test_store): Likewise.
11095         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
11096         * sched-rgn.c (check_live_1, update_live_1): Likewise.
11097         * stmt.c: Include regs.h
11098         (decl_conflicts_with_clobbers_p): Likewise.
11099         * varasm.c (make_decl_rtl): Likewise.
11100         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
11101
11102 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11103
11104         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
11105         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
11106         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
11107         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
11108         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
11109         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11110         config/iq2000/iq2000.h, config/m32r/m32r.c,
11111         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
11112         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
11113         config/mcore/mcore.c, config/mcore/mcore.h,
11114         config/mcore/mcore.md, config/mips/mips.c,
11115         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
11116         config/rs6000/rs6000.c, config/s390/s390.c,
11117         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
11118         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
11119         "gen_rtx (FOO, " with "gen_rtx_FOO (".
11120
11121 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11122
11123         * config/h8300/h8300.md (two peephole2's): New.
11124
11125 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
11126
11127         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
11128         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
11129         (ASM_CPU_SPEC): Likewise
11130         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
11131         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
11132
11133 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11134
11135         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
11136         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
11137         (expand_builtin): Always call expand_builtin_pow.
11138
11139 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11140
11141         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
11142         BUILT_IN_SIGNBITL): New GCC builtins.
11143         * builtins.c (expand_builtin_signbit): New function to RTL expand
11144         calls to signbit, signbitf and signbitl as inline intrinsics.
11145         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
11146         (fold_builtin_signbit): New function to perform constant folding
11147         of signbit, signbitf and signbitl.
11148         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
11149
11150         * doc/extend.texi: Document new signbit{,f,l} builtins.
11151
11152 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
11153
11154         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
11155
11156 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
11157
11158         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
11159         "mips_const_double_ok" and "simple_memory_operand", which were
11160         removed from the MIPS port with the mips-3_4-rewrite branch merge.
11161         * config/mips/mips.c (mips16_lay_out_constants): Update comment
11162         for removal of simple_memory_operand.
11163
11164 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11165
11166         * config/c4x/c4x.md: Use GEN_INT instead of
11167         gen_rtx (CONST_INT, ...).
11168
11169 2004-01-31  Richard Henderson  <rth@redhat.com>
11170
11171         * varasm.c (output_constant_pool): Don't zap the pool.
11172
11173 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11174
11175         * genrecog.c (decision_type): Add DT_const_int.
11176         (write_cond) [DT_const_int]: Print a comparison against small
11177         constant.
11178         (write_node): Simplify comparisons against small constants
11179         before printing tests.
11180
11181 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11182
11183         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
11184         instead of gen_rtx_CONST_INT.
11185
11186 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11187
11188         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
11189         instead of gen_rtx_CONST_INT.
11190
11191 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11192
11193         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
11194         hook_bool_CUMULATIVE_ARGS_false.
11195         * targhooks.c (default_strict_argument_naming): Rename to
11196         hook_bool_CUMULATIVE_ARGS_false.
11197         * targhooks.h: Update the prototype for
11198         default_strict_argument_naming.
11199
11200 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11201
11202         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11203         * config/sh/sh.h: Likewise.
11204         * config/sh/sh.md: Likewise.
11205
11206 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
11207
11208         * doc/invoke.texi (SPARC options): Restructure and update.
11209
11210 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11211
11212         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
11213         STRICT_ARGUMENT_NAMING): Poison.
11214         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
11215         hook_bool_tree_false.
11216         * targhooks.c (default_promote_function_args): Remove.
11217         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
11218         Don't check incoming.
11219         (default_strict_argument_naming): Don't use
11220         STRICT_ARGUMENT_NAMING.
11221         * targhooks.h: Remove the prototype for
11222         default_promote_function_args.
11223
11224 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11225
11226         * config/i386/i386-protos.h: Remove the prototype for
11227         ix86_setup_incoming_varargs.
11228         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
11229         (ix86_setup_incoming_varargs): Make it static.
11230         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
11231
11232 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11233
11234         * alloc-pool.c: Fix comment typos.
11235         * builtin-types.def: Likewise.
11236         * builtins.def: Likewise.
11237         * c-pretty-print.c: Likewise.
11238         * df.h: Likewise.
11239         * reload1.c: Likewise.
11240
11241 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11242
11243         * doc/invoke.texi: Follow spelling conventions.
11244         * doc/tm.texi: Likewise.
11245
11246 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11247
11248         * doc/install.texi: Fix typos.
11249         * doc/invoke.texi: Likewise.
11250
11251 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
11252
11253         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
11254         registers as pointers.
11255         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
11256
11257 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
11258
11259         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
11260         and restore it to gen_lowpart_general on exit.
11261         (gen_lowpart_for_combine): Adjust all callers to go through
11262         gen_lowpart.
11263         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
11264         and restore it to gen_lowpart_general on exit.
11265         (gen_lowpart_if_possible): Adjust all callers to go through
11266         gen_lowpart.
11267         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
11268         (gen_lowpart): Declare as pointer to function, initialized to
11269         gen_lowpart_general.
11270         * rtl.h (gen_lowpart): Declare as pointer to function.
11271
11272 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11273
11274         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11275         * calls.c: Likewise.
11276         * emit-rtl.c: Likewise.
11277         * function.c: Likewise.
11278         * reload1.c: Likewise.
11279         * config/i386/cygming.h: Likewise.
11280         * config/i386/i386.c: Likewise.
11281         * config/i386/winnt.c: Likewise.
11282
11283 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
11284
11285         PR bootstrap/9249
11286         * doc/install.texi: document --enable-__cxa_atexit option.
11287         * configure.ac: Disable __cxa_atexit if not supported.
11288         * configure: Regenerate.
11289
11290 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
11291
11292         * ggc-zone.c (ggc_free): New function.
11293
11294 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11295
11296         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
11297         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
11298         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
11299         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
11300         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
11301         config/alpha/alpha.c, config/alpha/alpha.h,
11302         config/alpha/alpha.md, config/alpha/unicosmk.h,
11303         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
11304         config/c4x/c4x-protos.h, config/c4x/c4x.md,
11305         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
11306         config/frv/frvend.c, config/i386/cygming.h,
11307         config/i386/djgpp.h, config/i386/emmintrin.h,
11308         config/i386/gthr-win32.c, config/i386/i386-interix.h,
11309         config/i386/i386-protos.h, config/i386/openbsd.h,
11310         config/i386/winnt.c, config/i386/xm-mingw32.h,
11311         config/i386/xmmintrin.h, config/ia64/ia64.md,
11312         config/iq2000/iq2000.md, config/m32r/m32r.md,
11313         config/m68k/m68k.md, config/mcore/mcore-elf.h,
11314         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
11315         config/mips/iris5gas.h, config/mips/iris6.h,
11316         config/mips/iris6gas.h, config/mips/linux.h,
11317         config/mips/mips.md, config/mips/netbsd.h,
11318         config/mips/openbsd.h, config/mips/windiss.h,
11319         config/pa/fptr.c, config/rs6000/aix.h,
11320         config/rs6000/altivec.h, config/rs6000/darwin.h,
11321         config/rs6000/xcoff.h, config/s390/s390-protos.h,
11322         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
11323         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
11324         config/sparc/sol2.h: Update copyright.
11325
11326 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
11327
11328         * Makefile.in (abs_docdir, abs_srcdir): Define.
11329         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
11330
11331 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11332
11333         * genconfig.c (main): Have CC0_P check its operand even on a
11334         target without cc0.
11335
11336 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11337
11338         * config/alpha/alpha.c: Remove mentions of deprecates macros
11339         in comments, remove some target-independent comments about target
11340         macros, and/or add minimal function comments for target hook
11341         implementations.
11342         * config/avr/avr.c: Likewise.
11343         * config/ia64/ia64.h: Likewise.
11344         * config/ip2k/ip2k.c: Likewise.
11345         * config/iq2000/iq2000.c: Likewise.
11346         * config/m32r/m32r.h: Likewise.
11347         * config/m68hc11/m68hc11.c: Likewise.
11348         * config/mcore/mcore.c: Likewise.
11349         * config/mmix/mmix.c: Likewise.
11350         * config/mn10300/mn10300.c: Likewise.
11351         * config/pa/pa.c: Likewise.
11352         * config/pdp11/pdp11.c: Likewise.
11353         * config/rs6000/rs6000.h: Likewise.
11354         * config/sh/sh.c: Likewise.
11355         * config/sh/sh.h: Likewise.
11356         * config/sparc/sparc.c: Likewise.
11357         * config/sparc/sparc.h: Likewise.
11358         * config/stormy16/stormy16.c: Likewise.
11359         * config/xtensa/xtensa.c: Likewise.
11360
11361 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11362
11363         PR optimization/12147
11364         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
11365         RELOAD_FOR_OPADDR_ADDR.
11366         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
11367         might be reused as RELOAD_FOR_OPADDR_ADDR register.
11368
11369 2004-01-30  Jan Hubicka  <jh@suse.cz>
11370
11371         * reload.c (get_secondary_mem): Fix updating of
11372         secondary_memlocs_elim_used.
11373
11374 2004-01-30  Richard Henderson  <rth@redhat.com>
11375
11376         * varasm.c (struct rtx_const, struct pool_constant): Remove.
11377         (MAX_RTX_HASH_TABLE): Remove.
11378         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
11379         (first_pool, last_pool, pool_offset): Remove.
11380         (struct rtx_constant_pool): Split out from ...
11381         (struct varasm_status): ... here.  Reference one via pointer.
11382         (struct constant_descriptor_rtx): Merge struct pool_constant.
11383         (SYMHASH): Remove.
11384         (decode_rtx_const): Remove.
11385         (const_hash_rtx, compare_constant_rtx): Remove.
11386         (record_constant_rtx): Remove.
11387         (const_desc_rtx_hash, const_desc_rtx_eq): New.
11388         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
11389         (const_rtx_hash_1, const_rtx_hash): New.
11390         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
11391         (simplify_subtraction): Use simplify_rtx.
11392         (force_const_mem): Rewrite to use new data structures.
11393         (find_pool_constant): Likewise.
11394         (get_pool_constant, get_pool_constant_mark,
11395         get_pool_constant_for_function, get_pool_mode,
11396         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
11397         (output_constant_pool_2): Split out from output_constant_pool.
11398         (output_constant_pool_1): Likewise.  Use new pool datastructures.
11399         (output_constant_pool): Zap entire pool datastructure.
11400         (mark_constant): Use new pool datastructures.
11401         (mark_constants): Use for_each_rtx.
11402         (mark_constant_pool): Use new pool datastructures.
11403
11404 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
11405
11406         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
11407         Copy operands[1] to pseudo for simplify_gen_subreg.
11408
11409 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11410
11411         * gcse.c (bypass_block): Fix a typo in the previous check-in
11412         to the file.
11413
11414 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
11415
11416         * toplev.c: Include alloc-pool.h.
11417         * Makefile.in (toplev.c): Update dependencies.
11418
11419 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11420
11421         * combine.c (simplify_shift_const, case XOR): Be careful when
11422         commuting XOR with ASHIFTRT.
11423
11424 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11425             Eric Botcazou  <ebotcazou@libertysurf.fr>
11426
11427         * config/sparc/sparc-protos.h: Remove the prototype for
11428         sparc_builtin_saveregs.
11429         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11430         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11431         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11432         (TARGET_STRUCT_VALUE_RTX): Likewise.
11433         (TARGET_RETURN_IN_MEMORY): Likewise.
11434         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11435         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11436         (sparc_builtin_saveregs): Make it static.
11437         (sparc_promote_prototypes): New.
11438         (sparc_struct_value_rtx): Likewise.
11439         (sparc_return_in_memory): Likewise.
11440         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
11441         (PROMOTE_FUNCTION_RETURN): Likewise.
11442         (RETURN_IN_MEMORY): Likewise.
11443         (STRUCT_VALUE): Likewise.
11444         (STRUCT_VALUE_INCOMING): Likewise.
11445         (EXPAND_BUILTIN_SAVEREGS): Likewise.
11446         (STRICT_ARGUMENT_NAMING): Likewise.
11447         (PROMOTE_PROTOTYPES): Likewise.
11448
11449         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
11450
11451 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11452
11453         PR c/12818
11454         * varasm.c (const_hash_1) <STRING_CST>: Use the
11455         address to compute the hash value if flag_writable_strings.
11456         (compare_constant) <STRING_CST>: Compare the addresses
11457         if flag_writable_strings.
11458         (build_constant_desc): Do not copy the expression for a
11459         STRING_CST if flag_writable_strings.
11460
11461 2004-01-30  Jan Hubicka  <jh@suse.cz>
11462
11463         * alloc-pool.c: Include hashtab.h
11464         (alloc_pool_descriptor): New structure
11465         (alloc_pool_hash): New global variable.
11466         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
11467         (create_alloc_pool): Update statistics.
11468         (free_alloc_pool): Likewise.
11469         (pool_alloc): Likewise.
11470         (output_info): New structure
11471         (print_statistics, dump_alloc_pool_statistics): New function.
11472         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
11473         (dump_alloc_pool_statistics): Declare.
11474         * toplev.c (finalize):  Dump statistics.
11475
11476         * reload.c (secondary_memlocs_elim_used): New static variable.
11477         (get_secondary_mem): Update it.
11478         (find_reloads): Use it.
11479
11480 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
11481
11482         * toplev.c: Fix broken checkin of 2003-12-30, again.
11483
11484 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11485
11486         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
11487         s390*-*-* targets by specifying a 'nop' insn.
11488         * configure: Regenerate.
11489
11490 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11491
11492         PR target/11475
11493         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
11494
11495 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11496
11497         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
11498         of addr when creating MEM copy.
11499
11500 2004-01-29  Devang Patel  <dpatel@apple.com>
11501
11502         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
11503
11504 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
11505
11506         PR inline-asm/6162
11507         * reload.c (find_reloads): Only support one pair of commutative
11508         operands.
11509
11510 2004-01-29  Roger Sayle  <roger@eyesopen.com>
11511
11512         PR java/13824
11513         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
11514         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
11515         recursion.
11516
11517 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
11518
11519         * config/frv/frv.c: Don't mention deprecated macros in
11520         comments.  Remove some target-independent comments about
11521         target macros.
11522         * config/frv/frv.h: Likewise.
11523
11524 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11525
11526         * cfghooks.c (split_block): Set probability and count of the
11527         new edge.
11528
11529 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
11530
11531         * dwarf2out.c (struct die_struct): Added field decl_id.
11532         (decl_die_table): Changed to hash table.
11533         (decl_die_table_allocated): Deleted.
11534         (decl_die_table_in_use): Deleted.
11535         (DECL_DIE_TABLE_INCREMENT): Deleted.
11536         (decl_die_table_hash): New function.
11537         (decl_die_table_eq): New function.
11538         (lookup_decl_die): Lookup in a hash table.
11539         (equate_decl_number_to_die): Insert into a hash table.
11540         (dwarf2out_init): Init hash table decl_die_table.
11541
11542 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11543
11544         PR optimization/13424
11545         * expr.c (store_constructor): Revert 2003-12-03 change.
11546
11547         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
11548         expected before returning early.  Avoid sharing RTL if they
11549         need to be changed.
11550
11551         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
11552         handling so that memory attributes are preserved.  Don't call
11553         ix86_set_move_mem_attrs.
11554         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
11555         (ix86_expand_clrstr): Rename src argument to
11556         dst.  Rework rep_stos and strset handling so that memory attributes
11557         are preserved.
11558         (ix86_expand_strlen): Pass src argument to
11559         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
11560         memory attributes are preserved.
11561         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
11562         change_address instead of gen_rtx_MEM.
11563         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
11564         expanders.
11565         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
11566         strmovqi, strmovqi_rex64): Remove.
11567         (rep_mov*, strmov*): Prefix insn names with *.
11568         (strset, strset_singleop, rep_stos): New expanders.
11569         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
11570         strsetqi, strsetqi_rex64): Remove.
11571         (rep_stos*, strset*): Prefix insn names with *.
11572         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
11573         to SImode.
11574         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
11575         are preserved.
11576         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
11577         Prefix insn names with *.
11578         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
11579         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
11580         (strlenqi_1): New expander.
11581         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
11582
11583 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11584
11585         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
11586         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
11587         verify_flow_info): Declaration removed.
11588         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
11589         (debug_bb, debug_bb_n): Add argument to dump_bb call.
11590         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
11591         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
11592         instead of delete_block.
11593         * cfghooks.c: Include timevar.h and toplev.h.
11594         (cfg_hooks): Define here.
11595         (verify_flow_info, dump_bb): Moved from cfg.c.
11596         (redirect_edge_and_branch, redirect_edge_and_branch_force,
11597         split_block, split_block_after_labels, move_block_after,
11598         delete_basic_block, split_edge, create_basic_block,
11599         create_empty_bb, can_merge_blocks_p, merge_blocks,
11600         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
11601         New functions.
11602         * cfghooks.h (struct cfg_hooks): Added fields name,
11603         make_forwarder_block, tidy_fallthru_edge and
11604         move_block_after. Changed type of verify_flow_info, dump_bb,
11605         split_block fields. Renamed cfgh_split_edge and delete_block
11606         fields.
11607         (redirect_edge_and_branch, redirect_edge_and_branch_force,
11608         split_block, delete_block, split_edge, create_basic_block,
11609         can_merge_blocks_p, merge_blocks): Macros removed.
11610         (cfg_hooks): Do not export.
11611         (verify_flow_info, dump_bb, redirect_edge_and_branch,
11612         redirect_edge_and_branch_force, split_block, split_block_after_labels,
11613         move_block_after, delete_basic_block, split_edge, create_basic_block,
11614         create_empty_bb, can_merge_blocks_p, merge_blocks,
11615         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
11616         Declare.
11617         (cfg_layout_rtl_cfg_hooks): Declare.
11618         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
11619         New functions.
11620         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
11621         (redirect_edge_with_latch_update): Removed.
11622         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
11623         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
11624         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
11625         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
11626         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
11627         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
11628         cfghooks.c.
11629         (rtl_create_basic_block): Coding style fix.
11630         (rtl_tidy_fallthru_edge, rtl_move_block_after,
11631         rtl_make_forwarder_block): New functions.
11632         (update_cfg_after_block_merging): Removed.
11633         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
11634         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
11635         to dump_bb.
11636         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
11637         find_if_case_2): Don't update dominators.
11638         * timevar.def (TV_CFG_VERIFY): New.
11639         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
11640         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
11641         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
11642         (remove_bbs): Don't call remove_bbs.
11643         (create_preheader): Use make_forwarder_block.
11644         (mfb_keep_just, mfb_update_loops): New static functions.
11645
11646 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
11647
11648         * config/avr/avr.h: Remove target-independent comments about
11649         target macros.
11650
11651 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
11652
11653         * timevar.c (timevar_print): Mention when checking is enabled.
11654
11655 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
11656
11657         * c-lex.c (c_lex): Rename to...
11658         (c_lex_with_flags): Add new parameter to get CPP flags.
11659         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
11660         * c-pragma.h (c_lex_with_flags): Declare.
11661
11662 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11663
11664         * config/mcore/mcore.c (mcore_external_libcall): Add a
11665         comment.
11666         (mcore_return_in_memory): Likewise.
11667
11668 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11669
11670         * config/mcore/mcore-protos.h: Remove the prototype for
11671         mcore_setup_incoming_varargs.
11672         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11673         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
11674         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11675         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11676         (TARGET_STRUCT_VALUE_RTX): Likewise.
11677         (TARGET_RETURN_IN_MEMORY): Likewise.
11678         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11679         (mcore_setup_incoming_varargs): Make it static.  Receive the
11680         first argument by reference.  Add argument second_time.
11681         (mcore_external_libcall): New.
11682         (mcore_return_in_memory): Likewise.
11683         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
11684         (PROMOTE_FUNCTION_RETURN): Likewise.
11685         (STRUCT_VALUE): Likewise.
11686         (RETURN_IN_MEMORY): Likewise.
11687         (SETUP_INCOMING_VARARGS): Likewise.
11688         (PROMOTE_PROTOTYPES): Likewise.
11689         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11690
11691 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11692
11693         * config/m32r/m32r-protos.h: Remove the prototype for
11694         m32r_setup_incoming_varargs.
11695         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
11696         (TARGET_STRUCT_VALUE_RTX): Likewise.
11697         (TARGET_RETURN_IN_MEMORY): Likewise.
11698         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11699         (m32r_return_in_memory): New.
11700         (m32r_setup_incoming_varargs): Make it static.
11701         * config/m32r/m32r.h: Remove #undef of
11702         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
11703         definitions of PROMOTE_FUNCTION_ARGS and
11704         PROMOTE_FUNCTION_RETURN.
11705         (PROMOTE_PROTOTYPES): Remove.
11706         (RETURN_IN_MEMORY): Likewise.
11707         (STRUCT_VALUE): Likewise.
11708
11709 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11710
11711         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
11712         (TARGET_STRUCT_VALUE_RTX): Likewise.
11713         (m68k_struct_value_rtx): Likewise.
11714         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
11715         STRUCT_VALUE_REGNUM.
11716         (PROMOTE_PROTOTYPES): Remove.
11717         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
11718         STRUCT_VALUE_REGNUM.
11719         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
11720         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
11721
11722 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11723
11724         * config/stormy16/stormy16.c
11725         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
11726         TARGET_BUILD_BUILTIN_VA_LIST.
11727
11728 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11729
11730         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
11731         (TARGET_STRUCT_VALUE_RTX): Likewise.
11732         (TARGET_RETURN_IN_MEMORY): Likewise.
11733         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11734         (v850_return_in_memory): Likewise.
11735         (v850_setup_incoming_varargs): Likewise.
11736         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
11737         (SETUP_INCOMING_VARARGS): Likewise.
11738         (RETURN_IN_MEMORY): Likewise.
11739         (STRUCT_VALUE): Likewise.
11740
11741 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11742
11743         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
11744         (fr30_setup_incoming_varargs): Don't use
11745         STRICT_ARGUMENT_NAMING.
11746         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
11747         (STRICT_ARGUMENT_NAMING): Likewise.
11748
11749 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11750
11751         * config/frv/frv-protos.h: Remove the prototype for
11752         frv_expand_builtin_saveregs.
11753         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
11754         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11755         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
11756         STRUCT_VALUE_REGNUM.
11757         (frv_expand_builtin_saveregs): Make it static.
11758         (frv_struct_value_rtx): New.
11759         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
11760
11761 2004-01-29  Jan Hubicka  <jh@suse.cz>
11762
11763         PR c++/12850
11764         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
11765         initial pointers.
11766         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
11767         for functions that will be only inlined.
11768         (cgraph_mark_function_to_output): Likewise.
11769         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
11770         do not clear function body.
11771         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
11772         (tree_rest_of_compilation): Reorganize the logic releasing function
11773         body to use callgraph datastructure.
11774
11775 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11776
11777         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
11778         to register_operand.
11779
11780 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
11781
11782         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
11783         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
11784         match_operand expressions so that all match_dups appear
11785         lexically after their corresponding match_operands.
11786
11787 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11788
11789         * config/h8300/h8300.c (WORD_REG_USED): Use
11790         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
11791         (compute_saved_regs): Likewise.
11792         (h8300_expand_prologue): Likewise.  Allocate locals after
11793         saving registers.
11794         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
11795         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
11796         registers.
11797         (h8300_initial_elimination_offset): Adjust for the new frame
11798         layout, which swaps flips the order of locals and saved
11799         registers.
11800         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
11801         (HARD_FRAME_POINTER_REGNUM): New.
11802         (ELIMINABLE_REGS): Add an elimination rule from
11803         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
11804         (REGISTER_NAMES): Add fp.
11805         * config/h8300/h8300.md (FP_REG): Change to 11.
11806         (HFP_REG): New.
11807
11808 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11809
11810         * genrecog.c (write_node): Remove a useless local variable.
11811
11812 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
11813
11814         * Makefile.in (options.c options.h): Use stamp file s-options to
11815         avoid unnecessary rebuilds.
11816         (options.o): New target listing dependencies.
11817         (gtyp-gen.h): Use stamp file s-gtyp-gen.
11818         (STAGESTUFF): Add s-gtyp-gen.
11819
11820 2004-01-28  Richard Henderson  <rth@redhat.com>
11821
11822         * ggc.h (ggc_free): Declare.
11823         * ggc-common.c (ggc_realloc): Use it.
11824         * ggc-page.c: Remove lots of inline markers.
11825         (globals): Add free_object_list.
11826         (ggc_alloc): Tidy.
11827         (ggc_free, validate_free_objects): New.
11828         (poison_pages): Provide default.
11829         (ggc_collect): Call validate_free_objects; emit markers to
11830         the debug file.
11831
11832 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
11833             Jim Wilson  <wilson@specifixinc.com>
11834
11835         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
11836         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
11837         scratch pointer.
11838         (ia64_secondary_reload_class): Delete case GR_REGS.
11839         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
11840         Do not allocate a scratch register.
11841         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
11842
11843 2004-01-28  Jan Hubicka  <jh@suse.cz>
11844
11845         * gcse.c (bypass_block): Prevent edges to be unified when we are
11846         about to emit compenstation code.
11847
11848 2004-01-28  Nick Clifton  <nickc@redhat.com>
11849
11850         * config/arm/arm.c (arm_expand_builtin): Force second argument of
11851         the setcwx insn into a register.
11852
11853 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
11854
11855         * config/fp-bit.c (pack_d): When using paired doubles to implement
11856         a long double, round the high part separately.
11857         (unpack_d): Fix the case in which the high part is a power of two
11858         and the low part is a nonzero value of the opposite sign.
11859
11860 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11861
11862         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11863         (TARGET_STRUCT_VALUE_RTX): Likewise.
11864         (c4x_external_libcall): Likewise.
11865         (c4x_struct_value_rtx): Likewise.
11866         * config/c4x/c4x.h: Remove.
11867         (STRUCT_VALUE_REGNUM): Likewise.
11868         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11869
11870 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11871
11872         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
11873         (TARGET_STRUCT_VALUE_RTX): Likewise.
11874         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
11875         (STRUCT_VALUE): Likewise.
11876         (PROMOTE_PROTOTYPES): Likewise.
11877
11878 2004-01-27  Roger Sayle  <roger@eyesopen.com>
11879
11880         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
11881         CONST_INT before using INTVAL.
11882
11883 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
11884
11885         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
11886         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
11887         frame if !TARGET_BACKCHAIN.
11888         * config/s390/s390.md ("allocate_stack"): Use pattern only if
11889         TARGET_BACKCHAIN.
11890         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
11891
11892 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
11893
11894         * ia64.c (ia64_function_arg): When placing HFAs in integer
11895         registers, do not special case the mode used for complex
11896         types.  Do not advance int_regs until the current register
11897         is full.
11898
11899 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
11900
11901         PR target/7297
11902         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
11903
11904 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
11905
11906         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
11907         slow, unaligned loads and stores while debugging.  Fix formatting.
11908
11909 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
11910
11911         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
11912         of computing wmode.
11913         (restore_stack_nonlocal): Same.
11914
11915 2004-01-27  Devang Patel <dpatel@apple.com>
11916
11917         * Makefile.in (dwarf2out.o): Depend on input.h
11918         * dbxout.c (dbx_debug_hooks): Add new empty hook for
11919         imported_module_or_decl.
11920         (xcoff_debug_hooks): Same.
11921         * sdbout.c (sdb_debug_hooks): Same.
11922         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
11923         * debug.c (do_nothing_debug_hooks): Same.
11924         (debug_nothing_tree_tree): New function.
11925         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
11926         * dwarf2out.c: Include input.h.
11927         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
11928         (remove_child_TAG): New function.
11929         (dwarf_tag_name): Handle DW_TAG_imported_module.
11930         (gen_subprogram_die): Equate decl number to declaration die. Do not
11931         remove all children dies while reusing declaration die for definition.
11932         Instead, selectively remove only formal parameters.
11933         (gen_variable_die): Equate variable decl to declaration die.
11934         (gen_field_die): Equate field decl to line number.
11935         (force_namespace_die): Replace it with ...
11936         (force_decl_die): ... this.
11937         (force_type_die): New function.
11938         (setup_namespace_context): Replace use of force_namespace_die() with
11939         force_decl_die().
11940         (gen_namespace_die): Same.
11941         (dwarf2out_imported_module_or_decl): New function.
11942
11943 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
11944
11945         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
11946         on CQImode and CHImode incoming arguments in register a7.
11947         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
11948         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
11949         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
11950         xtensa_copy_incoming_a7 before reload.
11951
11952 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
11953
11954         * coverage.c (get_coverage_counts): Give a different message
11955         if flag_guess_branch_prob is set.
11956         * predict.c (counts_to_freqs): Return an int.
11957         (estimate_bb_frequencies): If counts_to_freqs returns zero,
11958         calculate estimates.
11959
11960 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
11961
11962         * config/iq2000/iq2000-protos.h: Remove the prototype for
11963         iq2000_setup_incoming_varargs.
11964         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11965         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11966         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11967         (TARGET_STRUCT_VALUE_RTX): Likewise.
11968         (TARGET_RETURN_IN_MEMORY): Likewise.
11969         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11970         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11971         (iq2000_return_in_memory): Likewise.
11972         (iq2000_setup_incoming_varargs): Make it static.  Receive the
11973         first argument by reference.
11974         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
11975         (PROMOTE_FUNCTION_RETURN): Likewise.
11976         (PROMOTE_PROTOTYPES): Likewise.
11977         (RETURN_IN_MEMORY): Likewise.
11978         (STRUCT_VALUE): Likewise.
11979         (SETUP_INCOMING_VARARGS): Likewise.
11980         (STRICT_ARGUMENT_NAMING): Likewise.
11981
11982 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
11983
11984         * fixinc/fixinc.c (test_test): Initialize res.
11985         (start_flexer): Initialize pz_cmd_save.
11986
11987 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
11988
11989         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
11990         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
11991
11992 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
11993
11994         PR 7198
11995         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
11996         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
11997         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
11998         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
11999         Possibly rename pattern for consistency.
12000         Remove ??? comments suggesting that this be done.
12001         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
12002         New patterns.
12003         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
12004         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
12005         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
12006         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
12007         Update to match.
12008
12009 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
12010
12011         * config/arm/arm.c (output_return_instruction): Only restore IP
12012         into SP if frame_pointer_needed.
12013
12014 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12015
12016         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12017         for SCmode and DCmode if ARCH32.
12018         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
12019         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
12020         if ARCH32.
12021         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
12022         if ARCH32.
12023         (BASE_OUTGOING_VALUE_REG): Likewise.
12024
12025 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12026
12027         PR target/10904
12028         PR target/13058
12029         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
12030         Forbid mode changes from SImode for lower FP regs if ARCH64.
12031
12032 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
12033
12034         * Makefile.in (bt-load.o): Depend on except.h.
12035         * bt-load.c (except.h): #include.
12036         (compute_defs_uses_and_gen): If insn at end of BB can throw
12037         within this function, consider registers used by it unavailable for
12038         btr migration.
12039         (move_btr_def): If insn at end of BB can throw, insert before rather
12040         than after.
12041
12042         * flags.h (flag_btr_bb_exclusive): Declare.
12043         * toplev.c (flag_btr_bb_exclusive): New variable.
12044         (f_options): Add btr-bb-exclusive.
12045         * bt-load.c (augment_live_range): Restore old behaviour if
12046         flag_btr_bb_exclusive is set.
12047         * common.opt: Add entry for -fbtr-bb-exclusive.
12048         * opts.c (common_handle_options): Same.
12049         * doc/invoke.texi: Document -fbtr-bb-exclusive.
12050
12051         * bt-load.c (btrs_live_at_end): New variable.
12052         (compute_defs_uses_and_gen): Compute its pointed-to array.
12053         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
12054         (augment_live_range): When augmenting with a new dominator,
12055         use only its btrs_live_at_end set, but also add in the full set
12056         of the old dominator.
12057         (btr_def_live_range): Use btrs_live_at_end.
12058         (move_btr_def): Set other_btr_uses_before_def, and move new set
12059         to the end of the basic block, if appropriate.
12060         (migrate_btr_defs): Allocate and free btrs_live_at_end.
12061
12062         * bt-load.c (basic_block_freq): Remove outdated comment.
12063
12064 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
12065
12066         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
12067         (PREDICATE_CODES): Remove duplicate.
12068         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
12069         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
12070         (MASK_PROFILE_KERNEL): Adjust define.
12071
12072 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
12073
12074         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
12075         of long string literals from 32 bytes to sizeof (void *) when !-Os
12076         and to 1 with -Os.
12077
12078 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12079
12080         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
12081         constant addresses in the normal mode.
12082
12083 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12084
12085         * system.h (CHAR_BITFIELD): Delete.
12086         (BOOL_BITFIELD): New.
12087         * c-decl.c (c_scope): Use BOOL_BITFIELD.
12088         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
12089
12090 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12091
12092         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12093         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12094         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12095         (TARGET_STRUCT_VALUE_RTX): Likewise.
12096         (TARGET_RETURN_IN_MEMORY): Likewise.
12097         (arc_return_in_memory): Likewise.
12098         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
12099         (PROMOTE_FUNCTION_RETURN): Likewise.
12100         (RETURN_IN_MEMORY): Likewise.
12101         (STRUCT_VALUE): Likewise.
12102
12103 2004-01-26  Richard Henderson  <rth@redhat.com>
12104
12105         * c-parse.in (extension): Use itype.
12106         (SAVE_EXT_FLAGS): Don't allocate a tree.
12107         (RESTORE_EXT_FLAGS): Don't read a tree.
12108
12109 2004-01-26  Jan Hubicka  <jh@suse.cz>
12110
12111         * cselib.c (discard_useless_values):  Clear out value pointer pointing
12112         to datastructure to be recycled.
12113
12114 2004-01-25  Jan Hubicka  <jh@suse.cz>
12115
12116         * genextract.c (main): Do not output the memset when not checking.
12117
12118 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12119
12120         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
12121         switch statement instead of a chain of if statements.
12122
12123 2004-01-26  Jeff Law  <law@redhat.com>
12124
12125         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
12126         acute accents for Petur Runolfsson's entry.
12127
12128 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12129
12130         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
12131         (TARGET_RETURN_IN_MEMORY): Likewise.
12132         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
12133         (RETURN_IN_MEMORY): Likewise.
12134
12135 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12136
12137          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
12138          unaligned load/store into smaller loads and stores.
12139
12140 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12141
12142         * function.c (assign_parms): Do not assign
12143         long long argument to memory in prologue if
12144         is it loaded into register.
12145
12146 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12147
12148          PR middle-end/13779
12149          * expr.c (emit_group_load): split constant
12150          correctly into register components of PARALLEL insn.
12151
12152 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12153
12154         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
12155         Use adjust_address_nv directly with appropriate mode.
12156         (restore_stack_nonlocal): Ditto.
12157
12158 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12159
12160         * config/xtensa/xtensa-protos.h: Remove the prototype for
12161         xtensa_builtin_saveregs.
12162         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12163         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12164         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12165         (TARGET_STRUCT_VALUE_RTX): Likewise.
12166         (TARGET_RETURN_IN_MEMORY): Likewise.
12167         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12168         (xtensa_builtin_saveregs): Make it static.
12169         (xtensa_return_in_memory): New.
12170         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
12171         (PROMOTE_FUNCTION_RETURN): Likewise.
12172         (PROMOTE_PROTOTYPES): Likewise.
12173         (STRUCT_VALUE): Likewise.
12174         (RETURN_IN_MEMORY): Likewise.
12175         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12176
12177 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12178
12179         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
12180         (arm_setup_incoming_varargs): Likewise.
12181         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
12182
12183 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12184
12185         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
12186         (cris_setup_incoming_varargs): Likewise.
12187         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
12188
12189 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12190
12191         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
12192         (ns32k_struct_value_rtx): Likewise.
12193         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
12194         NS32K_STRUCT_VALUE_REGNUM.
12195
12196 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12197
12198         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12199         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12200         (TARGET_STRUCT_VALUE_RTX): Likewise.
12201         (arm_struct_value_rtx): Likewise.
12202         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
12203         (STRUCT_VALUE): Likewise.
12204         (STRUCT_VALUE_REGNUM): Likewise.
12205         (PROMOTE_PROTOTYPES): Likewise.
12206
12207 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12208
12209         * config/ia64/ia64-protos.h: Remove the prototype for
12210         ia64_setup_incoming_varargs and ia64_return_in_memory.
12211         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
12212         (TARGET_RETURN_IN_MEMORY): Likewise.
12213         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12214         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12215         (ia64_setup_incoming_varargs): Adjust the arguments to meet
12216         the requirement of TARGET_SETUP_INCOMING_VARARGS.
12217         (ia64_return_in_memory): Make it static.  Change the return
12218         type to bool from int.  Add an argument.
12219         (ia64_struct_value_rtx): New.
12220         * config/ia64/ia64.h: Remove commented-out definitions of
12221         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
12222         PROMOTE_PROTOTYPES.
12223         (RETURN_IN_MEMORY): Remove.
12224         (STRUCT_VALUE_REGNUM): Likewise.
12225         (STRICT_ARGUMENT_NAMING): Likewise.
12226
12227 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
12228
12229         PR target/13666
12230         * config/sparc/sparc.c (function_arg_union_value): New function.
12231         (function_arg): Use it to deal with unions.
12232         (function_value): Likewise.  Define 'regbase' only for ARCH64.
12233         Replace a conditional statement by a simpler one.
12234
12235 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
12236
12237         * config/mips/mips.c (mips16_optimize_gp): Delete.
12238         (mips_reorg): Don't call it.
12239
12240 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12241
12242         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
12243         (floatunsqihf2): Remove operand 6.
12244         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
12245         fix patterns.
12246         (ldi_conditional, ldf_conditional): Validate operands.
12247
12248 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12249
12250         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
12251         (HAVE_GAS_HIDDEN): Undefine as interim measure.
12252
12253 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12254
12255         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
12256         memory references if TARGET_EXPOSE_LDP nonzero.
12257
12258 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12259
12260         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
12261
12262 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12263
12264         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
12265         invalid operand combinations.
12266
12267 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12268
12269         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
12270         c4x_legitimate_address_p.  Fix post_modify check.
12271
12272         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
12273         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
12274
12275 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12276
12277         * config/pa/pa-protos.h: Remove the prototype for
12278         hppa_builtin_saveregs.  Add a prototype for
12279         pa_return_in_memory.
12280         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
12281         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12282         (TARGET_STRUCT_VALUE_RTX): Likewise.
12283         (TARGET_RETURN_IN_MEMORY): Likewise.
12284         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12285         (pa_struct_value_rtx): Likewise.
12286         (pa_return_in_memory): Likewise.
12287         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
12288         PA_STRUCT_VALUE_REGNUM.
12289         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
12290         (EXPAND_BUILTIN_SAVEREGS): Remove.
12291         (PROMOTE_PROTOTYPES): Likewise.
12292         (PROMOTE_FUNCTION_RETURN): Likewise.
12293
12294 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12295
12296         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
12297         (TARGET_STRUCT_VALUE_RTX): Likewise.
12298         (vax_struct_value_rtx): Likewise.
12299         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
12300         VAX_STRUCT_VALUE_REGNUM.
12301         (PROMOTE_PROTOTYPES): Remove.
12302
12303 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12304
12305         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
12306
12307 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
12308
12309         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
12310         and MIPS64 have HI/LO interlocks.  Update comment.
12311
12312 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12313
12314         * config/stormy16/stormy16-protos.h: Remove the prototype for
12315         xstormy16_setup_incoming_varargs.
12316         * config/stormy16/stormy16.c
12317         (xstormy16_setup_incoming_varargs): Remove.
12318         (xstormy16_return_in_memory): New.
12319         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12320         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12321         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12322         (TARGET_STRUCT_VALUE_RTX): Likewise.
12323         (TARGET_RETURN_IN_MEMORY): Likewise.
12324         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
12325         (PROMOTE_FUNCTION_RETURN): Likewise
12326         (PROMOTE_PROTOTYPES): Likewise
12327         (RETURN_IN_MEMORY): Likewise
12328         (STRUCT_VALUE): Likewise
12329         (SETUP_INCOMING_VARARGS): Likewise
12330
12331 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12332
12333         * config/mips/mips.c (mips_offset_within_object_p): New function.
12334         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
12335         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
12336         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
12337
12338 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12339
12340         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
12341         (PROMOTE_FUNCTION_RETURN): Likewise.
12342
12343 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12344
12345         * config/mn10300/mn10300-protos.h: Remove the prototype for
12346         mn10300_builtin_saveregs.
12347         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
12348         (TARGET_STRUCT_VALUE_RTX): Likewise.
12349         (TARGET_RETURN_IN_MEMORY): Likewise.
12350         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12351         (mn10300_return_in_memory): Likewise.
12352         (mn10300_builtin_saveregs): Make it static.
12353         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
12354         (RETURN_IN_MEMORY): Likewise.
12355         (STRUCT_VALUE): Likewise.
12356         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12357
12358 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
12359
12360         PR bootstrap/13853
12361         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
12362
12363 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12364
12365         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
12366         using ccr.
12367
12368 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12369
12370         * config/i860/i860-protos.h: Remove the prototype for
12371         i860_saveregs.
12372         * config/i860/i860.c (i860_saveregs): Make it static.
12373         (i860_struct_value_rtx): New.
12374         (TARGET_STRUCT_VALUE_RTX): Likewise.
12375         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12376         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
12377         I860_STRUCT_VALUE_REGNUM.
12378         (EXPAND_BUILTIN_SAVEREGS): Remove.
12379
12380 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12381
12382         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
12383         (TARGET_RETURN_IN_MEMORY): Likewise.
12384         (m68hc11_struct_value_rtx): Likewise.
12385         (m68hc11_return_in_memory): Likewise.
12386         * config/m68hc11/m68hc11.h: Remove a commented-out definition
12387         of PROMOTE_PROTOTYPES.
12388         (RETURN_IN_MEMORY): Remove.
12389         (STRUCT_VALUE_REGNUM): Likewise.
12390
12391 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12392
12393         * config/mmix/mmix-protos.h: Remove the prototype for
12394         mmix_setup_incoming_varargs.
12395         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12396         (TARGET_STRUCT_VALUE_RTX): Likewise.
12397         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12398         (mmix_setup_incoming_varargs): Make it static.
12399         (mmix_struct_value_rtx): New.
12400         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
12401         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
12402         (STRUCT_VALUE_REGNUM): Remove.
12403         (SETUP_INCOMING_VARARGS): Likewise.
12404
12405 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12406
12407         * config/mips/mips-protos.h: Remove the prototypes for
12408         mips_setup_incoming_varargs and mips_return_in_memory.
12409         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12410         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12411         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12412         (TARGET_STRUCT_VALUE_RTX): Likewise.
12413         (TARGET_RETURN_IN_MEMORY): Likewise.
12414         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12415         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12416         (mips_setup_incoming_varargs): Match the prototype for
12417         TARGET_SETUP_INCOMING_VARARGS.
12418         (mips_return_in_memory): Make it static.  Add argument fntype.
12419         (mips_strict_argument_naming): New.
12420         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
12421         (PROMOTE_FUNCTION_ARGS): Likewise.
12422         (PROMOTE_FUNCTION_RETURN): Likewise.
12423         (STRUCT_VALUE): Likewise.
12424         (RETURN_IN_MEMORY): Likewise.
12425         (SETUP_INCOMING_VARARGS): Likewise.
12426         (STRICT_ARGUMENT_NAMING): Likewise.
12427
12428 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12429
12430         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
12431         (TARGET_RETURN_IN_MEMORY): Likewise.
12432         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12433         (ip2k_return_in_memory): Likewise.
12434         (ip2k_setup_incoming_varargs): Likewise.
12435         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
12436         (STRUCT_VALUE): Likewise.
12437         (STRUCT_VALUE_INCOMING): Likewise.
12438         (SETUP_INCOMING_VARARGS): Likewise.
12439
12440 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12441
12442         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
12443         (TARGET_RETURN_IN_MEMORY): Likewise.
12444         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12445         (avr_return_in_memory): Remove.
12446         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
12447         (STRUCT_VALUE): Likewise.
12448         (STRUCT_VALUE_INCOMING): Likewise.
12449         (STRICT_ARGUMENT_NAMING): Likewise.
12450
12451 2004-01-25  Jan Hubicka  <jh@suse.cz>
12452
12453         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
12454
12455 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12456
12457         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
12458         (mips_regno_mode_ok_for_base_p): Declare.
12459         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
12460         (FRAME_POINTER_REGNUM): Renumber to 78.
12461         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
12462         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
12463         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
12464         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
12465         (REG_MODE_OK_FOR_BASE_P): Likewise.
12466         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
12467         entry for 77 to "$arg" and entry for 78 to "$frame".
12468         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
12469         (mips_reg_mode_ok_for_base_p): Remove.
12470         (mips_regno_mode_ok_for_base_p): New function, derived from old
12471         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
12472         restrictions unless we're being strict.
12473         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
12474
12475 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12476
12477         * c-common.h: Fix comment typos.
12478         * c-decl.c: Likewise.
12479         * cgraphunit.c: Likewise.
12480         * combine.c: Likewise.
12481         * et-forest.c: Likewise.
12482         * flow.c: Likewise.
12483         * function.c: Likewise.
12484         * ifcvt.c: Likewise.
12485         * integrate.c: Likewise.
12486         * jump.c: Likewise.
12487         * postreload.c: Likewise.
12488         * varray.c: Likewise.
12489
12490 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12491
12492         * doc/frontends.texi: Update copyright.
12493         * doc/gcov.texi: Likewise.
12494         * doc/gty.texi: Likewise.
12495         * doc/sourcebuild.texi: Likewise.
12496         * doc/standards.texi: Likewise.
12497
12498 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
12499
12500         PR target/12978
12501         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
12502         Remove movstrqi_small because it conflicts with movstrqi_large.
12503
12504 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12505
12506         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12507         (TARGET_STRUCT_VALUE_RTX): Likewise.
12508         (cris_struct_value_rtx): Likewise.
12509         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
12510         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
12511         STRUCT_VALUE_REGNUM.
12512         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
12513
12514 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
12515
12516         PR bootstrap/13848
12517         * cse.c (cse_cc_succs): Change the mode of the source expression
12518         as soon as decide we need a new mode.  Don't permit changing modes
12519         if we found a match in a successor block.
12520         (cse_condition_code_reg): Save original mode of source expression
12521         so that we know whether we have to change the mode in other
12522         insns.
12523
12524 2004-01-24  Jan Hubicka  <jh@suse.cz>
12525
12526         * emit-rtl.c (change_address, adjust_address_1, offset_address,
12527         widen_memory_access):  Return early when there is nothing to change.
12528
12529 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
12530
12531         * simplify-rtx.c (simplify_relational_operation): Don't
12532         simplify address == constant into address + -constant == 0.
12533
12534 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12535
12536         * gcc.c (process_command): Don't internationalize the
12537         Copyright message.
12538         * mips-tfile.c (main): Likewise.
12539
12540 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
12541
12542         * cse.c: (cse_cc_succs) Fix comparison warning.
12543
12544 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12545
12546         * config/h8300/h8300.md: Remove extraneous USE in expanders.
12547
12548 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12549
12550         * config/h8300/h8300-protos.h: Provide prototypes for
12551         h8300_legitimate_constant_p and h8300_legitimate_address_p.
12552         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
12553         (h8300_rtx_ok_for_base_p): Likewise.
12554         (h8300_legitimate_address_p): Likewise.
12555         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
12556         h8300_legitimate_constant_p.
12557         (RTX_OK_FOR_BASE_P): Remove.
12558         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
12559
12560 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12561
12562         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
12563         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
12564         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
12565         (REG_OK_FOR_BASE_STRICT_P): Likewise.
12566         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
12567         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
12568         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
12569         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
12570
12571 2004-01-24  Jan Hubicka  <jh@suse.cz>
12572
12573         * cselib.c (remove_useless_values):  Do not access discarded values.
12574
12575 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
12576
12577         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
12578         arrays.
12579
12580 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
12581
12582         * recog.c: Fix a typo in copyright.
12583
12584 2004-01-23  Andrew Pinski  <apinski@apple.com>
12585
12586         * config/rs6000/rs6000.md (call): Fix misappiled patch.
12587         (call_value): Likewise.
12588
12589 2004-01-23  Richard Henderson  <rth@redhat.com>
12590
12591         PR opt/12941
12592         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
12593         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
12594         if SHIFT_COUNT_TRUNCATED is set.
12595
12596 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
12597
12598         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
12599         separate real and imaginary parts.
12600         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
12601
12602 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
12603
12604         PR target/13674
12605         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
12606         loading into GPR.
12607
12608 2004-01-23  Jan Hubicka  <jh@suse.cz>
12609
12610         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
12611         change.
12612
12613         * alloc-pool.c (align_four): Kill.
12614         (create_alloc_pool): Align size to eight.
12615         (free_alloc_pool, free_pool): Invalidate deallocated data.
12616
12617 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
12618
12619         PR gcc/1532
12620         * cse.c (cse_change_cc_mode): New static function.
12621         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
12622         (cse_condition_code_reg): New function.
12623         * rtl.h (cse_condition_code_reg): Declare.
12624         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
12625         * target.h (struct gcc_target): Add fixed_condition_code_regs and
12626         cc_modes_compatible.
12627         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12628         (TARGET_CC_MODES_COMPATIBLE): Define.
12629         (TARGET_INITIALIZER): Add new initializers.
12630         * targhooks.c (default_cc_modes_compatible): New function.
12631         * targhooks.c (default_cc_modes_compatible): Declare.
12632         * hooks.c (hook_bool_intp_intp_false): New function.
12633         * hooks.h (hook_bool_intp_intp_false): Declare.
12634         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12635         (TARGET_CC_MODES_COMPATIBLE): Define.
12636         (ix86_fixed_condition_code_regs): New static function.
12637         (ix86_cc_modes_compatible): Likewise.
12638         * doc/tm.texi (Condition Code): Document new hooks.
12639
12640 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12641
12642         * fixinc/inclhack.def (bad_lval): Renamed to ...
12643         (alpha_bad_lval): ... this.
12644         Removed file list.
12645         Restrict to alpha*-dec-osf*.
12646         * fixinc/fixincl.x: Regenerate.
12647         * fixinc/tests/base/dirent.h: Remove, moving test ...
12648         * fixinc/tests/base/testing.h: ... here, reflecting new name.
12649
12650 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
12651
12652         PR c/13814
12653         * c-decl.c (diagnose_mismatched_decls): Also discard a
12654         built-in if we encounter an old-style definition with the
12655         same name.
12656
12657 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
12658
12659         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
12660         set to default{32,64}.
12661
12662 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
12663
12664         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
12665         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
12666
12667 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
12668             Olivier Hainque  <hainque@act-europe.fr>
12669
12670         * fold-const.c (fold_binary_op_with_conditional_arg): Only
12671         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
12672
12673 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
12674
12675         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
12676         size for minipool references.
12677
12678 2004-01-23  Roger Sayle  <roger@eyesopen.com>
12679
12680         * real.c (real_floor, real_ceil): Tweak to allow input and output
12681         arguments to overlap.
12682         (real_round): New function to implement round(3m) semantics.
12683         * real.h (real_round): Prototype here.
12684         * builtins.c (fold_builtin_round): New function to constant fold
12685         round, roundf and roundl.
12686         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
12687
12688 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
12689
12690         PR optimization/13819
12691         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
12692         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
12693         (sh_handle_sp_switch_attribute): Remove warning.
12694
12695 2003-11-30  Jan Hubicka  <jh@suse.cz>
12696
12697         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
12698
12699 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
12700
12701         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
12702         may or may not return non-NIL.
12703         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
12704         check CANNOT_CHANGE_MODE_CLASS
12705
12706 2004-01-23  Jan Hubicka  <jh@suse.cz>
12707
12708         * basic-block.h (PROP_POSTRELOAD): New macro.
12709         (CLEANUP_LOG_LINKS): New.
12710         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
12711         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
12712
12713         * cselib.c (value_pool): New.
12714         (new_cselib_val): Use pool.
12715         (cselib_init): Initialize value_pool
12716         (cselib_finish): Free pool.
12717
12718 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12719
12720         * config/sparc/sparc.c (scan_record_type): New function.
12721         (function_arg_slotno): Use it to determine which kinds of
12722         registers the record can be passed in.
12723
12724 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
12725
12726         * config/pa/fptr.c: Fix old-style definition.
12727
12728 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
12729
12730         PR optimization/13724
12731         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
12732         represents the zero bits produced by a ZERO_EXTEND operation.
12733
12734 2004-01-22  Roger Sayle  <roger@eyesopen.com>
12735
12736         PR optimization/13821
12737         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
12738         correctly calculate the lowpart offset of the contracted subreg.
12739
12740 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
12741
12742         * doc/invoke.texi (Optimize Options): Note that --param arguments
12743         are subject to change without notice.
12744
12745 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12746
12747         * config.gcc (mips-sgi-irix6*o32): Removed.
12748         * config/mips/iris6-o32-as.h: Likewise.
12749         * config/mips/iris6-o32-gas.h: Likewise.
12750         * config/mips/iris6-o32.h: Likewise.
12751
12752 2004-01-22  Jan Hubicka  <jh@suse.cz>
12753
12754         * cfgcleanup.c (first_pass): New static variable.
12755         (try_forward_edges):  Add work limiting check for threading.
12756         (try_crossjump_bb):  Add work limiting check for crossjumping.
12757         (try_optimize_cfg):  Maintain first pass variable.
12758
12759 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
12760
12761         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
12762         handles complex and vector modes.
12763
12764 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
12765
12766         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
12767         (REG_OK_FOR_BASE_P_STRICT): Likewise.
12768         (STRICT): Likewise.
12769
12770 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
12771
12772         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
12773         (genrtl_for_stmt): Remove emit_nop calls.
12774
12775 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12776
12777         PR target/13713
12778         PR target/13324
12779         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
12780         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
12781         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
12782
12783 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
12784
12785         * config/arm/arm.c: Include "debug.h".
12786         (thumb_pushpop): Take two new arguments.  Add some commentary.
12787         Output frame information when pushing.
12788         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
12789         thumb_pushpop.
12790         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
12791         offset, and pass it to thumb_pushpop.  Output CFI information.
12792         (thumb_expand_prologue): Add some frame-related markers and notes.
12793
12794 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
12795
12796         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
12797         for TARGET_64BIT.
12798         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
12799         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
12800
12801 2004-01-22  Roger Sayle  <roger@eyesopen.com>
12802             Paolo Bonzini  <bonzini@gnu.org>
12803
12804         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
12805         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
12806         * rtl.h (subreg_lsb_1): Prototype here.
12807         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
12808         sign extensions.
12809
12810 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
12811
12812         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
12813         macro need not be defined if jump-tables should contain
12814         relative addresses only when -fPIC or -fPIC is in effect.
12815
12816 2004-01-22  Jan Hubicka  <jh@suse.cz>
12817
12818         * alias.c (reg_base_value): Turn into varray.
12819         (reg_base_value_size): Kill.
12820         (old_reg_base_value): New deletable varray.
12821         (alias_invariant_size): New variable.
12822         (REG_BASE_VALUE): Update to use varray.
12823         (find_base_value): Likewise.
12824         (record_set): Likewise.
12825         (record_base_value): Likewise.
12826         (memrefs_conflict_p): Likewise.
12827         (record_set): Likewise
12828         (record_base_value): Likewise.
12829         (memrefs_conflict_p): Use alias_invariant_size.
12830         (init_alias_analysis): Use varray; set alias_invariant_size;
12831         rescale other arrays to be sized by maxreg.
12832         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
12833
12834 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
12835
12836         * config/sparc/sparc.c (function_arg_slotno): Use
12837         FLOAT_TYPE_P to detect FP fields in structures.
12838         (function_arg_record_value_1): Likewise.
12839         (function_arg_record_value_2): Likewise.
12840
12841 2004-01-22  Jan Hubicka  <jh@suse.cz>
12842
12843         * function.c (allocate_struct_function): Do not initialize expr, emit
12844         and varasm.
12845         (prepare_function_start): Do it here.
12846         * c-parse.in (maybe_type_qual): Do not produce line number notes.
12847
12848 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
12849
12850         PR target/13559
12851         * config/sparc/sparc.c (function_arg_record_value_3): Revert
12852         to 'word_mode' once the first slot has been filled.
12853
12854 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
12855
12856         * config/sparc/sparc.c (function_arg_record_value_1): Fix
12857         computation of the number of integer registers required.
12858
12859 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12860
12861         * config/i386/i386.md: Simplify certain comparisons of
12862         const_int.
12863
12864 2004-01-21  Andrew Pinski  <apinski@apple.com>
12865
12866         PR target/13785
12867         * config/rs6000/rs6000.md (call_value): Force operand
12868         1 not operand 0 into a register.
12869
12870 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12871
12872         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
12873         unwind-dw2-fde.h: Update copyright.
12874
12875 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12876
12877         * pa-protos.h: Update copyright.
12878         * pa.h: Likewise.
12879         * pa.md: Likewise.
12880
12881 2004-01-21  Caroline Tice  <ctice@apple.com>
12882
12883         PR target/12308
12884         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
12885         flags register.
12886         (fix_truncdfdi2): Likewise.
12887         (fix_truncsfdi2): Likewise.
12888         (*fix_truncdi_1): Likewise.
12889         (fix_truncxfsi2): Likewise.
12890         (fix_truncdfsi2): Likewise.
12891         (fix_truncsfsi2): Likewise.
12892         (*fix_truncsi_1): Likewise.
12893         (fix_truncxfhi2): Likewise.
12894         (fix_truncdfhi2): Likewise.
12895         (fix_truncsfhi2): Likewise.
12896         (*fix_trunchi_1): Likewise.
12897
12898 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12899
12900         * alias.c, basic-block.h, c-common.c, c-common.h,
12901         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
12902         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
12903         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
12904         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
12905         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
12906         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
12907         genautomata.c, genconditions.c, genemit.c, genflags.c,
12908         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
12909         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
12910         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
12911         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
12912         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
12913         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
12914         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
12915         unwind.h, varray.c, varray.h: Update copyright.
12916
12917 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12918
12919         * config/h8300/coff.h: Update copyright.
12920         * config/h8300/elf.h: Likewise.
12921         * config/h8300/h8300-protos.h: Likewise.
12922         * config/h8300/h8300.c: Likewise.
12923         * config/h8300/h8300.h: Likewise.
12924         * config/h8300/h8300.md: Likewise.
12925
12926 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12927
12928         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
12929         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
12930         ultrix_unistd): New hacks.
12931         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
12932         ULTRIX_CONST2_CHECK): Add checks.
12933         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
12934         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
12935         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
12936         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
12937         * fixinc/tests/base/locale.h: New file.
12938         * fixinc/fixincl.x: Rebuilt.
12939
12940 2004-01-21  Andreas Jaeger  <aj@suse.de>
12941             Michael Matz  <matz@suse.de>
12942
12943         * doc/extend.texi (Extended Asm): Clarify memory clobber.
12944
12945 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
12946
12947         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
12948         _Jv_RegisterClasses through a function pointer.
12949
12950 2004-01-21  Falk Hueffner  <falk@debian.org>
12951
12952         PR target/12898
12953         * config/alpha/alpha.c (alpha_emit_set_const_1): If
12954         no_new_pseudos, use gen_rtx_SET directly for SImode constants
12955         which need multiple instructions to emit.
12956
12957 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
12958
12959         * config/m32r/m32r.h (CPP_SPEC): Define.
12960
12961 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
12962
12963         * c-decl.c (merge_decls): Kill different_binding_level and
12964         different_tu arguments; simplify throughout.
12965         (duplicate_decls): Likewise.
12966         (pushdecl, merge_translation_unit_decls): Update calls to
12967         duplicate_decls.
12968
12969 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12970
12971         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
12972         $(SYSTEM_H).
12973         (print-rtl1.o): Depend on $(SYSTEM_H).
12974
12975 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
12976
12977         PR bootstrap/12730
12978         * configure.ac: Delete definition and subsitution of docdir.
12979         Add info, man, srcman and srcinfo to target hooks. Create doc/
12980         directory.
12981         * configure: Regenerate.
12982         * Makefile.in: Don't substitute docdir and delete all references
12983         throughout.
12984         (MAKEINFOFLAGS): Define.
12985         (stmp-docobjdir): Delete.
12986         (INFOFILES, MANFILES): Define.
12987         (info): Call lang.info, srcinfo and lang.srcinfo.
12988         (generated-manpages): Call lang.man, srcman and lang.srcman.
12989         (srcinfo, srcman): New rules to copy back files to source directory.
12990         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
12991         (install-man): Revamp rule.
12992         (clean): Update dvi directory.
12993         (distclean): Delete TAGS from front end directorys.
12994         (maintainer-clean): Delete all document files in source directory.
12995
12996         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
12997         (objc.srcman, objc.srcinfo): Likewise.
12998
12999 2004-01-20  Bruce Korb  <bkorb@gnu.org>
13000
13001         * fixinc/inclhack.def(math_exception): bypass only for glibc.
13002         (matherr_decl): rename & relocate as exception_structure.
13003         This fix must precede the math_exception fix.
13004
13005 2004-01-20  Roger Sayle  <roger@eyesopen.com>
13006
13007         * fold-const.c (fold_convert): Rename to fold_convert_const.
13008         (fold_convert_const): Change arguments to take a tree_code,
13009         a type and the operand/expression to be converted.  Return
13010         NULL_TREE if no simplification is possible.  Add support for
13011         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
13012         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
13013         Adjust call to fold_convert to match new fold_convert_const.
13014         Avoid modifying the tree passed to fold in-place.
13015
13016 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
13017
13018         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
13019         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
13020         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
13021
13022 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13023
13024         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
13025         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
13026         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
13027         (emit_move_sequence): Check scratch_reg first in various if statements.
13028         Extend source simplification to handle all 64-bit CONST_INTs.
13029         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
13030         frame size.
13031         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
13032         frame offset calculations.
13033         * pa.h (NEW_HP_ASSEMBLER): Add comment.
13034         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
13035         LEGITIMATE_64BIT_CONST_INT_P): Define.
13036         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
13037         any CONST_INT as legitimate during and after reload.
13038         (VAL_32_BITS_P, INT_32_BITS): Define.
13039         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
13040
13041 2004-01-20  Jan Hubicka  <jh@suse.cz>
13042
13043         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
13044         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
13045         containing hard regs are shared.
13046         (gen_hard_reg_clobber): New function.
13047         (hard_reg_clobbers): New array.
13048         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
13049         (copy_rtx): Do not copy clobbers containing hard regs.
13050         * rtl.h (gen_hard_reg_clobber): Declare.
13051
13052 2004-01-20  Jan Hubicka  <jh@suse.cz>
13053
13054         * varray.c:  Include hashtab.h
13055         (varray_descriptor): New structure.
13056         (hash_descriptor, eq_descriptor, varray_descriptor,
13057         print_statistics): New static functions
13058         (varray_init, varray_grow): Update statistics
13059         (dump_varray_statistics): New function.
13060         * varray.h (dump_varray_statistics): Declare.
13061         * toplev.c (finalize): Call it.
13062         * Makefile.in (varray.o): Add dependency.
13063
13064 2004-01-20  Jan Hubicka  <jh@suse.cz>
13065
13066         * cselib.c: Include alloc-pool.h
13067         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
13068         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
13069         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
13070         unchain_one_elt_loc_list_pool, unchain_one_value,
13071         new_cselib_val): Simplify using allocpool.
13072         (cselib_init): Initialize allocpools.
13073         (cselib_finish): Finish allocpools.
13074         * Makefile.in (cselib.o): Depend on alloc-pool.h
13075
13076 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
13077
13078         * config/mips/mips.c (mips_load_call_address): Make the call insn
13079         use $gp if it could be calling a lazy binding stub.
13080
13081 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
13082
13083         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
13084         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13085         (TARGET_STRUCT_VALUE_RTX): Likewise.
13086         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
13087         (PROMOTE_FUNCTION_RETURN): Remove.
13088         (STRUCT_VALUE): Remove.
13089
13090 2004-01-20  Denis Chertykov  <denisc@overta.ru>
13091
13092         PR bootstrap/13735
13093         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
13094         register as pointer after reload.
13095
13096 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13097
13098         PR optimization/12440
13099         * loop.c: Include ggc.h.
13100         (loop_optimize): Run garbage collector between optimization of loops.
13101         * Makefile.in (loop.o): Add GGC_H dependency.
13102
13103 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
13104
13105         * gcc/config/rs6000/rs6000.c (function_arg) Handle
13106         vector register special in function without prototype.
13107         (function_arg_advance): Vector parameters get always
13108         GPRs allocated for the linux64 target.
13109
13110 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13111
13112         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
13113         not TARGET_M32RX_MASK.
13114
13115 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
13116
13117         PR target/13557
13118         * config/sparc/sparc.c (function_arg): Reorder the cases.
13119
13120 2004-01-19  Per Bothner  <per@bothner.com>
13121
13122         Move cpp_reader's line_maps field to a shared global.
13123         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
13124         and change the type to a pointer rather than a struct.
13125         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
13126         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
13127         Likewise.
13128         * cppfiles.c (validate_pch):  Likewise.
13129         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
13130         Likewise.
13131         * cpperror.c (print_location):  Likewise.
13132         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
13133         * cppinit.c (cpp_create_reader):  Handle new parameter.
13134         (cpp_destroy):  Don't free line_maps - that's no longer our job.
13135         * input.h (line_table):  New variable.
13136         * toplev.c (line_table):  Declare variable.
13137         (general_init):  Initialize line_table.
13138         * c-opts.c (c_common_init_options):  Pass line_table to
13139         cpp_create_reader.
13140         * fix-header.c (read_scan_file):  New local variable line_table.
13141         Initialize, and pass it to cpp_create_reader.
13142         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
13143         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
13144
13145 2004-01-19  Per Bothner  <per@bothner.com>
13146
13147         Implement a cache for linemap_lookup.
13148         * line-map.h (struct_line_maps):  Add cache field.
13149         * line-map.c (linemap_init):  Zero cache field.
13150         (linemap_add):  Set cache field to offset of newly allocated map.
13151         (linemap_lookup):  Use and set cache field.
13152
13153 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13154
13155         PR optimization/13567
13156         * cse.c (cse_basic_block): Call cse_insn with a non-null
13157         libcall_insn for the last SET insn of a no-confilict block.
13158
13159 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
13160
13161         * Makefile.in (target_noncanonical, program_transform_name): Use
13162         immediate define instead of deferred.
13163         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
13164         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
13165         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
13166         deferred backquote.
13167
13168 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
13169
13170         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
13171         true unconditionally.
13172         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
13173         Remove.
13174         (build_unary_op, build_modify_expr): Don't handle extended
13175         lvalues.
13176         (build_component_ref, build_conditional_expr): Call non_lvalue
13177         instead of pedantic_non_lvalue.
13178         (build_c_cast): Don't condition use of non_lvalue on pedantic.
13179         * fold-const.c (fold): Don't check pedantic directly for
13180         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
13181         passed to pedantic_non_lvalue.
13182         * doc/extend.texi: Remove documentation of extended lvalues.
13183
13184 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13185
13186         PR optimization/5263
13187         * simplify-rtx.c (associative_constant_p): Delete.
13188         (simplify_associative_operation): Rewrite to linearize terms, and
13189         attempt to simplify new term against both left and right subterms.
13190         (simplify_binary_operation): Call swap_commutative_operands_p on
13191         op0 and op1, not trueop0 and trueop1.  Move the initialization of
13192         trueop0 and trueop1 down to where first needed.
13193         (simplify_relational_operation): Likewise.
13194         * rtlanal.c (commutative_operand_precedence): Also order constant
13195         operands using avoid_constant_pool_reference.
13196
13197 2004-01-19  Richard Henderson  <rth@redhat.com>
13198
13199         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
13200         don't check memory mode.
13201         (unaligned_memory_operand): Likewise.
13202         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
13203         abort for op0 not MEM.
13204
13205         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
13206         is not a reg, copy to a scratch first.
13207         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
13208         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
13209         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
13210         (reload_inqi, reload_inhi): Fix mode of op0.
13211         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
13212         reload_outhi_help): Likewise.  Use define_insn_and_split.
13213
13214         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
13215         as well as $29 dead.
13216
13217 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
13218
13219         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
13220         "tls_object" for thread-local objects.
13221         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
13222         "#tls" for thread-local sections.
13223         * configure.ac (thread-local checks): Specify --fatal-warnings in
13224         every binutils-specific checks.  For sparc*-*-*, test whether the
13225         OS is Solaris and the tools are native and act accordingly.
13226         * configure: Rebuild.
13227
13228 2004-01-19  Jeff Law  <law@redhat.com>
13229
13230         * contrib.texi: Update Paolo Carlini's entry.  New entries for
13231         Jerry Quinn and Petur Runolfsson.
13232
13233 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13234
13235         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
13236         size, don't use the larger zero-extending loads.
13237
13238 2004-01-19  Richard Henderson  <rth@redhat.com>
13239
13240         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
13241         * alpha.md (UNSPEC_NT_LDA): Remove.
13242         (UNSPEC_CVTLQ, cvtlq): New.
13243         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
13244         (extendsidi2_fix): Remove.
13245         (extendsidi2 splitter): Use cvtlq.
13246         (extendsidi2 fp peepholes): Remove.
13247         (cvtql): Use SFmode instead of SImode.
13248         (fix_trunc?fsi): Update to match.
13249         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
13250         (movsi): Rename from movsi_nofix, remove f alternatives.
13251         (movsi_nt_vms): Similarly.
13252         (movsi_fix, movsi_nt_vms_fix): Remove.
13253         (nt_lda): Remove.
13254         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
13255
13256 2004-01-19  Jan Hubicka  <jh@suse.cz>
13257
13258         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
13259         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
13260         list.
13261         (cgraph_remove_unreachable_nodes): New function
13262         (cgraph_decide_inlining_of_small_function): Fix pasto.
13263         (cgraph_decide_inlining_incrementally): Fix pasto.
13264         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
13265
13266 2004-01-19  Steven Bosscher  <stevenb@suse.de>
13267
13268         * gengtype.c (header_file): Make it static.
13269         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
13270         * gengtype.h (header_file): No longer extern.
13271
13272 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13273
13274         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
13275         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
13276         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
13277
13278 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13279
13280         * stmt.c (HAVE_casesi): Define it not already defined.
13281         (HAVE_tablejump): Likewise.
13282         (expand_end_case_type): Resort to the binary tree method if
13283         neither casesi or tablejump is available.
13284
13285 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
13286
13287         * final.c (final_scan_insn): Make non-static again.
13288         * output.h (final_scan_insn): Re-add prototype.
13289         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
13290         to final_scan_insn call.
13291         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
13292         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
13293         * config/pa/pa.c (output_lbranch, output_call): Likewise.
13294         * config/sh/sh.c (print_slot): Likewise.
13295         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
13296         (output_sibcall, sparc_flat_function_epilogue): Likewise.
13297
13298 2004-01-18  Jan Hubicka  <jh@suse.cz>
13299
13300         * basic-block.h (try_redirect_by_replacing_jump): Declare.
13301         * cfgcleanup.c (try_optimize_cfg): Use it.
13302         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
13303         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
13304         Kill hack.
13305         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
13306
13307         Revert:
13308         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13309
13310                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13311                 even after reload, just don't remove the actual jump tables.
13312
13313 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13314
13315         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
13316
13317 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13318
13319         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
13320         the size of a pointer in bytes.
13321
13322 2004-01-18  Roger Sayle  <roger@eyesopen.com>
13323
13324         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
13325         live "next" variable, which could lead to an infinite loop.
13326
13327 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
13328
13329         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
13330         block.
13331
13332         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13333         Check for NULL in the chain and remove repeated code.
13334
13335 2004-01-18  Jan Hubicka  <jh@suse.cz>
13336
13337         * coverage.c (checksum_string): Rename to ...
13338         (coverage_checksum_string): ... this one, Use crc32_string; recognize
13339         names containing random number and zero the number out in order to get
13340         match.
13341
13342 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13343
13344         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
13345
13346 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13347
13348         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
13349         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
13350         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
13351         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
13352         doc/trouble.texi: Remove trailing whitespace.
13353
13354 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13355
13356         PR target/7618
13357         * config/mips/mips.c: Include cfglayout.h.
13358         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
13359         (mips_unspec_offset_high): Add temporary register argument.
13360         (mips_load_call_address): New function, split out from...
13361         (mips_expand_call): ...here.
13362         (mips_output_cplocal): New function.
13363         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
13364         (mips_emit_loadgp): New function, split out from...
13365         (mips_expand_prologue): ...here.
13366         (mips_output_mi_thunk): New function.
13367
13368 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
13369
13370         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
13371         mcpu32): Remove redundant checks for implied target predefines.
13372
13373 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
13374
13375         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13376         Return type is unsigned int not int.
13377         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13378         Likewise.
13379
13380 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13381
13382         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
13383         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
13384         "GNU/Linux" and "Microsoft Windows" terminology.
13385
13386 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13387
13388         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
13389         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
13390         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
13391         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
13392         @smallexample instead of @example.
13393
13394 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
13395
13396         * objc/objc-act.c (build_objc_method_call): Use target
13397         hooks instead of macros to determine if ..._stret
13398         dispatchers should be used (NeXT runtime only).
13399
13400 2004-01-17  Roger Sayle  <roger@eyesopen.com>
13401
13402         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
13403         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
13404
13405 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13406
13407         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
13408         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
13409         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
13410         macros.
13411         * reload1.c (emit_reload_insns): Use them.
13412         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
13413         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
13414         for NULL PATTERN.
13415
13416 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13417
13418         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
13419         (final_scan_insn): Update to take an additional SEEN argument.  Emit
13420         a line note after the prologue.  Make static.
13421         (line_note_exists): Remove.
13422         (final): Don't initialize line_note_exists.  Update call to
13423         final_scan_insn.
13424         * output.h (final_scan_insn): Remove prologue.
13425         * function.c (set_insn_locators): Update comment.
13426         (thread_prologue_and_epilogue_insns): Add a comment.
13427
13428 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
13429
13430         PR target/10781
13431         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13432         Prototype.
13433         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13434         New function.
13435         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
13436         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
13437         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
13438
13439 2004-01-17  Jan Hubicka  <jh@suse.cz>
13440
13441         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
13442         commit.
13443
13444         * toplev.c (HAVE_conditional_execution): Provide default.
13445         (rest_of_handle_reorder_blocks): For conditional_execution target
13446         update liveness once after all transformations
13447         (rest_of_compilation): Do crossjumping before ce3.
13448
13449 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
13450
13451         * alias.c (new_alias_set): Mark last_alias_set for PCH.
13452         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
13453         for PCH.
13454         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
13455         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
13456         (get_TOC_alias_set): Mark 'set' for PCH.
13457
13458 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13459
13460         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13461         even after reload, just don't remove the actual jump tables.
13462
13463 2004-01-17  J. Brobecker  <brobecker@gnat.com>
13464
13465         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
13466         Remove checks for is_ada() and TREE_UNSIGNED.
13467         (subrange_type_die): Emit a byte_size attribute if the subrange
13468         type size is different from the base type size.
13469         (modified_type_die): Replace call to is_ada_subrange_type() by
13470         call to is_subrange_type().
13471
13472 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
13473
13474         * config/sh/sh.c: Include ggc.h.
13475
13476 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13477
13478         * Makefile.in (MD5_H): New.
13479         (fold-const.o): Depend on md5.h.
13480         (dwarf2out.o): Likewise.
13481         (cppfiles.o): Likewise.
13482         * cppfiles.c: Include md5.h.
13483         (should_stack_file): Check against list read from PCH file.
13484         (struct pchf_data): New.
13485         (pchf): New variable.
13486         (struct pchf_adder_info): New.
13487         (pchf_adder): New.
13488         (pchf_save_compare): New.
13489         (_cpp_save_file_entries): New.
13490         (_cpp_read_file_entries): New.
13491         (struct pchf_compare_data): New.
13492         (pchf_compare): New.
13493         (check_file_against_entries): New.
13494         * cpphash.h (_cpp_save_file_entries): Prototype.
13495         (_cpp_read_file_entries): Prototype.
13496         * cpppch.c (cpp_write_pch_state): Write the list of headers.
13497         (cpp_read_state): Read the list of headers.
13498
13499 2004-01-17  Jan Hubicka  <jh@suse.cz>
13500
13501         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
13502         builtin_expect specially.
13503         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
13504         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
13505         * invoke.texi (max-inline-insns-single): Set to 100.
13506         (large-function-insns): Set to 3000.
13507
13508 2004-01-16  Eric Christopher  <echristo@redhat.com>
13509             Chandrakala Chavva <cchavva@redhat.com>
13510
13511         * cppcharset.c (one_iso88591_to_utf8): New function.
13512         (convert_iso88591_utf8): Ditto. Use.
13513         (conversion_tab): Use.
13514         (_cpp_input_to_utf8): New function.
13515         (_cpp_init_iconv_buffer): Ditto.
13516         (_cpp_close_iconv_buffer): Ditto.
13517         * cpphash.h: Prototype new functions.
13518         (cpp_buffer): Add input_cset_desc.
13519         * cppinit.c: Add input_charset default.
13520         * cpplib.c (cpp_push_buffer): Support init and
13521         close of iconv.
13522         * cpplib.h (cpp_options): Add input_charset.
13523
13524 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13525
13526         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
13527         * config/alpha/unicosmk.h: Remove a commented-out definition
13528         of ASM_OUTPUT_SECTION_NAME.
13529         * config/stormy16/stormy16.h: Likewise.
13530
13531 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13532
13533         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
13534         (alpha___extern_prefix_sys_stat): ... this.
13535         Apply to <sys/mount.h>, too.
13536         Tweak to match more variations.
13537         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
13538
13539         * fixinc/inclhack.def (alpha___extern_prefix,
13540         alpha___extern_prefix_standards): New hacks to obey
13541         __PRAGMA_EXTERN_PREFIX.
13542         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
13543         test.
13544         * fixinc/tests/base/standards.h: Likewise.
13545
13546         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
13547         variations.
13548         New testcase.
13549         * fixinc/tests/base/pthread.h: Handle it.
13550
13551         * fixincl/inclhack.def (bad_lval): Sort file list.
13552         Add many missing files up to Tru64 UNIX V5.1B.
13553         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
13554         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
13555         order.
13556
13557         * fixinc/fixincl.x: Regenerate.
13558
13559 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
13560
13561         * version.c (version_string): Change to 3.5.0.
13562         * doc/include/gcc-common.texi (version-GCC): Likewise.
13563
13564 2004-01-16  Jan Hubicka  <jh@suse.cz>
13565
13566         * i386.md (load_tp_di): Fix pasto.
13567
13568         PR opt/13608
13569         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
13570
13571         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
13572         pp_c_character_constant, pp_c_floating_constant,
13573         pp_c_additive_expression, pp_c_shift_expression,
13574         pp_c_equality_expression, pp_c_and_expression,
13575         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
13576         pp_c_logical_and_expression): Remove inline modifier.
13577         * dwarf2out.c (get_AT): Likewise.
13578         * et-forest.c (et_splay): Likewise.
13579         * ra.h (ra_alloc, ra_calloc): Likewise
13580
13581 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13582
13583         * config/frv/frv-protos.h: Fix comment formatting.
13584         * config/frv/frv.c: Likewise.
13585         * config/frv/frv.h: Likewise.
13586         * config/frv/frv.md: Likewise.
13587         * config/frv/frvbegin.c: Likewise.
13588         * config/frv/frvend.c: Likewise.
13589
13590 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13591
13592         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
13593         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
13594         LINKER_DOES_NOT_WORK_WITH_DWARF2.
13595         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
13596
13597 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
13598
13599         PR 11864
13600         * postreload.c (reload_cse_simplify_operands): Don't remove
13601         implicit extension from LOAD_EXTEND_OP.
13602
13603 2004-01-16  Jan Hubicka  <jh@suse.cz>
13604
13605         PR opt/11350
13606         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
13607         after reload.
13608         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
13609         rtl_try_redirect_by_replacing_branch): Likewise.
13610
13611 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13612
13613         PR pch/13689
13614         * alias.c (struct alias_set_entry): Mark for GC.
13615         (alias_sets): Make static, mark for GC.
13616         (record_alias_subset): Use GC to allocate alias structures.
13617         * varray.c (element): Make generic varrays GCed.
13618
13619         PR pch/13361
13620         * c-typeck.c (constructor_asmspec): Delete.
13621         (struct initializer_stack): Delete field 'asmspec'.
13622         (start_init): Delete saving of asmspec.
13623         (finish_init): Don't update constructor_asmspec.
13624         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13625         * stmt.c (expand_asm): Duplicate strings from tree.
13626         (expand_asm_operands): Likewise.
13627         * tree.c (tree_size): Update computation of size of STRING_CST.
13628         (make_node): Don't make STRING_CST nodes.
13629         (build_string): Allocate string with tree node.
13630         * tree.def (STRING_CST): Update comment.
13631         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13632         (tree_string): Place contents of string in tree node.
13633         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13634         from tree.
13635
13636         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
13637         altivec operands.
13638
13639 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13640
13641         * c-common.h: Fix comment formatting.
13642         * c-cppbuiltin.c: Likewise.
13643         * c-pragma.c: Likewise.
13644         * calls.c: Likewise.
13645         * collect2.c: Likewise.
13646         * cppcharset.c: Likewise.
13647         * cpptrad.c: Likewise.
13648         * dbxout.c: Likewise.
13649         * defaults.h: Likewise.
13650         * dwarf2out.c: Likewise.
13651         * fold-const.c: Likewise.
13652         * genautomata.c: Likewise.
13653         * genconditions.c: Likewise.
13654         * genflags.c: Likewise.
13655         * gengtype.c: Likewise.
13656         * integrate.c: Likewise.
13657         * loop.c: Likewise.
13658         * predict.c: Likewise.
13659         * sdbout.c: Likewise.
13660
13661 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
13662
13663         * config/ia64/ia64.md (*movti_internal): C output template
13664         extracted to ia64.c.
13665         (*movti_internal_reg): Delete.
13666         (reload_inti, reload_outti): Use the correct mode on operand 2
13667         in the first place, don't fix it up in the output template.
13668         (movtf, reload_ointf, reload_outtf): New expanders.
13669         (*movtf_internal): New define_insn_and_split.
13670         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
13671         make static; do not hand TFmode CONST_DOUBLEs to split_double.
13672         (ia64_split_tmode_move): New function, body mostly pulled
13673         from ia64.md:*movti_internal.
13674         (ia64_function_arg_words): New function, extracted common
13675         logic from ia64_function_arg et seq.
13676         (ia64_function_arg_offset): Likewise.  Handle correctly the
13677         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
13678         (ia64_function_arg, ia64_function_arg_partial_nregs)
13679         (ia64_function_arg_advance): Use ia64_function_arg_words and
13680         ia64_function_arg_offset.
13681         (ia64_function_value): TCmode does not go in float regs.
13682         (ia64_secondary_reload_class): Also handle TFmode.
13683         * config/ia64/ia64-protos.h: Remove prototype for
13684         ia64_split_timode; add prototype for ia64_split_tmode_move.
13685
13686 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
13687
13688         * Makefile.in (MAINT): Make it an immediate assignment.
13689
13690 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13691
13692         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
13693
13694 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13695
13696         * config/h8300/coff.h: Replace Hitachi with Renesas.
13697         * config/h8300/elf.h: Likewise.
13698         * config/h8300/h8300-protos.h: Likewise.
13699         * config/h8300/h8300.c: Likewise.
13700         * config/h8300/h8300.h: Likewise.
13701         * config/h8300/h8300.md: Likewise.
13702         * config/h8300/lib1funcs.asm: Likewise.
13703
13704 2004-01-15  Andrew Pinski  <apinski@apple.com>
13705
13706         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
13707         around it.
13708
13709 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13710
13711         * config/h8300/h8300.c (h8300_return_in_memory): New.
13712         (TARGET_STRUCT_VALUE_RTX): Likewise.
13713         (TARGET_RETURN_IN_MEMORY): Likewise.
13714         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
13715         (RETURN_IN_MEMORY): Likewise.
13716
13717 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
13718
13719         PR optimization/13375
13720         * gcse.c (handle_avail_expr): Just return if the source is not a
13721         single set.
13722
13723 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
13724             Daniel Jacobowitz  <drow@mvista.com>
13725
13726         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
13727         (EQUIV): Define.
13728         (ARM_FUNC_ALIAS): New macro.
13729         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
13730         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
13731
13732 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13733
13734         PR optimization/12372
13735         * calls.c (expand_call): Add call_fusage data for stack arguments in
13736         constant calls.
13737
13738 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
13739
13740         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
13741         (rs6000_elf_declare_function_name): Formatting.
13742         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
13743
13744 2004-01-15  Jan Hubicka  <jh@suse.cz>
13745
13746         PR bootstrap/13692
13747         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
13748         previous patch.
13749
13750 2004-01-15  Richard Henderson  <rth@redhat.com>
13751
13752         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
13753         integer regs of the same call-savedness.
13754
13755 2004-01-15  Andreas Schwab  <schwab@suse.de>
13756
13757         PR bootstrap/13562
13758         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
13759         status for NOTB/NOTW/NEGW methods.
13760
13761 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13762
13763         * doc/invoke.texi: Update dump file names.  Fix a typo.
13764
13765 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13766
13767         * builtins.c (expand_builtin_va_end): Don't use
13768         EXPAND_BUILTIN_VA_END.
13769         * system.h (EXPAND_BUILTIN_VA_END): Poison.
13770         * config/d30v/d30v.h: Remove a commented-out definition of
13771         EXPAND_BUILTIN_VA_END.
13772         * config/stormy16/stormy16.h: Likewise.
13773
13774 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13775
13776         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
13777         * targhooks.c (default_struct_value_rtx): Don't use
13778         STRUCT_VALUE_INCOMING_REGNUM.
13779
13780 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
13781
13782         PR bootstrap/12744
13783         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
13784         GENINSRC and not parsedir.  Define srcextra as a langhook.
13785         * configure: Regenerate.
13786         * Makefile.in: Suppress default .l.c rule.  Don't substitute
13787         parsedir and delete all references throughout.  Conditionally define
13788         rule for srcextra dependent on GENINSRC.
13789         (stmp-docobjdir): Delete.
13790         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
13791         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
13792         and gengtype-yacc.h back to source directory.
13793         (maintainer-clean): Delete all parse files in source directory.
13794         (distclean): Delete generated files.
13795
13796         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
13797         (objc-parse.c, objc-parse.y): Don't use parsedir.
13798         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
13799         directory if requested.
13800         (po-generated): Don't use parsedir.
13801         (objc.maintainer-clean): Delete above files from source directory.
13802
13803 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13804
13805         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
13806
13807 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13808
13809         * doc/tm.texi: Replace RETURN_IN_MEMORY with
13810         TARGET_RETURN_IN_MEMORY.
13811
13812 2004-01-15  Jan Hubicka  <jh@suse.cz>
13813
13814         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
13815         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
13816         functions accepting SSE arguments
13817         (function_arg): Warn only when asked to warn.
13818         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
13819
13820 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
13821
13822         * c-parse.in (stmts_and_decls): Make label at end of compound
13823         statement a hard error.
13824
13825 2004-01-14  Jan Hubicka  <jh@suse.cz>
13826
13827         * cgraph.c (create_edge): Use local.redefined_extern_inline.
13828         * cgraph.h (cgraph_local_info): Sort fields by size; add
13829         redefined_extern_inline
13830         (cgraph_global_info): Sort fields by size.
13831         (cgraph_node): Likewise.
13832         * cgraphunit.c (cgraph_finalize_function): Se
13833         local.redefined_extern_inline on redefinition.
13834         (cgraph_analyze_function): Use it; fix formating.
13835
13836 2004-01-14  Jan Hubicka  <jh@suse.cz>
13837
13838         PR c++/10776
13839         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
13840         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
13841         bitmaps
13842         (cache_size): New variable
13843         (add_dependence): Update use; canonize early memory locations
13844         (sched_analyze_1): Likewise.
13845         (sched_analyze_2): Likewise.
13846         (init_dependency_caches): Initialize bitmaps.
13847         (free_dependency_caches): Free bitmaps
13848
13849 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13850
13851         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
13852         targetm.calls.strict_argument_naming().
13853         * target.h: Likewise.
13854
13855 2004-01-14  Richard Henderson  <rth@redhat.com>
13856
13857         PR debug/13231
13858         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
13859         instructions.
13860
13861 2004-01-14  Richard Henderson  <rth@redhat.com>
13862
13863         PR c++/12491
13864         * except.c (struct eh_region): Add u.fixup.resolved.
13865         (resolve_one_fixup_region): Split out from ...
13866         (resolve_fixup_regions): ... here.
13867
13868 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13869
13870         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
13871
13872 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13873
13874         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
13875         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
13876         (STRUCT_VALUE): Remove.
13877
13878 2004-01-14  Steven Bosscher  <stevenb@suse.de>
13879
13880         * system.h: Poison PROMOTED_MODE
13881         * integrate.c (expand_inline_function): Don't mention the
13882         PROMOTED_MODE.
13883         * loop.c (update_giv_derive): Same.
13884         * tree.h (DECL_RTL): Same.
13885
13886 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
13887
13888         PR target/9365
13889         * sh.c (gen_block_redirect): Add special handling of RETURN.
13890         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
13891         far branch target (i.e. it's a return).
13892
13893 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13894
13895         * regrename.c (find_oldest_value_reg): Fix a warning.
13896
13897 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
13898
13899         PR bootstrap/12527
13900         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
13901         Move linux-gas.h and linux-elf.h before aout.h.
13902         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
13903         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
13904
13905 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13906
13907         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
13908         (CONST_INT, VOIDmode, ...).
13909
13910 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
13911
13912         * regrename.c (find_oldest_value_reg): If the replacement uses
13913         multiple hard registers, check that all of them are in CLASS.
13914
13915 2004-01-14  Jan Hubicka  <jh@suse.cz>
13916
13917         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
13918         impossible.
13919
13920 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
13921
13922         * Makefile.in: Define MAINT from --enable-maintainer-mode.
13923
13924 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13925
13926         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
13927         Calculate always vrsave_mask if TARGET_ALTIVEC.
13928         (rs6000_emit_prologue): Emit code for vrsave
13929         only if TARGET_ALTIVEC_VRSAVE.
13930         (rs6000_emit_epilogue): Likewise.
13931
13932 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
13933
13934         * config/sparc/sparc.md (tie_add32): Fix pasto.
13935         (tie_add64): Likewise.
13936
13937 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13938
13939         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
13940
13941 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13942
13943         * config/iq2000/iq2000-protos.h: Fix comment formatting.
13944         * config/iq2000/iq2000.c: Likewise.
13945         * config/iq2000/iq2000.md: Likewise.
13946
13947 2004-01-14  J. Brobecker  <brobecker@gnat.com>
13948
13949         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
13950         (subrange_type_die): Add handle for nameless subrange types.
13951
13952 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13953
13954         * config/h8300/h8300-protos.h: Replace do_movsi with
13955         h8300_expand_movsi.
13956         * config/h8300/h8300.c (do_movsi): Change to
13957         h8300_expand_movsi.
13958         * config/h8300/h8300.md (movsi): Replace do_movsi with
13959         h8300_expand_movsi.
13960         (movsf): Likewise.
13961
13962 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13963
13964         * config/h8300/h8300.c (dosize): Change to
13965         h8300_emit_stack_adjustment.  Update callers.
13966
13967 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13968
13969         * config/h8300/h8300.md (movstrictqi): Add an alternative with
13970         the source being post_inc.  Tighten the predicate for the
13971         destination to register_operand.
13972         (movstricthi): Likewise.
13973
13974 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13975
13976         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
13977         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
13978         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
13979
13980 2004-01-14  Jan Hubicka  <jh@suse.cz>
13981
13982         Partial fix PR c++/12850
13983         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
13984         at zero nest level.
13985
13986 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
13987
13988         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
13989         pseudo-register.
13990
13991 2004-01-13  Devang Patel <dpatel@apple.com
13992
13993         PR debug/7078
13994         * dbxout.c (dbxout_symbol_name): Emit mangled names for
13995         NAMESPACE_DECL memebers.
13996
13997 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
13998
13999         PR c++/12709
14000         * c-common.c (finish_fname_decls): Use the chain only if the
14001         tree is an expr_stmt.
14002
14003 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
14004
14005         * rtl.def: Add comment about new option in automata_option.
14006
14007         * genautomata.c (PROGRESS_OPTION): New macro.
14008         (progress_flag): New global variable.
14009         (gen_automata_option): Process `progress'.
14010         (transform_insn_regexps, check_unit_distributions_to_automata,
14011         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
14012         expand_automata, write_automata): Print about the progress only if
14013         progress_flag.  Remove fflush.
14014         (initiate_automaton_gen): Process command line flag `-progress'.
14015
14016         * doc/md.texi: Describe the new option.
14017
14018 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14019
14020         * cfg.c (dump_bb): Dump entry edges.
14021
14022 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
14023
14024         * arm.c (thumb_legitimate_address_p): Only allow constant pool
14025         references from SImode.
14026         * arm.md (thumb_movhi_insn): Don't allow minipool references.
14027
14028 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14029
14030         * system.h (TEXT_SECTION): Poison.
14031         * varasm.c (text_section): Don't use TEXT_SECTION.
14032         * config/sh/sh.c (sh_file_start): Fix a comment typo.
14033         * doc/tm.texi (TEXT_SECTION): Remove.
14034
14035 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
14036
14037         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
14038
14039 2004-01-12  James E Wilson  <wilson@specifixinc.com>
14040
14041         * unwind-libunwind.c: Delete.
14042
14043 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
14044
14045         PR 13656
14046         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
14047         oldtype is set, set *newtypep or *oldtypep too.  Do not set
14048         them at the very end.
14049         (validate_proto_after_old_defn): Restructure for comprehensibility;
14050         make error messages clearer.
14051
14052 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
14053
14054         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
14055         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
14056         * varray.c: No need to prototype error.
14057         (varray_check_failed): Wrap long string onto two lines.
14058         (varray_underflow): New function.
14059
14060 2004-01-13  Steven Bosscher  <stevenb@suse.de>
14061
14062         PR c++/13376
14063         * function.h (struct function): Kill `name' field.
14064         (current_function_name): Make it an extern function.
14065         * function.c (current_function_name): New function.
14066         * graph.c: Update all uses of current_function_name.
14067         * gcse.c: Likewise.
14068         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
14069         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
14070         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
14071         instead of a strcmp with "main".
14072
14073 2004-01-13  Jan Hubicka  <jh@suse.cz>
14074
14075         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
14076
14077         * cgraphunit.c (cgraph_optimize_function):  Always do
14078         optimize_inline_calls when there is always_inline callee.
14079         (cgraph_decide_inlining): Fix formating.
14080         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
14081         functions.
14082         (expand_call_inline): Likewise.
14083         * toplev.h (sorry): Fix prototype.
14084
14085 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14086
14087         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
14088         conditional jumps that drop through to unconditional jumps or the
14089         end of the sequence.
14090
14091 2004-01-13  Jan Hubicka  <jh@suse.cz>
14092
14093         * alias.c (new_alias_set): Construct the alias_set varray.
14094         (init_alias_once): Don't do it here.
14095
14096 2004-01-12  Marc Espie <espie@openbsd.org>
14097
14098         * system.h: handle YYBYACC like YYBISON.
14099
14100 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
14101
14102         PR target/10847
14103         * config.gcc: No longer includes conflicting header sparc/sol2.h when
14104         building on sparc64-*-openbsd*.
14105
14106 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
14107
14108         PR debug/13539
14109         * dbxout.c (dbxout_type): Protected inheritance is not
14110         private but protected.
14111
14112 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14113
14114         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
14115
14116 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
14117
14118         PR optimization/12508.
14119         * combine.c (try_combine): Remove a dead set in a parallel
14120         even if its destination is a subreg.
14121
14122         Revert:
14123         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
14124         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
14125         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
14126
14127 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
14128
14129         * real.c: Update copyright date.
14130         * emit-rtl.c: Likewise.
14131         * rtl.h: Likewise.
14132         * dwarf2out.c: Likewise.
14133         * config/rs6000/darwin-ldouble.c: Likewise.
14134         * config/rs6000/rs6000.md: Likewise.
14135
14136 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14137
14138         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
14139         TFmode to SImode libfuncs.
14140
14141 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14142
14143         PR middle-end/11397
14144         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
14145
14146 2004-01-12  Jan Hubicka  <jh@suse.cz>
14147
14148         PR opt/12826
14149         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
14150         stored.
14151
14152         PR opt/12863
14153         * cfgcleanup.c (label_is_jump_target_p): Move to...
14154         * rtlanal.c (label_is_jump_target_p): ... here.
14155         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
14156         edges unified with branch edges.
14157
14158 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
14159
14160         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
14161         high word of an integral CONST_DOUBLE.
14162
14163 2004-01-12  Paul Brook  <paul@codesourcery.com>
14164
14165         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
14166
14167 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
14168
14169         PR target/13585
14170         * sh-protos.h (check_use_sfunc_addr): Declare.
14171         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
14172         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
14173
14174 2004-01-12  Jan Hubicka  <jh@suse.cz>
14175
14176         * alias.c:  Invlude varray.h
14177         (alias_sets): Turn into varray.
14178         (get_alias_set_entry): Use VARRAY; mark inline.
14179         (mems_in_disjoint_alias_sets_p): Mark inline.
14180         (record_alias_subset): Use varray.
14181         (init_alias_once): Initialize varray.
14182         (new_alias_set): Grow array.
14183         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
14184
14185 2004-01-12  Jan Hubicka  <jh@suse.cz>
14186
14187         Partial fix for PR opt/10776 II
14188         * cselib.c: Include params.h
14189         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
14190         locations.
14191         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
14192         * Makefile.in (cselib.o): Depend on params.h
14193
14194 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14195
14196         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
14197         simplify_unary_operation if the operand has a known mode.
14198
14199 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
14200
14201         PR target/13534
14202         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
14203         predicate to handle 'ld' conform addresses.
14204         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
14205         contraint.
14206         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
14207         are memory contraints.
14208         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
14209         New prototype.
14210         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
14211         Change 'o' to 'Y' constraint.
14212         (*movdf_softfloat64): Ditto.
14213
14214 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
14215
14216         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
14217         brace-enclosed syntax in all C output statements.
14218
14219 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14220
14221         PR target/13401
14222         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
14223         Objective-C language type value is 14.
14224
14225 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
14226
14227         PR c/12148
14228         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
14229         `int' in a number of places to make sure we always have a SImode
14230         and not a HImode.  Add a 'L' suffix to a number of constants.
14231
14232 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14233
14234         * pa.c: Don't include obstack.h.
14235
14236         * pa.md: Correct constraint in pattern for loading PIC label address.
14237
14238 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14239
14240         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
14241          before defining.
14242
14243 2004-01-11  Steven Bosscher  <stevenb@suse.de>
14244
14245         PR fortran/9972
14246         * toplev.c (rest_of_handle_inline): Also consider functions
14247         for deferral if the language is GNU F77.
14248
14249 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
14250
14251         * c-decl.c (diagnose_arglist_conflict): Add missing space to
14252         diagnostic messages.
14253
14254 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
14255
14256         PR middle-end/13392
14257         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
14258         to drop through label.  Don't fall back to SCC even when conditional
14259         jump has not been found.
14260
14261 2004-01-11  Jan Hubicka  <jh@suse.cz>
14262
14263         * invoke.texi: Fix syntax error in previous patch.
14264
14265         Partial fix for PR opt/10776
14266         * Makefile.in (reload.o): Include param.h
14267         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
14268         * reload.c: Include params.h.
14269         (find_equiv_reg): Work limiting check.
14270         * invoke.texi: Document.
14271
14272 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14273
14274         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
14275         out-of-bounds accesses to string constants.  Simplify mips16
14276         case accordingly.
14277
14278 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14279
14280         PR optimization/13469
14281         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
14282         reload_cse_regs (-fnon-call-exceptions only).
14283
14284 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
14285
14286         * config/mcore/lib1.asm: Fix comment formatting.
14287         * config/mcore/mcore-elf.h: Likewise.
14288         * config/mcore/mcore.c: Likewise.
14289         * config/mcore/mcore.h: Likewise.
14290         * config/mcore/mcore.md: Likewise.
14291
14292 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14293
14294         * c-decl.c (duplicate_decls): Break apart into...
14295         (diagnose_arglist_conflict, validate_proto_after_old_defn)
14296         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
14297         ... these new functions.  Restructure for comprehensibility.
14298         Remove various archaic special cases.  Always report the
14299         location of the previous declaration when a diagnostic is issued.
14300         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
14301         (match_builtin_function_types): Delete unnecessary forward declaration.
14302
14303 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14304
14305         * genautomata.c (make_automaton, NDFA_to_DFA):
14306         Print progress bars with '.' characters instead of '*'.
14307         (build_automaton): Change notes to match.
14308
14309 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14310
14311         * config/m32r/m32r.md: Use define_constants for unspec and
14312         unspec_volatile.
14313
14314 2004-01-10  Jan Hubicka  <jh@suse.cz>
14315
14316         PR opt/11635
14317         * expr.c (expand_expr_real):  More curefully expand union casts.
14318
14319 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14320
14321         * config/m32r/m32r.md (flush_icache): Use 1 for
14322         unspec_volatile.
14323
14324 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
14325             James E Wilson  <wilson@specifixinc.com>
14326
14327         PR debug/12860
14328         * dbxout.c (dbxout_symbol): Remove initialization of
14329         current_sym_code, current_sym_value, and current_sym_addr.
14330         (dbxout_symbol_location): Same.
14331         (dbxout_prepare_symbol): Zero current_sym_code,
14332         current_sym_value, and current_sym_addr.
14333
14334 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
14335
14336         * tree.c (get_unwidened): Reorder conditions so that the null pointer
14337         check is done first.
14338
14339 2004-01-09  Eric Christopher  <echristo@redhat.com>
14340
14341         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
14342         if we're running mark_constant_function.
14343
14344 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
14345
14346         PR target/12561
14347         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
14348
14349 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
14350
14351         PR debug/11231
14352         * dbxout.c (dbxout_type_fields): Return if any item is
14353         error_mark_node or the type is error_mark_node.
14354
14355 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
14356
14357         * config/rs6000/darwin-ldouble.c: Add big comment explaining
14358         exactly what is expected as a 'long double'.
14359         (_xlqadd): When a value to be returned is representable as a
14360         'double', just return it directly, do not construct it using a union.
14361         Also, correct final fixup.
14362         (_xlqmul): Likewise.
14363         (_xlqdiv): Likewise.
14364         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
14365
14366         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
14367
14368 2004-01-09  Richard Henderson  <rth@redhat.com>
14369
14370         * recog.c (constrain_operands): Validate mem operands.
14371
14372 2004-01-09   James E Wilson  <wilson@specifixinc.com>
14373
14374         * gcc.c (init_spec): Remove -lunwind from shared case.
14375         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
14376
14377 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
14378
14379         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
14380         * configure: Regenerate
14381
14382 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
14383
14384         PR c/11234
14385         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
14386         between function and object pointers.
14387         (digest_init): When comparing a pointer to function type to the
14388         target type, only apply TREE_TYPE once to the pointer to function
14389         type.
14390         * except.c (for_each_eh_label_1): Treat data as a pointer to a
14391         function pointer rather than casting it to a function pointer.
14392         (for_each_eh_label): Update caller.
14393         * recog.h (struct insn_data): Use a struct or union for output.
14394         * genoutput.c (output_insn_data): Update.
14395         * final.c (get_insn_template): Update.
14396
14397 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
14398
14399         * expr.h (expand_expr): Make it a macro, not a function.
14400         (expand_expr_real): New function.
14401         * expr.c (store_expr): Adjust logic for deciding whether or not to
14402         copy the value returned by expand_expr.
14403         (expand_expr): Rename to ...
14404         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
14405         calls to language hooks.
14406         * c-common.h (c_expand_expr): Adjust prototype.
14407         * c-common.c (c_expand_expr): Add alt_rtl parameter.
14408         * langhooks-def.h (lhd_expand_expr): Change prototype.
14409         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
14410         * langhooks.h (lang_hooks): Change type of expand_expr.
14411         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
14412         (last_expr_alt_rtl): Likewise.
14413         (expand_expr_stmt_value): Set last_expr_alt_rtl.
14414         (clear_last_expr): Clear it.
14415         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
14416         (expand_end_bindings): Save and restor last_expr_alt_rtl.
14417         * tree.def (RTL_EXPR): Give it an additional operand.
14418         * tree.h (RTL_EXPR_ALT_RTL): New macro.
14419
14420 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14421
14422         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
14423         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
14424
14425 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14426
14427         PR target/13380.
14428         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
14429         or (ne:SI (reg:CC 17) (const_int 0)).
14430         Be specific about modes wherever possible.
14431
14432 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14433
14434         * config/m32r/m32r.c (m32r_expand_block_move): Call
14435         gen_movestrsi_internal with two more arguments.
14436         (m32r_output_block_move): Adjust operand numbers.
14437         Properly update the source and destination pointers.
14438         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
14439         'r+'.  Change the set detinations to match_operand.
14440
14441 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14442
14443         * final.c (FIRST_INSN_ADDRESS): Remove.
14444         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
14445         * system.h (FIRST_INSN_ADDRESS): Poison.
14446         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
14447         * config/m32r/m32r-protos.h: Remove the prototype for
14448         m32r_first_insn_address.
14449         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
14450         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
14451         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
14452
14453 2004-01-09  J. Brobecker  <brobecker@gnat.com>
14454
14455         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
14456         we just created.
14457         (is_ada_subrange_type): DIEs for enumeration subtypes should be
14458         emitted as subrange types too.
14459         (subrange_type_die): Add handling of enumeration subtypes.
14460
14461 2004-01-08  Richard Henderson  <rth@redhat.com>
14462
14463         PR opt/12441
14464         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
14465         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
14466         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
14467         (ix86_address_cost): Be prepared for SUBREGed registers.
14468         (legitimate_address_p): Accept SUBREGed registers.
14469
14470 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
14471
14472         * Makefile.in: Rename configure.in to configure.ac
14473         * doc/sourcebuild.texi: Likewise.
14474         * configure: Regenerate.
14475         * config.in: Regenerate.
14476
14477 2004-01-08  Stuart Hastings  <stuart@apple.com>
14478
14479         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
14480
14481 2004-01-08  Jan Hubicka  <jh@suse.cz>
14482
14483         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
14484
14485 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
14486
14487         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
14488         (UNSPEC_FIX_TRUNC_TF): New constant.
14489         (movtf_internal): Make splitter active only when insn is active.
14490         (extenddftf2): Rewrite to properly load zero into low part.
14491         (extenddftf2_internal): New.
14492         (extendsftf2): Rewrite.
14493         (truncdftf2): Correct length.
14494         (floatditf2): Delete.
14495         (fix_trunc_helper): New.
14496         (fix_trunctfdi2): Use fix_trunc_helper.
14497         (fix_trunctfsi2): Likewise.fix_trunc
14498         (fix_trunctfsi2_internal): New.
14499
14500         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
14501         addresses are legitimate on Darwin even when flag_pic.
14502         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
14503         non-offsettable addresses for loads of TFmode constants.
14504
14505 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14506
14507         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
14508         variables in the appropriate bss section.
14509
14510 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
14511
14512         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
14513         target_flags has MASK_POWERPC64 when -m64.
14514         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
14515         to 620, 630, power3, power4 and rs64a entries.
14516         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
14517
14518 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
14519
14520         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
14521         floating-point constants.
14522
14523 2004-01-08  J. Brobecker  <brobecker@gnat.com>
14524
14525         * dwarf2out.c (subrange_type_die): Add context_die parameter.
14526         Create the subrange_type DIE using the given context DIE.
14527         (modified_type_die): Update call to subrange_type_die.
14528
14529 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
14530
14531         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
14532         Add multiple-include guard.
14533
14534 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
14535
14536         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
14537         all vector constant loadable by vsplt*.
14538         (output_vec_const_move): Likewise.
14539
14540 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14541
14542         PR c/6024
14543         * c-typeck.c (comptypes): Only treat enumerated types in the same
14544         translation unit as compatible with each other when they are the
14545         same type.
14546         * doc/extend.texi: Update.
14547
14548 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14549
14550         PR c/12165
14551         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
14552         array type from the array element type.
14553
14554 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
14555
14556         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
14557         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
14558         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
14559         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
14560         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
14561
14562 2004-01-06  Eric Christopher  <echristo@redhat.com>
14563
14564         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
14565         (DWARF2_DEBUGGING_INFO): Define.
14566         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
14567         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
14568         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
14569         for irix as.
14570         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
14571         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
14572         * config/mips/iris5gas.h: Ditto.
14573         (DBX_DEBUGGING_INFO): Remove.
14574         (DWARF2_DEBUGGING_INFO): Ditto.
14575         (MIPS_DEBUGGING_INFO): Ditto.
14576         (PREFERRED_DEBUGGING_TYPE): Ditto.
14577         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
14578         (PREFERRED_DEBUGGING_TYPE): Ditto.
14579         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
14580         * config/mips/elf64.h: Ditto.
14581
14582 2004-01-06  Jan Hubicka  <jh@suse.cz>
14583
14584         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
14585         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
14586
14587 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
14588
14589         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
14590         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
14591         * config/rs6000/darwin-ldouble.c: New.
14592
14593         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
14594         for constants.
14595         (constant_subword): Delete.
14596         * rtl.h (constant_subword): Delete prototype.
14597         (immed_double_const): Is not in varasm.c.
14598         * simplify-rtx.c (simplify_immed_subreg): New.
14599         (simplify_subreg): Use simplify_immed_subreg.
14600
14601         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
14602         than trying to generate RTL directly.
14603         (fix_trunctfsi2): Use expand_fix rather than trying to generate
14604         RTL directly.
14605
14606         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
14607
14608 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
14609
14610         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
14611         function into a separate macro.
14612         (read_only_data_section): Add void argument.
14613         (private_data_section): Same.
14614         (read_only_private_data_section): Same.
14615         (toc_section): Same.
14616
14617 2004-01-06  Jan Hubicka  <jh@suse.cz>
14618
14619         * invoke.texi:  Remove typo in last change.
14620
14621         PR target/10301
14622         * config.gcc: Accept opteron and athlon-64 as variants
14623         of k8.
14624         * i386.c (override_options): Likewise.
14625         * invoke.texi (i386 -mtune): Expand documentation.
14626
14627 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
14628
14629         * alias.c: Fix comment typos.
14630         * builtins.c: Likewise.
14631         * cfg.c: Likewise.
14632         * df.c: Likewise.
14633         * dominance.c: Likewise.
14634         * dwarf2out.c: Likewise.
14635         * emit-rtl.c: Likewise.
14636         * expr.c: Likewise.
14637         * final.c: Likewise.
14638         * fold-const.c: Likewise.
14639         * gcse.c: Likewise.
14640         * genattrtab.c: Likewise.
14641         * genrecog.c: Likewise.
14642         * gensupport.c: Likewise.
14643         * ggc-zone.c: Likewise.
14644         * integrate.c: Likewise.
14645         * local-alloc.c: Likewise.
14646         * loop.c: Likewise.
14647         * recog.c: Likewise.
14648         * regmove.c: Likewise.
14649         * reg-stack.c: Likewise.
14650         * reorg.c: Likewise.
14651         * rtlanal.c: Likewise.
14652         * rtl.h: Likewise.
14653         * sched-ebb.c: Likewise.
14654         * simplify-rtx.c: Likewise.
14655         * toplev.c: Likewise.
14656         * varasm.c: Likewise.
14657
14658 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
14659
14660         * doc/install.texi: Fix typos.
14661         * doc/invoke.texi: Likewise.
14662         * doc/md.texi: Likewise.
14663
14664 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14665
14666         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
14667
14668 2004-01-06  Jan Hubicka  <jh@suse.cz>
14669
14670         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
14671         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
14672         of MMX_REGPARM.
14673         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
14674         add MMX_REGPARM.
14675         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
14676         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
14677         (MMX_REGPARM_MAX): Similarly for -mmmx.
14678
14679 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14680
14681         * config/sh/linux.h: Fix comment formatting.
14682         * config/sh/netbsd-elf.h: Likewise.
14683         * config/sh/sh.c: Likewise.
14684         * config/sh/sh.h: Likewise.
14685         * config/sh/vxworks.h: Likewise.
14686
14687 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14688
14689         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
14690         * toplev.c (output_file_directive): Don't use
14691         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
14692
14693 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
14694
14695         * toplev.c: Fix broken checkin of 2003-12-30.
14696
14697 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
14698
14699         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
14700         (USING_MMAP): We don't support non-mmap.
14701         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
14702         large objects.
14703         (struct page_entry): Remove bytes_free.
14704         (struct page_table_chain): Remove.
14705         (struct globals): Remove page_table member.
14706         (loookup_page_table_entry): Function deleted.
14707         (set_page_table_entry): Ditto.
14708         (ggc_allocated_p): No longer need page table lookups.
14709         (ggc_marked_p): Ditto.
14710         (alloc_small_page): Don't care about bytes_free anymore.
14711         (alloc_large_page): Round up size.
14712         (ggc_alloc_zone_1): Mark large objects as such, and calculate
14713         their size the new way.
14714         Remove page table lookups and setting.
14715         (ggc_get_size): Calculate large object size the new way.
14716         (sweep_pages): Redo to account for fact that we no longer have
14717         bytes_free.
14718         (ggc_collect): No longer need to reincrement bytes_free.
14719         (ggc_pch_alloc_object): Handle new large objects properly.
14720         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
14721
14722 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14723
14724         * doc/invoke.texi: Remove a page break.
14725
14726 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14727
14728         * config/avr/avr.c (avr_output_function_prologue): Remove an
14729         extra pair of curly braces.
14730
14731 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14732
14733         * config/mn10300/mn10300.c: Fix comment formatting.
14734         * config/mn10300/mn10300.h: Likewise.
14735
14736 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14737
14738         * tree.h: Update documentation on nothrow_flag.
14739         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
14740         types.
14741
14742 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14743
14744         * doc/invoke.texi: Remove traces of dead ports.
14745
14746 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14747
14748         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
14749         option.
14750
14751 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14752
14753         PR target/12945
14754         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
14755         counter labels.
14756         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
14757         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
14758         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
14759         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
14760         (mips_symbol_insns): Don't trust the local/global classification.
14761         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
14762         (override_options): Make -mabicalls -fno-unit-at-a-time imply
14763         -mno-explicit-relocs.
14764         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
14765         between local and global symbols.
14766
14767 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14768
14769         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
14770         (mips_preferred_reload_class): Declare.
14771         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
14772         (EXTRA_CONSTRAINT): Update accordingly.
14773         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
14774         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
14775         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
14776         mips_dangerous_for_la25_p.
14777         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
14778         if mips_dangerous_for_la25_p.
14779
14780 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
14781
14782         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
14783         warning.
14784
14785 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
14786
14787         * configure.ac: Use AC_PROG_CPP_WERROR.
14788         * configure: Regenerate.
14789
14790 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
14791
14792         * .cvsignore: Add autom4te.cache.
14793
14794 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
14795
14796         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
14797         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
14798         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
14799         then architecture options, then ABI options.  General rewording.
14800
14801 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
14802
14803         PR c/3414
14804         * doc/extend.texi: Clarify definition of malloc attribute.
14805
14806 2004-01-04  Jan Hubicka  <jh@suse.cz>
14807
14808         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
14809         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
14810         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
14811         (cgraph_inline_p): Add extra argument reason.
14812         * cgraphunit.c: Minor formating fixes.
14813         cgraph_first_inlined_callee): New functions.
14814         (record_call_1): Record builtins too.
14815         (cgraph_analyze_function): Update inline_failed messages.
14816         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
14817         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
14818         (cgraph_check_inline_limits): Likewise; Add argument reason.
14819         (cgraph_set_inline_failed): New static function.
14820         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
14821         reasons.
14822         (cgraph_inline_p): Add new argument reason.
14823         * tree-inline.c (expand_call_inline):  Update warning.
14824
14825 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
14826
14827         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
14828         with modern equivalents.
14829         * configure: Regenerate.
14830
14831         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
14832         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
14833         * configure: Regenerate.
14834
14835         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
14836
14837         * configure.in: Rename to configure.ac.
14838         * configure.ac: Renamed from configure.in; make minimum necessary
14839         changes for autoconf 2.5x.
14840         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
14841         * configure: Regenerate with autoconf 2.57.
14842
14843 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
14844
14845         * config/mips/linux.h: Fix comment formatting.
14846         * config/mips/mips.c: Likewise.
14847         * config/mips/mips.h: Likewise.
14848         * config/mips/mips.md: Likewise.
14849         * config/mips/netbsd.h: Likewise.
14850         * config/mips/windiss.h: Likewise.
14851
14852 2004-01-02  Richard Henderson  <rth@redhat.com>
14853
14854         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
14855         for sse and 387; add suppression for mmx.
14856
14857 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
14858
14859         * loop.c (loop_optimize): Free all loops_info's mems.
14860
14861         * c-typeck.c (finish_init): Free spelling_base before
14862         setting it again.
14863
14864         * cfgloop.c (flow_loops_find): Always free the sbitmap
14865         headers.
14866
14867         * predict.c (estimate_probability): Free bbs after being
14868         done with it.
14869
14870 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14871
14872         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
14873         const_8bit_operand and call_address_operand.
14874
14875 2004-01-02  Jan Hubicka  <jh@suse.cz>
14876
14877         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
14878         when there is nothing to inline but warnings are requested.
14879         (cgraph_decide_inlining):  Fix memory leak.
14880
14881 2004-01-02  Jan Hubicka  <jh@suse.cz>
14882
14883         * expr.c (store_constructor):  Fix pasto in previous patch.
14884
14885 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14886
14887         * config/i386/cygming.h: Fix comment formatting.
14888         * config/i386/djgpp.h: Likewise.
14889         * config/i386/gthr-win32.c: Likewise.
14890         * config/i386/i386-interix.h: Likewise.
14891         * config/i386/i386.c: Likewise.
14892         * config/i386/i386.h: Likewise.
14893         * config/i386/openbsd.h: Likewise.
14894         * config/i386/winnt.c: Likewise.
14895         * config/i386/xm-mingw32.h: Likewise.
14896
14897 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
14898
14899         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
14900         copyright and last modification dates.
14901
14902 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
14903
14904         * doc/install.texi (Specific): Mention x86_64.
14905
14906 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
14907
14908         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
14909         Call force_operand on plus_constant result.
14910
14911 2004-01-01  Jan Hubicka  <jh@suse.cz>
14912
14913         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
14914         * expr.c (store_constructor): Use vec_init pattern.
14915         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
14916         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
14917         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
14918         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
14919         New patterns.
14920         (sse2_unpc?pd): Fix pattern.
14921         (sse2_movlpd): Kill.
14922         (sse2_movsd): Deal with movlpd too.
14923         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
14924         (ix86_expand_vector_init): New.
14925         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
14926         * md.texi (vec_set, vec_extract): Document
14927
14928 2003-12-31  Jan Hubicka  <jh@suse.cz>
14929
14930         PR opt/13473
14931         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
14932         ASM input operands
14933
14934         PR opt/12617
14935         * toplev.c (dump_file_index): Reorder ce3 and bbro.
14936         (dump_file): Likewise.
14937         (rest_of_compilation): Likewise.
14938
14939         PR debug/13367
14940         * cgraph.c (cgraph_function_possibly_inlined):  Even with
14941         flag_really_no_inline we inline always_inline functions.
14942         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
14943         for non-always_inline functions when there is flag_really_no_inline.
14944         (cgraph_decide_inlining): Limit work done when not inlining.
14945         (cgraph_decide_inlining_incrementally): Likewise.
14946         (cgraph_optimize_function): Check whether something got inlined.
14947         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
14948         extern inline functions when not inlining.
14949
14950         * opts.c (decode_options):  Disable crossjumping at -O1
14951         * invoke.texi (-O1): Document change.
14952
14953 See ChangeLog.10 for earlier changes.