OSDN Git Service

* tree.def (documentation): Remove mention of class 'b'.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2
3         * tree.def (documentation): Remove mention of class 'b'.
4         (BLOCK): Now in class 'x'.
5         * c-common.c (verify_tree): Remove case 'b'.
6         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
7         * calls.c (calls_function_1): Control cannot get past the switch
8         when exp is a BLOCK.
9         * print-tree.c (print_node): Move code for class 'b' to the class
10         'c'/'x' switch, as case BLOCK.
11         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
12         (unsafe_for_reeval, substitute_placeholder_in_expr)
13         (stabilize_reference_1): Remove case 'b'.
14         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
15         of something being 'b' to tests for TREE_CODE of something being
16         BLOCK.
17         * tree-ssa-operands.c (get_expr_operands): Likewise.
18
19 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
20
21         * tree-gimple.c: Rename from tree-simple.c.
22         * tree-gimple.h: Rename from tree-simple.h.
23         * c-gimplify.c: Rename from c-simplify.c
24         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
25         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
26         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
27         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
28         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
29         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
30         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
31         Update.
32
33 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
34
35         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
36
37 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
38
39         * tree-ssa.c (delete_tree_ssa): XFREE
40         bitmaps allocated with BITMAP_XMALLOC.
41
42         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
43         idfs_cache at the end of the function.
44
45         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
46         at the end of the function.
47
48         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
49         el at the end of the function.
50
51         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
52         bitmaps allocated with BITMAP_XMALLOC.
53
54         * loop-unswitch.c (unswitch_single_loop): Free bbs at
55         the end.
56
57         * final.c (shorten_branches): Free uid_shuid before
58         reallocating it.
59
60         * bb-reoder.c (connect_traces): Free cold_traces at the end.
61
62 2004-05-13  Jeff Law  <law@redhat.com>
63
64         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
65         rather than iterating through the blocks testing each bit in
66         livein to initialize the worklist.
67         (mark_def_sites): Remove useless checks of KILLS for virtual
68         operands.
69
70         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
71         new parameters for the statement and variable worklist as well
72         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
73         worklist recording interesting variables in the variable worklist
74         and bitmap.  Handle casts between integral and boolean types.
75         (substitute_single_use_vars): Accept new parameters for the statement
76         and variable worklist.  When a substitution is made add a new
77         entry to the statement worklist.  Handle casts between integral
78         and boolean types.
79         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
80         worklists to children.  Iterate until the statement worklist
81         is empty.
82
83 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
84
85         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
86         the end of the block.
87
88         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
89         with BITMAP_XMALLOC.
90
91         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
92         with BITMAP_XMALLOC.
93
94         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
95         Free nonzero_vars at the end of the function.
96
97         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
98         need to generate code instead of a NOP_EXPR.
99
100 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
101
102         * gcc.c (default_compilers): Fill out initializers for new Fortran
103         entries.
104
105 2004-05-13  Paul Brook  <paul@codesourcery.com>
106
107         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
108
109 2004-05-13  Paul Brook  <paul@codesourcery.com>
110
111         * config/arm/arm.c (arm_default_short_enums): New function.
112         (TARGET_DEFAULT_SHORT_ENUMS): Define.
113
114 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
115
116         Merge from tree-ssa-20020619-branch.
117
118         * Makefile.in (reload1.o-warn): Add.
119         (tree-alias-ander.o-warn): Add.
120         (GMPLIBS): Define.
121         (GMPINC): Define.
122         (BANSHEELIB): Define.
123         (BANSHEEINC): Define.
124         (TREE_DUMP_H): Define.
125         (TREE_SIMPLE_H): Define.
126         (TREE_FLOW_H): Define.
127         (LIBDEPS): Add BANSHEELIB.
128         (INCLUDES): Add BANSHEEINC and GMPINC.
129         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
130         c-mudflap.o and c-pretty-print.o.
131         (C_OBJS): Remove c-pretty-print.o.
132         (OBJS-common): Remove sibcall.o.
133         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
134         tree-ssa.o, tree-optimize.o, tree-simple.o,
135         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
136         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
137         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
138         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
139         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
140         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
141         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
142         tree-tailcall.o, gimple-low.o, tree-iterator.o,
143         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
144         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
145         tree-profile.o.
146         (OBJC-archive): Add tree-nomudflap.o.
147         (cc1): Add dependency on @TREEBROWSER@.
148         (c-decl.o): Add dependency on TREE_DUMP_H.
149         (c-dump.o): Likewise.
150         (c-common.o): Add dependency on tree-iterator.h
151         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
152         (gtype-desc.o): Add dependency on TREE_FLOW_H.
153         (tree.o): Add dependency on tree-iterator.h,
154         BASIC_BLOCK_H and TREE_FLOW_H.
155         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
156         (langhooks.o): Add dependency on TREE_SIMPLE_H.
157         (tree-alias-type.o, tree-alias-ander.o,
158         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
159         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
160         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
161         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
162         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
163         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
164         tree-nested.o, tree-iterator.o, tree-dfa.o,
165         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
166         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
167         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
168         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
169         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
170         tree-sra.o, tree-complex.o, tree-profile.o,
171         rtl-profile.o): New rules.
172         (function.o): Add dependency on basic-block.h
173         (expr.o): Add dependency on tree-iterator.h.
174         (sibcall.o): Remove.
175         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
176         (cfg.o): Add dependency on TIMEVAR_H.
177         (cfghooks.o): Add dependency on TREE_FLOW_H.
178         (reg-stack.o): Add dependency on basic-block.h.
179         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
180         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
181         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
182         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
183         tree-alias-type.h, tree-alias-common.h,
184         tree-alias-type.c, tree-alias-common.c,
185         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
186         rtl-profile.c and tree-nested.c.
187         (gt-tree-alias-common.h, gt-tree-mudflap.h,
188         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
189         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
190         gt-tree-cfg.h, gt-tree-nested.h): New rules.
191         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
192         * basic-block.h: Include predict.h
193         (struct edge_def): Add GTY marker.
194         Change field 'insns' to be a union of tree and rtx.
195         (EDGE_TRUE_VALUE): Define.
196         (EDGE_FALSE_VALUE): Define.
197         (EDGE_EXECUTABLE): Define.
198         (struct bb_ann_d): Forward declare.
199         (struct basic_block_def): Add GTY marker.
200         Remove fields head_tree and end_tree.
201         Add fields stmt_list, rbi and tree_annotations.
202         (struct reorder_block_def): Define.
203         (basic_block_info): Add GTY marker.
204         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
205         variables instead of macros.
206         (flow_call_edges_add): Remove declaration.
207         (make_eh_edge): Remove declaration.
208         (brief_dump_cfg, find_edge, tree_predicted_by_p,
209         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
210         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
211         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
212         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
213         (try_redirect_by_replacing_jump): Modfiy return type to
214         edge instead of bool.
215         * bb-reorder.c (copy_bb): Call duplicate_block
216         instead of cfg_layout_duplicate_bb.
217         (copy_bb_p): Call can_duplicate_block_p instead of
218         cfg_layout_can_duplicate_bb_p.
219         * bitmap.c (bitmap_first_set_bit): Abort if word
220         wasn't found.
221         (bitmap_last_set_bit): Likewise.
222         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
223         (DEF_FUNCTION_TYPE_3): Add.
224         * builtins.c (c_strlen): Make extern.
225         (builtin_save_expr): New.
226         (expand_builtin_nonlocal_goto): New.
227         (expand_builtin_constant_p): Remove.
228         (expand_builtin_mathfn): Call builtin_save_expr instead
229         of save_expr.
230         (expand_builtin_mathfn_2): Likewise.
231         (expand_builtin_strcmp): Likewise.
232         (expand_builtin_strncmp): Likewise.
233         (expand_builtin_strcat): Likewise.
234         (fold_builtin_cabs): Likewise.
235         (expand_builtin_alloca): Don't trigger if -fmudflap is
236         given.
237         (build_string_literal): Set TREE_INVARIANT on new node.
238         (expand_builtin_profile_fun): New.
239         (round_trampoline_addr): New.
240         (expand_builtin_init_trampoline): New.
241         (expand_builtin_adjust_trampoline): New.
242         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
243         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
244         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
245         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
246         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
247         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
248         Handle.
249         (fold_builtin_expect): New.
250         (fold_builtin_isascii): Don't return non-constant results
251         in GIMPLE form.
252         (fold_builtin_isdigit): Likewise.
253         (fold_builtin_1): New.
254         (fold_builtin): Call it.
255         (build_function_call_expr): Update call to build a new
256         CALL_EXPR.
257         (purge_builtin_constant_p): Remove.
258         (simplify_builtin, simplify_builtin_memcmp,
259         simplify_builtin_strcmp, simplify_builtin_strncmp,
260         simplify_builtin_strpbrk, simplify_builtin_strstr,
261         simplify_builtin_strchr, simplify_builtin_strrchr,
262         simplify_builtin_strcat, simplify_builtin_strncat,
263         simplify_builtin_strspn, simplify_builtin_strcspn,
264         simplify_builtin_next_arg, simplify_builtin_va_start,
265         simplify_builtin_sprintf): New.
266         * builtins.def (BUILT_IN_STACK_ALLOC,
267         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
268         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
269         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
270         BUILT_IN_PROFILE_FUNC_EXIT): Define.
271         * c-common.c: Include tree-iterator.h and hashtab.h.
272         (lang_statement_code_p): Declare.
273         (lang_gimplify_stmt): Declare.
274         (fix_string_type): Set TREE_INVARIANT for value.
275         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
276         (c_type_hash): New.
277         (c_common_get_alias_set): Handle multiple type nodes
278         referring to "the same" type, currently for C90 only.
279         (c_add_case_label): Use create_artificial_label.
280         (finish_label_address_expr): Don't set TREE_CONSTANT on
281         result.
282         (c_expand_expr): Don't handle STMT_EXPR.
283         (handle_alias_attribute): Marke aliased variables to be
284         TREE_STATIC.
285         (handle_nonnull_attribute): Initialize arg_num.
286         (check_function_nonnull): Likewise.
287         (c_walk_subtrees): New.
288         (c_estimate_num_insns_1): Don't handle
289         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
290         (c_decl_uninit_1): Remove.
291         (c_decl_uninit): Remove.
292         (c_warn_unused_result): New.
293         * c-common.def (ASM_STMT): Change number of operands
294         to 4.
295         (FILE_STMT): Remove.
296         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
297         Remove.
298         (lang_gimplify_stmt): Add.
299         (expand_stmt): Remove.
300         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
301         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
302         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
303         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
304         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
305         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
306         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
307         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
308         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
309         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
310         genrtl_compound_stmt, genrtl_asm_stmt,
311         genrtl_cleanup_stmt, c_decl_uninit): Remove.
312         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
313         c_tree_chain_matters_p, c_warn_unused_result,
314         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
315         Declare.
316         * c-convert.c (convert): Make convert work when
317         converting to compatible types across translation unit.
318         * c-decl.c: Include langhooks.h, tree-mudflap.h,
319         tree-simple.h, diagnostic.h and tree-dump.h
320         (merge_decls): Initialize oldtype to NULL.
321         (finish_decl): Use DECL_HARD_REGISTER instead of
322         DECL_C_HARD_REGISTER.
323         (check_bitfield_type_and_width): Check for null
324         lang_type_specific when check the precision of an enum.
325         (grokdeclarator): Immediately layout an ARRAY_TYPE used
326         in a pointer-to-array declarator.
327         (finish_struct): Clear allocated struct lang_type.
328         (finish_enum): Set enum_min and enum_max.  Set
329         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
330         not to the enumerators.
331         (set_decl_nonlocal): New.
332         (store_parm_decls): Use it via walk_tree.
333         (c_finalize): New.
334         (finish_function): When !targetm.have_ctors_dtors,
335         record static constructors and destructors here...
336         (c_expand_body_1): ... not here.
337         (c_expand_decl): Rename from c_expand_decl_stmt.
338         Handle all C-specific expansion semantics.
339         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
340         STMT_LINENO.
341         * c-format.c (handle_format_arg_attribute): Initialize
342         format_num.
343         * c-lang.c: Include tree-inline.h
344         (LANG_HOOKS_EXPAND_DECL,
345         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
346         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
347         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
348         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
349         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
350         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
351         (c_types_compatible_p): New.
352         * c-mudflap.c: New file.
353         * c-objc-common.c: Include tree-mudflap.h
354         (start_cdtor, finish_cdtor): Collapse
355         together into
356         (build_cdtor): ...here.  Update to construct a complete tree
357         for the function.  No need to call push_scope, pop_scope, or
358         clear_last_expr, or set current_function_cannot_inline.
359         (c_missing_noreturn_ok_p): Change prototype to return
360         bool.
361         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
362         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
363         opts.c.
364         (c_common_post_options): Don't ever use rtl inlining.
365         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
366         * c-pragma.c (handle_pragma_redefine_extname): Define
367         always.
368         (init_pragma): Activate #pragma redefine_extname for mudflap.
369         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
370         (pp_c_initializer): Accept any type CONSTRUCTOR.
371         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
372         COMPLEX_TYPE.
373         (decl_name_str): New local function.
374         (pp_c_direct_declarator): Call it.
375         (pp_c_primary_expression): Call it.
376         (pp_c_id_expression): Call it.
377         (pp_c_statement): Call it.
378         (print_c_tree): Create new pp object.
379         * c-pretty-print.h (pp_c_tree_decl_identifier,
380         print_c_tree): Declare.
381         * c-semantics.c: Include langhooks.h
382         (lang_expand_stmt, lang_expand_decl_stmt,
383         find_reachable_label_1, find_reachable_label,
384         expand_unreachable_if_stmt, expand_unreachable_stmt,
385         genrtl_do_stmt_1): Remove.
386         (begin_stmt_tree): Don't check for changed filename.
387         Call annotate_with_locus.
388         (finish_stmt_tree): Don't set line for end of function.
389         (build_stmt): Don't check type nodes for
390         side effects.
391         (build_stmt): Set TREE_SIDE_EFFECTS.
392         Set EXPR_LOCUS instead of STMT_LINENO.
393         (lang_expand_stmt, lang_expand_decl_stmt,
394         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
395         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
396         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
397         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
398         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
399         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
400         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
401         find_reachable_label_1, expand_unreachable_if_stmt,
402         expand_unreachable_stmt): Remove.
403         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
404         * c-simplify.c: New file.
405         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
406         (struct lang_type): Add fields enum_min and enum_max.
407         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
408         (c_expand_decl, c_missing_noreturn_ok_p,
409         c_types_compatible_p): Declare.
410         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
411         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
412         (default_function_array_conversion): Rely on build to
413         set TREE_CONSTANT.
414         (parser_build_binary_op, pointer_diff): Likewise.
415         (build_unary_op, build_binary_op): Likewise.
416         (build_array_ref):
417         (build_external_ref): Set TREE_INVARIANT.
418         (build_c_cast, pop_init_level): Likewise.
419         (process_init_element): Use ASM_VOLATILE_P.
420         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
421         (c_finish_case): Call c_do_switch_warnings.
422         * c.opt (fdump-): Remove.
423         * calls.c (try_to_integrate): Remove.
424         (prepare_call_address): Replace fndecl arg with a
425         precomputed static chain value.
426         (emit_call_1): New argument for full call expr.
427         (flags_from_decl_or_type): Call special_function_p.
428         (initialize_argument_information): Add argument
429         may_tailcall.
430         (purge_reg_equiv_notes): New.
431         (expand_call): Do not try to expand calls inline.
432         (fixup_tail_calls): New.
433         * cfg.c: Include timevar.h and ggc.h.
434         (bb_pool, edge_pool): Remove.
435         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
436         (entry_exit_blocks): Remove.
437         (rbi_pool): Declare.
438         (init_flow): Do not create pools.
439         Allocate entry/exit block.
440         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
441         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
442         (unlink_block): Clear b->prev_bb and b->next_bb.
443         (compact_blocks): Clear all slots of BASIC_BLOCK array.
444         (dump_flow_info): Work on trees too.
445         (dump_cfg_bb_info): New.
446         (brief_dump_cfg): New.
447         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
448         (find_edge): New.
449         * cfgbuild.c (rtl_make_eh_edge): Rename from
450         make_eh_edge.  Update all users.
451         (find_basic_blocks): Don't call VARRAY_FREE on
452         basic_block_info.
453         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
454         and newpos2.
455         (delete_unreachable_blocks): Return changed status.
456         (merge_seq_blocks): New.
457         * cfghooks.c: Include tree-flow.h
458         (tree_register_cfg_hooks, ir_type): New.
459         (redirect_edge_and_branch): Change return type to edge.
460         (predict_edge, predicted_by_p, can_duplicate_block_p,
461         duplicate_block, block_ends_with_call_p,
462         block_ends_with_condjump_p, flow_call_edges_add): New.
463         * cfghooks.h (redirect_edge_and_branch): Change return
464         type to edge.
465         (predict_edge, predicted_by_p, can_duplicate_block_p,
466         duplicate_block, block_ends_with_call_p,
467         block_ends_with_condjump_p, flow_call_edges_add): Declare.
468         (redirect_edge_and_branch): Change return type to edge.
469         (struct cfg_hooks): Add fields block_ends_with_call_p,
470         block_ends_with_condjump_p, flow_call_edges_add,
471         predict_edge, predicted_by_p, can_duplicate_block_p and
472         duplicate_block.
473         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
474         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
475         (fixup_reorder_chain): Use initialize_bb_rbi.
476         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
477         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
478         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
479         (insn_locators_initialize): Use new info about blocks.
480         * cfglayout.h (typedef struct reorder_block_def): Moved to
481         basic_block.h.
482         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
483         removed.
484         * cfgloop.c: Include tree.h and tree-flow.h.
485         * cfgloop.h (create_loop_notes): Declare.
486         * cfgloopmanip.c (create_loop_notes): New.
487         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
488         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
489         and duplicate_block fields.
490         (create_basic_block_structure): Don't look at
491         RTX_INTEGRATED_P.
492         (rtl_block_ends_with_call_p): New.
493         (rtl_block_ends_with_condjump_p): New.
494         (need_fake_edge_p): Moved from cfganal.c.
495         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
496         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
497         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
498         (cfg_layout_rtl_cfg_hooks): Ditto.
499         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
500         functions to be reachable.
501         * cgraphunit.c (decide_is_function_needed):
502         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
503         inline functions don't need to be output.
504         (cgraph_assemble_pending_functions): Don't do anything
505         special for nested functions.
506         (cgraph_mark_functions_to_output): Likewise.
507         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
508         (cgraph_analyze_function): Use estimate_num_insns.
509         (cgraph_mark_functions_to_output): Likewise.
510         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
511         (cgraph_expand_function): Allow functions to not be
512         emitted.
513         (cgraph_remove_unreachable_nodes):
514         (cgraph_recursive_inlining_p): Simplify.
515         (lookup_recursive_calls,
516         cgraph_decide_recursive_inlining): New.
517         (cgraph_decide_inlining_*): Update calls of
518         cgraph_mark_inline.
519         * combine.c (get_pos_from_mask): Always set *plen.
520         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
521         ftree-based-profiling, ftree-ccp, ftree-ch,
522         ftree-combine-temps, ftree-copyrename, ftree-dce,
523         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
524         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
525         ftree-lrs): Add.
526         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
527         Undefine.
528         * configure.ac: Add --enable-tree-browser option.
529         Add --with-libbanshee option.
530         Add GMPLIBS and GMPINC.
531         * configure: Regenerate.
532         * coverage.c (tree_ctr_tables): New.
533         (coverage_counter_alloc): Use it.
534         (build_ctr_info_value): Ditto.
535         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
536         (tree_coverage_counter_ref): New.
537         * coverage.h (coverage_counter_ref): Remove declaration.
538         (rtl_coverage_counter_ref): Declare.
539         (tree_coverage_counter_ref): Declare.
540         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
541         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
542         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
543         (struct cse_basic_block_data): Rename enum values to not
544         conflict with profile.h; update all uses.
545         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
546         in comments.
547         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
548         * diagnostic.h (debug_output_buffer, dump_generic_node,
549         print_generic_stmt, print_generic_stmt_indented,
550         print_generic_expr, print_generic_decl,
551         debug_generic_expr, debug_generic_stmt, debug_c_tree):
552         Declare.
553         * dominance.c: Cache immediate dominators.
554         * domwalk.c: New file.
555         * domwalk.h: New file.
556         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
557         (gen_subprogram_die): Generate a DIE for a named
558         return value.
559         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
560         (add_location_or_const_value_attribute): Likewise.
561         (add_bound_info): Likewise.
562         (gen_decl_die): Likewise.
563         * emit-rtl.c (maybe_set_first_label_num): New.
564         (copy_most_rtx): Don't copy the integrated flag.
565         Copy the new return_val flag.
566         * et-forest.c (MAX_NODES): Define.
567         (record_path_before_1): Abort if len is greater than
568         MAX_NODES.
569         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
570         gen_eh_region_catch, gen_eh_region_allowed,
571         gen_eh_region_must_not_throw, get_eh_region_number,
572         get_eh_region_may_contain_throw, get_eh_region_tree_label,
573         set_eh_region_tree_label, expand_resx_expr): New.
574         (expand_eh_region_start, expand_start_catch): Use them.
575         (expand_end_catch): Tidy.
576         (note_eh_region_may_contain_throw): Take region argument.
577         (note_current_region_may_contain_throw): New.
578         (get_exception_filter): Export.
579         (collect_eh_region_array): Export.
580         (remove_unreachable_regions): Check ERT_TRY based on reachability
581         of catches, not reachability of continue_label.  Never remove
582         ERT_MUST_NOT_THROW regions.
583         (collect_rtl_labels_from_trees): New.
584         (convert_from_eh_region_ranges): Use it.
585         (connect_post_landing_pads): Handle dying cleanups.
586         (struct reachable_info): Add callback data.
587         (add_reachable_handler): Invoke the callback.
588         (foreach_reachable_handler): New.
589         (reachable_handlers): Use it.
590         (arh_to_landing_pad, arh_to_label): New.
591         (can_throw_internal_1): Split out from can_throw_internal.
592         (can_throw_external_1): Similarly.
593         * except.h: Update.
594         * explow.c (emit_stack_save): Remove savearea mode check.
595         (update_nonlocal_goto_save_area): New.
596         (allocate_dynamic_stack_space): Use it.
597         (probe_stack_range): Never emit loop notes.
598         * expmed.c (extract_fixed_bit_field): Always propagate the
599         target for the shift if it is a REG.
600         * expr.c: Include tree-iterator.h
601         (is_zeros_p): Remove.
602         (categorize_ctor_elements_1, categorize_ctor_elements): New.
603         (count_type_elements): New.
604         (mostly_zeros_p): Use them.
605         (expr_wfl_stack): Remove.
606         (convert_move): Do nothing if to and from are the same.
607         (emit_block_move_via_loop): Don't emit LOOP notes.
608         (emit_move_insn): Don't handle CONSTANT_P_RTX.
609         (emit_move_insn_1): Don't generate inline warnings.
610         (expand_vars, expand_var): Split from ...
611         (expand_expr_1): ... here.
612         (expand_expr_real, expand_expr_real_1):  Use new macros
613         EXPR_LOCATION and EXPR_HAS_LOCATION.
614         * expr.h (simplify_builtin_fputs,
615         simplify_builtin_strcpy, simplify_builtin_strncpy,
616         expand_var, fixup_tail_calls,
617         update_nonlocal_goto_save_area): Declare.
618         (lookup_static_chain, expand_inline_function,
619         mark_seen_cases): Remove.
620         (prepare_call_address): Change type of 2nd argument to
621         rtx.
622         * final.c (profile_function): Update static chain test.
623         (final): Don't look at RTX_INTEGRATED_P.
624         * flags.h (flag_mudflap, flag_mudflap_threads,
625         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
626         flag_tree_dce, flag_tree_combine_temps,
627         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
628         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
629         flag_tree_points_to): Declare.
630         (enum pta_type): Declare.
631         * flow.c (lang_missing_noreturn_ok_p): Remove.
632         (check_function_return_warnings): Remove.
633         (update_life_info): Update comments.
634         (free_basic_block_vars): Don't call VARRAY_FREE for
635         basic_block_info.
636         (regno_uninitialized): Remove.
637         * fold-const.c (int_const_binop): Make extern.
638         (non_lvalue): Rely on build to set TREE_CONSTANT.
639         (operand_equal_p): Replace only_const argument with
640         flags.  Allow pure functions if OEP_PURE_SAME.
641         (fold): Use OEP_ONLY_CONST.
642         (invert_truthvalue) <NOP_EXPR> Break if argument is of
643         boolean type.
644         (fold_relational_hi_lo,
645         nondestructive_fold_binary_to_constant,
646         nondestructive_fold_unary_to_constant,
647         fold_read_from_constant_string): New.
648         * function.c (struct function): Remove calls_constant_p.
649         (current_function_calls_constant_p): Remove.
650         (inline_function_decl): Remove.
651         (put_var_into_stack): Don't use it.
652         (fix_lexical_addr): Likewise.
653         (inline_function_decl): Remove extern declaration.
654         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
655         (trampolines_created): Move to varasm.c.
656         (free_after_compilation): Update for removed fields.
657         (allocate_struct_function): Likewise.
658         (delete_handlers, lookup_static_chain): Remove.
659         (fix_lexical_addr): Don't consider non-local variable refs.
660         (trampoline_address): Remove.
661         (round_trampoline_addr): Move to builtins.c.
662         (adjust_trampoline_addr): Remove.
663         (expand_function_start): Update for changes to static chain
664         and nonlocal goto handling.
665         (initial_trampoline): Move to varasm.c.
666         (expand_function_end): Don't build trampolines or kill
667         unreferenced nonlocal goto labels.
668         (free_after_compilation): Don't set it.
669         (expand_function_end): Likewise.
670         (setjmp_vars_warning): Rename from
671         uninitialized_vars_warning, remove uninitialized vars warning.
672         (uninitialized_vars_warning): Remove old comment
673         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
674         and do not call the langhook.
675         (expand_function_start, expand_function_end): Don't do
676         function instrumentation here.
677         (clear_block_marks): Rename from reorder_blocks_0, export.
678         (blocks_nreverse): Export.
679         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
680         of rtl.
681         (reset_block_changes, record_block_change, finalize_block_changes,
682         check_block_change, free_block_changes): New functions.
683         (assign_parms): Setting of current_function_stdarg
684         moved ...
685         (allocate_struct_function): ... here.
686         * function.h (struct function): Remove x_nonlocal_labels,
687         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
688         x_context_display, x_trampoline_list, needs_context.
689         Add static_chain_decl, nonlocal_goto_save_area.
690         (struct function): Remove x_clobber_return_insn.
691         Add tail_call_emit field, last_label_uid,
692         unexpanded_var_list, dont_emit_block_notes,
693         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
694         (clear_block_marks): Declare.
695         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
696         (mfwrap_spec, mflib_spec): Declare.
697         (cpp_unique_options, cc1_options): Ditto.
698         (default_compilers): Add .F and .f90.
699         (static_specs): Add mfwrap and mflib.
700         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
701         CONSTANT_RTX_P.
702         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
703         Update to match insns field in struct edge_def.
704         * gdbinit.in (pgs, pge): Define.
705         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
706         instead of the integrated flag.
707         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
708         * gengtype-yacc.y (bitfieldlen): Add empty action.
709         (struct_fields): Accept unnamed bitfields.
710         (bitfieldlen): Split from ...
711         (bitfieldopt): ... here.
712         * gengtype.c (ifiles): Add tree-alias-type.h and
713         tree-flow.h.
714         * genrecog.c (validate_pattern): Do not handle
715         CONSTANT_P_RTX.
716         * gimple-low.c: New file.
717         * gimplify.c: New file.
718         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
719         (restore_line_notes): Do not set RTX_INTEGRATED_P.
720         * ifcvt.c (dead_or_predicable): Initialize local variable
721         'earliest'.
722         * input.h (expr_wfl_stack): Remove.
723         * integrate.c (INTEGRATE_THRESHOLD): Remove.
724         (setup_initial_hard_reg_value_integration): Likewise.
725         (initialize_for_inline): Likewise.
726         (note_modified_parmregs): Likewise.
727         (integrate_parm_decls): Likewise.
728         (process_reg_param): Likewise.
729         (save_parm_insns): Likewise.
730         (copy_insn_list): Likewise.
731         (copy_insn_notes): Likewise.
732         (compare_blocks): Likewise.
733         (find_block): Likewise.
734         (inlining): Likewise.
735         (function_cannot_inline_p): Likewise.
736         (parmdecl_map): Likewise.
737         (in_nonparam_insns): Likewise.
738         (save_for_inline): Likewise.
739         (FIXED_BASE_PLUS): Likewise.
740         (expand_inline_function): Likewise.
741         (copy_rtx_and_substitute): Don't look at map->integrating,
742         map->inline_target, and inlining, since we are never copying
743         for integrating.
744         Don't abort on RTX_INTEGRATED_P.
745         (old_fun): Remove.
746         (output_inline_function): Remove.
747         * integrate.h (struct inline_map): Remove fields integrating,
748         block_map, leaf_reg_map, inline_target, and local_return_label.
749         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
750         copy_loop_headers, never_reached_warning): Removed.
751         (any_uncondjump_p): Reject nonlocal goto.
752         * langhooks-def.h (lhd_types_compatible_p,
753         lhd_expand_decl, lhd_gimplify_expr): Declare.
754         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
755         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
756         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
757         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
758         LANG_HOOKS_GIMPLIFY_EXPR,
759         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
760         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
761         LANG_HOOKS_GIMPLIFY_EXPR,
762         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
763         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
764         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
765         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
766         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
767         LANG_HOOKS_DECL_UNINIT,
768         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
769         * langhooks.c: Include tree-simple.h.
770         (lhd_expand_decl): New.
771         (lhd_types_compatible_p): New.
772         (lhd_decl_uninit): Remove.
773         (lhd_gimplify_expr): New.
774         * langhooks.h (struct lang_hooks_for_rtl_expansion):
775         Remove.
776         (struct lang_hooks_for_functions): Add field
777         missing_noreturn_ok_p.
778         (struct lang_hooks): Add field expand_decl,
779         types_compatible_p, gimplify_expr and
780         gimple_before_inlining.
781         Remove fields decl_uninit and rtl_expand
782         * opts.c (decode_options): Set flag_tree_ccp,
783         flag_tree_dce, flag_tree_dom, flag_tree_dse,
784         flag_tree_pre, flag_tree_ter,
785         flag_tree_live_range_split, flag_tree_sra,
786         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
787         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
788         OPT_fmudflapth, OPT_fmudflapir,
789         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
790         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
791         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
792         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
793         OPT_ftree_points_to_ and OPT_ftree_pre.
794         * output.h (regno_uninitialized, find_basic_blocks,
795         cleanup_cfg, delete_unreachable_blocks,
796         check_function_return_warnings): Remove.
797         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
798         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
799         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
800         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
801         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
802         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
803         Define.
804         * passes.c (rest_of_decl_compilation):
805         (rest_of_handle_sibling_calls): Remove.
806         (rest_of_handle_inlining): Remove.
807         (rest_of_handle_gcse): Do not run
808         purge_builtin_constant_p.
809         (rest_of_compilation): Update.
810         Do not call copy_loop_headers.
811         Do rtl-based profiling only when
812         !flag_tree_based_profiling.  Register rtl-based profiling
813         hooks.
814         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
815         (predicted_by_p): Rename to ...
816         (rtl_predicted_by_p): .. this one; make global
817         (tree_predicted_by_p): New.
818         (dump_prediction): Add FILE argument.
819         (predict_edge): Rename to ...
820         (rtl_predict_edge): .. this one.
821         (tree_predict_edge): New.
822         (combine_predictions_for_insn): Update calls of predict_edge.
823         (predict_loops): Break out from ...
824         (estimate_probability): ... here; update comments; move updating
825         of unknown probabilities from ...
826         (estimate_bb_frequencies): ... here.
827         (combine_predictions_for_bb): New.
828         (tree_predict_by_opcode): New.
829         (tree_estimate_probability): New.
830         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
831         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
832         * predict.h: Add include guard.
833         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
834         * pretty-print.c (pp_write_text_to_stream): Make extern.
835         * pretty-print.h (pp_write_text_to_stream): Declare.
836         * print-rtl.c (print_rtx): Don't print the integrated flag.
837         Print the return_val flag.
838         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
839         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
840         Remove support for EXPR_WITH_FILE_LOCATION nodes.
841         (print_node): Print TREE_INVARIANT and TREE_VISITED.
842         * profile.c: Include cfghooks.h, tree-flow.h.
843         (profile_hooks): New.
844         (profile_dump_file): New.
845         (instrument_edges): Use hooks instead of RTL-specific code.
846         (instrument_values): Ditto.
847         (get_exec_counts): Ditto.
848         (compute_branch_probabilities): Ditto.
849         (compute_value_histograms): Ditto.
850         (branch_prob): Ditto.
851         (find_spanning_tree): Ditto.
852         (end_branch_prob): Ditto.
853         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
854         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
855         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
856         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
857         (tree_register_profile_hooks): New.
858         (rtl_register_profile_hooks): New.
859         * ra-rewrite.c (rewrite_program): Clear variable info.
860         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
861         * regs.h: Add include guards.
862         * reload.c (decompose): Clear val using memset.
863         * rtl.def (CONSTANT_P_RTX): Remove.
864         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
865         (copy_loop_headers): Remove.
866         (struct rtx_def): Replace the integrated flag with the
867         return_val flag.
868         (maybe_set_first_label_num): Declare.
869         (init_branch_prob): Move declaration to value-prof.h.
870         (end_branch_prob): Ditto.
871         (branch_prob): Ditto.
872         (never_reached_warning): Don't declare it.
873         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
874         (hoist_insn_to_edge): Update to match field insns in
875         struct edge_def.
876         * sbitmap.c (sbitmap_realloc): New.
877         * sbitmap.h (sbitmap_realloc): Declare.
878         * sibcall.c: Remove file.
879         * simplify-rtx.c (simplify_rtx): Do not handle
880         CONSTANT_P_RTX.
881         * stmt.c (parse_output_constraint): Don't warn for read-write
882         memory operand.
883         (tail_recursion_args): Use types_compatible_p langhook.
884         (force_label_rtx): Don't look at inline_function_decl.
885         (label_rtx): Set LABEL_PRESERVE_P appropriately.
886         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
887         (declare_nonlocal_label): Remove.
888         (expand_goto): Don't handle nonlocal gotos.
889         (expand_nl_handler_label): Remove.
890         (expand_nl_goto_receivers): Remove.
891         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
892         update_nonlocal_goto_save_area.
893         (expand_expr_stmt_value): Check TREE_NO_WARNING.
894         (warn_if_unused_value): Likewise.
895         (expand_start_loop, expand_loop_continue_here,
896         expand_end_loop): Don't create loop notes.
897         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
898         mark_seen_cases, check_for_full_enumeration_handling): Remove.
899         (expand_end_case_type): Don't do warn_switch handling.
900         (pushcase, pushcase_range) Update add_case_node calls.
901         (add_case_node): Add dont_expand_label argument.
902         (same_case_target_p): Don't search rtl.
903         (expand_start_bindings_and_block, expand_end_bindings):
904         Don't emit block notes when dont_emit_block_notes.
905         (using_eh_for_cleanups_p): Export.
906         (expand_return): Allow any typed rhs.
907         (expand_stack_alloc): New.
908         (expand_stack_save, expand_stack_restore): New.
909         (containing_blocks_have_cleanups_or_stack_level): New
910         function.
911         (asm_op_is_mem_input): New fn.
912         (expand_asm_expr): New fn.
913         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
914         nodes.
915         * stor-layout.c (layout_type): Just return if type is
916         error_mark_node.
917         (update_alignment_for_field): Export.
918         (variable_size): We don't care about global_bindings_p if
919         the frontend doesn't want a list of the expressions.
920         * system.h: Poison INTEGRATE_THRESHOLD.
921         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
922         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
923         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
924         TV_TREE_SSA_OTHER, TV_TREE_OPS,
925         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
926         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
927         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
928         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
929         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
930         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
931         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
932         TV_CONTROL_DEPENDENCES): Define.
933         * toplev.c: Include tree-alias-common.h
934         (current_file_decl, flag_mudflap, flag_mudflap_threads,
935         flag_mudflap_ignore_reads, flag_tree_based_profiling,
936         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
937         flag_tree_dce, flag_tree_ch, flag_tree_sra,
938         flag_tree_combine_temps, flag_tree_ter,
939         flag_tree_live_range_split, flag_tree_dom,
940         flag_tree_copyrename, flag_tree_dse): Declare.
941         (f_options): Add tree-based-profiling, tree-gvn,
942         tree-pre, tree-ccp, tree-dce,
943         tree-dominator-opts, tree-copyrename, tree-dse,
944         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
945         (wrapup_global_declarations): Don't output nested inlined functions.
946         (general_init): Call init_tree_optimization_passes.
947         (process_options): Sorry for -ftree-based-profiling plus
948         -ftest-coverage or -fprofile-values.
949         * toplev.h (init_tree_optimization_passes,
950         flag_tree_based_profiling): Declare.
951         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
952         * tree-alias-ander.c: New file.
953         * tree-alias-ander.h: New file.
954         * tree-alias-common.c: New file.
955         * tree-alias-common.h: New file.
956         * tree-alias-type.c: New file.
957         * tree-alias-type.h: New file.
958         * tree-browser.c: New file.
959         * tree-browser.def: New file.
960         * tree-cfg.c: New file.
961         * tree-complex.c: New file.
962         * tree-dfa.c: New file.
963         * tree-dump.c (dump_enable_all): New.
964         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
965         (dump_node): Remove const from field suffix and swtch.
966         (dump_files): Add null entry, .generic, .nested, .vcg,
967         .xml and a match-all entry.
968         (extra_dump_files, extra_dump_files_in_use,
969         extra_dump_files_alloced): Declare
970         (dump_option_value_info): Add raw, details, stats,
971         blocks, vops, lineno, uid and all.
972         (dump_register): New.
973         (get_dump_file_info): New.
974         (dump_begin): Call it.
975         Do nothing for TDI_none.
976         (dump_begin): Include phase number in dump filename.
977         (dump_enable_all): New.
978         (dump_switch_p_1): Split out from dump_switch_p.
979         (dump_switch_p): Handle extra_dump_files.
980         Start our scan at TDI_none + 1.
981         If -fdump-tree-all was given, call dump_enable_all.
982         * tree-dump.h: Include splay-tree.h.
983         (dump_function, dump_function_to_file, dump_register):
984         Declare.
985         * tree-eh.c: New file.
986         * tree-flow-inline.h: New file.
987         * tree-flow.h: New file.
988         * tree-inline.c: Re-write to handle inlining on GIMPLE.
989         * tree-inline.h (walk_tree,
990         walk_tree_without_duplicates): Move to tree.h.
991         (estimate_num_insns): Declare.
992         * tree-into-ssa.c: New file.
993         * tree-iterator.c: New file.
994         * tree-iterator.h: New file.
995         * tree-mudflap.c: New file.
996         * tree-mudflap.h: New file.
997         * tree-nested.c: New file.
998         * tree-nomudflap.c: New file.
999         * tree-nrv.c: New file.
1000         * tree-optimize.c (dump_flags, vars_to_rename,
1001         in_gimple_form, all_passes, pass_gimple,
1002         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
1003         (execute_gimple, execute_rebuild_bind,
1004         gate_all_optimizations, execute_del_cfg,
1005         register_one_dump_file, register_dump_files, dup_pass_1,
1006         init_tree_optimization_passes, execute_todo,
1007         execute_one_pass, execute_pass_list): New.
1008         (clear_decl_rtl): Remove.
1009         (tree_rest_of_compilation): Update to use tree
1010         optimizers.
1011         * tree-outof-ssa.c: New file.
1012         * tree-pass.h: New file.
1013         * tree-phinodes.c: New file.
1014         * tree-pretty-print.c: New file.
1015         * tree-profile.c: New file.
1016         * tree-simple.c: New file.
1017         * tree-simple.h: New file.
1018         * tree-sra.c: New file.
1019         * tree-ssa-alias.c: New file.
1020         * tree-ssa-ccp.c: New file.
1021         * tree-ssa-copy.c: New file.
1022         * tree-ssa-copyrename.c: New file.
1023         * tree-ssa-dce.c: New file.
1024         * tree-ssa-dom.c: New file.
1025         * tree-ssa-dse.c: New file.
1026         * tree-ssa-forwprop.c: New file.
1027         * tree-ssa-live.c: New file.
1028         * tree-ssa-live.h: New file.
1029         * tree-ssa-loop.c: New file.
1030         * tree-ssa-operands.c: New file.
1031         * tree-ssa-operands.h: New file.
1032         * tree-ssa-phiopt.c: New file.
1033         * tree-ssa-pre.c: New file.
1034         * tree-ssa.c: New file.
1035         * tree-ssanames.c: New file.
1036         * tree-tailcall.c: New file.
1037         * tree.c: Include tree-iterator.h, basic-block.h and
1038         tree-flow.h.
1039         (tree_node_kind): Add phi_nodes and ssa names.
1040         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
1041         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
1042         (make_node_stat): Handle PHI_NODE and SSA_NAME.
1043         <'c'> Set TREE_INVARIANT.
1044         (copy_node_stat): Abort if trying to copy a
1045         STATEMENT_LIST.
1046         Clear TREE_VISITED.
1047         Clear annotation field.
1048         (build_constructor): Copy TREE_INVARIANT from vals.
1049         Don't clear TREE_CONSTANT.
1050         (expr_first, expr_last, expr_length): Remove.
1051         (staticp): Pass unknown component references to the language.
1052         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
1053         (skip_simple_arithmetic): Likewise.
1054         (stabilize_reference_1): Likewise.
1055         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
1056         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
1057         STATEMENT_LIST.
1058         (lhd_unsave_expr_now): Remove.
1059         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
1060         (recompute_tree_invarant_for_addr_expr): New.
1061         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
1062         Call recompute_tree_invarant_for_addr_expr.
1063         Set TREE_INVARIANT accordingly.
1064         (build2_stat): Don't handle CALL_EXPR.
1065         (build3_stat): Don't call build2_stat for CALL_EXPRs.
1066         (build_expr_wfl): Remove.
1067         (annotate_with_file_line, annotate_with_locus): New.
1068         (simple_cst_equal): Call simple_cst_list_equal to compare
1069         CONSTRUCTOR_ELTS pointers.
1070         (iterative_hash_expr): Don't hash types associated
1071         with conversions.  Instead hash on the signedness of the
1072         toplevel object and the operand of the conversion.
1073         (dump_tree_statistics): Call ssanames_print_statistics
1074         and phinodes_print_statistics.
1075         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
1076         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
1077         needs_to_live_in_memory): New.
1078         (initializer_zerop): Handle VECTOR_CST.  Don't check
1079         AGGREGATE_TYPE_P for CONSTRUCTOR.
1080         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
1081         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
1082         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
1083         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
1084         (CALL_EXPR): Add another operand.
1085         (EXPR_WITH_FILE_LOCATION): Remove.
1086         (SWITCH_EXPR): Add another operand.
1087         * tree.h: Update various comments.
1088         (union tree_ann_d): Forward declare.
1089         (struct tree_common): Add fields nowarning_flag,
1090         invariant_flag and visited.
1091         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
1092         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
1093         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
1094         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
1095         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
1096         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
1097         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
1098         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
1099         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
1100         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
1101         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
1102         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
1103         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
1104         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
1105         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
1106         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
1107         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
1108         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
1109         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
1110         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
1111         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
1112         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
1113         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
1114         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
1115         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
1116         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
1117         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
1118         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
1119         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
1120         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
1121         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
1122         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
1123         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
1124         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
1125         TDF_UID,): Define.
1126         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
1127         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
1128         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
1129         EXPR_WFL_SET_LINECOL): Remove.
1130         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
1131         make_phi_node, init_phinodes, fini_phinodes,
1132         release_phi_node, phinodes_print_statistics,
1133         init_ssanames, fini_ssanames, make_ssa_name,
1134         release_ssa_name, ssanames_print_statistics,
1135         annotate_with_file_line, build_empty_stmt,
1136         annotate_with_locus, expr_only, categorize_ctor_elements,
1137         count_type_elements, add_var_to_bind_expr, is_essa_node,
1138         expand_stack_alloc, expand_stack_save,
1139         expand_stack_restore, add_case_node, operand_equal_p,
1140         nondestructive_fold_unary_to_constant,
1141         nondestructive_fold_binary_to_constant,
1142         fold_read_from_constant_string, int_const_binop,
1143         strip_float_extensions, simplify_builtin, c_strlen,
1144         recompute_tree_invarant_for_addr_expr,
1145         needs_to_live_in_memory, make_vector,
1146         setjmp_vars_warning, update_alignment_for_field,
1147         expand_asm_expr, asm_op_is_mem_input,
1148         containing_blocks_have_cleanups_or_stack_level,
1149         create_artificial_label, gimplify_function_tree,
1150         get_name, unshare_expr, walk_tree,
1151         walk_tree_without_duplicates, in_gimple_form): Declare.
1152         (struct tree_exp): Add fields locus and block.
1153         (struct tree_ssa_name, struct edge_def, struct
1154         tree_phi_node, struct tree_eref_common, struct
1155         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
1156         union alias_var_def, struct tree_statement_list_node,
1157         struct tree_statement_list, enum operand_equal_flag): Declare.
1158         (enum tree_node_structure_enum): Add TS_SSA_NAME,
1159         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
1160         TS_STATEMENT_LIST.
1161         (union tree_node): Add fields ssa_name, phi, eref, ephi,
1162         euse and stmt_list.
1163         (function_cannot_inline_p, uninitialized_vars_warning,
1164         save_for_inline, output_inline_function, all_cases_count,
1165         check_for_full_enumeration_handling,
1166         declare_nonlocal_label): Remove.
1167         (enum tree_dump_index): Add TDI_none, TDI_tu,
1168         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
1169         * unroll.c (unroll_loop): Don't clear map->inline_target.
1170         * unwind-sjlj.c (uw_install_context): Make a proper static inline
1171         function.
1172         * value-prof.c (value_prof_hooks): New.
1173         (find_values_to_profile): Rename to rtl_find_values_to_profile.
1174         Move rtl-specific bits in from branch_prob.
1175         (value_profile_transformations): Rename to
1176         rtl_value_profile_transformations.
1177         (struct value_prof_hooks): New.
1178         (rtl_value_prof_hooks): New.
1179         (rtl_register_value_prof_hooks): New.
1180         (tree_find_values_to_profile): New stub.
1181         (tree_value_profile_transformations): New stub.
1182         (tree_value_prof_hooks): New stub.
1183         (tree_register_value_prof_hooks): New stub.
1184         (find_values_to_profile): New.
1185         (value_profile_transformations): New.
1186         * value-prof.h: Add multiple inclusion guard.
1187         (struct histogram_value): Change rtx fields to void *.
1188         (rtl_register_value_prof_hooks): New declaration.
1189         (tree_register_value_prof_hooks): New declaration.
1190         (find_values_to_profile): New declaration.
1191         (free_profiled_values): New declaration.
1192         (value_profile_transformations): New declaration.
1193         (struct profile_hooks): New declaration.
1194         (init_branch_prob): Declaration moved from rtl.h.
1195         (branch_prob): Declaration moved from rtl.h.
1196         (end_branch_prob): Declaration mooved from rtl.h.
1197         (tree_register_profile_hooks): New declaration.
1198         (rtl_register_profile_hooks): New declaration.
1199         (tree_profile_hooks): New declaration.
1200         (rtl_profile_hooks): New declaration.
1201         * varasm.c: Include tree-mudflap.h.
1202         (TRAMPOLINE_ALIGNMENT): Remove.
1203         (make_decl_rtl): Call mudflap_enqueue_decl.
1204         (assemble_static_space):
1205         (assemble_trampoline_template): Set and return
1206         TRAMPOLINE_ALIGNMENT.
1207         * varray.c (element): Add GENERIC_PTR_NOGC entry.
1208         Add entry for 'tree *'.
1209         Add entry for struct edge_def *.
1210         (varray_copy): New.
1211         * varray.h (enum varray_data_enum): Add
1212         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
1213         VARRAY_DATA_TREE_PTR.
1214         (union varray_data_tag): Corresponding changes.
1215         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
1216         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
1217         VARRAY_EDGE, VARRAY_TREE_PTR,
1218         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
1219         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
1220         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
1221
1222         * config/*/*: Various updates for changed macros, tree
1223         codes, etc.  Check ChangeLog.tree-ssa.
1224
1225         * doc/cfg.texi: New file.
1226         * doc/tree-ssa.texi: New file.
1227         * doc/c-tree.texi: Document new codes.
1228         * doc/gccint.texi: Include new files.
1229         * doc/install.texi: Document new features.
1230         * doc/invoke.texi: Document new switches.
1231         * doc/passes.texi: Document new passes.
1232         * doc/rtl.texi: Update changed RTL codes.
1233         * doc/sourcebuild.texi: Update build instructions.
1234         * doc/standards.texi: Document Fortran changes.
1235         * doc/tm.texi: Update.
1236
1237 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
1238
1239         Replace several arrays with a struct of arrays.
1240         * combine.c (struct reg_stat): New.
1241         (init_reg_last_arrays): Renamed to...
1242         (init_reg_last): ...this.  Callers adjusted.
1243         (reg_stat): New.
1244         (combine_instructions): Allocate it and use it.
1245         (reg_last_death, reg_last_set, reg_last_set_value,
1246         reg_last_set_label, reg_last_set_table_tick,
1247         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
1248         reg_last_set_mode, reg_last_set_nonzero_bits,
1249         reg_last_set_sign_bit_copies): Replace throughout
1250         with items of reg_stat.
1251
1252 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1253
1254         PR optimization/15100
1255         * combine.c (distribute_notes): Don't create a dangling
1256         REG_LIBCALL/REG_RETVAL note.
1257
1258 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1259
1260         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
1261
1262         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
1263         negv2si2.
1264
1265 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
1266
1267         * doc/md.texi (Standard Names): Fix typo in vec_init description.
1268
1269 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
1270
1271         * doc/gty.texi (GTY Options): Clarify example.
1272
1273 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
1274
1275         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
1276         Add const qualifier to altivec vector type if one is needed.
1277
1278 2004-05-11  Paul Brook  <paul@codesourcery.com>
1279
1280         * flags.h (flag_short_enums): Update comment.
1281         * opts.c (decode_options): Set flag_short_enums to 2.
1282         * toplev.c (flag_short_enums): Update comment.
1283         (process_options): Call default_short_enums target hook.
1284
1285 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
1286
1287         PR target/14063
1288         * config/rs6000/altivec.md (altivec_dssall):
1289         Change to unspec_volatile.
1290         (altivec_dss): Likewise.
1291
1292 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
1293
1294         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
1295         vnor.
1296         ("one_cmplv8hi2"): Same.
1297         ("one_cmplv4si2"): Same.
1298
1299 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1300
1301         PR target/15130
1302         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
1303         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
1304         into account.  Compute the correct number of general registers
1305         for the return value.  Generate a special push/pop sequence when
1306         failing to get a temporary register for non SHmedia epilogue.
1307         (sh_expand_epilogue): Add an argument to show whether it's for
1308         sibcall or not.  Set the 3rd argument of output_stack_adjust to
1309         -1 if needed.
1310         (sh_need_epilogue): Call sh_expand_epilogue with 0.
1311         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
1312         with 1.
1313         (epilogue): Call sh_expand_epilogue with 0.
1314
1315 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
1316
1317         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
1318         goto a cleanup label.  After the cleanup, free the allocated memory.
1319
1320 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
1321
1322         * config/rs6000/altivec.h (vec_sld): Add overloads for
1323         argument/return types of 'vector bool int', 'vector bool short'
1324         and 'vector bool char'.
1325
1326 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
1327
1328         * c-decl.c (store_parm_decls_newstyle): Correct test for a
1329         nested function.
1330
1331 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
1332
1333         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
1334         treating missing ones as "".
1335         * config/mips/mips.md: Remove constraints from match_operands and
1336         match_scratches if they appear in define_expands (except reload*),
1337         define_peephole2s, define_splits or attribute specifications.
1338         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
1339         constraint strings.
1340
1341 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1342
1343         * config/rs6000/rs6000.c (function_arg_boundary): Always align
1344         AltiVec vectors.
1345         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
1346         vectors by refererence.  Align the same for TARGET_64BIT to a 16
1347         byte boundary.  Remove useless code.  Add function comment.
1348         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
1349         call to where it belongs.
1350         (function_arg_partial_nregs): Return true for all TARGET_32BIT
1351         -mabi=no-altivec AltiVec vectors.  Fix debug output.
1352         (rs6000_va_arg): Adjust for AltiVec change.
1353
1354 2004-05-10  Paul Brook  <paul@codesourcery.com>
1355
1356         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1357         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1358         (TARGET_DOUBLEWORD_ALIGN): Use it.
1359         (WCHAR_TYPE): Define.
1360         (WCHAR_SIZE_TYPE): Define.
1361         (SIZE_TYPE): Define.
1362
1363 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
1364
1365         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
1366         when size is 8 bytes.
1367         (function_arg_advance): Account for stack space used by AltiVec
1368         args when -mabi=altivec.  Simplify alignment calculations.  For
1369         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
1370         (function_arg): Similarly.
1371         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
1372         not AltiVec ABI.
1373         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
1374         Correct alignment, and align before testing reg count.  Remove
1375         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
1376         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
1377         TARGET_FPRS here..
1378         (rs6000_function_value): .. not here before call.
1379
1380 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1381
1382         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
1383
1384 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
1385
1386         PR 15007
1387         * c-decl.c (current_file_decl): Rename to all_translation_units,
1388         adjust comment.
1389         (pop_scope): If popping file_scope, construct a
1390         TRANSLATION_UNIT_DECL and make it the context of all the
1391         symbols in the scope.
1392         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
1393         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
1394         anything to current_file_decl.
1395         (pushdecl_top_level): Likewise.
1396         (store_parm_decls_newstyle): Adjust check for nested function.
1397         (c_write_global_declarations): Update for renamed variable.
1398
1399 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
1400
1401         * config/rs6000/rs6000-protos.h
1402         (rs6000_conditional_register_usage): Protoize.
1403
1404         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
1405
1406         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
1407         function.
1408
1409 2004-05-08  Roger Sayle  <roger@eyesopen.com>
1410
1411         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
1412         where op is a comparison operator and C1 and C2 are integer constants
1413         into a range check.
1414         (fold): Call fold_div_compare.
1415
1416 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1417
1418         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
1419         problems with earlier versions of the GNU compiler.
1420
1421 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
1422
1423         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
1424         Declare.
1425
1426         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
1427         (rs6000_hard_regno_mode_ok): New.
1428         (rs6000_init_hard_regno_mode_ok): New.
1429         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
1430
1431         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
1432         result.
1433
1434 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
1435
1436         * config/rs6000/altivec.h (vector, pixel, bool): Do not
1437         define as macros #ifdef __APPLE_ALTIVEC__.
1438
1439 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
1440
1441         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
1442         Generate appropriate parallels for vector arguments
1443         passed to vararg functions. (function_arg): make the call
1444         to rs6000_mixed_function_arg for vector args as needed.
1445
1446 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1447
1448         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
1449         EABI_FLOAT_VARARGS_P.
1450
1451 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1452
1453         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
1454         * config/mips/mips.c (override_options): Disable branch likely
1455         instructions if TUNE_MIPS5500.
1456
1457 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
1458
1459         * config/mips/mips.c (override_options): Allow the hi and lo registers
1460         to store any integral mode, not just MODE_INTs.
1461
1462 2004-05-07  Paul Brook  <paul@codesourcery.com>
1463
1464         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
1465         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
1466         (TARGET_DOUBLEWORD_ALIGN): Use it.
1467         (WCHAR_TYPE): Define.
1468         (WCHAR_SIZE_TYPE): Define.
1469         (SIZE_TYPE): Define.
1470
1471 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1472
1473         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
1474         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
1475
1476 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
1477
1478         * loop-doloop.c (doloop_valid_p): Make sure that body
1479         gets freed.
1480
1481 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
1482
1483         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
1484         declaration.
1485         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
1486         (sparc_skip_caller_unimp): New global variable.
1487         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
1488         Use it instead of SKIP_CALLERS_UNIMP_P.
1489         * config/sparc/sparc.md (call expander): Add sanity check.
1490         (call_address_struct_value_sp32): Re-sync with expander.
1491         (call_symbolic_struct_value_sp32): Likewise.
1492         (return peepholes): Use 'sparc_skip_caller_unimp' instead
1493         of custom predicate.
1494
1495 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1496
1497         PR c++/14962
1498         * c-pragma.c (handle_pragma_redefine_extname): Only change
1499         the assembler name of FUNCTION_DECLs and VAR_DECLs.
1500
1501 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
1502
1503         * optabs.h (enum optab_index): Add new OTI_log1p.
1504         (log1p_optab): Define corresponding macro.
1505         * optabs.c (init_optabs): Initialize log1p_optab.
1506         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
1507         patterns.
1508         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
1509         using log1p_optab.
1510         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
1511         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1512
1513         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
1514
1515         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
1516         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
1517         Prototype here.
1518         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
1519         x87's fyl2xp1 instruction.
1520         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
1521         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
1522         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
1523         log1p  and log1pl built-ins as inline x87 intrinsics.
1524
1525 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
1526
1527         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
1528         * config/arm/freebsd.h: Likewise.
1529         * config/ia64/freebsd.h: Likewise.
1530         * config/sparc/freebsd.h: Likewise.
1531
1532 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
1533
1534         PR optimization/15296
1535         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
1536         getting last consecutive label at a branch.
1537         (relax_delay_slots): Similar, near top of loop.
1538
1539 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1540
1541         PR target/15202
1542         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
1543         register to general register.
1544
1545 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
1546
1547         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
1548         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
1549         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
1550         (STACK_BOUNDARY): Delete.
1551
1552 2004-05-06  Stuart Hastings  <stuart@apple.com>
1553
1554         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
1555         mistakenly clobbered by 1.423.
1556
1557 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1558
1559         * doc/invoke.texi: Document -mvr4130-align.
1560         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
1561         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
1562         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
1563         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
1564         * config/mips/mips.md: Include sched-int.h.
1565         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
1566         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
1567         (override_options): Enable -mvr4130-align at -O3 and above.
1568         (mips_sim_insn): New variable.
1569         (mips_sim): New structure.
1570         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
1571         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
1572         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
1573         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
1574         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
1575         (mips_reorg): Call vr4130_align_insns.
1576         (vr4130_last_insn): New variable.
1577         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
1578         (vr4130_swap_insns_p, vr4130_reorder): New functions.
1579         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
1580         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
1581         (mips_use_dfa_pipeline_interface): Return true for the same.
1582         * config/mips/4130.md: New file.
1583         * config/mips/mips.md: Include it.  Add a peephole2 to convert
1584         "mult;mflo" into "mtlo;macc".
1585         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
1586         target of maccs.
1587         (*msac_using_macc): New pattern.
1588
1589 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
1590
1591         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
1592         (ir_vr55_hilo): Split into...
1593         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
1594         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
1595         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
1596         Add various multiplication bypasses.
1597         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
1598         multiplication.
1599
1600 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
1601
1602         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
1603         attribute to "XF".
1604
1605 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
1606
1607         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
1608         (fmod_optab, drem_optab): Define corresponding macros.
1609         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
1610         * genopinit.c (optabs): Implement fmod_optab and drem_optab
1611         using fmod?f3 and drem?f3 patterns.
1612         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
1613         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
1614         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
1615         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
1616         flag_unsafe_math_optimizations is set.
1617
1618         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
1619         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
1620
1621         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
1622         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
1623         Prototype here.
1624         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
1625         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
1626         fprem and fprem1 instructions.
1627         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
1628         Rename insn definition to x86_fnstsw_1.
1629         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
1630         x87 instructions.
1631         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
1632         and fmodl built-ins as inline x87 intrinsics.
1633         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
1634         and dreml built-ins as inline x87 intrinsics.
1635
1636 2004-05-05  Roger Sayle  <roger@eyesopen.com>
1637
1638         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
1639
1640 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
1641
1642         PR driver/9822
1643         * doc/invoke.texi (Spec Files): Remove documentation of %c.
1644
1645 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
1646
1647         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
1648         representation.
1649
1650 2004-05-06  Paul Brook  <paul@codesourcery.com>
1651
1652         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
1653         (arm_coproc_mem_operand): ... To this.
1654         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
1655         (arm_legitimate_index_p): Ditto.
1656         (vfp_mem_operand): Rename ...
1657         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
1658         (vfp_secondary_reload_class): Use it.
1659         (output_move_double): Use doubleword load/store instructions.
1660         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
1661         * config/arm/arm.h (TARGET_LDRD): Define.
1662         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
1663         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
1664         New splitter for invalid doubleword loads.
1665         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
1666         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
1667         * doc/md.texi: Document Uy constraint.
1668
1669 2004-05-05  Jan Hubicka  <jh@suse.cz>
1670
1671         PR opt/14980
1672         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
1673         inline clones.
1674
1675 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
1676
1677         PR target/15290
1678         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
1679         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
1680
1681 2004-05-05  Mike Stump  <mrs@apple.com>
1682
1683         * config/darwin-c.c (add_framework): Copy the directory name as it
1684         can be freed later.  Also, ensure we always allocate enough room
1685         for the cached framework information.
1686         (find_subframework_header): Keep track of the directory where the
1687         subframework header was found.
1688         (framework_construct_pathname): Speed up by not trying to re-add a
1689         framework.
1690         * cppfiles.c (search_path_exhausted): Arrange for the missing
1691         header callback to be able to set the directory where the header
1692         was found.
1693         (cpp_get_dir): Add.
1694         * cpplib.h (missing_header_cb): Add a parameter.
1695         (cpp_get_dir): Add.
1696
1697 2004-05-03  Mike Stump  <mrs@apple.com>
1698
1699         * doc/invoke.texi (Directory Options): Document -iquote.
1700         * doc/cpp.texi: Likewise.
1701         * doc/cppopts.texi: Likewise.
1702         * c-opts.c (c_common_missing_argument): Add -iquote processing.
1703         (c_common_handle_option): Likewise.
1704         * c.opt (iquote): Add.
1705         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
1706         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
1707
1708         * c-opts.c (case OPT_I): Deprecate -I- support.
1709         * doc/invoke.texi: Likewise.
1710         * doc/cpp.texi: Likewise.
1711         * doc/cppopts.texi: Likewise.
1712
1713 2004-05-05  Steven Bosscher  <stevenb@suse.de>
1714
1715         * basic-block.h (free_basic_block_vars): Update prototype.
1716         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
1717         argument.
1718         (life_analysis): Update call.
1719         * ifcvt.c (if_convert): Likewise.
1720         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
1721         * passes.c (rest_of_handle_final): Likewise.
1722         (rest_of_compilation): Likewise.
1723         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1724
1725         * emit-rtl.c (next_real_insn): Use INSN_P.
1726         (prev_real_insn): Likewise.
1727
1728 2004-05-05  Eric Christopher  <echristo@redhat.com>
1729
1730         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
1731         representation.
1732
1733 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
1734
1735         * config/rs6000/rs6000.c (build_opaque_vector_type):
1736         New function.
1737         (rs6000_init_builtins): Use it.
1738
1739 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
1740
1741         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
1742         (func_table): Change type from char ** to vms_func_ref.
1743         (write_rtnbeg):  Update to reflect func_table change.  Use
1744         fde->funcdef_number instead of rtnnum in output.
1745         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
1746
1747 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
1748             Richard Henderson  <rth@redhat.com>
1749
1750         PR target/14899
1751
1752         * c-common.c (vector_types_convertible_p): New function.
1753         * c-typeck.c (comptypes): Recurse on vector types.
1754         (convert_for_assignment): Use vector_types_convertible_p.
1755         (digest_init): Use vector_types_convertible_p to check
1756         validness of constant vector initializers; otherwise treat
1757         them as scalars.
1758         * tree.c (make_or_reuse_type): New.
1759         (build_common_tree_nodes): Use it.
1760         * cp/call.c (standard_conversion): Likewise.
1761         * cp/typeck.c (comptypes): Recurse on vector types.
1762         (convert_for_assignment): Use vector_types_convertible_p.
1763
1764 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
1765
1766         * config/mips/mips.c (override_options): Default to no
1767         generation of branch-likely operations when tuning for
1768         CPUs where they tend to have a negative performance impact
1769         (e.g., SB-1).
1770
1771 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1772
1773         * expr.c (store_constructor_field): Don't call store_constructor
1774         if bitsize is not a multiple of a byte.
1775
1776 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
1777
1778         * reload1.c (inherit_piecemeal_p): New function.
1779         (emit_reload_insns): When reloading a group of hard registers, use
1780         inherit_piecemeal_p to decide whether the values of individual hard
1781         registers can be inherited.
1782
1783 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1784
1785         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
1786         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
1787         * config/t-linux (LIB2ADDEHDEP): Likewise.
1788
1789 2004-05-04  Paul Brook  <paul@codesourcery.com>
1790
1791         * config/arm/crti.asm: Push an even number of registers.
1792         * config/arm/crtn.asm: And restore them.  Load via sp.
1793
1794 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
1795
1796         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
1797         Collect overhead information.
1798         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
1799         parameter and pass it through.
1800         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
1801         MEM_STAT_DECL parameter and pass it through.
1802         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
1803         MEM_STAT_DECL parameter and pass it through.
1804
1805 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
1806
1807         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
1808
1809         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
1810
1811         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
1812         rs6000_hard_regno_nregs.
1813
1814 2004-05-03  Eric Christopher  <echristo@redhat.com>
1815
1816         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
1817         prologue insn instead of setting up call.
1818         (s390_emit_epilogue): Ditto.
1819         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
1820         (define_constants): Add numbers for above patterns.
1821
1822 2004-05-03  Eric Christopher  <echristo@redhat.com>
1823
1824         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
1825         * config/s390/s390.c (s390_conditional_register_usage): ...here.
1826         * config/s390/s390-protos.h: Prototype.
1827
1828 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
1829
1830         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
1831         assignment.
1832
1833 2004-05-03  Eric Christopher  <echristo@redhat.com>
1834
1835         * config/mips/mips.md: Fix branch length attribute definition.
1836
1837 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
1838
1839         * config.gcc: Remove --enable-altivec support.
1840
1841         * config/rs6000/altivec-defs.h: Remove.
1842
1843 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1844
1845         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
1846         * fixinc/fixincl.x: Regenerate.
1847
1848 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
1849
1850         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
1851         definition.
1852         (log?f2, log10?f2, log2?f2): Reimplement expanders with
1853         float_truncate insn.
1854         (*fxtractsf3, *fxtractdf3): Remove insn definition.
1855         (logb?f2): Reimplement expanders with float_truncate insn.
1856
1857 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
1858
1859         PR 14718
1860         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
1861         force_type_die for CONST_DECL.
1862
1863 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1864             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1865
1866         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
1867         tm-dwarf2.h to tm_file.
1868         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
1869         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
1870         (ASM_DEBUG_SPEC): Delete.
1871
1872 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
1873
1874         * optabs.h (enum optab_index): Add new OTI_expm1.
1875         (expm1_optab): Define corresponding macro.
1876         * optabs.c (init_optabs): Initialize expm1_optab.
1877         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
1878         patterns.
1879         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
1880         using expm1_optab.
1881         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
1882         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
1883
1884         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
1885         to implement expm1, expm1f and expm1l built-ins as inline x87
1886         intrinsics.
1887
1888 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
1889
1890         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
1891         * config/frv/frv.md (*return_true, *return_false): New patterns.
1892
1893 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
1894
1895         * rtl.h (PHI_NODE_P): Remove.
1896
1897 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
1898
1899         PR middle-end/14988
1900         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
1901         when passed -2 as 'align'.
1902         (put_var_into_stack): Use 'bool' as the type for the three local
1903         predicates.  Adjust calls to put_reg_into_stack.
1904         When passed a CONCAT, instruct put_reg_into_stack to use
1905         a consecutive stack slot for the second part.
1906         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
1907         'consecutive_p' parameter.  Turn the three predicates into 'bool'
1908         parameters.  Retrieve the register mode from 'reg'.
1909         When consecutive_p is true, instruct assign_stack_local_1 to use
1910         BITS_PER_UNIT alignment.
1911         (put_addressof_into_stack): Use 'bool' as the type for the two
1912         local predicates. Adjust call to put_reg_into_stack.
1913
1914 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1915
1916         * fold-const.c (fold_convert_const, fold): Add missing
1917         FIX_ROUND_EXPR case.
1918
1919 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
1920
1921         * configure.ac (FLEX, BISON): Only use tools from the build tree
1922         if build equals host.
1923         * configure: Rebuilt.
1924
1925         * config/frv/frv-protos.h (frv_expand_epilogue,
1926         frv_expand_fdpic_call): Add bool argument.
1927         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
1928         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
1929         (frv_expand_epilogue): Use new argument to decide whether to emit
1930         return instruction or copy the return address to LR.
1931         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
1932         sibcalls.
1933         (sibcall_operand): New.
1934         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
1935         PLUS nor LABEL_REF.  Add sibcall_operand.
1936         * config/frv/frv.md (call, call_value): Pass false to
1937         frv_expand_fdpic_call.
1938         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
1939         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
1940         sibcall_value_internal, sibcall_value_fdpicdi): New.
1941         (return_unsigned_true, return_unsigned_false): New.
1942         (epilogue): Adjust call to frv_expand_epilogue.
1943         (sibcall_epilogue): New.
1944
1945         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
1946         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
1947         before redefining them.
1948
1949 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1950
1951         * builtins.c (fold_fixed_mathfn): New function.
1952         (fold_builtin_lround, fold_builtin): Use it.
1953
1954 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
1955
1956         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
1957         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
1958
1959 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
1960
1961         * config/cris/cris.h: Revert my "fix comment typos" patch.
1962
1963 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
1964
1965         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
1966
1967 2004-05-01  Falk Hueffner  <falk@debian.org>
1968
1969         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
1970         builtin_insll): Disallow 0 as first input operand.
1971
1972 2004-05-01  Falk Hueffner  <falk@debian.org>
1973
1974         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
1975
1976 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
1977
1978         PR middle-end/15054
1979         * expr.c (expand_expr_real): Do not call preserve_temp_slots
1980         on a TARGET_EXPR temp.
1981         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
1982         TARGET_EXPR temp slots.
1983
1984 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
1985
1986         * simplify-rtx.c (simplify_ternary_operation): When
1987         converting an IF_THEN_ELSE to a relational op, return
1988         correct mode.
1989
1990 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1991
1992         * builtins.c (fold_builtin_round): Fix comment typo.
1993         (fold_builtin_lround): New function.
1994         (fold_builtin): Use it.
1995
1996 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
1997
1998         PR target/11608
1999         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
2000         more like the one in config/dbxelf.h.
2001
2002 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
2003
2004         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
2005         and adjust definition accordingly.
2006         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
2007         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
2008         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
2009         VECTOR_TYPE.
2010
2011 2004-04-30  Jason Merrill  <jason@redhat.com>
2012
2013         PR c++/14587
2014         * config/i386/winnt.c (associated_type): Look for attributes on
2015         the TYPE_MAIN_VARIANT of *this.
2016         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
2017         apply the attributes to the variants.
2018
2019 2004-04-30  Paul Brook  <paul@codesourcery.com>
2020
2021         * config.gcc: Simplify arm --with-{cpu,tune} test.
2022         * config/arm/arm-cores.def: Document whitespace restrictions.
2023
2024 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2025
2026         PR other/1963
2027         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
2028
2029 2004-04-30  Brian Ford  <ford@vss.fsi.com>
2030             DJ Delorie  <dj@redhat.com>
2031
2032         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
2033         (DWARF2_DEBUGGING_INFO): Define to enable.
2034         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
2035         DWARF2.
2036         * configure.ac (Target-specific assembler checks)
2037         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
2038         relocs.
2039         * configure: Regenerate.
2040         * config.in: Likewise.
2041
2042         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
2043         (ASM_OUPUT_DWARF_OFFSET): Define.
2044
2045 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2046
2047         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
2048         (s390_emit_call): New function prototype added.
2049         (s390_tls_get_offset): Function removed.
2050         * config/s390/s390.c (s390_function_ok_for_sibcall,
2051         s390_call_saved_register_used_p): New functions.
2052         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
2053         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
2054         (s390_emit_tls_call_insn): New function.
2055         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
2056         emit_call_insn.
2057         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
2058         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
2059         added.
2060         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
2061         register number used to hold the target address for sibcalls.
2062         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
2063         New expanders.
2064         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
2065         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
2066         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
2067         Expanders removed.
2068         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
2069         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
2070         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
2071         ("epilogue"): Changed the call to s390_emit_epilogue to use the
2072         new parameter.
2073
2074 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
2075
2076         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
2077         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
2078         reg-stack.c, varasm.c, config/alpha/ev4.md,
2079         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
2080         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
2081         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
2082         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
2083         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
2084         config/ia64/itanium2.md, config/ip2k/ip2k.c,
2085         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
2086         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
2087         comment typos.
2088
2089 2004-04-30  Paul Brook  <paul@codesourcery.com>
2090
2091         * config.gcc: Default ep9312 to hard-float.
2092         * config/arm/arm-cores.def: Add ARCH field.
2093         * config/arm/arm.c (FL_FOR_ARCH*): Define.
2094         (arm_arch_cirrus): New variable.
2095         (all_cores): Set and use arch.
2096         (all_architectures): Ditto.
2097         (arm_arch_name): New variable.
2098         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
2099         Set and use arm_arch_cirrus.
2100         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
2101         (enum processor_type): Update ARM_CORE define.
2102         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
2103         (CPP_SPEC): Remove %(cpp_cpu_arch).
2104         (CPP_ARCH_DEFAULT_SPEC): Remove.
2105         (CPP_CPU_ARCH_SPEC): Remove.
2106         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
2107         (FPUTYPE_DEFAULT): Don't define here.
2108
2109 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
2110
2111         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
2112         updates too.
2113
2114 2004-04-30  Paul Brook  <paul@codesourcery.com>
2115
2116         * arm.c (arm_needs_doubleword_align): Use mode alignment.
2117
2118 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
2119
2120         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
2121         vec_sububs.
2122         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
2123         duplicates.
2124
2125 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2126
2127         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
2128         atan2?f3 expanders.
2129
2130 2004-04-29  Nick Clifton  <nickc@redhat.com>
2131
2132         Bug 14093
2133         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
2134         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
2135         Delete static from definition.
2136         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
2137
2138 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
2139
2140         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
2141         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
2142         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
2143         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
2144
2145 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
2146
2147         * commom.opt (Wfatal-errors): Add it.
2148         * diagnostic.c (flag_fatal_errors): Define it.
2149         (diagnostic_action_after_output): Check for flag_fatal_errors.
2150         * flags.h (flag_fatal_errors): Declare it.
2151         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
2152         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
2153
2154 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
2155
2156         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
2157         blocks which have kill flag set.
2158
2159 2004-04-29  Ben Elliston  <bje@au.ibm.com>
2160
2161         * configure.ac (--with-as): Abort if user-supplied assembler
2162         cannot be executed.
2163         (--with-ld): Likewise for the linker.
2164         * configure: Regenerate.
2165
2166 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2167
2168         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
2169         isn't NULL before using it.
2170
2171 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
2172
2173         PR target/15189
2174         * config/mips/mips.md (load_df_low): Use default length.
2175         (load_df_high, store_df_high): Likewise.
2176
2177 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2178
2179         * config/mips/mips.md, config/mips/sb1.md,
2180         config/rs6000/rs6000.c: Fix comment typos.
2181
2182 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2183
2184         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
2185         Fix comment typos.
2186
2187 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
2188
2189         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
2190         (delete_if_ordinary): Use above macro.
2191         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
2192         Update copyright.
2193         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
2194
2195 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
2196
2197         * c-decl.c (get_parm_info): Use the correct tag keywords when
2198         warning about type declarations in prototypes.
2199
2200 2004-04-29  Paul Brook  <paul@codesourcery.com>
2201
2202         * config.gcc: Pull list of cores from arm-cores.def.
2203
2204 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2205
2206         * combine.c (combine_simplify_rtx): Adjust call to use
2207         simplify_relational_operation.  Do not use SELECT_CC_MODE
2208         when a comparison already has a MODE_CC mode.
2209
2210 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
2211
2212         (simplify_set): simplify_relational_operation may now
2213         return another relational expression.
2214         * cse.c (fold_rtx): simplify_relational_operation now
2215         takes of computing the comparison mode.
2216         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
2217         remove dead code.
2218         (do_compare_rtx_and_jump): Likewise.
2219         * integrate.c (subst_constants): simplify_relational_operation
2220         may now return another relational expression.
2221         * simplify-rtx.c (simplify_gen_relational): Move most code to
2222         the new simplify_relational_operation and
2223         simplify_relational_operation_1 functions.
2224         (simplify_relational_operation): Rewritten.
2225         (simplify_relational_operation_1): New function.
2226         (simplify_ternary_operation): simplify_relational_operation
2227         may now return another relational expression.
2228         (simplify_rtx): Remove unnecessary temp variable.
2229
2230 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
2231
2232         * reg-stack.c (swap_to_top): New function.
2233         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
2234         swap_to_top().
2235         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
2236         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
2237         UNSPEC_FSCALE_EXP.
2238
2239         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
2240         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
2241         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
2242         x87's fscale insn.
2243         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
2244         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
2245         patterns.
2246
2247 2004-04-28  Serge Belyshev  <1319@bot.ru>
2248
2249         PR 14944
2250         * coverage.c (read_counts_file): Fix usage of warning () call.
2251         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
2252
2253 2004-04-28  Ben Elliston  <bje@au.ibm.com>
2254
2255         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
2256         options with "-" in the option index.
2257         (SPARC Options): Likewise.
2258         (M32R/D Options): Likewise.
2259
2260 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2261
2262         * convert.c (convert_to_integer): Convert (long)round -> lround,
2263         etc.
2264
2265 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
2266
2267         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
2268         Return false if we do not have fp register.
2269         (addrs_ok_for_quad_peep): Rename to ...
2270         (mems_ok_for_quad_peep): this.
2271         Add check for volatile memory.
2272         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
2273         Rename to ...
2274         (mems_ok_for_quad_peep): this.
2275         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
2276         to peephole2's.
2277         (lfq_power2): New instruction.
2278         (stfq_power2): Likewise.
2279
2280 2004-04-28  Jan Hubicka  <jh@suse.cz>
2281
2282         PR c/15004
2283         * function.c (do_warn_unused_parameter): Break out form ...
2284         (expand_function_end): ... here; warn only when not using cgraphunit.
2285         * function.h (do_warn_unused_parameter): Declare.
2286         * cgraphunit.c: Include function.h.
2287         (cgraph_finalize_function): Do unused parameter warning.
2288         * Makefile.in (cgraphunit.o): Depend on function.h
2289
2290 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2291
2292         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
2293         calling install-info on $(DESTDIR)$(infodir)/dir already being
2294         present.
2295
2296 2004-04-28  Paul Brook  <paul@codesourcery.com>
2297
2298         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
2299
2300 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2301
2302         * gcse.c (find_moveable_store): Do not accept store insns with
2303         REG_EH_REGION note.
2304
2305 2004-04-28  Paul Brook  <paul@codesourcery.com>
2306
2307         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
2308         * function.c (assign_temp): Ditto.
2309         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
2310
2311 2004-04-28  Paul Brook  <paul@codesourcery.com>
2312
2313         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
2314
2315 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
2316
2317         * var-tracking.c (variable_different_p): Add a parameter
2318         compare_current_location, compare current location of variable parts
2319         if it is true.
2320         (dataflow_set_different_1): Pass compare_current_location == false.
2321         (dataflow_set_different_2): Pass compare_current_location == false.
2322         (emit_notes_for_differences_1): Pass compare_current_location == true.
2323
2324 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
2325
2326         * config/s390/s390.md ("casesi"): Mark jump table access as
2327         non-trapping and unchanging.
2328
2329 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2330
2331         PR debug/14829
2332         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
2333         callers.
2334         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
2335         number for indexing hard_regno_nregs array.
2336
2337 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
2338
2339         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
2340         * config/darwin-crt2.c: Only have contents on __ppc__.
2341
2342 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
2343
2344         * config/xtensa/xtensa.c (call_insn_operand): Check
2345         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
2346         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
2347         * config/xtensa/xtensa.md (call, call_value): Likewise.
2348
2349 2004-04-27  Wu Yongwei  <adah@sh163.net>
2350
2351         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
2352         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
2353         (__gthread_mutex_init_function): Replace CreateMutex with
2354         initialization of custom mutex using CreateSemaphore.
2355         (__gthread_mutex_lock): Use InterlockedIncrement.
2356         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
2357         (__gthread_mutex_unlock): Use InterlockedDecrement and
2358         ReleaseSemaphore to unlock
2359         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
2360         __gthread_mutex_lock, __gthread_mutex_trylock,
2361         __gthread_mutex_unlock): Adjust to match inline versions in
2362         gthr-win32.h.
2363
2364 2004-04-27  Paul Brook  <paul@codesourcery.com>
2365
2366         * config/arm/arm.c (arm_promote_prototypes): New function.
2367         (TARGET_PROMOTE_PROTOTYPES): Use it.
2368
2369 2004-04-27  Paul Brook  <paul@codesourcery.com>
2370
2371         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
2372
2373 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
2374
2375         * config/alpha.c (alpha_end_function): For OpenVMS gas,
2376         correctly output .pdesc directive before .end.
2377
2378 2004-04-26  James E Wilson  <wilson@specifixinc.com>
2379
2380         Bug 14927
2381         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
2382         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
2383
2384 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
2385
2386         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
2387         * config/pa/pa-hpux10.h: Likewise.
2388         * config/pa/pa-hpux11.h: Likewise.
2389
2390 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
2391
2392         * doc/invoke.texi (Overall Options): Document default for -o
2393         for PCH files.
2394
2395 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2396
2397         * builtins.c (expand_builtin_update_setjmp_buf): New function.
2398         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
2399         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
2400
2401 2004-04-26  Paul Brook  <paul@codesourcery.com>
2402
2403         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
2404
2405 2004-04-26  Paul Brook  <paul@codesourcery.com>
2406
2407         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
2408
2409 2004-04-25  Roger Sayle  <roger@eyesopen.com>
2410
2411         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
2412         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
2413         X % -1 as 0.
2414
2415 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
2416
2417         PR bootstrap/15141
2418         * except.c (connect_post_landing_pads): Delete insns after the
2419         barrier when generating a unwind_resume_libfunc call.
2420
2421 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2422
2423         PR/c++ 15119
2424         * tree.c (substitute_placeholder_in_expr, case 4): New case,
2425         for TARGET_EXPR.
2426
2427 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2428
2429         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2430         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
2431         inhibit_libc is defined.
2432
2433 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
2434
2435         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
2436         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
2437         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
2438         (TARGET_SCHED_VARIABLE_ISSUE): Define.
2439         (mips_adjust_cost): Move later in file, next to other sched hooks.
2440         (mips_macc_chains_last_hilo): New variable.
2441         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
2442         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
2443         * config/mips/mips.md (may_clobber_hilo): New attribute.
2444
2445 2004-04-24  Roger Sayle  <roger@eyesopen.com>
2446             Bruce Korb  <bkorb@gnu.org>
2447
2448         * fixinc/inclhack.def (aix_syswait_2): New fix.
2449         * fixinc/fixincl.x: Regenerate.
2450         * fixinc/tests/base/sys/wait.h: Update for new test.
2451
2452 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
2453
2454         PR target/14960
2455         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
2456         to non_fixed_size, and leave out fixed_size from the sum.
2457         (generate_set_vrsave): Correct clobbers.
2458         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
2459         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
2460         (rs6000_libcall_value): Likewise.
2461         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
2462         (FUNCTION_ARG_REGNO_P): Likewise.
2463
2464 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2465
2466         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
2467         is a CONST_INT.
2468         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
2469         with NARROW_OP1 instead of OP1.
2470
2471 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
2472
2473         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
2474         and __s390x__ hosts.
2475
2476 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2477
2478         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
2479         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
2480         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
2481         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
2482         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
2483         * builtins.c (expand_builtin_fork_or_exec): New.
2484         (expand_builtin): Call it.
2485         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
2486         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
2487         * c-common.c (PID_TYPE): New macro.
2488         (c_common_nodes_and_builtins): Initialize pid_type_node.
2489         * calls.c (special_function_p): Do not handle fork and exec.
2490         (expand_call): Do not handle ECF_FORK_OR_EXEC.
2491         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2492         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
2493         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
2494         __gcov_execv, __gcov_execvp, __gcov_execve): New.
2495         * tree.h (enum tree_index): Add TI_PID_TYPE.
2496         (pid_type_node): New macro.
2497         (ECF_FORK_OR_EXEC): Removed.
2498
2499 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2500
2501         PR optimization/13985
2502         * cfgloopmanip.c (fix_loop_placements): New prototype.
2503         Call fix_bb_placements on the preheader of loops that have
2504         been reparented.
2505         (remove_path): Adjust call to fix_loop_placements.
2506
2507 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2508
2509         * config/darwin7.h: New file.
2510         * config.gcc (*-*-darwin*): Add darwin7.h if the
2511         version is greater than 6.
2512         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
2513         (MATH_LIBRARY): Wrap in ifdefs.
2514
2515 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
2516
2517         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
2518         loading iWMMXt registers with a frame pointer.  Use post-increment
2519         without a frame pointer.
2520         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
2521
2522 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
2523
2524         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
2525         mode" rather than "-funit-at-a-time" since -O2 enables it
2526         without requiring -f* options.  Refer to -fprofile-generate and
2527         -fprofile-use correctly.  Move -funit-at-a-time among options
2528         enabled by -O.  Add information about unit-at-a-time caveats.
2529
2530 2004-04-22  Per Bothner  <per@bothner.com>
2531
2532         * line-map.h (struct line_maps):  New field highest_line.
2533         (linemap_position_for_column):  Make non-inline function.
2534         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
2535         * line-map.c (linemap_init):  Clear highest_line field.
2536         (linemap_add):  Set highest_line field.
2537         (linemap_line_start):  Minor optimization - use highest_line field.
2538         Reduce maximum column hint to 10000.  Update highest_line field.
2539         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
2540         * cpphash.h (struct cpp_reader):  Remove line field - instead use
2541         line_table->highest_line.
2542         (saved_line):  Remove unused field.
2543         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
2544         Use  line_table's highest_line field instead of cpp_reader's line.
2545         * cpplib.c (start_directive):  Likewise use highest_line field.
2546         (do_line, do_linemarker):  Likewise just use newest map.
2547         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
2548         * cpperror.c (cpp_error):  Likewise use highest_line field.
2549         * cppfiles.c (open_file_failed:  Likewise.
2550         (cpp_make_system_header):  Likewise use newest map and highest_line.
2551         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
2552         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
2553         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
2554         _cpp_lex_direct):  Likewise use highest_line.
2555         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
2556         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
2557         and use newest map.
2558         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
2559         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
2560         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
2561
2562 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
2563
2564         PR bootstrap/14992
2565         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
2566         * config/linux.h (USE_LD_AS_NEEDED): Define.
2567         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
2568         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
2569         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
2570         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
2571         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
2572         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
2573         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
2574
2575 2004-04-22  Per Bothner  <per@bothner.com>
2576
2577         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
2578         Fixes PR preprocessor/15067.
2579
2580 2004-04-23  Andreas Schwab  <schwab@suse.de>
2581
2582         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
2583         avoid aliasing warning.
2584
2585 2004-04-22  Jan Hubicka  <jh@suse.cz>
2586             Mostafa Hagog <mustafa@il.ibm.com>
2587
2588       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
2589       * cfgloopanal.c (expected_loop_iterations): Change the return value
2590
2591 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
2592
2593         * cselib.h (struct elt_loc_list): Remove canon_loc field.
2594         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
2595         (cselib_invalidate_mem): Remove all canon_loc and canon_x
2596         traces.
2597
2598 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
2599
2600         Revert
2601         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2602
2603                 * var-tracking.c (variable_part_different_p): Variable parts
2604                 differ when the most recent locations differ.
2605
2606 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
2607
2608         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
2609         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
2610         (embedded_pic_offset): Delete.
2611         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
2612         MASK_* constants.
2613         (TARGET_EMBEDDED_PIC): Delete.
2614         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
2615         (ASM_SPEC): Remove -membedded-pic.
2616         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
2617         (ASM_OUTPUT_CASE_LABEL): Likewise.
2618         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
2619         * config/mips/windiss.h (ASM_SPEC): Likewise.
2620         * config/mips/mips.c (struct machine_function): Remove
2621         embedded_pic_fnaddr_rtx.
2622         (TARGET_ENCODE_SECTION_INFO): Remove override.
2623         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
2624         (override_options): Remove -membedded-pic handling.
2625         (print_operand): Remove handling of '%S'.
2626         (mips_select_section: Remove -membedded-pic handling.
2627         (mips_encode_section_info): Delete.
2628         (mips_output_conditional_branch): Remove mention of -membedded-pic.
2629         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
2630         -membedded-pic handling.
2631         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
2632
2633 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
2634
2635         * var-tracking.c (frame_base_decl): Remove useless GTY.
2636
2637 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
2638
2639         * config/rs6000/rs6000.c (rs6000_override_options): Error when
2640         user wants altivec and e500 instructions.
2641
2642 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
2643
2644         PR target/14813
2645         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
2646         in .init_array section to ...
2647         * config/ia64/crtbegin.asm: Here.
2648
2649         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
2650         and hidden if HAVE_INITFINI_ARRAY is defined.
2651
2652 2004-04-21  James E Wilson  <wilson@specifixinc.com>
2653
2654         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
2655         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
2656         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
2657         (fp_register_operand, lo_operand): New.
2658         (mips_rtx_costs): Add TUNE_SB1 support.
2659         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
2660         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
2661         (mips_multipass_dfa_lookahead): New.
2662         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
2663         TUNE_SB1): New.
2664         (TARGET_SWITCHES): Add -mfp-exceptions support.
2665         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
2666         (BRANCH_COST): Fix whitespace.
2667         * config/mips/mips.md: Include sb1.md.
2668         * config/mips/sb1.md: New file.
2669         * doc/invoke.texi: Document -mfp-exceptions.
2670
2671         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
2672         comment.
2673         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
2674         (fixincl.o-warn): Delete.
2675
2676 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
2677
2678         * config/rs6000/rs6000 (print_operand) ['z']:
2679         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
2680
2681 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
2682
2683         * config.gcc: Support --with-arch=iwmmxt for ARM.
2684
2685 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2686
2687         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
2688         in two more places; remove unneeded force_reg
2689
2690 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
2691
2692         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
2693         for TARGET_MACHO.
2694         (print_operand): For TARGET_MACHO check to see if we need a stub
2695         and output one if we need it.
2696
2697         PR debug/15033
2698         * dwarf2out.c (rtl_for_decl_location): Check for NULL
2699         rtl.
2700
2701 2004-04-20  James E Wilson  <wilson@specifixinc.com>
2702
2703         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
2704         (vall_value_gp): Likewise.
2705
2706 2004-04-20  DJ Delorie  <dj@redhat.com>
2707
2708         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
2709         variables stored in word registers, then in memory.
2710
2711 2004-04-20  Eric Christopher  <echristo@redhat.com>
2712
2713         * cp/parser.c (cp_parser_declaration): Move translate
2714         up before tokens are lexed.
2715
2716 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
2717
2718         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
2719         (asin_optab, acos_optab): Define corresponding macros.
2720         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
2721         * genopinit.c (optabs): Implement asin_optab and acos_optab
2722         using asin?f2 and acos?f2 patterns.
2723         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
2724         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
2725         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
2726         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2727
2728         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
2729         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
2730         acos, acosf and acosl built-ins as inline x87 intrinsics.
2731
2732 2004-04-20  Paul Brook  <paul@codesourcery.com>
2733
2734         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
2735
2736 2004-04-20  Paul Brook  <paul@codesourcery.com>
2737
2738         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
2739
2740 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
2741
2742         Revert part of 2004-04-17 change that moved -frename-registers
2743         to -O1.  -frename-registers is buggy.
2744
2745         * toplev.c (flag_rename_registers): Initialize to 0.
2746         * doc/invoke.texi (Optimize options): Move -frename-registers
2747         to "Not triggered by any -O level" section.  Adjust commentary
2748         accordingly.
2749
2750 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
2751
2752         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
2753
2754 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
2755
2756         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
2757         for mflo and mfhi instructions.
2758         (mips_output_move): Remove mflo and mfhi handling.
2759         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
2760         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
2761         Likewise various define_peephole2s.
2762         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
2763         alternatives.
2764         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
2765         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
2766         (mfhilo_di, mfhilo_si): New patterns.
2767
2768 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2769
2770         * function.c (assign_parms): Force
2771         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
2772
2773 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
2774
2775         * var-tracking.c (variable_part_different_p): Variable parts differ
2776         when the most recent locations differ.
2777
2778 2004-04-19  James E Wilson  <wilson@specifixinc.com>
2779
2780         * rtl.h (reg_set_last): Delete declaration.
2781         * rtlanal.c (reg_set_last): Delete.
2782
2783 2004-04-19  Roger Sayle  <roger@eyesopen.com>
2784
2785         * fold-const.c (fold_convert): Make function extern/public.
2786         * tree.h (fold_convert): Prototype here.
2787         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2788         expand_builtin_strrchr, expand_builtin_strpbrk,
2789         expand_builtin_mempcpy, expand_builtin_bcopy,
2790         expand_builtin_bzero, expand_builtin_memcmp,
2791         expand_builtin_strcmp, expand_builtin_strncmp,
2792         stabilize_va_list, expand_builtin_sprintf,
2793         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
2794         fold_builtin_exponent, fold_builtin_mempcpy,
2795         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
2796         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
2797         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
2798
2799 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
2800
2801         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
2802         (move_from_CR_gt_bit): New.
2803         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
2804         E500.
2805         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
2806         E500.
2807
2808         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
2809         (tstsfeq_gpr): Same.
2810         (cmpsfgt_gpr): Same.
2811         (tstsfgt_gpr): Same.
2812         (cmpsflt_gpr): Same.
2813         (tstsflt_gpr): Same.
2814         (e500_cceq_ior_compare): New.
2815         (e500_flip_gt_bit): New.
2816
2817         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
2818         (print_operand): Add 'c' and 'D'.
2819         (rs6000_generate_compare): Rewrite to generate correct rtl.
2820         (rs6000_emit_sCOND): Handle E500.
2821         (output_cbranch): Adjust for changes in rs6000_generate_compare.
2822         (output_e500_flip_gt_bit): New.
2823
2824         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
2825         Protoize.
2826
2827 2004-04-19  Eric Christopher  <echristo@redhat.com>
2828
2829         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
2830
2831 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
2832
2833         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
2834         fix information.
2835
2836 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2837
2838         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
2839         download URL.
2840
2841 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
2842
2843         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
2844         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
2845
2846 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
2847
2848         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
2849         (fold_builtin): Update caller to match.
2850
2851         PR bootstrap/15009
2852         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
2853
2854         PR bootstrap/14999
2855         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
2856
2857 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2858
2859         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
2860
2861         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
2862         (expand_mult_highpart_optab): Likewise.
2863         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
2864
2865 2004-04-19  Paul Brook  <paul@codesourcery.com>
2866
2867         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
2868         floatunssisf2, floatunssidf2): New patterns.
2869
2870 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
2871
2872         PR other/14918
2873         * doc/invoke.texi (-fprofile-generate): Document requirement to
2874         use -fprofile-generate when linking.
2875
2876         * doc/extend.texi (Strong Using): Warn users against using this
2877         feature.
2878
2879 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
2880
2881         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
2882         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
2883         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
2884         * config/mips/mips.c (struct mips16_constant): Renamed from struct
2885         constant.  Propogate change throughout file.
2886         (struct machine_function): Remove insns_len.
2887         (mips_string_length, mips16_strings, string_constants): Delete.
2888         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
2889         when generating mips16 code.  Remove special mips16 treatment of
2890         string constants.
2891         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
2892         to have the form LABEL+CONSTANT.
2893         (mips_symbolic_address_p): Fix comment.
2894         (m16_usym8_4, m16_usym5_4): Delete.
2895         (mips_output_function_epilogue): Remove mips16 string handling.
2896         (mips_output_mi_thunk): Call mips16_lay_out_constants.
2897         (mips_select_section, mips_encode_section_info): Remove mips16
2898         string handling.
2899         (struct mips16_constant_pool): New.
2900         (add_constant): Take a mips16_constant_pool structure.  Keep pool
2901         sorted into order of ascending mode size.  Keep track of the highest
2902         possible start address, taking padding and the masking of the base PC
2903         value into account.
2904         (dump_constants_1): New function, split out from dump_constants.
2905         Handle vector constants.  Use gen_consttable_{int,float} rather than
2906         separate functions for each mode.
2907         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
2908         rather than separate functions for each alignment.
2909         (mips_find_symbol): Delete.
2910         (mips16_insn_length): New function, split out from
2911         mips16_lay_out_constants.
2912         (mips16_rewrite_pool_refs): New function.
2913         (mips16_lay_out_constants): Rework. Remove string handling.
2914         Always create an inline constant pool.
2915         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
2916         (UNSPEC_ALIGN): New constants.
2917         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
2918         (UNSPEC_ALIGN_[248]): Delete.
2919         (consttable_int, consttable_float, align): New patterns.
2920         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
2921
2922 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
2923
2924         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
2925         __unn_args_eq.
2926
2927 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
2928
2929         PR target/14715
2930         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
2931         with STARTING_FRAME_OFFSET.
2932
2933 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2934
2935         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
2936         * config/mips/mips.c (macc_msac_operand): New function.
2937         * config/mips/mips.md (*msac): Move after *macc.
2938         (*msac2): New.  Generalize macc-related peepholes so that they apply
2939         to msac too.
2940
2941 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
2942
2943         * opts.c (decode_options): Do not enable flag_rename_registers
2944         and flag_web at -O3.
2945         * toplev.c (flag_rename_registers): Initialize
2946         flag_rename_registers and flag_web to
2947         AUTODETECT_FLAG_VAR_TRACKING.
2948         (default_debug_hooks): New global.
2949         (process_options): Initialize default_debug_hooks.  Warn if
2950         -fvar-tracking specified but not supported by the current
2951         debug format.  Do not run var tracking at -O0 or if not
2952         supported by the current debug format, even if
2953         -fvar-tracking was given.  If -fno-rename-registers
2954         is not specified, always run register renaming if var
2955         tracking is supported by the default debugging information
2956         format for the target, and we are at -O1 or higher; similarly
2957         for -fweb, but only at -O2 or higher.
2958         * doc/invoke.texi (Optimize Options): Document this.
2959
2960 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2961
2962         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
2963         * configure: Regenerate.
2964
2965 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
2966
2967         * gcc.c (used_arg): Check whether an option has been removed.
2968
2969 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2970
2971         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
2972         debugging on Solaris 7 and up.
2973
2974 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2975
2976         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
2977         IRIX 5 port.
2978         Remove -save-temps workaround, handled automatically.
2979         Require GNU binutils 2.15 for debugging.
2980         Remove SGI make warnings since GNU make is now required.
2981         (Specific, mips-sgi-irix6): Some markup fixes.
2982         Describe MIPSpro C problems and workarounds.
2983         Mention working O32 ABI support.
2984         Recommend GNU as 2.15 for O32 with debugging.
2985         Remove description of fixed structure pass/return bug.
2986
2987 2004-04-16  DJ Delorie  <dj@redhat.com>
2988
2989         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
2990         TYPE_FIELDS.
2991         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
2992
2993 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2994
2995         * pa.md: Remove unnecessary declarations for asm_out_file.
2996
2997         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
2998         SAR register.  Fix comment.
2999         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
3000         (%cr11).
3001
3002         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
3003
3004 2004-04-16  Nick Clifton  <nickc@redhat.com>
3005
3006         * config/arm/arm.c (arm_override_options): Revert previous patch.
3007         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
3008         be safely built.
3009
3010 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
3011
3012         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
3013         bug.
3014         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
3015         TARGET_DEFAULT): Changed. Ditto.
3016         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
3017         TARGET_ENDIAN_DEFAULT): Added. Ditto.
3018         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
3019         (TARGET_ENDIAN_DEFAULT): Added.
3020
3021 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3022
3023         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
3024         ATTR_CONST_NOTHROW_LIST.
3025
3026 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3027
3028         PR/middle-end 14915
3029         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
3030         BITS_BIG_ENDIAN.
3031
3032 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
3033
3034         * ra-debug.c (ra_print_rtx): Add break's to case legs.
3035
3036 2004-04-14  James E Wilson  <wilson@specifixinc.com>
3037
3038         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
3039
3040 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
3041
3042         * libada-mk.in: New file.
3043         * configure.ac: Create libada-mk from libada-mk.in.
3044         * configure: Regenerate.
3045
3046 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
3047
3048         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
3049         (logb_optab, ilogb_optab): Define corresponding macros.
3050         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
3051         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
3052         using logb?f2 and ilogb?i2 patterns.
3053         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
3054         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
3055         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
3056         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3057
3058         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
3059         and UNSPEC_XTRACT_EXP.
3060
3061         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
3062         patterns to implement fxtract x87 instruction.
3063         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
3064         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
3065         intrinsics.
3066         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
3067         x87's fxtract insn.
3068
3069 2004-04-14  Eric Christopher  <echristo@redhat.com>
3070
3071         * config/mips/t-elf: Enable multilibs by default.
3072
3073 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
3074
3075         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
3076         previous fix to check HAVE_return at runtime too.
3077
3078 2004-04-14  Nick Clifton  <nickc@redhat.com>
3079
3080         * config/arm/arm.c (arm_override_options): If the user has not
3081         specified an ABI, then default to AAPCS for the iWMMXt processor.
3082         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
3083         * config/arm/t-xscale-coff: Likewise.
3084
3085 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3086
3087         * builtins.c (fold_builtin_isdigit): New.
3088         (fold_builtin): Handle BUILT_IN_ISDIGIT.
3089         * defaults.h: Add TARGET_DIGIT0 and sort.
3090         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
3091
3092 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3093
3094         * builtins.c (fold_builtin_cabs, fold_builtin): Use
3095         `mathfn_built_in' to determine the new builtin.
3096         * fold-const.c (fold): Likewise.
3097
3098 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
3099
3100         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
3101         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
3102         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
3103         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
3104         (ASM_SPEC): Update accordingly.
3105         * config/mips/mips.c: Update after above renaming.
3106         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
3107         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
3108
3109 2004-04-13  James E Wilson  <wilson@specifixinc.com>
3110
3111         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
3112         increment errorcount and return false instead of true.
3113
3114 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
3115
3116         * optabs.c (expand_twoval_unop): Reorder function arguments.
3117         * builtins.c (expand_builtin_mathfn_3): Update calls to
3118         expand_twoval_unop.
3119
3120         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
3121         and UNSPEC_TAN_TAN. Add missing comment.
3122
3123         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
3124         patterns to implement fptan x87 instruction.
3125         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
3126         and tanl built-ins as inline x87 intrinsics. Define corresponding
3127         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
3128         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
3129         x87's fptan insn.
3130
3131 2004-03-13  Richard Henderson  <rth@redhat.com>
3132
3133         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
3134         for LABEL_REFs.
3135
3136         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
3137         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
3138         * doc/invoke.texi: Update to match.
3139
3140         * varasm.c (unlikely_text_section): Use assemble_align instead of
3141         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
3142         correct alignment argument.
3143
3144 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
3145
3146         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
3147         after setting reg_last_reload_reg for optional output reloads.
3148
3149 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
3150
3151         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
3152         Definition of these two macros are corrected by adding
3153         matchine right paren.
3154
3155 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
3156
3157         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
3158
3159 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3160
3161         * config/i386/i386.c (output_387_reg_move): New function.
3162         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
3163         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
3164         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
3165         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
3166         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
3167
3168 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3169
3170         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
3171         TYPE_DECL.
3172         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
3173         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
3174         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
3175         Use skip_simple_arithmetic to find SAVE_EXPR.
3176         (force_type_save_exprs, force_type_save_exprs_1): New functions.
3177         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
3178         Properly chain multiple pointers.
3179         (copy_tree_r): Copy a TYPE_DECL.
3180         * tree.c (variably_modified_type_p): Add some missing tests and
3181         make some other minor changes.
3182         * tree.h (force_type_save_exprs): New declaration.
3183
3184 2004-04-12  Roger Sayle  <roger@eyesopen.com>
3185
3186         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
3187         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
3188         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
3189         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
3190         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
3191         x%-1 into 0 (or x&0 if x has side-effects).
3192
3193 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3194
3195         * config/rs6000/rs6000.md: Document why a pattern is not
3196         available.
3197
3198         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
3199         of floats on the E500.
3200         (branch_positive_comparison_operator): Do not allow NE even on the
3201         E500.
3202
3203 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
3204
3205         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
3206         in_text_unlikely_section to in_unlikely_text_section.
3207
3208 2004-04-11  Roger Sayle  <roger@eyesopen.com>
3209
3210         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
3211         calling convention to allow a NULL_TREE to be returned.  Factor
3212         sanity checks from callers, return NULL_TREE when appropriate.
3213         (fold): Handle COMPOUND_EXPR operands of binary expressions
3214         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
3215         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
3216         calls to fold_binary_op_with_conditional_arg.
3217
3218 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3219
3220         * config/mips/iris5.h (current_section_flags):  Add
3221         in_unlikely_executed_text and default case.
3222
3223 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
3224
3225         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
3226         failure on solaris. Place ifdef HAVE_return around gen_ret call.
3227         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
3228         HAVE_return and place it around the place where it is needed.
3229
3230 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3231
3232         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
3233         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
3234         and NORMAL_TEXT_SECTION_NAME.
3235         (unlikely_text_section): Check targetm.have_named_sections
3236         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
3237         instead of SECTION_FORMAT_STRING.
3238         * config/mips/iris5.h (current_section_name): Add
3239         in_unlikely_executed_text case and move the abort into the switch.
3240         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
3241         (NORMAL_TEXT_SECTION_NAME): Remove.
3242         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3243         (SECTION_FORMAT_STRING): Remove.
3244         * defaults.h (SECTION_FORMAT_STRING): Remove.
3245         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
3246         (SECTION_FORMAT_STRING): Remove.
3247
3248 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
3249
3250         * c-typeck.c (common_type): Prefer long long to long when same
3251         precision.
3252
3253 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
3254
3255         PR 14887
3256         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
3257         mode argument.
3258         * config/ia64/ia64.c (ia64_hpux_file_end): Check
3259         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
3260
3261 2004-04-09  Roger Sayle  <roger@eyesopen.com>
3262
3263         * simplify-rtx.c (mode_signbit_p): New function to check whether
3264         an RTX is an immediate constant that represents the most significant
3265         bit of a given machine mode.
3266         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
3267         C is the sign bit.
3268         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
3269         when C2 is the sign bit.
3270         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
3271         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
3272         sign bit.
3273
3274 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3275
3276         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
3277         TYPE_MODE.
3278
3279 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
3280
3281         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
3282         of TREE_READONLY for types.
3283
3284 2004-04-09  Caroline Tice  <ctice@apple.com>
3285
3286         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
3287         (struct basic_block_def):  Add new field, partition.
3288         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
3289         definitions.
3290         (partition_hot_cold_basic_blocks): Add extern function
3291         declaration.
3292         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
3293         include statements.
3294         (N_ROUNDS): Increase the maximum number of rounds by 1.
3295         (branch_threshold): Add array value for new round.
3296         (exec_threshold): Add array value for new round.
3297         (push_to_next_round_p): New function.
3298         (add_unlikely_executed_notes): New function.
3299         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
3300         (mark_bb_for_unlikely_executed_section): New function.
3301         (add_labels_and_missing_jumps): New function.
3302         (add_reg_crossing_jump_notes): New function.
3303         (fix_up_fall_thru_edges): New function.
3304         (find_jump_block): New function.
3305         (fix_crossing_conditional_branches): New function.
3306         (fix_crossing_unconditional_branches): New function.
3307         (fix_edges_for_rarely_executed_code): New function.
3308         (partition_hot_cold_basic_blocks): New function.
3309         (find_traces):  Add an extra round for partitioning hot/cold
3310         basic blocks.
3311         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
3312         and only cold blocks, into the last (extra) round of collecting traces.
3313         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
3314         over crossing edges.
3315         (bb_to_key):  Add code to correctly identify cold blocks when
3316         doing partitioning.
3317         (connect_traces): Modify to connect all the non-cold traces first, then
3318         go back and connect up all the cold traces.
3319         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
3320         * cfg.c (entry_exit_blocks): Add initialization for partition field in
3321         entry and exit blocks.
3322         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
3323         if we are doing hot/cold partitioning.
3324         * cfgcleanup.c (cfglayout.h): Add new include statement.
3325         (try_simplify_condjump): Modify to not attempt on blocks with jumps
3326         that cross section boundaries.
3327         (try_forward_edges): Likewise.
3328         (merge_blocks_move_predecessor_nojumps): Likewise.
3329         (merge_blocks_move_successor_nojumps): Likewise.
3330         (merge_blocks_move): Likewise.
3331         (try_crossjump_to_edge): Modify to not attempt after we have done
3332         the block partitioning.
3333         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
3334         cross section boundaries.
3335         (try_optimize_cfg): Likewise.
3336         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
3337         jumps that cross section boundaries.
3338         * cfglayout.c (flags.h): Add new include statement.
3339         (update_unlikely_executed_notes):  New function.
3340         (fixup_reorder_chain):  Add code so when a new jumping basic block is
3341         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
3342         updated appropriately.
3343         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
3344         introduced by this optimization.
3345         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
3346         extern function declaration.
3347         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
3348         list of notes that can be deleted.
3349         (create_basic_block_structure):  Add initialization for partition field.
3350         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
3351         section boundaries.
3352         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
3353         cross section boundaries.
3354         (commit_one_edge_insertion): Add code so newly created basic block
3355         ends up in correct (hot or cold) section.  Modify to disallow
3356         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
3357         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
3358         crosses section boundaries.
3359         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
3360         cross section boundaries.
3361         (force_nonfallthru_and_redirect): Modify to make sure new basic block
3362         ends up in correct section, with correct notes attached.
3363         * common.opt (freorder-blocks-and-partition):  Add new flag for this
3364         optimization.
3365         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
3366         the end of functions are written into the correct (hot or cold)
3367         section.
3368         (dbx_source_file): Add code so writing debug file information
3369         doesn't incorrectly change sections.
3370         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
3371         in partitioning hot/cold basic blocks into separate sections.
3372         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
3373         section partitioning.
3374         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
3375         conditional branches can span all of memory.
3376         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
3377         unconditional branches can span all of memory.
3378         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
3379         (final_scan_insn):  Add code to check for NOTE instruction indicating
3380         whether basic block belongs in hot or cold section, and to make sure
3381         the current basic block is being written to the appropriate section.
3382         Also added code to ensure that jump table basic blocks end up in the
3383         correct section.
3384         * flags.h (flag_reorder_blocks_and_partition):  New flag.
3385         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
3386         one of the branches has a jump that crosses between sections.
3387         (find_if_case_2): Likewise.
3388         (ifcvt): Modify to not attempt to mark loop exit edges after
3389         hot/cold partitioning has occurred.
3390         * opts.c (decode_options): Code to handle new flag,
3391         flag_reorder_blocks_and_partition; also to turn it off if
3392         flag_exceptions is on.
3393         (common_handle_option): Code to handle new flag,
3394         flag_reorder_blocks_and_partition.
3395         * output.h (unlikely_text_section): New extern function declaration.
3396         (in_unlikely_text_section): New extern function declaration.
3397         * passes.c (rest_of_handle_stack_regs):  Add
3398         flag_reorder_blocks_and_partition as an 'or' condition for calling
3399         reorder_basic_blocks.
3400         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
3401         as an 'or' condition for calling reorder_basic_blocks.
3402         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
3403         * print-rtl.c (print_rtx): Add code for handling new note,
3404         NOTE_INSN_UNLIKELY_EXECUTED_CODE
3405         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
3406         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
3407         cross between section boundaries.
3408         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
3409         indicating the basic block containing it belongs in the cold section.
3410         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
3411         between hot and cold sections.
3412         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
3413         initialize this flag, and to tie it to the command-line option
3414         freorder-blocks-and-partition.
3415         * varasm.c (cfglayout.h):  Add new include statement.
3416         (unlikely_section_label_printed):  New global variable, used for
3417         determining when to output section name labels for cold sections.
3418         (in_section):  Add in_unlikely_executed_text to enum data structure.
3419         (text_section):  Modify code to use SECTION_FORMAT_STRING and
3420         NORMAL_TEXT_SECTION_NAME macros.
3421         (unlikely_text_section):  New function.
3422         (in_unlikely_text_section):  New function.
3423         (function_section):  Add code to make sure beginning of function is
3424         written into correct section (hot or cold).
3425         (assemble_start_function):  Add code to make sure stuff is written to
3426         the correct section.
3427         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
3428         to an if statement that was checking 'in_text_section'.
3429         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
3430         condition to an if statement that was checking 'in_text_section'.
3431         (default_section_type_flags_1):  Add check: if in cold section
3432         flags = SECTION_CODE.
3433         * config/darwin.c (darwin_asm_named_section):  Modify to use
3434         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
3435         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
3436         specifically for the i386.
3437         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
3438         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
3439         text string to something more informative.
3440         (NORMAL_TEXT_SECTION_NAME): Add new definition.
3441         (SECTION_FORMAT_STRING):  Add new definition.
3442         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
3443         '!in_unlikely_text_section' as an 'and' condition to an if statement
3444         that was already checking '!in_text_section'.
3445         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
3446         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
3447         sure these are properly defined for linux on ppc.
3448         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
3449         for this new flag.
3450         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
3451         reg_note.
3452         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
3453         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
3454         these new macros.
3455
3456 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3457
3458         * function.c (gen_mem_addressof): When changing the RTX from a REG
3459         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
3460
3461 2004-04-08  Roger Sayle  <roger@eyesopen.com>
3462
3463         PR target/14888
3464         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
3465         truncxfdf2_noop): Provide dummy "fmov" implementations.
3466
3467 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
3468
3469         * gcc.c (default_compilers): Add missing initializers.
3470
3471         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3472         Return 1 if file was successfully mapped.
3473
3474 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
3475
3476         PR pch/13419
3477         PR pch/14137
3478         Radar #: 3315288
3479         * doc/invoke.texi (Precompiled Headers): Suggest -o
3480         to put an output file in a particular place.  Be more detailed
3481         about which options affect PCH validity and which options
3482         might not work.
3483         * c-pch.c (pch_matching): New.
3484         (MATCH_SIZE): New.
3485         (struct c_pch_validity): New field 'match'.
3486         (pch_init): Handle pch_matching.
3487         (c_common_valid_pch): Check pch_matching.
3488
3489         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
3490
3491 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
3492
3493         * doc/invoke.texi (Precompiled Headers): Warn about known
3494         problems.
3495
3496 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
3497
3498         PR c++/14808
3499         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
3500         to 1 if ASM_OUTPUT_DEF is defined.
3501         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
3502         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
3503         Set to non-zero iff not a one_only decl.
3504
3505 2004-04-08  Paul Brook  <paul@codesourcery.com>
3506
3507         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
3508
3509 2004-04-08  Paul Brook  <paul@codesourcery.com>
3510
3511         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
3512         PROMOTE_FOR_CALL_ONLY.
3513         * config/arm/arm-protos.h (arm_function_value): Declare.
3514         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
3515         (TARGET_PROMOTE_PROTOTYPES): Return false.
3516         (arm_function_value): New function.
3517         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
3518         (FUNCTION_VALUE): Call arm_function_value.
3519         * config/cris/cris.h (PROMOTE_MODE): Rename ...
3520         (PROMOTE_FUNCTION_MODE): ... to this.
3521         (PROMOTE_FOR_CALL_ONLY): Remove.
3522         * config/mmix/mmix.h: Likewise.
3523         * config/s390/s390.h: Likewise.
3524         * config/sparc/sparc.h: Likewise.
3525         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
3526         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
3527         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
3528         (PROMOTE_FOR_CALL_ONLY): Remove.
3529
3530 2004-04-08  Joel Sherrill <joel@oarcorp.com>
3531
3532         PR ada/14538
3533         * ada/5rosinte.adb: Remove fake mprotect() body.
3534         * ada/5rosinte.ads: Add SA_SIGINFO.
3535         * ada/5rtpopsp.adb: Rewrite to use new interface.
3536         * ada/init.c: Reorder so the simple single OS conditional __rtems__
3537         is tested before more complex ones which mix UNIX and embedded
3538         systems in the conditional.
3539
3540 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
3541
3542         PR ada/14665
3543         * ada/osint.adb (Find_Program_Name): Rework to properly handle
3544         filenames which end in .exe or have versioning suffixes like VMS.
3545
3546 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
3547
3548         PR target/10129
3549         * config/darwin.c (darwin_encode_section_info): When the decl has
3550         a DECL_INITIAL, it is only defined also when it is not a common.
3551
3552 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3553
3554         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
3555         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
3556
3557 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
3558
3559         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
3560         global register variables.
3561
3562 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
3563
3564         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
3565         rpc_xdr_lvalue_cast_b): New fixes.
3566         * fixinc/fixincl.x: Regenerate.
3567         * fixinc/tests/base/rpc/xdr.h: Add new tests.
3568
3569 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
3570
3571         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
3572         to power4 and power5 entries.
3573
3574 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
3575
3576         * c-common.h (pending_lang_change): Mark for PCH.
3577
3578 2004-04-07  Caroline Tice  <ctice@apple.com>
3579
3580         * gcc.c (main): Move 'break' in main loops (on an error)
3581         to wait until error processing has occurred.
3582
3583 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
3584
3585         * config.gcc: Stop changing enable_threads midstream.
3586         Replace uses of enable_threads_flag with enable_threads.
3587         * configure.ac: Replace uses of enable_threads_flag with
3588         enable_threads.  Improve autoconf quotation in one place.
3589         * configure: Regenerate.
3590
3591 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
3592
3593         * builtins.c: Implement support for sincos function.
3594         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
3595         BUILT_IN_COS{,F,L}.
3596         (expand_builtin_mathfn_3): New function.
3597         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
3598         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
3599         flag_unsafe_math_optimization is set.
3600
3601         * optabs.h (enum optab_index): Add new OTI_sincos.
3602         (sincos_optab): Define corresponding macro.
3603
3604         * optabs.c (init_optabs): Initialize sincos_optab.
3605         (expand_twoval_unop): New function.
3606
3607         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
3608         patterns.
3609
3610         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
3611         and UNSPEC_SINCOS_SIN.
3612
3613         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
3614         sincosxf3): New patterns to implement sincos, sincosf and sincosl
3615         built-ins as inline x87 intrinsics. Define splits for
3616         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
3617         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
3618         sincos patterns.
3619         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
3620         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
3621
3622         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
3623         x87's fsincos insn.
3624
3625 2004-04-06  Devang Patel  <dpatel@apple.com>
3626
3627         PR 14467
3628         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
3629
3630 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3631
3632         * doc/install.texi: Update HP-UX 11 installation procedure.
3633
3634 2004-04-06  Paul Brook  <paul@codesourcery.com>
3635
3636         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
3637
3638 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3639
3640         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
3641         when the TLS address is generated by a function call.
3642         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
3643         (tls_local_dynamic): Likewise.
3644
3645 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
3646
3647         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
3648         and TYPE_VOLATILE.
3649
3650 2004-04-05  Caroline Tice  <ctice@apple.com>
3651
3652         * gcc.c (combine_flag): New global variable, for new driver option.
3653         (struct compiler): Add two new fields, to be used when
3654         combining multiple input files in a single pass (IMA).
3655         (default_compilers):  Add values for the new fields to all
3656         compiler entries. Modify the "@c" compiler entry for doing IMA
3657         properly with "-save-temps" and the "combine" flag.
3658         (option_map):  Add new driver option, "--combine", to tell driver
3659         to pass multiple input files to compiler at one time.
3660         (have_o_argbuf_index): New global variable.
3661         (store_arg): Modify to assign value to have_o_argbuf_index.
3662         (struct infile):  Add three new fields, to help with IMA.
3663         (display_help): Add help for new "combine" option.
3664         (process_command): Remove local variable have_o; add code to check
3665         for new "combine" option; remove assignment to combine_inputs.
3666         (do_spec_1):  Modify to deal with IMA better.
3667         (main): Make variable 'lang_n_infiles' local to entire function
3668         rather than to a single block.  Use flag combine_flag to
3669         determine whether to do IMA or not; Modify loop initializing
3670         infiles to deal properly with linker files.
3671         Add code for doing preprocessing in presence of
3672         IMA with "-save-temps" flag.  Modify "main" loop to handle
3673         multiple input files, in multiple languages, with or without
3674         preprocessing,  gracefully.
3675         * toplev.c (set_src_pwd): Modify to not complain if attempting to
3676         re-set it to same directory it's previously been set to (avoid
3677         irritating, meaningless warning messages when doing IMA with
3678         save-temps).
3679         * doc/invoke.texi: Add "-combine" to list of Overall Options;
3680         remove documentation about IMA that is no longer accurate; Add
3681         documentation explaining what "-combine" does.
3682         * ada/lang-specs.h: Add initialization values for new fields in
3683         "struct compiler".
3684         * cp/lang-specs.h: Likewise.
3685         * f/lang-specs.h: Likewise.
3686         * java/lang-specs.h: Likewise.
3687         * objc/lang-specs.h: Likewise.
3688         * treelang/lang-specs.h: Likewise.
3689
3690 2004-04-05  David Edelsohn
3691
3692         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
3693         symbol handling.
3694
3695 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
3696             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3697
3698         PR optimization/13424 (hppa), bootstrap/14462, c/14828
3699         * pa.md: Use replace_equiv_address to retain the attributes of the
3700         memory operands used in the split and peephole2 patterns for optimizing
3701         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
3702
3703 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3704
3705         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
3706         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3707         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
3708         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
3709         PARM_DECL.
3710         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
3711         for a type.
3712         * print-tree.c (print_node): Properly handle side-effects, readonly,
3713         and constant flags.
3714         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
3715         and TREE_CONSTANT if not a type.
3716         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
3717         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
3718         (NON_TYPE_CHECK): New macro.
3719         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
3720
3721 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
3722
3723         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
3724         to DWARF2_DEBUG unconditionally.
3725         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
3726
3727 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
3728             Nathanael Nerode  <neroden@gcc.gnu.org>
3729
3730         PR target/14548
3731         * config.host: Set the shell variable host_can_use_collect2.
3732         Set it to yes by default, and to no for alpha*-dec-*vms*,
3733         i[34567]86-*-mingw32*, and powerpc-*-beos*.
3734         * configure.ac: Set and substitute the shell variable collect2.
3735         Give an error if use_collect2 is yes and host_can_use_collect2 is
3736         no.
3737         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
3738         uses.  Initialize to @collect2@.
3739         (STAGESTUFF): Remove $(USE_COLLECT2).
3740         * config/alpha/x-vms (USE_COLLECT2): Don't set.
3741         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
3742         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
3743         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
3744         * configure: Regenerate.
3745
3746 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3747
3748         * simplify-rtx.c (simplify_binary_operation): Constant fold
3749         DIV, MOD, UDIV and UMOD using div_and_round_double.
3750
3751 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
3752
3753         PR c++/14804
3754         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
3755         RECORD_TYPEs.
3756
3757 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
3758
3759         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
3760         documentation.
3761
3762 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3763
3764         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
3765         updating the REG_EQUAL note on an insn's libcall_insn.
3766
3767 2004-04-04  Roger Sayle  <roger@eyesopen.com>
3768
3769         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
3770
3771 2004-04-03  Roger Sayle  <roger@eyesopen.com>
3772
3773         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
3774         with reorder_operands_p.
3775
3776 2004-04-03  Jan Hubicka  <jh@suse.cz>
3777
3778         * md.texi (vec_set, vec_extract, vec_init): Document.
3779
3780 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
3781
3782        * opts.c (decode_options): Do function inlining with very small
3783        max-inline-insns-* parameters when optimizing for size.
3784
3785 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
3786
3787         * config/i386/i386.h (TARGET_NOCONA): New macro.
3788         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
3789         (processor_type): Add PROCESSOR_NOCONA.
3790
3791         * config/i386/i386.md (cpu): Add nocona to the attribute values.
3792
3793         * config/i386/i386.c (nocona_cost): New variable.
3794         (m_NOCONA): New macro.
3795         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
3796         x86_branch_hints, x86_use_sahf, x86_single_stringop,
3797         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
3798         x86_integer_DFmode_moves, x86_partial_reg_dependency,
3799         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
3800         x86_decompose_lea, x86_arch_always_fancy_math_387,
3801         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
3802         x86_ext_80387_constants, x86_four_jump_limit):
3803         (override_options): Add nocona_cost to processor_target_table.
3804         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
3805         (incdec_operand): Prevent inc/dec generation for Nocona too.
3806         (ix86_issue_rate): Add PROCESSOR_NOCONA.
3807
3808 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
3809
3810         * rtlanal.c (find_reg_note): Manually
3811         unswitch the loop.
3812
3813 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
3814
3815         * genemit.c (gen_split): Change prototype of generated code.
3816         * genrecog.c (write_action): Adjust prototype for and calls to
3817         gen_split_*.
3818         * gensupport.c (struct queue_elem): Add split field.
3819         (queue_pattern): Return a value.  Clear the split field.
3820         (process_rtx): Maintain an association between an insn and the
3821         split generated from it for a define_insn_and_split.
3822         (process_one_cond_exec): Generate a new split for a
3823         define_insn_and_split.
3824         * config/arm/arm-protos.h (arm_split_constant): Add insn
3825         parameter.
3826         (emit_constant_insn): New function.
3827         (arm_gen_constant): Use it.
3828         * config/arm/arm.md: Adjust calls to arm_split_constant.
3829
3830 2004-04-02  Jan Hubicka  <jh@suse.cz>
3831
3832         * cgraph.c: Add overall comment.
3833         (cgraph_inline_hash): New global variable.
3834         (cgraph_create_node): Break out from ...
3835         (cgraph_node): ... here.
3836         (cgraph_edge): New function.
3837         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
3838         (cgraph_remove_edge): Accept edge, intead of source and destination.
3839         (cgraph_redirect_edge_callee): New.
3840         (cgraph_remove_node): Update all new datastructures.
3841         (cgraph_record_call, cgraph_remove_call): Kill.
3842         (dump_cgraph_node): Break out from ... ; dump new datastructures.
3843         (dump_cgraph): ... here.
3844         (cgraph_function_possibly_inlined_p): Use new hashtable.
3845         (cgraph_clone_edge, cgraph_clone_node): New.
3846         * cgraph.h: Include hashtab.h
3847         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
3848         fields, add inlined_to pointer.
3849         (cgraph_node): Add pointer to next_clone.
3850         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
3851         (cgraph_remove_call, cgraph_record_call): Kill.
3852         (cgraph_inline_hash): Declare.
3853         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
3854         cgraph_redirect_edge_callee): Declare.
3855         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
3856         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
3857         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
3858         * cgraphunit.c: Add overall comment.
3859         (cgraph_optimize_function): Kill.
3860         (cgraph_assemble_pending_functions): Do not assemble inline clones.
3861         (cgraph_finalize_function): Update call of cgraph_remove_node
3862         (record_call_1): Record call sites.
3863         (cgraph_create_edges): Accept node instead of decl argument.
3864         (error_found): New static variable.
3865         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
3866         (cgraph_analyze_function): Update for new datastructures.
3867         (cgraph_finalize_compilation_unit): Plug memory leak.
3868         (cgraph_optimize_function): Kill.
3869         (cgraph_expand_function): Do not use cgraph_optimize_function.
3870         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
3871         cgraph_inlined_callees): Kill.
3872         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
3873         clones.
3874         (estimate_growth): Simplify.
3875         (cgraph_clone_inlined_nodes): New function.
3876         (cgraph_mark_inline_edge): Re-implement.
3877         (cgraph_mark_inline): Likewise.
3878         (cgraph_check_inline_limits): Simplify.
3879         (cgraph_recursive_inlining_p): New.
3880         (update_callee_keys): Break out from ...
3881         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
3882         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
3883         Likewise.
3884         (cgraph_expand_all_functions):  Remove inline clones from the ordered
3885         list.
3886         (cgraph_preserve_function_body_p): New predicate.
3887         (cgraph_optimize): Verify cgraph.
3888         * function.h (struct function): Add fields saved_tree/saved_args.
3889         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
3890         * toplev.c (rest_of_compilation): Do not free cfun.
3891         * tree-inline.c: Include function.h
3892         (struct inline_data): Add saving_p field; replace decl/current_decl by
3893         node/current_node.
3894         (insert_decl_map): New function.
3895         (copy_body_r): Handle saving; update cgraph datastructure.
3896         (copy_body): Handle recursive inlining.
3897         (initialize_inlined_parameters): Likewise.
3898         (expand_call_inline): Propagate node attributes; update cgraph.
3899         (optimize_inline_calls): Verify that datastructure still match.
3900         (save_body): New function.
3901         * tree-inline.h (save_body): New.
3902         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
3903         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
3904         * langhooks.c (lang_hooks): Add update_decl_after_saving.
3905
3906 2004-04-01  Serge Belyshev  <1319@bot.ru>
3907
3908         PR target/14702
3909         * config/i386/i386.md: fix source operand constraints in
3910         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
3911
3912 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
3913
3914         * fold-const.c (folda): Preserve types of comparisons.
3915
3916 2004-04-01  Richard Henderson  <rth@redhat.com>
3917
3918         * toplev.c (backend_init): Move init_optimization_passes call ...
3919         (lang_dependent_init): ... here.
3920
3921 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
3922             Jakub Jelinek  <jakub@redhat.com>
3923
3924         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
3925         -lgcc --as-needed -lgcc_s --no-as-needed by default.
3926         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
3927         * configure: Rebuilt.
3928         * config.in: Rebuilt.
3929         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
3930         (stage2-start, stage3-start, stage4-start): Likewise.
3931         (stageprofile-start, stagefeedback-start): Likewise.
3932
3933 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
3934
3935         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
3936         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3937         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3938         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
3939         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
3940         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
3941         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
3942         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
3943         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
3944         * config/sparc/t-linux: Removed.
3945
3946 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
3947
3948         PR c++/14755
3949         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
3950         "bitfld++ == const" to "++bitfld == const + incr" transformations.
3951
3952 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3953
3954         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
3955         * stor-layout.c (layout_decl): Likewise.
3956         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
3957         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
3958         * print-tree.c (print_node): Handle various used of unsigned_flag.
3959         * tree.def (BIT_FIELD_REF): Update comment.
3960         * tree.h (TREE_UNSIGNED): Deleted.
3961         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
3962
3963 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3964
3965         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
3966         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
3967         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
3968         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
3969         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
3970         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
3971         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
3972         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
3973         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
3974         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
3975         REAL_TYPE, not INTEGER_TYPE.
3976         (layout_type, case VECTOR_TYPE): Simplify code.
3977         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
3978         * tree.h: Update comments.
3979         (STRIP_NOPS): Use TYPE_UNSIGNED.
3980         (TYPE_UNSIGNED): New macro.
3981         (TYPE_TRAP_SIGNED): Remove now redundant check.
3982         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
3983
3984 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3985
3986         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
3987
3988 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
3989
3990         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
3991         Add darwin-fpsave.asm, darwin-vecsave.asm,
3992         and darwin-world.asm.
3993         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
3994         as the asm files contain altivec instructions.
3995         * config/rs6000/darwin-fpsave.asm: New file.
3996         * config/rs6000/darwin-vecsave.asm: New file.
3997         * config/rs6000/darwin-world.asm: New file.
3998
3999 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
4000
4001         * gengtype-yacc.y (option, stringseq): Add missing
4002         terminating semicolon.
4003
4004 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
4005
4006         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
4007         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
4008         tls_dtprel_ha_32, tls_dtprel_ha_64,
4009         tls_dtprel_lo_32, tls_dtprel_lo_64,
4010         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
4011         tls_tprel_ha_32, tls_tprel_ha_64,
4012         tls_tprel_lo_32, tls_tprel_lo_64,
4013         tls_got_tprel_32, tls_got_tprel_64,
4014         tls_tls_32, tls_tls_64): Replace register_operand with
4015         gpc_reg_operand.
4016
4017 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
4018
4019         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
4020         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
4021         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
4022         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
4023         *ctrdi_internal6): Replace register_operand with
4024         nonimmediate_operand.
4025
4026 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
4027
4028         * fold-const.c (fold): Reassociate multiply expression
4029         with an adjacent non-multiply expression to use
4030         architecture's multiply-add instruction.
4031
4032 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
4033
4034         * gengtype.c (create_option): New function.
4035         * gengtype.h: Prototype it.
4036         * gengtype-yacc.y (stringseq): New rule.
4037         (option): Use create_option.  Add new bare ID production.  Use
4038         stringseq, not STRING directly.
4039
4040         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
4041         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
4042         * varray.h, config/alpha/alpha.c:
4043         Use new shorter form of GTY markers.
4044
4045         * doc/gty.texi: Rewrite.
4046
4047 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
4048
4049         * config/darwin.c (machopic_function_base_name):
4050         Remove current_name and getting the name of the
4051         current function.
4052
4053 2004-03-30  Nick Clifton  <nickc@redhat.com>
4054
4055         * config/arm/arm.md (thumb_jump): Reduce the backward branch
4056         range, and increase the forward branch range, to allow for
4057         the fact that the PC will be off by 4.
4058
4059 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
4060
4061         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
4062
4063 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
4064
4065         * config/rs6000/rs6000.c (output_vec_const_move):
4066         Find all cases of EASY_VECTOR_15_ADD_SELF.
4067         (easy_vector_constant_add_self): Accept
4068         all vector constant loadable by vsplt* and vadd*.
4069         (easy_vector_same): Use easy_vector_splat_const.
4070         (easy_vector_const): Use easy_vector_splat_const.
4071         (easy_vector_splat_const): New function.
4072         (gen_easy_vector_constant_add_self): New function.
4073
4074         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
4075         New prototype.
4076
4077         * config/rs6000/altivec.md (movv4si splitter): Change to
4078         emit move insn with halfed vector constant.
4079         (*movv8hi splitter): Likewise.
4080         (*movv16qi splitter): Likewise.
4081
4082 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
4083
4084         PR 11591
4085         * config/rs6000/rs6000.c (rs6000_legitimate_address):
4086         Allow any offset to argument pointer in no-strict case.
4087
4088 2004-03-30  Jan Hubicka  <jh@suse.cz>
4089
4090         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
4091         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
4092         dump file in non-unit-at-a-time mode.
4093
4094 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
4095
4096         * config/cris/cris.h: Correct #ifdef to test for
4097         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
4098         HAVE_AS_MUL_BUG_ABORT_OPTION.
4099
4100 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4101
4102         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
4103         the address inside the old RTL.
4104
4105 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
4106
4107         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
4108         (struct c_binding, struct c_scope): Add chain_next
4109         attributes to GTY markers.
4110         (struct lang_identifier, struct lang_tree_node): Define
4111         here...
4112         * c-tree.h: ... not here.  No longer need to declare struct
4113         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4114         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
4115         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
4116
4117         PR 14734, 11944
4118         * c-decl.c (get_parm_info): If error_mark_node is encountered
4119         in the bindings chain, unbind and discard it; don't abort.
4120
4121 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
4122             Dorit Naishlos <dorit@il.ibm.com>
4123
4124         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
4125         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
4126
4127 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
4128
4129         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
4130
4131         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
4132         (m68hc11_attribute_table): New attribute "page0" to mark a global
4133         variable as being allocated from within page0 section.
4134         (m68hc11_encode_label): New function.
4135         (m68hc11_strip_name_encoding): New function.
4136         (m68hc11_page0_symbol_p): New function.
4137         (m68hc11_indirect_p): Accept global variables marked in page0.
4138         (m68hc11_encode_section_info): Lookup "page0" attribute.
4139
4140         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
4141         represents access to page0 variables.
4142
4143         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
4144         ("*logicalsi3_silshl16_zext"): Likewise.
4145         ("*ashldi3_const32"): Likewise.
4146         (peephole2 ashift): Likewise.
4147
4148 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4149
4150         * c-tree.h (C_DECL_REGISTER): New.
4151         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
4152         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
4153         (build_array_ref, c_mark_addressable): Set and use it.
4154         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
4155         Allow structures with volatile fields to be declared register.
4156         Don't check TREE_ADDRESSABLE before warning about taking address
4157         of register.
4158         * c-decl.c (finish_decl): Don't allow structures with volatile
4159         fields to be placed in named register.
4160         * doc/trouble.texi: Remove reference to structures with volatile
4161         fields in registers.
4162
4163 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4164
4165         * function.c (thread_prologue_and_epilogue): Move
4166         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
4167         before the epilogue.
4168
4169 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
4170
4171         * expr.c (store_constructor): Use gen_int_mode to correctly
4172         sign-extend CONST_INT value.
4173
4174 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4175
4176         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
4177         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
4178         * doc/extend.texi: Likewise.
4179
4180 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
4181
4182         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
4183           with TYPE_ORIG_SIZE_TYPE.
4184
4185 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
4186
4187         PR 14219
4188         * c-typeck.c (build_binary_op): Do not allow comparisons of
4189         vectors.
4190
4191 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
4192
4193         * config.gcc: Remove sparc-tti-*.
4194         * config/sparc/pbd.h: Delete.
4195
4196         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
4197         * config/sparc/aout.h: Likewise.
4198
4199         * config/sparc/sparc.h: Remove if 0'd code.
4200         * config/sparc/sparc.md (call): Remove if 0'd code.
4201         (call_value): Likewise.
4202         (nonlocal_goto): Likewise.
4203         (unimp_insn): Delete.
4204
4205 2004-03-25  Roger Sayle  <roger@eyesopen.com>
4206
4207         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
4208         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
4209
4210 2004-03-25  Richard Henderson  <rth@redhat.com>
4211
4212         PR 11527
4213         * c-typeck.c (pop_init_level): Emit pending init elements earlier
4214         rather than later.
4215
4216 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4217
4218         * builtins.c (fold_builtin): Fix error in last change.
4219
4220 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
4221
4222         * config/mips/mips.h: Formatting fix.
4223
4224 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4225
4226         * builtins.def: Add ctype builtins.
4227         * doc/extend.texi: Likewise.
4228
4229 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4230
4231         * builtins.c (fold_builtin): Add new builtin optimizations for
4232         sqrt and/or cbrt.
4233         * fold-const.c (fold): Likewise.
4234
4235 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
4236
4237         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
4238         (rs6000_sched_groups): New variable.
4239         (processor_target_table): Add power5.
4240         (rs6000_override_options): Set rs6000_sched_insert_nops,
4241         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
4242         from rs6000_sched_groups.
4243         (output_cbranch): Use rs6000_always_hint.
4244         (rs6000_variable_issue): Use rs6000_sched_groups.
4245         (rs6000_adjust_cost): Add CPU_POWER5.
4246         (is_microcoded_insn): Use rs6000_sched_groups.
4247         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
4248         Return 2 for POWER5 cracked instructions.
4249         (is_cracked_insn): Use rs6000_sched_groups.
4250         (is_branch_slot_insn): Use rs6000_sched_groups.
4251         (rs6000_issue_rate): Add CPU_POWER5.
4252         (rs6000_sched_finish): Use rs6000_sched_groups.
4253         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
4254         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
4255         (DEFAULT_SCHED_COSTLY_DEP): Delete.
4256         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
4257         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
4258         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
4259         * config/rs6000/power5.md: New file.
4260         * doc/invoke.texi: Add power5 option.
4261
4262 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4263
4264         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
4265         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
4266         * doc/invoke.texi: Fix a typo.
4267
4268 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
4269
4270         PR optimization/9707.
4271         * stmt.c (emit_case_nodes): Emit equality comparisons instead
4272         of recursing if both children are single-valued cases with no
4273         children.
4274
4275 2004-03-25  Paul Brook  <paul@codesourcery.com>
4276
4277         * config/arm/arm.c (vfp_print_multi): Remove.
4278         (arm_output_fldmx): New function.
4279         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
4280         (arm_expand_prologue): Update to match.
4281         (arm_get_vfp_saved_size): New Function.
4282         (arm_get_frame_offsets): Use it.
4283         (arm_output_epilogue): Use new functions.
4284
4285 2004-03-24  Richard Henderson  <rth@redhat.com>
4286
4287         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
4288         (reg_known_value, reg_known_value_size): Likewise; make static.
4289         (reg_known_equiv_p): Make static.
4290         (clear_reg_alias_info): Update for new indexing.
4291         (get_reg_known_value, set_reg_known_value): New.
4292         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
4293         (canon_rtx): Use them.
4294         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
4295         Don't play queer offsetting games with reg_known_value and
4296         reg_known_equiv_p.
4297         (end_alias_analysis): Free reg_known_value with gc.
4298         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
4299         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
4300         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
4301         functions instead.
4302
4303 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
4304
4305         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
4306         config/i386/mmintrin.h: Update copyright.
4307
4308 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4309
4310         * configure.ac: Add --enable-werror-always (for top level bootstrap
4311         support).
4312         * configure: Regenerate.
4313
4314 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
4315
4316         * objc/objc-act.c (objc_comptypes): Treat comparisons
4317         between 'Class' and '<class> *' as explicitly invalid.
4318
4319 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
4320
4321         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
4322         (-fprofile-values): Add enabled with profile-{generate,use}.
4323         (-fvpt): Same.
4324         (-ftracer): Add enabled with profile-use.
4325         (-funit-at-a-time): Add enabled at -O2,-O3.
4326         (-funroll-loops): Add enabled with profile-use.
4327         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
4328         (max-gcse-passes): Mention default.
4329         (max-cse-path-length): Mention default.
4330
4331 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4332
4333         * Makefile.in (STRICT2_WARN): Reorder.
4334         * configure.ac: Check for -Wold-style-definition, and use it
4335         in strict1_warn if it's available.
4336         * configure: Regnerate.
4337
4338 2004-03-24  Paul Brook  <paul@nowt.org>
4339
4340         * config.gcc <arm>: Add --with-abi=
4341         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
4342         thumb_far_jump_used): Remove prototypes.
4343         (arm_needs_doubleword_align): Add prototype.
4344         (thumb_compute_initial_elimination_offset): Ditto.
4345         * config/arm/arm.c (arm_get_frame_offsets): New function.
4346         (use_return_insn, output_return_instruction, arm_output_epilogue,
4347         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
4348         arm_expand_prologue, thumb_expand_epilogue): Use it.
4349         (arm_abi, target_abi_name, all_arm_abis): New variables.
4350         (arm_override_options): Set them.  Set structure padding for AAPCS.
4351         (arm_return_in_memory): Update ABI check.
4352         (arm_init_cumulative_args): Initialize can_split.
4353         (arm_needs_doubleword_align): New function.
4354         (arm_function_arg): Don't split args after pushing to stack. Handle
4355         doubleword/even reg alignment.
4356         (arm_va_arg): Handle all doubleword aligned args.
4357         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
4358         on ABI, not CPU.
4359         (arm_compute_save_reg0_reg12_mask): Fix comment.
4360         (thumb_get_frame_size, thumb_get_frame_size): Remove.
4361         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
4362         value for alignment.
4363         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
4364         to match.
4365         (thumb_compute_initial_elimination_offset): New function.
4366         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
4367         unneccessary rounding.
4368         * config/arm/arm.h (target_abi_name): Declare.
4369         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
4370         arm_abi_type, ARM_DEFAULT_ABI): Define.
4371         (ARM_FLAG_ATPCS): Remove.
4372         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
4373         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
4374         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
4375         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
4376         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
4377         Contitionalize on ABI, not CPU.
4378         (struct arm_stack_offsets): Define.
4379         (struct machine_function): Add stack_offsets.  Remove frame_size.
4380         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
4381         pushed.
4382         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
4383         doubleword alignment.
4384         (THUMB_INITIAL_ELIMINATION_OFFSET,
4385         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
4386         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
4387         * config/arm/arm.md (align_8): Enable for all targets.
4388         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
4389         (ARM_DEFAULT_ABI): Define.
4390         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
4391         -mstructure-size-boundary.
4392
4393 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
4394
4395         * configure.ac: Check for -Wno-variadic-macros; don't use
4396         -pedantic (in stage 1 or a simple 'make all') unless it's available,
4397         and if it's available, use it.  Also, clean up check for
4398         -Wno-long-long.
4399         * configure: Regenerate.
4400
4401 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4402
4403         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
4404         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
4405         (MULTILIB_DEFAULTS): Use it.
4406         (MIPS_CPU_STRING_DEFAULT): Remove.
4407         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
4408         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
4409         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
4410         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
4411         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
4412         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
4413         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
4414         accordingly.
4415
4416 2004-03-24  DJ Delorie  <dj@redhat.com>
4417             Richard Sandiford  <rsandifo@redhat.com>
4418
4419         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
4420         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
4421         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
4422         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
4423         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
4424         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
4425         if TARGET_FIX_VR4122.
4426         * config/mips/mips.md (define_attr length): Account for nops inserted
4427         after macc and dmult when using -mfix-vr4122-bugs.
4428         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
4429         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
4430         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
4431         * config/mips/vr4122-div.S: New file.
4432         * doc/invoke.texi: Document -mfix-vr4122-bugs.
4433
4434 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
4435
4436         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
4437         (TARGET_MIPS4130): New macro.
4438         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
4439         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
4440         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
4441         with PROCESSOR_R4130.
4442         * config/mips/mips.md (define_attr cpu): Add r4130.
4443         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
4444
4445 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4446             Richard Sandiford  <rsandifo@redhat.com>
4447
4448         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
4449
4450 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
4451
4452         PR preprocessor/14438
4453         * cpplib.c (do_pragma): Remove line_change call after pragma
4454         handler.
4455
4456 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
4457
4458         * doc/extend.texi (ARM Built-in Functions): Replace with correct
4459         declarations.
4460
4461 2004-03-23  Roger Sayle  <roger@eyesopen.com>
4462
4463         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
4464         if flag_unsafe_math_optimizations.
4465         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
4466         and TARGET_80387 expand using truncdfsf2_noop pattern.
4467         (truncxfsf2): Likewise using truncxfsf2_noop.
4468         (truncxfdf2): Likewise using truncxfdf2_noop.
4469         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
4470
4471 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
4472
4473         * hooks.c (hook_constcharptr_tree_null): New hook.
4474         * hooks.h (hook_constcharptr_tree_null): New prototype.
4475         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
4476         * target.h (mangle_fundamental_type): New target hook.
4477         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
4478         target hook at rs6000_mangle_fundamental_type.
4479         (rs6000_mangle_fundamental_type): New function.
4480         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
4481
4482 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
4483
4484         PR 12267, 12391, 12560, 13129, 14114, 14133
4485         * c-tree.h: Forward declare struct c_binding.  Declare
4486         c_override_bindings_to_false.  Update prototypes.
4487         (struct lang_identifier): Update comments.  Change fields to be
4488         struct c_binding *.
4489         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
4490         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
4491         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
4492         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
4493         * c-common.h: Update prototypes.
4494         * c-decl.c (struct c_scope): Update commentary.  Remove names,
4495         names_last, parms, parms_last, tags, and shadowed fields.  Add
4496         bindings and depth fields.
4497         (scope_freelist): Move to more appropriate location.
4498         (c_print_identifier): Update for changes to struct lang_identifier.
4499         (objc_mark_locals_volatile): Update for new bindings structures.
4500         (global_bindings_p): Honor c_override_global_bindings_to_false.
4501         (pushlevel): Rename to push_scope; take no arguments; use the
4502         scope_freelist; initialize scope->depth and check for overflow.
4503         (poplevel): Rename to pop_scope; totally rewritten for new bindings
4504         structures.
4505         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
4506         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
4507         Improve some commentary.  Adjust handling of forward parm decls.
4508         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
4509         Preserve C_DECL_IN_EXTERNAL_SCOPE.
4510         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
4511         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
4512         decls.  Rewrite for new bindings structures.  Improve commentary.
4513         Eliminate the copy_node call.
4514         (implicit_decl_warning): Use the "diag" idiom (as seen in
4515         locate_old_decl) to reduce code duplication; call locate_old_decl
4516         if appropriate.  Relocate to remove need for forward declaration.
4517         (implicitly_declare): Adjust for new bindings structures.  Kludge
4518         around Objective-C not-really-builtin functions.
4519         (undeclared_variable): Improve diagnostics.  If current_function_decl
4520         is nonnull but current_function_scope is null, use current_scope.
4521         Use bind.
4522         (lookup_tag): Adjust for new bindings structures.  Kludge around
4523         Objective-C's tag declarations that wind up in the external scope.
4524         (lookup_name): Adjust for new bindings structures.  Kludge around
4525         c-common.c's pseudo-typedefs that wind up in the external scope.
4526         (lookup_name_current_level): Rename lookup_name_in_scope; take a
4527         second argument indicating the scope to examine; rewrite for
4528         new bindings structures.
4529         (c_init_decl_processing): Adjust for renamed functions.  Do not
4530         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
4531         First scope pushed is the external scope, not the global scope.
4532         (builtin_function): Use bind, not pushdecl.  Adjust other bits
4533         for new data structures.  Keep track of builtins that should be
4534         made visible automatically.
4535         (start_decl): Adjust diagnostics.  Remove unnecessary call to
4536         expand_decl.
4537         (grokparms): Return 0 if arg_types is error_mark_node.
4538         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
4539         reversed sense.  Rewrite for new bindings structures.  Do not
4540         leave any decls in the scope, to prevent pop_scope from doing
4541         contradictory things with them.
4542         (finish_struct, finish_enum): Remove redundant diagnostics.
4543         (build_enumerator): Don't cascade diagnostics for error_mark_node.
4544         Mark location where -pedantic changes the meaning of the program.
4545         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
4546         parameter decls into the function's scope structure using bind.
4547         Warn here about function definitions in the wrong style.
4548         Adjust diagnostics.
4549         (store_parm_decls): Correct the determination of whether a
4550         function was defined with a prototype.
4551         (c_write_global_declarations): Operate on all file decls and on
4552         the external scope.  Split body of the loop to...
4553         (c_write_global_declarations_1): ... this new function, to avoid
4554         code duplication.
4555         (truly_local_externals, first_builtin_decl, last_builtin_decl)
4556         (make_scope, pop_scope, in_parm_level_p, set_block)
4557         (any_external_decl, record_external_decl, bind_label, getdecls)
4558         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
4559         (c_reset_state): Delete.
4560         (visible_builtins, c_override_global_bindings_to_false)
4561         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
4562         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
4563         (external_scope, binding_freelist, bind, free_binding_and_advance)
4564         (push_file_scope, pop_file_scope): New.
4565         (pushtag, pushdecl_top_level, lookup_label, declare_label)
4566         (define_label, c_make_fname_decl, finish_decl)
4567         (mark_forward_parm_decls, build_compound_literal)
4568         (grokdeclarator, start_function, check_for_loop_decls)
4569         (identifier_global_value, record_builtin_type): Minor adjustments
4570         for new bindings structures.  Improve diagnostics and commentary.
4571         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
4572         pushlevel/poplevel respectively.
4573         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
4574         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
4575         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
4576         correct loop over multiple translation units; call fatal_error if
4577         requested to compile more than one file at once.  (This disables
4578         IMA temporarily - an up-front error being preferable to a crash.)
4579         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
4580         (all actions): Adjust calls to pushlevel/poplevel.
4581         (parsing_iso_function_signature): Delete.
4582         (extdef_1): Fold into extdef.
4583         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
4584         warn here about function definitions in the wrong style.
4585         (after_tyle_declarator, parm_declarator_starttypename)
4586         (parm_declarator_nostarttypename, notype_declarator): Remove
4587         commented-out productions.
4588         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
4589         an empty TREE_LIST node.  Adjust calls to get_parm_info.
4590         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
4591         to suppress -Wold-style-definition after this error.
4592         (c_parse_file): Don't clear the binding stack or call
4593         finish_fname_decls here.  Correct comment.
4594         * c-typeck.c (same_translation_unit_p): Export.
4595         (common_type): Use c_override_global_bindings_to_false, not
4596         pushlevel/poplevel/declare_parm_level.
4597         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
4598         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
4599         and LANG_HOOKS_GETDECLS with do-nothing stubs.
4600         * objc/objc-lang.c: Likewise.
4601         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
4602         get_parm_info.
4603         (OBJC_VOID_AT_END): Delete; replace all uses
4604         with void_list_node.
4605         (generate_forward_declaration_to_string_table): Delete.
4606         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
4607
4608         * coverage.c (create_coverage): Don't pushdecl anything.
4609         * langhooks.c (lhd_clear_binding_stack): Call
4610         lang_hooks.decls.poplevel, not poplevel.
4611         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
4612         circular list rather than going into an infinite loop.
4613
4614 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
4615
4616         * optabs.c (expand_binop): When synthesizing double word rotates
4617         from single word shifts, use a new register target if the provided
4618         target is not a REG already.
4619
4620 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4621
4622         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
4623         * c-common.c (handle_mode_attribute): Add extra arg to
4624         build_pointer_type_for_mode and build_reference_type_for_mode.
4625         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
4626         for INTEGER_CST.
4627         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
4628         Chain pointers via TYPE_NEXT_PTR_TO.
4629         (build_reference_type_for_mode): Similarly.
4630         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
4631         and build_reference_type_for_mode.
4632         (tree_check4_failed): New function.
4633         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
4634         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
4635         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
4636         Add check.
4637
4638 2004-03-23  Roger Sayle  <roger@eyesopen.com>
4639
4640         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
4641         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
4642         when both A and B are nonnegative.
4643         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
4644         nonzero.
4645
4646 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4647
4648         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
4649         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
4650
4651 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
4652
4653         PR optimization/14669
4654         * fold-const.c (fold): Only unwiden integer comparisons for equality
4655         and inequality operators, or when the signedness doesn't change.
4656
4657 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
4658
4659         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
4660         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
4661         * config/sparc/t-linux: New file.
4662
4663 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
4664
4665         * gcse.c (can_assign_to_reg_p): New function, split out from...
4666         (want_to_gcse_p): ...here.
4667         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
4668         the rhs of a store.
4669
4670 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
4671
4672         * c-typeck.c (same_translation_unit_p): Fix pasto.
4673
4674 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
4675
4676         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
4677         (PARAM_MAX_SCHED_REGION_INSNS): New.
4678         * sched-rgn.c: Include params.h
4679         (MAX_RGN_BLOCKS): Delete.
4680         (MAX_RGN_INSNS): Delete.
4681         (too_large): Return bool.  Convert to PARAM_VALUE.
4682         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
4683         * doc/invoke.texi (param): Document max-sched-region-blocks and
4684         max-sched-region-insns.
4685
4686 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
4687
4688         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
4689         for base types.
4690
4691 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
4692
4693         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
4694         change.
4695
4696 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
4697
4698         PR c/14069
4699         * c-decl.c (finish_struct): Change type of incorrect flexible array
4700         field into error_mark_node.
4701
4702 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
4703
4704         PR target/14580
4705         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
4706         who are not local for Darwin PIC.
4707
4708 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
4709
4710         * regrename.c (regrename_optimize): Set regs_ever_live for all
4711         registers introduced as replacement.
4712
4713 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4714
4715         PR middle-end/14470
4716         * expr.c (mark_queue): New function.
4717         (emit_insns_enqueued_after_mark): New function replacing
4718         emit_queue.  Clear the body of emitted queued insns.
4719         (emit_queue): Call emit_insns_enqueued_after_mark.
4720         (store_expr): Mark the increment queue on entry.  Emit
4721         only the incrementations queued when expanding the source.
4722
4723 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
4724
4725         * configure.ac: Allow --disable-coverage-flags (for the future benefit
4726         of top level bootstrap, and consistency).  Reindent.
4727         * configure: Regenerate.
4728
4729 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
4730
4731         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
4732         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
4733         unnecessary casts.
4734
4735 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
4736
4737         PR target/14291
4738         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
4739         __MINGW32__.
4740
4741 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4742
4743         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
4744         to nonimmediate_operand.
4745         ("*doloop_di"): Likewise.
4746
4747 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
4748
4749         * real.h (struct real_value): Use the same type for all
4750         bitfields.  Rename exp to uexp.
4751         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
4752         Adjust all uses of exp...
4753         * builtins.c: ... here, ...
4754         * emit-rtl.c: ... here, and ...
4755         * real.c: ... and here.
4756
4757 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4758
4759         * pretty-print.c (pp_base_maybe_space): New function.
4760         * pretty-print.h (pp_base_maybe_space): Declare.
4761         (pp_maybe_space): New macro.
4762
4763 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4764
4765         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
4766
4767 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
4768
4769         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
4770         of using register multiplication cost.
4771         (expand_mult): Adapt choose_mult_variant call.
4772         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
4773         of MODE; pass appropriate cost bound.  Adjust result when
4774         performing signed multiplication by a negative constant.
4775         Don't use intermediate modes larger than word_mode.
4776
4777 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4778
4779         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
4780         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
4781         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
4782         * explow.c (expr_size): Likewise.
4783         * expr.h (placeholder_list, find_placeholder): Deleted.
4784         * expr.c (store_constructor): Likewise.
4785         (get_inner_reference): Likewise.  Also don't call find_placeholder.
4786         (placeholder_list, find_placeholder): Deleted.
4787         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
4788         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
4789         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
4790         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
4791         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
4792         Likewise.
4793         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
4794         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
4795         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
4796         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
4797         Clean up by using first_rtl_op.
4798         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
4799         (substitute_placeholder_in_expr): New function.
4800         * tree.def (WITH_RECORD_EXPR): Deleted.
4801         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
4802         (substitute_placeholder_in_expr): New.
4803
4804 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
4805
4806         * dojump.c (prefer_and_bit_test): Fix which part of
4807         the and_test is replaced.
4808
4809 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
4810
4811         * frontends.texi: Add missing line.
4812
4813 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
4814             Chris Devers  <cdevers@pobox.com>
4815             Joseph S. Myers  <jsm@polyomino.org.uk>
4816
4817         * doc/frontends.texi: Rewrite.
4818         * doc/gcc.texi: Update last modification date.
4819
4820 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
4821
4822         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
4823         message before redirecting the edge.
4824
4825 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4826
4827         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
4828         flag.
4829         * explow.c (force_not_mem): Set REG_POINTER flag according to
4830         MEM_POINTER one.
4831         * rtl.h (MEM_POINTER): New macro.
4832         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
4833         for MEM_POINTER.
4834
4835 2004-03-20  Roger Sayle  <roger@eyesopen.com>
4836
4837         PR target/13889
4838         * cse.c (fold_rtx): Avoid substituting constants into unary
4839         conversion operations.
4840
4841 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4842
4843         * fold-const.c (fold): Replace "expr" with "t".
4844
4845 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
4846
4847         PR c/12373
4848         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
4849         DECL_ORIGINAL_TYPE if there isn't one.
4850
4851 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4852
4853         * fold-const.c (fold): Replace "final_type" with "type".
4854         Remove variable "final_type".
4855
4856 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4857
4858         * fold-const.c (fold): Constify "type".
4859         Replace "TREE_TYPE (t)" with "type".
4860
4861 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4862
4863         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
4864         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
4865         via (*targetm.foo) () with targetm.foo ().
4866
4867 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
4868
4869         PR other/14630
4870         * doc/install.texi: Add info directory category and entry.
4871
4872 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4873
4874         * fold-const.c (fold): Replace "t" with "tem" where it is used
4875         as a temporary variable.  Remove "orig_t" and all of its uses.
4876
4877 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4878
4879         * fold-const.c (fold): Remove variable "invert".
4880         Move the handling of relational expressions that can be folded
4881         to a constant ...
4882         (fold_relational_const): ... here.
4883         (tree_expr_nonzero_p): New.
4884
4885 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
4886
4887         PR c/14635
4888         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
4889         DEF_GCC_BUILTIN.
4890
4891 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
4892
4893         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
4894         (GTFILES): Add $(srcdir)/dojump.h.
4895         (gt-dojump.h): New dependency.
4896         * dojump.c (and_reg, and_test, shift_test): New static variables.
4897         (prefer_and_bit_test): New function.
4898         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
4899
4900 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
4901
4902         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
4903         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
4904         reorg.c, tree.h: Fix comment typos.
4905
4906 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4907
4908         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
4909         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
4910         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
4911         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
4912         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
4913         vmsdbgout.c: Replace calls via (*targetm.foo) () with
4914         targetm.foo ().
4915
4916 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
4917
4918         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
4919         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
4920         always_inline attribute.
4921         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
4922         Treat expansion as completed even if literal argument is
4923         invalid (so that other expansions are not tried in vain).
4924
4925 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4926
4927         * loop-doloop.c (add_test): Replace GEN_INT (0) with
4928         const0_rtx.
4929
4930 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4931
4932         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
4933         ...
4934         (fold_abs_const): ... here.
4935
4936 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4937
4938         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
4939
4940 2004-03-19  Denis Chertykov  <denisc@overta.ru>
4941
4942         PR target/11520
4943         * config/avr/avr.md ("call_insn"): Handle explicit integer
4944         specially.
4945         (call_value_insn): Likewise.
4946
4947 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4948
4949         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
4950
4951 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
4952
4953         * fold-const.c (negate_expr): Move the handling of constants
4954         ...
4955         (fold_negate_const): ... here.
4956
4957 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4958
4959         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
4960         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
4961         * tree.c (debug_no_type_hash): Deleted.
4962         (type_hash_canon): Abort if passed a variant.
4963         Check lang_hooks.types.hash_types.
4964         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
4965         (build_array_type): Remove unnecessary allocation of pointer type.
4966         (build_complex_type): Properly qualify resulting type.
4967
4968 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
4969
4970         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
4971
4972 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
4973
4974         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
4975         (expand_mult): ...here.
4976         (extract_high_half): New, split out from expand_mult_highpart.
4977         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
4978         (expand_highpart): Evaluate the cost of a shift/add sequence,
4979         then see if any of the specialized optabs are cheaper.
4980
4981 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
4982
4983         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
4984
4985 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4986
4987         * convert.c (convert_to_real): Add more math builtins.
4988
4989 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4990
4991         * convert.c (convert_to_real): Reformat using switch stmt.
4992
4993 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
4994
4995         * c-common.c (pointer_int_sum): Do not complain about using
4996         pointers to pointers-to-members.
4997
4998 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
4999
5000         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
5001         have moved to the target hooks structure".
5002
5003 2004-03-18  James E Wilson  <wilson@specifixinc.com>
5004
5005         * config/mips/mips.md (type): Split move into arith and fmove.  Split
5006         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
5007         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
5008         Likewise.
5009         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
5010         Likewise.
5011         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
5012         rm7_fp_quick): Likewise.
5013         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
5014         rm9k_fquick): Likewise.
5015         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
5016         Likewise.
5017         (ir_sr70_icmp): Delete.
5018
5019 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5020
5021         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
5022         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
5023         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
5024         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
5025         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
5026         Protect with proper check.
5027         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
5028         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
5029         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
5030         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
5031         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
5032         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
5033         not TYPE_FIELDS.
5034         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
5035
5036 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
5037
5038         * gcse.c (eliminate_partially_redundant_loads): Reject change if
5039         dest is set between beginning and current insn.
5040
5041 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
5042
5043         * c-decl.c (grokdeclarator): Do not complain about redeclaring
5044         visible "static" identifiers "extern" in a local scope.
5045         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
5046         post-increments/decrements.
5047
5048 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
5049
5050         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
5051         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
5052         (xtensa_va_start): Remove assignment to current_function_arg_words.
5053
5054 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
5055
5056         * alias.c (record_set): Detect the case where a register is assigned
5057         a new value that has the same base term as the old one.
5058
5059 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5060
5061         * doloop.c: Removed.
5062         * loop-doloop.c: New file.
5063         * Makefile.in (doloop.o): Remove.
5064         (loop-doloop.o): New.
5065         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
5066         * cfgloopanal.c (get_loop_level): New function.
5067         * loop-iv.c (iv_number_of_iterations): Handle case when loop
5068         is leaved immediatelly.
5069         * loop.c (strength_reduce): Do not call doloop optimization.
5070         * loop.h (LOOP_BCT): Removed.
5071         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
5072         (rest_of_handle_loop2): Call doloop_optimize_loops.
5073         (rest_of_compilation): Test for optimizations moved to
5074         rest_of_handle_loop2.
5075
5076 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
5077
5078         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
5079         for mixed mode.
5080         (rs6000_emit_prologue): Ditto.
5081         (rs6000_emit_epilogue): Ditto.
5082         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
5083         macro for mixed mode.
5084
5085 2004-03-18  Jan Hubicka  <jh@suse.cz>
5086
5087         * predict.c (propagate_freq): Compute correctly frequency of
5088         EXIT_BLOCK.
5089
5090 2004-03-17  Eric Christopher  <echristo@redhat.com>
5091
5092         * builtins.c (apply_args_size): Use reg_raw_mode.
5093         (apply_result_size): Ditto.
5094
5095 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5096
5097         PR target/14620
5098         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
5099
5100 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
5101
5102         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
5103         32-bit builds when defaulting to 32-bit.
5104
5105 2004-03-17  Jan Hubicka  <jh@suse.cz>
5106
5107         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
5108         array.
5109
5110 2004-03-17  James E Wilson  <wilson@specifixinc.com>
5111
5112         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
5113         (hazard_nop): Change type to nop.
5114         (type): Split arith into arith, shift, slt, clz.  Delete darith.
5115         Fix all uses.  Change arith to multi if more than one insn emitted.
5116         * config/mips/5400.md (ir_vr54_arith): Likewise.
5117         * config/mips/5500.md (ir_vr55_arith): Likewise.
5118         * config/mips/7000.md (rm7_int_other): Likewise.
5119         * config/mips/9000.md (rm9k_int): Likewise.
5120         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
5121
5122 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
5123
5124         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
5125         to hold the subtype tree instead of recomputing it several times.
5126
5127 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
5128
5129         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
5130         CC_INVERT.
5131         * config/mn10300/mn10300.md (cc): Remove "invert".
5132
5133 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5134
5135         * builtins.c (integer_valued_real_p): Add builtin rint.
5136         (fold_builtin): Likewise.
5137         * convert.c (convert_to_real): Likewise.
5138
5139         * convert.c (convert_to_real): Fix typos in `long double'
5140         builtins.
5141
5142 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
5143
5144         PR c++/14481
5145         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
5146         generated COMPOUND_EXPRs.
5147
5148 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5149
5150         * config/h8300/t-rtems (h8300-*-rtems*): New.
5151
5152 2004-03-16  Eric Christopher  <echristo@redhat.com>
5153
5154         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
5155
5156 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5157
5158         * config/i386/i386-protos.h: Add a prototype for
5159         ix86_reverse_condition.
5160         * config/i386/i386.c (ix86_reverse_condition): New.
5161         * config/i386/i386.h (REVERSE_CONDITION): Use
5162         ix86_reverse_condition.
5163         * config/i386/i386.md: Use ix86_reverse_condition instead of
5164         REVERSE_CONDITION.
5165
5166 2004-03-16  J. Brobecker  <brobecker@gnat.com>
5167
5168         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
5169
5170 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5171
5172         PR bootstrap/12974
5173         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
5174
5175 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5176
5177         * c-common.c (c_common_type_for_mode): Build vector types on
5178         demand.
5179         (handle_mode_attribute): Deprecate using the mode attribute
5180         to create vector types.  Fix indentation.
5181         (vector_type_node_list): Remove.
5182         (handle_vector_size_attribute): Create vector types on demand.
5183         Strip a NON_LVALUE_EXPR from the attribute if there is one.
5184         * c-typeck.c (comptypes): Make vector types compatible if they
5185         have the same underlying mode.
5186         (convert_for_assignment): Use comptypes to convert between
5187         vector types.
5188         * tree.c (build_common_tree_nodes_2): Do not create vector types.
5189         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
5190         vector types.
5191         * tree.h: Remove vector types.
5192         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
5193         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
5194         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
5195         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
5196         * doc/extend.texi (Vector Types): Document how to use the
5197         vector_size attribute to create vectors, rather than mode.
5198
5199         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
5200         * config/i386/emmintrin.h: Likewise.
5201         * config/i386/mmintrin.h: Likewise.
5202         * config/i386/xmmintrin.h: Likewise.
5203         * config/sh/ushmedia.h: Likewise.
5204
5205 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
5206
5207         * config/freebsd-spec.h, config/arc/arc-protos.h,
5208         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
5209         config/arm/linux-gas.h, config/arm/semi.h,
5210         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
5211         config/ia64/freebsd.h, config/mips/7000.md,
5212         config/mips/9000.md, config/ns32k/ns32k-protos.h,
5213         config/sparc/pbd.h: Update copyright.
5214
5215 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
5216
5217         PR target/14577
5218         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
5219
5220 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
5221
5222         * combine.c (combine_simplify_rtx): Remove the "last"
5223         parameter and its documentation.  Adjust recursive calls.
5224         (simplify_logical): Always perform the only simplification
5225         controlled by "last", if the simplified expression is
5226         actually different.
5227         (try_combine): Do not pass the "last" parameter to
5228         combine_simplify_rtx.
5229
5230 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
5231
5232         PR target/14599
5233         * config/mips/mips.md (UNSPEC_GP): New constant.
5234         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
5235         an UNSPEC instead of (reg $gp).
5236         (mips16_gp_pseudo_reg): Change accordingly.
5237         (print_operand): Print $gp directly when handling CONST_GP_P.
5238
5239 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5240
5241         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
5242         * longlong.h: Make code 68060 clean when compiling for m68060.
5243
5244 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
5245
5246         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
5247         * doc/md.texi: Clarify description of "i" constraint.
5248
5249 2004-03-15  James E Wilson  <wilson@specifixinc.com>
5250
5251         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
5252         Split store into store, fpstore, fpidxstore.  Fix all uses.
5253         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
5254         Likewise.
5255         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
5256         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
5257         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
5258         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
5259         ir_sr70_fstore): Likewise.
5260
5261 2004-03-15  Richard Henderson  <rth@redhat.com>
5262
5263         PR middle-end/14535
5264         * except.c (collect_one_action_chain): Record action for cleanup
5265         outer of exception spec.
5266
5267 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
5268
5269         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5270         Fix the check for abort and only do the mmap if we can.
5271
5272 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
5273
5274         * config/sparc/sparc.h: Rework comments about the code model
5275         in 64-bit environment and the mode 'Pmode'.
5276         * doc/invoke.texi (SPARC options): Rework description of the
5277         different code models supported in 64-bit environment.
5278
5279 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5280
5281         * defaults.h (REVERSIBLE_CC_MODE): Define.
5282         * jump.c (reversed_comparison_code_parts): Don't check if
5283         REVERSIBLE_CC_MODE is defined.
5284
5285 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
5286
5287         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
5288         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
5289         hosthooks.h, params.h, ra-colorize.c, web.c,
5290         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
5291         config/avr/avr-protos.h, config/avr/avr.md,
5292         config/fr30/fr30-protos.h, config/fr30/fr30.md,
5293         config/h8300/fixunssfsi.c, config/i386/darwin.h,
5294         config/i386/freebsd.h, config/i386/freebsd64.h,
5295         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
5296         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
5297         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
5298         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
5299         config/pa/pa64-regs.h, config/rs6000/aix41.h,
5300         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
5301         config/sparc/aout.h, config/sparc/freebsd.h,
5302         config/sparc/litecoff.h, config/vax/vax-protos.h,
5303         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
5304         copyright.
5305
5306 2004-03-15  Paul Brook  <paul@codesourcery.com>
5307
5308         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
5309
5310 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5311
5312         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
5313         (pp_c_cv_qualifier): Document.
5314         (pp_c_space_for_pointer_operator): Likewise.
5315         (pp_c_integer_constant): Likewise.
5316         (pp_c_identifier): Likewise.
5317         (pp_c_init_declarator): Don't print function body.
5318
5319 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5320
5321         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
5322         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
5323         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
5324         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
5325         wording and grammar.
5326
5327 2004-03-14  Roger Sayle  <roger@eyesopen.com>
5328
5329         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
5330         with lang_hooks.foo ().
5331         * builtins.c (expand_builtin_va_arg): Likewise.
5332         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
5333         c_common_type_for_mode, c_common_nodes_and_builtins,
5334         handle_mode_attribute, handle_vector_size_attribute): Likewise.
5335         * c-convert.c (convert): Likewise.
5336         * c-format.c (check_format_types): Likewise.
5337         * c-objc-common.c (c_tree_printer): Likewise.
5338         * c-typeck.c (build_unary_op, build_conditional_expr,
5339         build_binary_op): Likewise.
5340         * calls.c (try_to_integrate, expand_call,
5341         emit_library_call_value_1): Likewise.
5342         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
5343         Likewise.
5344         * cgraphunit.c (record_call_1, cgraph_analyze_function,
5345         cgraph_expand_function): Likewise.
5346         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
5347         * coverage.c (build_fn_info_type, build_ctr_info_type,
5348         build_gcov_info, create_coverage): Likewise.
5349         * dbxout.c (dbxout_init): Likewise.
5350         * diagnostic.c (diagnostic_report_current_function): Likewise.
5351         * dojump.c (do_jump): Likewise.
5352         * dwarf2out.c (dwarf2_name): Likewise.
5353         * except.c (init_eh): Likewise.
5354         * explow.c (expr_size, int_expr_size): Likewise.
5355         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
5356         Likewise.
5357         * expr.c (store_expr, store_constructor, safe_from_p,
5358         expand_expr_real, do_store_flag, try_casesi): Likewise.
5359         * function.c (push_function_context_to, pop_function_context_from,
5360         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
5361         put_var_into_stack, allocate_struct_function, current_function_name):
5362         Likewise.
5363         * integrate.c (copy_decl_for_inlining, expand_inline_function):
5364         Likewise.
5365         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
5366         lhd_print_error_function): Likewise.
5367         * opts.c (handle_option, decode_options): Likewise.
5368         * passes.c (open_dump_file): Likewise.
5369         * print-tree.c (print_node): Likewise.
5370         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
5371         expand_decl_cleanup, emit_case_nodes): Likewise.
5372         * stor-layout.c (variable_size): Likewise.
5373         * toplev.c (announce_function, wrapup_global_declarations,
5374         check_global_declarations, compile_file, default_tree_printer,
5375         process_options, lang_dependent_init, finalize): Likewise.
5376         * tree-dump.c (dequeue_and_dump): Likewise.
5377         * tree-inline.c (remap_decl, remap_block, copy_body_r,
5378         initialize_inlined_parameters, declare_return_variable,
5379         inlinable_function_p, expand_call_inline, optimize_inline_calls,
5380         walk_tree, copy_tree_r): Likewise.
5381         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5382         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
5383         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
5384         variably_modified_type_p, dump_tree_statistics): Likewise.
5385         * varasm.c (assemble_variable, compare_constant, copy_constant,
5386         force_const_mem, compute_reloc_for_constant, output_constant,
5387         output_addressed_constants, initializer_constant_valid_p): Likewise.
5388
5389 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
5390
5391         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
5392
5393 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
5394
5395         * doc/install.texi: Reflect autoconf and automake version for
5396         libffi. Update autoconf version to 2.59.
5397
5398 2004-03-13  Roger Sayle  <roger@eyesopen.com>
5399
5400         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
5401         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
5402         make_range, build_range_check, fold_range_test, unextend,
5403         constant_boolean_node, fold_binary_op_with_conditional_arg,
5404         fold_truthop, fold_mathfn_compare, fold_inf_compare,
5405         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
5406         with lang_hooks.foo ().
5407
5408 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
5409
5410         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
5411
5412 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
5413
5414         * doc/install.texi: Note status of -fnew-ra.
5415
5416 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
5417
5418         PR middle-end/14470
5419         * expr.c (store_expr): Call emit_queue before generating the move
5420         from the temporary to the original target.  Protect the temporary
5421         from emit_queue.
5422
5423 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
5424
5425         PR target/14533
5426         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
5427         other than UNSPEC_GOTOFF.
5428
5429 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
5430
5431         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
5432         to arm_legitimate_index_p.  Update all callers with SET as default
5433         value.
5434         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
5435         range if OUTER is a sign-extend operation on QImode.  Correctly
5436         reject shift operations on sign-extended QImode addresses.
5437         (bad_signed_byte_operand): Delete.
5438         (arm_extendqisi_mem_op): New function.
5439         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
5440         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
5441         constraints.
5442         (CONSTRAINT_LEN): New.
5443         (EXTRA_CONSTRAINT): Delete.  Replace with...
5444         (EXTRA_CONSTRAINT_STR): ... this.
5445         (PREDICATE_CODES): Remove bad_signed_byte_operand.
5446         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
5447         is now always default.
5448         (define_splits for bad sign-extend loads): Delete.
5449         (arm_extendqisi, arm_extendqisi_v5): Likewise.
5450         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
5451         Rework 'U' constraint to 'Uv'.
5452         * arm-protos.h: Remove bad_signed_byte_operand.  Add
5453         arm_extendqisi_mem_op.
5454         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
5455         Add Uq constraint.
5456
5457 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
5458
5459         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
5460         with targetm version.
5461
5462         PR target/14567
5463         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
5464         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
5465         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
5466         Update all users of RS6000_ARG_SIZE.
5467         (function_arg_advance): Count fregno using mode size.
5468         (function_arg): Handle long double split over regs and memory.
5469         (function_arg_partial_nregs): Likewise.
5470         (rs6000_va_arg): Repackage complex args.
5471
5472 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
5473
5474         PR target/14047
5475         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
5476         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
5477         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
5478
5479 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
5480
5481         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
5482         prototype.
5483         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
5484         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5485
5486 2003-03-12  Andrew Pinski  <apinski@apple.com>
5487
5488         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5489         Use ret instead of result. Use addr instead of base.
5490
5491 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
5492
5493         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
5494         fixes required by libstdc++ and update installation instructions
5495         for libstdc++.a.
5496
5497 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
5498
5499         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
5500         leading '@' on fastcall symbols before stripping suffix.
5501
5502 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5503
5504         * combine.c (unmentioned_reg_p): New function to check whether an
5505         expression is a "specialization" of another, i.e. that there are
5506         no registers or memory references mentioned in the first that don't
5507         appear in the second.
5508         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
5509         (combine_instructions): Also try combining instructions using the
5510         REG_EQUAL note from a preceding log-linked instruction.
5511
5512 2004-03-12  Roger Sayle  <roger@eyesopen.com>
5513
5514         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
5515
5516 2004-03-12  Matt Austern  <austern@apple.com>
5517
5518         * target.h (struct gcc_target): New target hook, unwind_label.
5519         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
5520         * output.h (default_emit_unwind_label): New function.
5521         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
5522         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
5523         (TARGET_SUPPORTS_HIDDEN): New target macro.
5524         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
5525         that corresponds to this FDE.
5526         (FRAME_BEGIN_LABEL): Allow target to override default label.
5527         (output_call_frame_info): If FDEs are linknonce, then use extra
5528         indirection for FDE encoding, output a label for each FDE, and
5529         output an empty label for each function without an FDE.
5530         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
5531         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
5532         decls with DECL_ONE_ONLY set, if that macro is defined.
5533         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
5534         for a SUPPORTS_ONE_ONLY target.
5535         * config/darwin-protos.h (darwin_unique_section): Declare.
5536         (darwin_asm_named_section): Likewise.
5537         (darwin_section_type_flags): Likewise.
5538         (darwin_non_lazy_pcrel): Likewise.
5539         (darwin_emit_unwind_label): Likewise.
5540         (darwin_make_decl_one_only): Likewise.
5541         * config/darwin.c (machopic_finish): Get rid of tweak that
5542         eliminate stubs for symbols that are defined.
5543         (darwin_encode_section_info): Don't treat weak functions as defined.
5544         (darwin_make_decl_one_only): Define.
5545         (darwin_asm_named_section): Likewise.
5546         (darwin_section_type_flags): Likewise.
5547         (darwin_unique_section): Likewise.
5548         (darwin_emit_unwind_label): Likewise.
5549         (darwin_non_lazy_pcrel): Likewise.
5550         (darwin_asm_output_dwarf_delta): Difference between two labels is
5551         local only if both labels are local.
5552         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
5553         (ASM_MAKE_LABEL_LINKONCE): Likewise.
5554         (TARGET_SUPPORTS_HIDDEN): Likewise.
5555         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
5556         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
5557         (FRAME_BEGIN_LABEL): Likewise.
5558         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
5559         (ASM_DECLARE_FUNCTION_NAME): Likewise.
5560         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
5561         (TARGET_ASM_UNIQUE_SECTION): Define.
5562         (EH_FRAME_SECTION_NAME): Define.
5563         (EH_FRAME_SECTION_ATTR): Likewise.
5564         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
5565         (TARGET_ASM_NAMED_SECTION): Likewise.
5566         (TARGET_SECTION_TYPE_FLAGS): Likewise.
5567         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
5568         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
5569         TARGET_ASM_EMIT_UNWIND_LABEL.
5570
5571 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5572
5573         * builtins.c (expand_builtin_mathfn): Add pow10* to the
5574         existing exp10* case.
5575         (expand_builtin): Likewise.
5576
5577 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5578
5579         * doc/tm.texi (registers) <Values in Registers>: Add
5580         entry for REGMODE_NATURAL_SIZE.
5581
5582 2004-03-12  Richard Henderson  <rth@redhat.com>
5583
5584         PR target/14547
5585         * target.h (struct gcc_target): Move calls substructure before
5586         booleans.  Add split_complex_arg.
5587         * function.c (assign_parms, split_complex_args): Use it.
5588         * calls.c (expand_call): Likewise.
5589         (split_complex_values): Likewise.  Check for splittable types
5590         before allocating memory.
5591         (split_complex_types): Likewise.
5592         * system.h (SPLIT_COMPLEX_ARGS): Poison.
5593         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
5594         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
5595         * config/alpha/alpha.c (alpha_split_complex_arg): New.
5596         (TARGET_SPLIT_COMPLEX_ARG): New.
5597         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
5598         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
5599         (rs6000_override_options): Zap it for non-AIX.
5600         (rs6000_function_value): Use targetm.calls.split_complex_arg.
5601         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
5602         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
5603         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
5604         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
5605         SPLIT_COMPLEX_ARGS entry.
5606
5607 2004-03-11  Richard Henderson  <rth@redhat.com>
5608
5609         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
5610         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
5611         (alpha_emit_xfloating_arith): Update to match.
5612         (alpha_emit_xfloating_compare): Likewise.
5613         (alpha_emit_xfloating_cvt): Likewise.
5614         (alpha_emit_xfloating_libcall): Take already built symbol,
5615         mark call const.
5616         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
5617         op1 in a register.
5618
5619 2004-03-11  Richard Henderson  <rth@redhat.com>
5620
5621         PR target/14539
5622         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
5623
5624         * simplify-rtx.c (simplify_relational_operation): Fix typo.
5625
5626 2004-03-11  Richard Henderson  <rth@redhat.com>
5627
5628         PR middle-end/14477
5629         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
5630
5631 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5632
5633         PR target/14262
5634         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
5635         defined, pass small BLKmode values in registers in the low-order part.
5636
5637 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
5638
5639         * combine.c (if_then_else_cond): Check for NULL return value of
5640         simplify_gen_subreg.
5641
5642 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
5643
5644         PR target/14496
5645         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
5646         TARGET_SINGLE_FLOAT.
5647
5648 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
5649
5650         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
5651         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
5652         * config/ia64/ia64.c (ia64_init_libfuncs): New.
5653         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
5654
5655 2004-03-11  Roger Sayle  <roger@eyesopen.com>
5656
5657         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
5658         -((int)X>>C) where C is an integer constant one bit less than the
5659         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
5660         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
5661
5662         * simplify-rtx.c (simplify_unary_operation): Also implement the
5663         above transformations at the RTL level.
5664
5665 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
5666
5667         * real.c (encode_ibm_extended): Do round low word.
5668
5669 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
5670
5671         * config/arm/arm.md (is_xscale): Comment this attribute and move
5672         it a bit further up in the file, closer to related attributes.
5673
5674 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5675
5676         * config/host-solaris.c (sol_gt_pch_use_address): Add
5677         missing terminating marker to comment.
5678
5679 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
5680
5681         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
5682         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
5683         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
5684         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
5685         move_operand as source predicate in all cases.
5686         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
5687         Test reg_or_0_operand.  Use move_operand as source predicate.
5688         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
5689         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
5690         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
5691         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
5692         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
5693         Use move_operand as source predicate.  Remove 'K' constraint.
5694         (*movqi_internal): Likewise movqi_internal.
5695         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
5696         reg_or_0_operand.  Use move_operand as source predicate.
5697         (*movsf_softfloat): Likewise movsf_internal2.
5698         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
5699         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
5700         (*movdf_softfloat): Likewise movdf_internal2.
5701         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
5702         for DImode if !TARGET_64BIT.
5703         (mips_legitimize_move): Simplify accordingly.
5704
5705 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
5706
5707         PR/14362
5708         * var-tracking.c (struct variable_def): Added field refcount.
5709         (variable_htab_free): Decrease the refcount and delete variable
5710         only if there are no more references.
5711         (unshare_variable): New function.
5712         (vars_copy_1): Increase refcount instead of copying the variable.
5713         (variable_union): Share the variables where possible, unshare
5714         the variables if needed.
5715         (variable_different_p): Return false if var1 and var2 are
5716         the same structure.
5717         (variable_was_changed): Init the refcount of new variable.
5718         (set_frame_base_location): Unshare variable if needed.
5719         (set_variable_part): Init the refcount of new variable.
5720         Unshare the variables if needed.
5721         (delete_variable_part): Unshare the variables if needed.
5722         (emit_notes_for_differences_1): Init the refcount of new variable.
5723         (vt_add_function_parameters): Do not add function parameters to
5724         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
5725         (vt_initialize): Do not add frame_base_decl to IN set of
5726         ENTRY_BLOCK_PTR because it is unused anyway.
5727
5728 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
5729
5730         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
5731         (vars_copy): Likewise.
5732         (variable_union): Likewise.
5733         (set_variable_part): Likewise.
5734         (delete_variable_part): Likewise.
5735
5736 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
5737
5738         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
5739         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
5740         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
5741         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
5742         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
5743         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
5744         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
5745         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
5746         config/stormy16/stormy16.c: Fix comment typos and formatting.
5747
5748 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
5749
5750         * configure: Regenerate, since I forgot to while committing Paolo's
5751         changes.
5752
5753 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
5754
5755         PR ada/14131
5756         Move language detection to the top level.
5757         * configure.ac: Remove code to detect languages,
5758         it now lives exclusively in the top level.
5759         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
5760         top level, renamed to ACX_PROG_GNAT.
5761
5762 2004-03-10  Richard Henderson  <rth@redhat.com>
5763
5764         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
5765         extra arguments.
5766         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
5767         and host_xmake_file fragments.
5768         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
5769         (gt_pch_restore): Similarly for gt_pch_use_address.
5770         (default_gt_pch_get_address): New.
5771         (mmap_gt_pch_get_address): Split out of gt_pch_save.
5772         (default_gt_pch_use_address): Split out of gt_pch_restore.
5773         (mmap_gt_pch_use_address): Likewise.
5774         * hooks.c (hook_voidp_size_t_null): Remove.
5775         (hook_bool_voidp_size_t_false): Remove.
5776         * hooks.h: Likewise.
5777         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
5778         default_ or mmap_ definitions.
5779         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
5780         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
5781         and gt_pch_use_address.
5782         * config/host-linux.c, config/host-solaris.c: New files.
5783         * config/x-linux, config/x-solaris: New files.
5784         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
5785         Update for changed definition.
5786         (darwin_rs6000_gt_pch_use_address): Likewise.
5787         * doc/hostconfig.texi: Update docs.
5788
5789 2004-03-10  Richard Henderson  <rth@redhat.com>
5790
5791         PR c/14517
5792         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
5793         except for pedantic c90 mode.
5794
5795 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
5796
5797         * configure.ac: Bump AC_PREREQ to 2.59.
5798         * configure: Regenerate.
5799
5800 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
5801
5802         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
5803         (exp10_optab, exp2_optab): Define corresponding macros.
5804         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
5805         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
5806         using exp10?f2 and exp2?f2 patterns.
5807         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
5808         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
5809         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
5810         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5811
5812         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
5813         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
5814         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
5815
5816 2004-03-10  Anthony Green  <green@redhat.com>
5817
5818         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
5819
5820 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
5821
5822         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
5823         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
5824         __LONGDOUBLE128.
5825         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
5826         TARGET_OS_AIX_CPP_BUILTINS.
5827         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
5828         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
5829         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
5830         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
5831         previous change.
5832
5833 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5834
5835         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
5836
5837 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
5838
5839         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5840         __LONGDOUBLE128 on AIX.
5841
5842 2004-03-10  Andrew Haley  <aph@redhat.com>
5843
5844         PR optimization/14381
5845         * function.c (expand_function_end): Emit a blockage insn before
5846         the epilogue when -fnon-call-exceptions is used.
5847
5848         * except.c (expand_start_all_catch): Make comment more accurate.
5849
5850 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
5851
5852         PR target/14480
5853         * config/rs6000/t-rtems: Add missing file on branch.
5854
5855 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
5856
5857         * dbxout.c (dbxout_symbol_location): Do not output references
5858         to optimized-out constant pool symbols.
5859
5860 2004-03-10  Andreas Schwab  <schwab@suse.de>
5861
5862         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
5863         twon34_r.
5864
5865 2004-03-09  James E Wilson  <wilson@specifixinc.com>
5866
5867         * alias.c (alias_sets_might_conflict_p): New.
5868         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
5869         * common.opt (Wstrict-aliasing=): New.
5870         * flags.h (warn_strict_aliasing): Change type to int.
5871         * opts.c (warn_strict_aliasing): Change type to int.
5872         (common_handle_option): Handle OPT_Wstrict_aliasing_.
5873         * tree.h (alias_sets_might_conflict_p): Declare it.
5874         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
5875
5876 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
5877
5878         PR bootstrap/12371
5879         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
5880         (CALL_USED_REGISTERS): Likewise.
5881         (REG_CLASS_CONTENTS): Likewise.
5882         (REG_ALLOC_ORDER): New.
5883         (REGNO_REG_CLASS): Use regno_reg_class.
5884         * config/m68k/m68k.c: Add regno_reg_class array.
5885
5886 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
5887
5888         * config/ia64/ia64.md (divsi3): Fix algorithm.
5889           (udivsi3): Ditto.
5890           (setf_exp_xf): Remove '*' from name.
5891         * testsuite/gcc.dg/20040309-1.c: New test.
5892
5893 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
5894
5895         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
5896         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
5897         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
5898         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
5899         (sparc_aout_select_rtx_section): Don't check
5900         SUNOS4_SHARED_LIBRARIES.
5901         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
5902
5903 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
5904
5905         PR other/14474
5906         * doc/md.texi (Pattern Ordering, Dependent Patterns)
5907         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
5908         INTERNALS".
5909
5910 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
5911
5912         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
5913         (LIBGCC_SPEC): Update to match.
5914
5915 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
5916
5917         * c-decl.c (last_function_parms, last_function_parm_tags)
5918         (last_function_parm_others, current_function_parms)
5919         (current_function_parm_tags, current_function_parm_others):
5920         Delete.
5921         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
5922         New macros.
5923         (grokdeclarator): For function definitions, save the arg-info
5924         block from the declarator in DECL_ARGUMENTS.
5925         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
5926         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
5927         contains only PARM_DECLs.  Improve diagnostics.
5928         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
5929         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
5930         (store_parm_decls_newstyle): Take the function to operate on,
5931         and an arg-info block, as arguments; don't get anything from
5932         current_function_* globals.
5933         (store_parm_decls_oldstyle): Likewise.
5934         (store_parm_decls): Pass fndecl and its arg-info block down to
5935         store_parm_decls_newstyle/oldstyle.  Send functions with empty
5936         argument lists through store_parm_decls_newstyle to reduce
5937         overhead.
5938         (pushdecl): Comment on the problems with the call to copy_node.
5939         Clear DECL_ARGUMENTS of the old node after copying it, if it
5940         is an arg-info block instead of a chain of decls.
5941         (start_function): Do not manipulate current_function_parm* or
5942         last_function_parm*.
5943
5944 2004-03-09  Roger Sayle  <roger@eyesopen.com>
5945             Andrew Pinski  <pinskia@physics.uc.edu>
5946
5947         * ifcvt.c (noce_try_sign_mask): New function to transform
5948         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
5949         (noce_process_if_block): Call noce_try_sign_mask.
5950
5951 2004-03-09  Andrew Pinski  <apinski@apple.com>
5952
5953         * c-typeck.c (tagged_types_tu_compatible_p):
5954         Fix typo.
5955
5956 2004-03-09  Roger Sayle  <roger@eyesopen.com>
5957
5958         * simplify-rtx.c (simplify_const_relational_operation): New function
5959         renamed from simplify_relational_operation.
5960         (simplify_relational_operation): Change prototype to accept an
5961         additional mode argument.  Call simplify_const_relational_operation.
5962         (simplify_gen_relational): Update simplify_relational_operation call.
5963         (simplify_ternary_operation): Update simplify_relational_operation
5964         subroutine call to use simplify_const_relational_operation instead.
5965
5966         * rtl.h (simplify_const_relational_operation): Prototype here.
5967         (simplify_relational_operation): Add addtional mode argument.
5968
5969         * combine.c (combine_simplify_rtx): Update calls to
5970         simplify_relational_operation.
5971         (simplify_set): Likewise.
5972         (gen_binary): Likewise.
5973         * cse.c (fold_rtx): Likewise.
5974         * dojump.c (compare_from_rtx): Likewise.
5975         (do_compare_rtx_and_jump): Likewise.
5976         * integrate.c (subst_constants): Likewise.
5977         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
5978
5979 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
5980
5981         * config/m32r/m32r.md: Remove all define_peephole's.
5982
5983 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
5984
5985         * config/rs6000/rs6000.md: Remove trailing whitespace.
5986
5987 2004-03-08  Eric Christopher  <echristo@redhat.com>
5988
5989         * Makefile.in (site.exp): Add libiconv variable definition.
5990
5991 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
5992
5993         * configure: Regenerate for config/accross.m4 correction.
5994
5995 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
5996
5997         PR target/14480
5998         * config/rs6000/t-rtems: Add missing file on branch.
5999
6000 2004-03-08  Roger Sayle  <roger@eyesopen.com>
6001
6002         PR middle-end/14289
6003         * c-typeck.c (c_mark_addressable): A register variable should
6004         be considered global if its not automatic, i.e. TREE_PUBLIC,
6005         TREE_STATIC or DECL_EXTERNAL.
6006         * function.c (put_var_into_stack): Call abort when placing a
6007         hard register into the stack, if x_parm_reg_stack_loc is NULL.
6008
6009 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
6010
6011         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
6012         ("*extendqisi2_short_displ"): Likewise.
6013
6014 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6015
6016         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
6017         (comp_operator): Likewise.
6018         * config/pdp11/pdp11-protos.h: Remove corresponding
6019         prototypes.
6020
6021 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
6022
6023         * expr.c (highest_pow2_factor_for_type): Rename into
6024         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
6025         TYPE_ALIGN when the target is a COMPONENT_REF.
6026         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
6027
6028 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
6029
6030         * config/rs6000/rs6000.c: Formatting fix.
6031         (legitimate_offset_address_p): Correct offset range check.
6032
6033         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
6034         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
6035         and MASK_STRING.
6036
6037 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
6038
6039         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
6040         for little endian.
6041         ("ashrdi3_no_power"): Disable for little endian.
6042         (ashrdi3): Same.
6043
6044 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6045
6046         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
6047         builtins.
6048
6049 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
6050
6051         PR target/14471
6052         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
6053         case, checking for -no-mul-bug-abort option.
6054         * configure, config.in: Regenerate.
6055         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
6056         and -mno-mul-bug-workaround.
6057         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
6058         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
6059         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
6060         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
6061         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
6062         sure mulu.d is not last on cache-line.
6063         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
6064         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
6065         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
6066         (TARGET_SWITCHES): New options -mmul-bug-workaround and
6067         -mno-mul-bug-workaround.
6068         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
6069         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
6070         * config/cris/cris.c (cris_operand_extend_operator): Clarify
6071         relation to MULT in head comment.
6072         (cris_op_str): Abort for MULT.
6073         (cris_print_operand) <case '!'>: New case.
6074
6075 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
6076
6077         PR debug/11983
6078         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
6079         dw_val_class_vec.  Replace use throughout file.
6080         (dw_float_const): Delete.
6081         (dw_vec_const): New.
6082         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
6083         throughout file.
6084         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
6085         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
6086         (size_of_die): Adjust dw_val_class_vec sizing.
6087         (output_die): Output dw_val_class_vec.
6088         (insert_int, extract_int, insert_float): New functions.
6089         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
6090         Handle CONST_VECTOR.
6091         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
6092
6093 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
6094
6095         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
6096         AltiVec abi cannot co-exist.
6097
6098         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
6099
6100 2004-03-07  Jan Hubicka  <jh@suse.cz>
6101
6102         * except.c (emit_to_new_bb_before):  Break fallthru edges.
6103
6104 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
6105
6106         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
6107         ("*lshrsi3"): Also accept an immediate for 68HC12.
6108         ("*ashrsi3_const"): Likewise.
6109         ("*ashrsi3"): Likewise.
6110         ("*ashlsi3_const"): Likewise.
6111         ("*ashlsi3"): Likewise.
6112         ("cmphi_1_hc12"): Compare two hard register by pushing them and
6113         comparing with a pop; don't use a split for that.
6114         ("cmphi split"): Disable compare split for 68HC12.
6115
6116         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
6117         the status operands if they have side effects.
6118
6119 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
6120
6121         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
6122         definition.
6123         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
6124         config/h8300/h8300.h, config/ia64/ia64.h,
6125         config/mcore/mcore.h, config/mmix/mmix.h,
6126         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
6127         config/stormy16/stormy16.h, config/v850/v850.h,
6128         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
6129         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
6130         definition.
6131
6132 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6133
6134         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
6135         <XOR_EXPR>: Fold x ^ x as zero.
6136         <AND_EXPR>: Fold x & x as x.
6137
6138 2004-03-07  Roger Sayle  <roger@eyesopen.com>
6139
6140         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
6141         "foo++ == const" into "++foo == const+incr".
6142
6143 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
6144
6145         * config/mips/mips.c (mips_in_small_data_p): Return false if
6146         TARGET_ABICALLS.
6147
6148 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
6149
6150         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
6151         the stack register.
6152         (expand_prologue): Don't make an interrupt or a trap handler a far
6153         symbol.
6154         (m68hc11_initial_elimination_offset): Likewise.
6155
6156 2004-03-06  Richard Henderson  <rth@redhat.com>
6157
6158         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
6159
6160 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6161
6162         * config/ns32k/ns32k-protos.h: Add a prototype for
6163         ns32k_notice_update_cc.
6164         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
6165         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
6166         ns32k_notice_update_cc.
6167
6168 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
6169
6170         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
6171         "*load_multiple_si"): Allow only if reload_completed.
6172         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
6173         Likewise.
6174
6175 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
6176
6177         * config/vax/vax-protos.h: Add a prototype for
6178         vax_notice_update_cc.
6179         * config/vax/vax.c (vax_notice_update_cc): New.
6180         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
6181         vax_notice_update_cc.
6182
6183 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
6184
6185         * collect2.c (main): Only export initfunc and finifunc if
6186         LD_INIT_SWITCH not defined.
6187         (scan_prog_file): Only export constructors and destructors if
6188         LD_INIT_SWITCH not defined.  Only export symbols not found in
6189         shared objects.
6190
6191 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6192
6193         * pa.md (icacheflush): Reorder operands to make match_scratch operand
6194         last.
6195         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
6196         from calls to gen_icacheflush.
6197
6198 2004-03-06  Richard Henderson  <rth@redhat.com>
6199
6200         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
6201         (TARGET_LONG_DOUBLE_128): New.
6202         (TARGET_SWITCHES): Add long-double-{128,64}.
6203         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
6204         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
6205         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
6206         (WIDEST_HARDWARE_FP_SIZE): New.
6207         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
6208         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
6209         if TARGET_VAX_FLOAT.
6210         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
6211         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
6212
6213 2004-03-06  Richard Henderson  <rth@redhat.com>
6214
6215         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
6216         botched rtx class conversion.
6217
6218 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6219
6220         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
6221         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
6222
6223         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
6224         macros.
6225         * fold-const.c (fold_mathfn_compare, fold): Likewise.
6226
6227 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6228
6229         PR target/14343
6230         * config/i386/i386.md (movv2di_internal): Conditionalize on
6231         TARGET_SSE, not TARGET_SSE2.
6232
6233 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
6234
6235         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
6236         duplicated line.
6237
6238 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6239
6240         * builtins.c: Consistently use logN not log* in comments.
6241
6242 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
6243
6244         * rtl.h (mem_expr_equal_p): Function prototype added.
6245         * cfgcleanup.c (merge_memattrs): New function.
6246         (flow_find_cross_jump): Call merge_memattrs for matching insns.
6247         * emit-rtl.c (mem_expr_equal_p): New function.
6248
6249 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
6250
6251         * objc/objc-act.c (synth_module_prologue): Const-qualify
6252         objc_selector type if using the GNU runtime; fix generated
6253         signatures for objc_msg_lookup and objc_msg_lookup_super
6254         to match what GNU ObjC headers provide; reformat and clean up.
6255         (synth_self_and_ucmd_args): Use previously constructed (and
6256         hence possibly const-qualified) objc_selector type.
6257
6258 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6259
6260         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
6261
6262 2004-03-05  Jason Merrill  <jason@redhat.com>
6263
6264         * tree.h (TYPE_HASH): Use TYPE_UID.
6265         (TREE_HASH): New macro with old definition of TYPE_HASH.
6266         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
6267         (build_array_type, build_function_type): Likewise.
6268         (build_method_type_directly): Likewise.
6269         (build_offset_type, build_complex_type): Likewise.
6270         (type_hash_list, attribute_hash_list): Likewise. Now static.
6271         * except.c: s/TYPE_HASH/TREE_HASH/.
6272
6273 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
6274
6275         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
6276         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
6277         __va_ndx by 2 words when referencing an argument on the stack.
6278         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
6279         words when an arg on the stack is first seen.
6280
6281 2004-03-05  Paul Brook  <paul@codesourcery.com>
6282
6283         * arm.h (ARM_FLAG_VFP): Remove.
6284         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
6285         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
6286
6287 2004-03-05  Paul Brook  <paul@codesourcery.com>
6288
6289         * function.c (assign_parms): Include pretend alignment offset.
6290
6291 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6292
6293         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
6294         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
6295
6296 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
6297
6298         * configure.ac: When passing --enable-languages to subdir
6299         configure when host != build, make sure we don't pass an empty
6300         value.
6301         * configure: Regenerate.
6302
6303 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
6304
6305         PR 13577
6306         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
6307         options.
6308
6309 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6310
6311         * simplify-rtx.c (simplify_relational_operation): If
6312         flag_wrapv is set, do not move terms between the two
6313         side of a relational operator.
6314
6315 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
6316
6317         * rtlanal.c: Include target.h and output.h
6318         (rtx_cost, address_cost, default_address_cost): Move from...
6319         * cse.c (rtx_cost, address_cost, default_address_cost):
6320         ... this file.
6321         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
6322         * Makefile.in: Adjust dependencies.
6323
6324 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
6325
6326         * cse.c (cse_end_of_basic_block): Make static.
6327         * local-alloc.c (function_invariant_p): Move to
6328         reload1.c.
6329         * loop.c (libcall_other_reg, record_excess_regs):
6330         Make static.
6331         * reload1.c (function_invariant_p): Moved here
6332         from local-alloc.c, made static.
6333         * rtl.h (cse_end_of_basic_block, function_invariant_p,
6334         libcall_other_reg, record_excess_regs): Remove
6335         declarations.
6336
6337 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
6338
6339         * config/m32r/m32r.c (signed_comparison_operator): Add a
6340         missing parenthesis.
6341
6342 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
6343
6344         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
6345         going to call mmap again.  Read the file into the right place.
6346         Give a fatal error if we have to relocate.
6347
6348 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
6349
6350         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
6351         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
6352
6353 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
6354
6355         PR other/14354
6356         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
6357         round the same.  When rounding, clear bits that would cause a
6358         second rounding in pack_d.
6359         (_fpmul_parts): Ditto.  Remove #if 0:d code.
6360
6361 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
6362
6363         PR c++/14425, c++/14426
6364         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
6365         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
6366         Change C++ definitions to accept a 'const int' argument;
6367         the prototypes already do.
6368         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
6369         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
6370         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
6371         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
6372         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
6373         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
6374         end in ..._int; change them to accept an int instead of a char
6375         as the last parameter.
6376
6377 2004-03-04  Phil Edwards  <phil@codesourcery.com>
6378
6379         * genmultilib:  Change '=' to '-' when translating option names
6380         to directory names.
6381
6382 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6383
6384         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
6385         stack slot for temp used for result of BLKmode but in integral mode.
6386
6387 2004-03-04  Jan Hubicka  <jh@suse.cz>
6388
6389         * reload.c (find_reloads): Reorganize if seqeunce to switch.
6390
6391         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
6392         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
6393
6394 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
6395
6396         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
6397         * testsuite/gcc.dg/20040303-1.c: New test.
6398
6399 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6400
6401         * ppro.md: Rewrite as a DFA pipeline description.
6402         * i386.md: Remove all uses of the ppro_uops attribute.
6403         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
6404         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
6405         ix86_sched_reorder, ix86_variable_issue,
6406         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
6407         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
6408         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
6409         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
6410         * athlon.md (athlon_ssecmp_load): Fix comment
6411
6412 2004-03-04  Stuart Hastings  <stuart@apple.com>
6413
6414         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
6415
6416 2004-03-04  Stuart Hastings  <stuart@apple.com>
6417
6418         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
6419         686, tell Darwin assembler to allow prefetch insns, non-empty def
6420         of SUBTARGET_OPTION_TRANSLATE_TABLE.
6421
6422 2004-03-04  DJ Delorie  <dj@redhat.com>
6423
6424         PR optimization/14282
6425         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
6426         between a call and the assignment of its return value.
6427
6428 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6429
6430         * config/h8300/h8300.c: Put a comment for every function.
6431
6432 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
6433
6434         * config/h8300/h8300.md: Add comments about peephole2's.
6435
6436 2004-03-04  Steven Bosscher  <stevenb@suse.de>
6437
6438         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
6439
6440 2004-03-04  Jan Hubicka  <jh@suse.cz>
6441
6442         * cfgcleanup.c (thread_jump): Update call of cselib_init.
6443         * cselib.c (cselib_record_memory): New static variable.
6444         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
6445         Give up on memories when asked for.
6446         (cselib_init): Accept new argument.
6447         * cselib.h (cselib_init): Update prototype.
6448         * gcse.c (local_cprop_pass): Update call of cselib_init.
6449         * loop.c (load_mems): Update call of cselib_init.
6450         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
6451         * sched-deps.c (sched_analyze): Update call of cselib_init.
6452
6453 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6454             GP <gp@qnx.com>
6455
6456         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
6457         when compiling PIC.
6458
6459 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
6460
6461         PR/14362
6462         * var-tracking.c (track_expr_p): Do not track variables which
6463         should be ignored for debugging purposes.
6464
6465 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6466
6467         * real.c (encode_ibm_extended): Don't bother rounding low double.
6468         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
6469         when fmt->pnan < fmt->p.
6470
6471 2004-03-04  Eric Christopher  <echristo@redhat.com>
6472
6473         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
6474         only range of valid arg registers and fixed_regs.
6475
6476 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6477
6478         PR target/14406
6479         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
6480         (abstf2, abstf2_internal): New define_expand.
6481
6482 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6483
6484         PR optimization/14235
6485         * expr.c (convert_move): Copy the source to a new pseudo
6486         when converting from a sub-word source to a larger-than-word
6487         register which conflicts with the source.
6488
6489 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
6490
6491         PR 13728
6492         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
6493         parameters with the same name, unless one is a forward decl.
6494         Do not issue a redundant-redeclaration warning for forward
6495         decls of parameters.
6496
6497 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
6498
6499         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
6500         configuration.
6501
6502 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
6503
6504         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
6505
6506 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
6507
6508         * target-def.h (TARGET_OPTF): Delete.
6509         * c-opts.c (TARGET_OPTF): Define.
6510
6511 2004-03-04  Jan Hubicka  <jh@suse.cz>
6512
6513         * cselib.c (cselib_finish): Fix another miss-application of my previous
6514         patch.
6515
6516 2004-03-03  Mike Stump  <mrs@apple.com>
6517
6518         Add framework support for darwin.
6519
6520         * c-incpath.c: Include target.h and machmode.h.
6521         (add_path): Use a consistent style for cpp_dir.  Initialize
6522         p->construct to 0.
6523         (add_cpp_dir_path): New.
6524         (register_include_chains): Add use of extra_includes callback.
6525         (hook_void_int): Add.
6526         (target_c_incpath): Add.
6527         * c-incpath.h (add_cpp_dir_path): New.
6528         (target_c_incpath_s): Add.
6529         (target_c_incpath): Add.
6530         (C_INCPATH_INIT): Add.
6531         * c-opts.c (c_common_missing_argument,
6532         c_common_handle_option): Add -F argument processing.
6533         * c.opt: Add -F argument processing.
6534         * gcc.c (trad_capable_cpp): Add -F argument processing.
6535         * cppfiles.c (find_file_in_dir): Update to use construct
6536         callback.
6537         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
6538         cpp_get_prev): New.
6539         (_cpp_find_file): Use search_path_exhausted.
6540         (make_cpp_dir): Initialize construct to 0.
6541         * cpplib.h (missing_header_cb
6542         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
6543         (cpp_callbacks): Add missing_header
6544         (cpp_dir): Add construct.
6545         * target-def.h: (TARGET_OPTF): New.
6546         * hooks.c (hook_void_int, hook_void_charptr): Add.
6547         * hooks.h (hook_void_int, hook_void_charptr): Add.
6548         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
6549         $(MACHMODE_H) dependencies.
6550         * doc/invoke.texi (Darwin Options): Document -F.
6551         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
6552         (TARGET_OPTF): Add.
6553         * fix-header.c (target_c_incpath): Add.
6554
6555         * config/darwin-c.c: Add c-incpath.h include.
6556         (using_frameworks, find_subframework_file,
6557         find_subframework_header, add_system_framework_path,
6558         frameworks_in_use, num_frameworks, max_frameworks,
6559         add_framework, find_framework, struct framework_header,
6560         framework_header_dirs, framework_construct_pathname,
6561         find_subframework_file, add_system_framework_path,
6562         add_framework_path, framework_defaults,
6563         darwin_register_frameworks, find_subframework_header): Add.
6564         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
6565         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
6566         (CPP_SPEC): Add __APPLE_CC__ support.
6567         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
6568
6569 2004-03-04  Jan Hubicka  <jh@suse.cz>
6570
6571         * cselib.c (cselib_finish): Fix miss-application of my previous
6572         patch.
6573
6574 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6575
6576         * hooks.c (hook_tree_tree_identity): New.
6577         * hooks.h: Add a prototype for hook_tree_tree_identity.
6578         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
6579         instead of MD_ASM_CLOBBERS.
6580         * system.h (MD_ASM_CLOBBERS): Poison.
6581         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
6582         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
6583         * target.h (gcc_target): Add md_asm_clobbers.
6584         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
6585         (ix86_md_asm_clobbers): New.
6586         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
6587         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
6588         TARGET_MD_ASM_CLOBBERS.
6589
6590 2004-03-03  Stuart Hastings  <stuart@apple.com>
6591
6592         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
6593
6594 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6595
6596         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
6597
6598         * config/sparc/sparc.h (ASM_FLOAT): Delete.
6599         (ASM_DOUBLE): Likewise.
6600         (ASM_LONGDOUBLE): Likewise.
6601         * config/sparc/pbd.h (ASM_INT_OP): Delete.
6602
6603 2003-03-03  Richard Henderson  <rth@redhat.com>
6604
6605         PR opt/13862
6606         * cselib.c (cselib_record_sets): Don't record multiple sets in
6607         asm insns.
6608
6609 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
6610
6611         * common.opt: Add description of the new -fgcse-after-reload flag.
6612
6613         * flags.h (flag_gcse_after_reload): Declaration of global variable.
6614
6615         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
6616         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
6617         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
6618         get_bb_avail_insn, hash_scan_set_after_reload,
6619         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
6620         gcse_after_reload, get_bb_avail_insn): New functions to implement
6621         gcse-after-reload.
6622         (gcse_after_reload_main): New function, the main entry point to
6623         gcse-after-reload.
6624
6625         * rtl.h (gcse_after_reload_main): Declaration of the new function.
6626
6627         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
6628
6629         * toplev.c (flag_gcse_after_reload): Initialization.
6630
6631         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
6632
6633         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
6634         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
6635         the gcse after reload optimization.
6636
6637         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
6638         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
6639         parameters.
6640
6641         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
6642
6643 2004-03-03  Nicolas Pitre <nico@cam.org>
6644
6645         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
6646         small negative values.
6647
6648 2004-03-03  Jan Hubicka  <jh@suse.cz>
6649
6650         * cselib.c (hash_table):  Remove GTY marker.
6651         (reg_values): Turn into array.
6652         (used_regs): Likewise.
6653         (n_used_regs): New static variable.
6654         (reg_values_old): Kill.
6655         (clear_table): Update uses of arrays.
6656         (cselib_lookup): Likewise.
6657         (cselib_record_set): Likewise.
6658         (cselib_init): Likewise.
6659         (cselib_finish): Likewise.
6660         (cselib_udpate_varray_sizes): Kill.
6661         * cselib.h (cselib_update_varray_sizes): Kill.
6662
6663 2004-03-03  Paul Brook  <paul@codesourcery.com>
6664
6665         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
6666
6667 2004-03-03  Jan Hubicka  <jh@suse.cz>
6668
6669         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
6670         Rename from ...; make statistics transparent.
6671         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
6672         (loc_descriptor): New structure.
6673         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
6674         add_statistics):
6675         New static function.
6676         (ggc_record_overhead, dump_statistics): New global function.
6677         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
6678         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
6679         from ...; accept locations
6680         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
6681         ggc_realloc, ggc_alloc_typed):  ... this one.
6682         from ...; accept locations
6683         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
6684         ggc_alloc_stat): Rename from ... ; pass locations
6685         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
6686         ... this one.
6687         (ggc_alloc_stat): Record overehead.
6688         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
6689         ggc_realloc, ggc_alloc_typed):  Turn to macros
6690         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
6691         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
6692         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
6693         * langhooks.h (lhd_make_node): Declare.
6694         (LANG_HOOKS_MAKE_TYPE): Default to new function,
6695         * langhooks.c (lhd_make_node): New.
6696         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
6697         locations.
6698         (rtx_alloc, swallow_copy_rtx): ... this one.
6699         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
6700         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
6701         * toplpev.c (finalize): Dump stats.
6702         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
6703         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
6704         Rename from ... ; pass locators.
6705         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
6706         build?,  build_decl): Declare.
6707         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
6708         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
6709         Declare.
6710         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
6711         build?,  build_decl): New macros.
6712         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
6713         * statistics.h: New file.
6714
6715 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6716             Richard Sandiford  <rsandifo@redhat.com>
6717
6718         * config/mips/mips.h (MASK_FIX_SB1): Bump.
6719         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
6720         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
6721         * config/mips/mips.c (mips_output_division): Fill the branch delay
6722         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
6723         TARGET_FIX_R4400.
6724         (mips_output_division): Adjust accordingly.
6725         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
6726         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
6727
6728 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
6729
6730         * alias.c (rtx_equal_for_memref_p): Use predicates
6731         to test rtx classes and new rtx class codes, possibly
6732         splitting conditionals that tested against '<' and 'o'.
6733         * caller-save.c (save_call_clobbered_regs): Likewise.
6734         * combine.c (contains_muldiv, find_split_point, subst,
6735         combine_simplify_rtx, simplify_if_then_else,
6736         simplify_set, simplify_logical, expand_compound_operation,
6737         make_compound_operation, if_then_else_cond, known_cond,
6738         apply_distributive_law, cached_nonzero_bits,
6739         cached_num_sign_bit_copies, simplify_shift_const,
6740         gen_binary, simplify_comparison, update_table_tick,
6741         record_value_for_reg, get_lsat_value_validate): Likewise.
6742         * cse.c (mention_regs, find_best_addr, find_comparison_args,
6743         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
6744         Likewise.
6745         * emit-rtl.c (copy_insn_1): Likewise.
6746         * expr.c (force_operand): Likewise.
6747         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
6748         * flow.c (notice_stack_pointer_modification_1,
6749         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
6750         and_reg_cond, elim_reg_cond): Likewise.
6751         * function.c (update_epilogue_consts): Likewise.
6752         * genattrtab.c (attr_rtx_1): Likewise.
6753         * genopinit.c (gen_insn): Likewise.
6754         * integrate.c (subst_constants): Likewise.
6755         * jump.c (reversed_comparison_code_parts,
6756         reversed_comparison_code, delete_related_insns,
6757         rtx_renumbered_equal_p): Likewise.
6758         * local-alloc.c (block_alloc): Likewise.
6759         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
6760         canonicalize_condition): Likewise.
6761         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
6762         Likewise.
6763         * optabs.c (add_equal_node, expand_binop): Likewise.
6764         * predict.c (estimate_probability): Likewise.
6765         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
6766         * recog.c (validate_replace_rtx_1, comparison_operator,
6767         offsettable_address_p, constrain_operands): Likewise.
6768         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
6769         Likewise.
6770         * regclass.c (scan_one_insn): Likewise.
6771         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
6772         * regrename.c (kill_autoinc_value): Likewise.
6773         * reload.c (find_reusable_reload, find_reloads,
6774         reg_overlap_mentioned_for_reload_p): Likewise.
6775         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
6776         * rtl.c (copy_rtx): Likewise.
6777         * rtl.h (CONSTANT_P, INSN_P): Likewise.
6778         * rtlanal.c (commutative_operand_precedence): Likewise.
6779         * sched-deps.c (conditions_mutex_p): Likewise.
6780         * sched-rgn.c (is_cfg_nonregular): Likewise.
6781         * simplify-rtx.c (simplify_gen_binary,
6782         simplify_gen_relational, simplify_replace_rtx,
6783         simplify_unary_operation, simplify_binary_operation,
6784         simplify_ternary_operation, simplify_rtx): Likewise.
6785         * unroll.c (reg_dead_after_loop): Likewise.
6786         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
6787         print_operand): Likewise.
6788         * config/arc/arc.c (proper_comparison_operator): Likewise.
6789         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
6790         Likewise.
6791         * config/avr/avr.c (_reg_unused_after): Likewise.
6792         * config/frv/frv.c (frv_ifcvt_modify_tests,
6793         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
6794         * config/i386/i386.c (ix86_comparison_operator,
6795         ix86_carry_flag_operator, fcmov_comparison_operator,
6796         arith_or_logical_operator, print_operand,
6797         ix86_expand_binary_operator, ix86_binary_operator_ok):
6798         Likewise.
6799         * config/i386/i386.md: Likewise.
6800         * config/ia64/ia64.c (not_postinc_memory_operand,
6801         ia64_print_operand, update_set_flags, errata_emit_nops):
6802         Likewise.
6803         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
6804         CONSTRAINT_OK_FOR_S): Likewise.
6805         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
6806         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
6807         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
6808         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
6809         Likewise.
6810         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
6811         eqne_comparison_operator, signed_comparison_operator):
6812         Likewise.
6813         * config/mips/mips.c (cmp_op, symbolic_expression_p):
6814         Likewise.
6815         * config/mmix/mmix (mmix_foldable_comparison_operator,
6816         mmix_comparison_operator): Likewise.
6817         * config/pa/pa.c (hppa_legitimize_address): Likewise.
6818         * config/rs6000/rs6000.c (stmw_operation,
6819         branch_comparison_operator, trap_comparison_operator,
6820         ccr_bit): Likewise.
6821         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
6822         * config/s390/s390.c (s390_alc_comparison,
6823         s390_slb_comparison):L Likewise.
6824         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
6825         Likewise.
6826         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
6827         noov_compare_op, noov_compare64_op, v9_regcmp_op,
6828         emit_hard_tfmode_operation, reg_unused_after)
6829         * doc/md.texi, doc/rtl.texi: Likewise.
6830
6831         * ra-debug.c: Add 2004 to list of copyright years.
6832         * unroll.c: Likewise.
6833
6834         * combine.c (simplify_logical): Remove dummy test,
6835         (apply_distributive_law): Fix typo in comment.
6836         GET_CODE (x) == AND so x is a commutative binary op.
6837         * jump.c (delete_related_insns): simplify loop
6838         condition, move testing of RTX codes inside the loop.
6839         (rtx_renumbered_equal_p): do not use RTX_CODE.
6840         * rtl.c (rtx_class): Declare as enum rtx_class.
6841         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
6842         Move to RTX_COMM_COMPARE class.
6843         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
6844         Move to RTX_CONST_OBJ class.
6845         * rtl.h (enum rtx_class): New declaration,
6846         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
6847         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
6848         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
6849         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
6850         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
6851         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
6852         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
6853         OBJECT_P): New macros.
6854         * config/sparc/sparc.c (noov_compare_op): Remove register
6855         from parameter.
6856
6857 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
6858
6859         * target.h: Remove texi jargons in comments.
6860
6861 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6862
6863         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
6864         threshold to 0x4f.
6865
6866         Revert:
6867         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
6868         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
6869         as well.
6870         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
6871         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
6872
6873 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6874
6875         * doc/md.texi (cbranchmode4): New.
6876
6877 2004-03-02  Eric Christopher  <echristo@redhat.com>
6878
6879         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
6880         fix_trunc.
6881         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
6882         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
6883         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
6884         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
6885
6886 2004-03-02  Richard Henderson  <rth@redhat.com>
6887
6888         PR middle-end/11767
6889         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
6890         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
6891         before the compare, if flag_non_call_exceptions.
6892
6893 2004-03-02  Richard Henderson  <rth@redhat.com>
6894
6895         PR middle-end/14327
6896         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
6897         emitting the label, not after.
6898
6899 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6900
6901         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
6902         (m68hc11_mov_addr_mode): Likewise.
6903         (m68hc11_override_options): Initialize them based on target.
6904         (register_indirect_p): Allow a MEM for indirect addressing modes and
6905         use flags to control what is allowed.
6906         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
6907         supported addressing modes.
6908         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
6909         (go_if_legitimate_address_internal): Likewise.
6910         (m68hc11_indirect_p): Likewise and check the mode.
6911         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
6912
6913 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
6914
6915         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
6916         (expand_builtin_setjmp_setup): Use
6917         targetm.builtin_setjmp_frame_value instead of
6918         BUILTIN_SETJMP_FRAME_VALUE.
6919         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
6920         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
6921         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
6922         * target.h (gcc_target): Add builtin_setjmp_frame_value.
6923         * targhooks.c (default_builtin_setjmp_frame_value): New.
6924         * targhooks.h: Add a prototype for
6925         default_builtin_setjmp_frame_value.
6926         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
6927         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
6928
6929 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6930
6931         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
6932         sequences of moves.
6933         (add peepholes): New peepholes to optimize sequences adding small
6934         constants.
6935         (bset peepholes): New peepholes to transform an OR in a bset form
6936         (bclr peepholes): Likewise for bclr form.
6937         (cmp peepholes): New peepholes to avoid register copies when comparing.
6938
6939 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6940
6941         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
6942         to separate push from moves.
6943         ("*pushdf_internal"): Likewise.
6944         ("*pushsf_internal"): Likewise.
6945         ("*pushsi_internal"): Likewise.
6946         ("movdi_internal"): Use define_insn_and_split; non push operand.
6947         ("movdf_internal"): Likewise.
6948         ("movsf_internal"): Likewise.
6949         ("movsi_internal"): Likewise.
6950         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
6951         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
6952         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
6953
6954 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6955
6956         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
6957         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
6958         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
6959         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
6960         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
6961         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
6962         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
6963         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
6964         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
6965         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
6966         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
6967
6968 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6969
6970         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
6971         (SOFT_XY_REGNUM): Define.
6972         (cmp split): Use the above instead of hard coded numbers.
6973         (8-bit op split): No need to check the mode; allow Q_REG.
6974         (ashift split): Adjust the first operand if it uses the SP and we
6975         are pushing the shifted value.
6976         (plus shift split): Fix when a source is in register D+X.
6977         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
6978
6979 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
6980
6981         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
6982         comparing with Z register.
6983
6984 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6985
6986         * cfgloop.h (struct loop_desc): Removed.
6987         (struct loop): Fields simple, desc and has_desc removed.
6988         (simple_loop_p, count_loop_iterations): Declaration removed.
6989         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
6990         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
6991         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
6992         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
6993         simple_loop_exit_p, variable_initial_value, variable_initial_values,
6994         simple_condition_p, simple_increment, count_strange_loop_iterations,
6995         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
6996         Removed.
6997         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
6998
6999 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7000
7001         * genattrtab.c: Don't handle MATCH_INSN.
7002         * genrecog.c: Likewise.
7003         * gensupport.c: Likewise.
7004         * rtl.def (match_insn): Remove.
7005         * doc/md.texi (match_insn, match_insn2): Remove.
7006
7007 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
7008
7009         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
7010         macro results in memory allocation.
7011
7012 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
7013
7014         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
7015         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
7016         %(fbsd_dynamic_linker),
7017         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
7018         config/i386/freebsd.h
7019         * config/arm/freebsd.h: Ditto.
7020         * config/i386/freebsd.h: Ditto.
7021         * config/i386/freebsd64.h: Ditto.
7022         * config/ia64/freebsd.h: Ditto.
7023         * config/rs6000/sysv4.h: Ditto.
7024         * config/sparc/freebsd.h: Ditto.
7025
7026 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
7027
7028         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
7029
7030 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7031
7032         * rtl.def (define_combine): Remove.
7033
7034 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7035
7036         * config/h8300/h8300.md: Tweak formatting.
7037
7038 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7039
7040         * config/h8300/h8300.md (*cmphi_h8300): Rename to
7041         *cmphi_h8300_znvc.
7042         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
7043
7044 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
7045
7046         PR bootstrap/14356
7047         * gcc.c (process_command): Remove const-qualification from argv.
7048         (main): Likewise.
7049
7050 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7051
7052         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
7053         pushqi1_h8300hs_advanced.  Adjust its caller.
7054         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
7055         Adjust its caller.
7056
7057 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
7058
7059         * Makefile.in (install-libgcc, install-multilib): Pass
7060         mkinstalldirs var to libgcc.mk.
7061
7062 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7063
7064         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
7065         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
7066
7067 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7068
7069         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
7070         * config/h8300/h8300.md: Split several peephole2's, each into
7071         two.
7072
7073 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7074
7075         * dominance.c (recount_dominator): Handle postdominators.
7076
7077 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
7078
7079         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
7080         (NUM_SYMBOL_TYPES): Likewise.
7081         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
7082         (mips_unspec_address): Declare.
7083         (mips_gotoff_page, mips_gotoff_global): Delete.
7084         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
7085         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
7086         (mips_symbolic_constant_p, mips_symbolic_address_p)
7087         (mips_symbol_insns): Handle new symbol types.
7088         (general_symbolic_operand): New predicate.
7089         (mips_unspec_address): Make extern.
7090         (mips_gotoff_page, mips_gotoff_global): Delete.
7091         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
7092         Handle new symbol types.
7093         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
7094         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
7095         mips_unspec_address directly.
7096         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
7097         the documentation of -mexplicit-relocs.
7098
7099 2004-03-01  Jeff Law  <law@redhat.com>
7100
7101         * fold-const.c (fold): An equality comparison of a non-weak object
7102         against zero has a known result.  Similarly an equality comparison
7103         of the address of two non-weak, unaliased symbols has a known result.
7104
7105         * ggc-page.c (struct page_entry): New field PREV.
7106         (ggc_alloc): Update PREV field appropriately.
7107         (sweep_pages): Likewise.
7108         (ggc_free): Likewise.  Use PREV field rather than loop to
7109         improve ggc_free performance.
7110
7111 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
7112
7113         * config/mips/mips.c (mips_output_division): Use the division
7114         instruction to fill the delay slot of a zero check.
7115         (mips_idiv_insns): Adjust accordingly.
7116
7117 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
7118
7119         * config.gcc: Create a default tmake_file for linux, and use
7120         it in all but two linux clauses.  Comment those two.
7121
7122 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
7123
7124         * combine.c (try_combine):  Do not refer to is_replaced.
7125         (gen_lowpart_for_combine):  Perverse subregs now have a
7126         more politically correct name.
7127         * cse.c (cse_insn): Likewise.
7128         * jump.c: Fix bogus reference to delete_insn.
7129
7130 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
7131
7132         PR debug/14328
7133         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
7134         constants as signed values.
7135
7136         PR middle-end/13448
7137         * c-tree.h (readonly_warning): Rename to ...
7138         (readonly_error): ... this.
7139         * c-typeck.c (build_unary_op): Adjust accordingly.
7140         (readonly_warning): Rename to ...
7141         (readonly_error): ... this and issue errors, not warnings.
7142         (build_modify_expr): Call readonly_error, not readonly_warning.
7143         (c_expand_asm_operands): Likewise.
7144         * tree-inline.c (optimize_inline_calls): Do not inline functions
7145         after errors have occurred.
7146
7147 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7148
7149         * configure.ac: Rearrange some threading code for clarity;
7150         add section comment.
7151         * configure: Regenerate.
7152
7153 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7154
7155         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
7156         typos.
7157         * doc/cppopts.texi: Fix a typo.
7158
7159 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7160
7161         * config/i386/i386.md: Fix formatting.
7162
7163 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
7164
7165         * configure.ac: Add some comments delineating sections of code.
7166
7167         * doc/install.texi: Note that libada uses autoconf 2.57 also.
7168
7169         * doc/install.texi: Fix idiot typo in previous commit.
7170
7171         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
7172
7173 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7174
7175         * config/h8300/h8300.md: Add comments about peephole2's.
7176
7177 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7178
7179         * config/h8300/h8300.md: Tweak operand numbers of some
7180         peephole2's.
7181
7182 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
7183
7184         * config/h8300/h8300.md: Tweak comments about peephole2's.
7185
7186 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
7187
7188         PR middle-end/14203
7189         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
7190         instead of testing whether DECL_RTL is not NULL.
7191
7192 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7193
7194         * config/sh/sh.c: Fix formatting.
7195
7196 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7197
7198         * config/sh/sh.c: Convert to ISO-C.
7199
7200 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
7201
7202         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
7203         my previous patch.
7204
7205         * config/darwin.h (machopic_finish): Output stub even if the
7206         symbol is already defined.
7207
7208 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7209
7210         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
7211
7212 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7213
7214         * genattr.c (main): Don't define
7215         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
7216         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
7217         (DFA_PIPELINE_INTERFACE): Likewise.
7218         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
7219         (DFA_PIPELINE_INTERFACE): Likewise.
7220
7221 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
7222
7223         * config/mips/mips.md (tstsi, tstdi): Delete.
7224
7225 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7226
7227         * config/mips/mips.c (override_options): Remove an obsolete
7228         duplicate definition of the "e" constraint.
7229         * config/mips/mips.h: Update a comment accordingly.
7230
7231 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7232
7233         * config/mips/mips.md: Complete the unfinished R4000
7234         multiply/shift errata workaround.  Improve documentation.
7235         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
7236         has a hilo hazard.
7237         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
7238         (muldi3, muldi3_internal): Likewise.
7239         (muldi3_internal2): Remove, replacing with...
7240         (muldi3_mult3, muldi3_r4000): ...these new patterns.
7241         (mulsidi3): Take the errata into account.
7242         (mulsidi3_32bit): Remove, replacing with...
7243         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
7244         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
7245         (umulsidi3): Take the errata into account.
7246         (umulsidi3_32bit): Remove, replacing with..
7247         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
7248         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
7249         TARGET_FIX_R4000.
7250         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
7251         (smuldi3_highpart, umuldi3_highpart): Likewise.
7252         * doc/invoke.texi: Document the errata workaround.
7253
7254 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7255
7256         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
7257         * config/mips/mips.h (MASK_FIX_SB1): Bump.
7258         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
7259         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
7260         * config/mips/mips.c (mips_idiv_insns): New function.
7261         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
7262         (mips_output_division): Add a workaround for the R4000 divide/shift
7263         errata.
7264         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
7265         the length of an "idiv" instruction.
7266         * doc/invoke.texi: Document the new switches.
7267
7268 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7269
7270         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
7271         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
7272
7273 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7274
7275         PR optimization/14229
7276         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
7277
7278 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
7279
7280         * fold-const.c (fold): Strip NOPs that change the signedness
7281         for RSHIFT too.  Expand comment.
7282
7283 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
7284
7285         PR optimization/7871
7286         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
7287         from or to call insns.
7288
7289 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
7290
7291         PR optimization/7871
7292         * flow.c (propagate_one_insn): Interpret calls as setting global
7293         registers, not merely clobbering them.
7294
7295 2004-02-27  Dale Johannesen  <dalej@apple.com>
7296
7297         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
7298         config/darwin-protos.h:  Ditto.
7299         config/darwin.h:  Remove call to it.
7300         * combine.c (distribute_notes): Do not place a REG_DEAD note
7301         when value is both set and used.
7302
7303 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7304
7305         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
7306         as well.
7307         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
7308         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
7309
7310 2004-02-27  Andrew Pinski  <apinski@apple.com>
7311
7312         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
7313         Speedup common case of the type values being in the same order.
7314
7315 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
7316
7317         * config/ia64/ia64.h (no-inline-float-divide): New option.
7318         * config/ia64/ia64.h (no-inline-int-divide): New option.
7319         * config/ia64/ia64.h (no-inline-sqrt): New option.
7320         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
7321         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
7322         * config/ia64/ia64.c (ia64_override_options): Modify error
7323         checking for inlined division/sqrt.
7324
7325 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7326
7327         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
7328         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
7329         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
7330         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
7331         copyright.
7332
7333 2004-02-27  Paul Brook  <paul@codesourcery.com>
7334
7335         * function.c (assign_parms): Don't count pretend args for alignment.
7336
7337 2004-02-27  Richard Henderson  <rth@redhat.com>
7338
7339         * passes.c: New file.
7340         * Makefile.in (OBJS-common): Add it.
7341         * diagnostic.c (rtl_dump_and_exit): Move decl ...
7342         * flags.h (rtl_dump_and_exit): ... here.
7343         * output.h (size_directive_output, last_assemble_variable_decl):
7344         Move from toplev.c.
7345         * rtl.h (reg_alloc): Move from toplev.c.
7346         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
7347         struct dump_file_info, enum dump_file_index, dump_file_tbl,
7348         open_dump_file, close_dump_file, rest_of_decl_compilation,
7349         rest_of_type_compilation, rest_of_handle_final,
7350         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
7351         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
7352         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
7353         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
7354         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
7355         rest_of_handle_tracer, rest_of_handle_if_conversion,
7356         rest_of_handle_if_after_combine, rest_of_handle_web,
7357         rest_of_handle_branch_prob,
7358         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
7359         rest_of_handle_addressof, rest_of_handle_sibling_calls,
7360         rest_of_handle_jump_bypass, rest_of_handle_inlining,
7361         rest_of_handle_null_pointer, rest_of_handle_combine,
7362         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
7363         rest_of_handle_gcse, rest_of_handle_loop_optimize,
7364         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
7365         (decode_d_option): Use enable_rtl_dump_file.
7366         (compile_file, finalize, do_compile): Move profile+combine+graph
7367         cleanup to finish_optimization_passes.
7368         * toplev.h (init_optimization_passes, finish_optimization_passes,
7369         enable_rtl_dump_file): Declare.
7370
7371 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
7372             Roger Sayle  <roger@eyesopen.com>
7373
7374         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
7375         operands to build a tree with swapped operands.
7376         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
7377         'unsignedp' predicate to specify the signedness.
7378
7379 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7380
7381         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
7382         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
7383         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
7384         comment typos and formatting.  Follow spelling conventions.
7385
7386 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
7387
7388         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
7389         fix_truncsfsi2.
7390
7391         * config/rs6000/spe.md: Delete spe_efsctuiz.
7392         Add spe_fixuns_truncsfsi2.
7393         Add spe_fix_truncsfsi2.
7394
7395 2004-02-26  Eric Christopher  <echristo@redhat.com>
7396
7397         * c-lex.c (c_lex_string_translate): New variable.
7398         (lex_string): Use to determine string translation.
7399         * c-pragma.h: Prototype.
7400         * c-parse.in (start_string_translation): New. Set above.
7401         (stop_string_translation): Ditto.
7402         (attribute, attribute_list, asm_def, asm_stmt,
7403         asm_operand): Use above functions.
7404         * cp/parser.c (cp_parser_declaration): Translate strings
7405         unless token is RID_EXTERN. Set c_lex_string_translate
7406         for recursive use.
7407         (cp_parser_asm_definition): Only translate argument strings
7408         to asms.
7409         (cp_parser_asm_operand_list): Ditto.
7410         (cp_parser_attribute_list): Do not translate attribute strings.
7411
7412 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7413
7414         * stmt.c (expand_start_case_dummy): Remove.
7415         * tree.h: Remove the corresponding prototype.
7416
7417 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7418
7419         * builtins.c (apply_args_register_offset): Remove.
7420         * tree.h: Remove the corresponding prototype.
7421
7422 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7423
7424         * stor-layout.c (is_pending_size): Remove.
7425         * tree.h: Remove the corresponding prototype.
7426
7427 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7428
7429         * recog.c (validate_replace_src): Remove.
7430         * recog.h: Remove the corresponding prototype.
7431
7432 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7433
7434         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
7435         MAYBE_REG_PARM_STACK_SPACE.
7436         * function.c: Likewise.
7437         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
7438         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7439         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
7440         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
7441
7442 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7443
7444         * c-decl.c (c_expand_deferred_function): Remove.
7445         * c-tree.h: Remove the corresponding prototype.
7446
7447 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
7448
7449         * postreload.c (reload_cse_move2add): Generate just a PLUS
7450         instead of an entire SET.
7451
7452 2004-02-26  Jan Hubicka  <jh@suse.cz>
7453
7454         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
7455         /pentium4m.
7456         * i386.c (override_options): Add support for new CPUs.
7457         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
7458         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
7459         constants.
7460         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
7461
7462 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
7463
7464         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
7465
7466 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
7467
7468         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
7469         (sparc_emit_fixunsdi): New prototype.
7470         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
7471         (sparc_emit_fixunsdi): New function.
7472         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
7473         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
7474         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
7475         to sparc_emit_floatunsdi.
7476         (fixuns_truncsfdi2): New expander.
7477         (fixuns_truncdfdi2): Likewise.
7478
7479 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
7480
7481         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
7482         unless HAVE_cc0.
7483
7484 2004-02-25  Richard Henderson  <rth@redhat.com>
7485
7486         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
7487         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
7488         use (op0-op1) == 0 if op0 is a pointer.
7489         * config/alpha/alpha.md (cmpdi): Use some_operand.
7490         (three comparison combine splits): Remove.
7491
7492 2004-02-25  Richard Henderson  <rth@redhat.com>
7493
7494         PR c/12794
7495         * c-common.c (handle_alias_attribute): Reject the attribute if
7496         current_function_decl is set.
7497
7498 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7499
7500         * config.gcc: Add comment describing extra_gcc_objs.
7501         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
7502         * configure.ac (extra_gcc_objs): New substitution variable.
7503         (host_extra_gcc_objs): Don't substitute.
7504         * configure: Regenerate.
7505         * Makefile.in: Use extra_gcc_objs.
7506
7507 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
7508
7509         * doc/contrib.texi: Add an entry for myself.
7510
7511 2004-02-25  Jan Hubicka  <jh@suse.cz>
7512
7513         * basic-block.h (make_eh_edge, break_superblocks): Declare.
7514         * cfgbuild.c (make_eh_edge):  Make global.
7515         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
7516         * except.c (build_post_landing_pads, connect_post_landing_pads,
7517         dw2_build_landing_pads, sjlj_emit_function_enter,
7518         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
7519         sjlj_build_landing_pads): Update CFG.
7520         (emit_to_new_bb_before): New function.
7521         (finish_eh_generation): Do not rebuild the CFG.
7522
7523 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7524
7525         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
7526         target_cpu_default defines.
7527         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
7528         * pa.h (TARGET_DEFAULT): Likewise.
7529
7530 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
7531
7532         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
7533         comparisons with regard to signedness.
7534
7535 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7536
7537         * arm.c (thumb_legitimize_address): New function.
7538         * arm-protos.h: Prototype it.
7539         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
7540         (LEGITIMIZE_ADDRESS): Use it.
7541
7542 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
7543
7544         * reload1.c (reload): Only spill eliminable register with multiple
7545         adjacent elimination alternatives if all alternatives fail.
7546
7547 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
7548
7549         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
7550         is -4095...+4095 inclusive.
7551
7552 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
7553
7554         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
7555         the bootstrap failure with Sun CC 5.4 and 5.5.
7556
7557 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
7558
7559         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
7560         which modifies NEWREG.
7561         (cse_condition_code_reg): Update the mode of CC_REG in
7562         CC_SRC_INSN on our own.
7563
7564 2004-02-24  Michael Matz  <matz@suse.de>
7565
7566         * config/i386/i386.c (ix86_comp_type_attributes): Check for
7567         regparm attributes.
7568
7569 2004-02-24  Richard Henderson  <rth@redhat.com>
7570
7571         * toplev.c (dump_file_tbl): Rename from dump_file.
7572         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
7573         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
7574         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
7575         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
7576         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
7577         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
7578         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
7579         s/rtl_dump_file/dump_file/g.
7580
7581 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
7582
7583         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
7584         (spe_fixuns_truncsfsi2): Delete.
7585
7586         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
7587         (fixuns_truncsfsi2): Delete.
7588
7589 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
7590
7591         PR/14240
7592         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
7593
7594 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
7595
7596         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
7597
7598 2004-02-24  Jason Merrill  <jason@redhat.com>
7599
7600         * tree.c (check_qualified_type): New fn.
7601         (get_qualified_type): Use it.  If type already has the desired
7602         quals, just return it.
7603         * tree.h: Declare it.
7604
7605 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
7606
7607         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
7608         TARGET_SCHED_FINISH_GLOBAL): New macros.
7609
7610         * target.h (md_init_global, md_finish_global): Function
7611         declarations corresponding to new target macros.
7612
7613         * haifa-sched.c (sched_init, sched_finish): Allow target to
7614         call the new schedular hooks.
7615
7616         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
7617         call to update_life_info.
7618
7619         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
7620         flag_schedule_insns for SH4.
7621
7622         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
7623         find_set_regmode_weight, find_insn_regmode_weight,
7624         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
7625         sh_variable_issue, high_pressure, ready_reorder,
7626         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
7627         functions used to throttle the insn movement in first
7628         scheduling pass for SH.
7629
7630         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
7631         TARGET_SCHED_FINISH_GLOBAL.
7632
7633 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
7634
7635         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
7636         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
7637         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
7638         symbols in sections named by the user.
7639         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
7640         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
7641         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
7642         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
7643         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
7644         the above.
7645         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
7646         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
7647         one more pseudo to further improve code generation.
7648         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
7649         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
7650         inside UNSPEC.
7651         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
7652         * config/frv/frv.c (frv_legitimate_address_p): Added
7653         allow_double_reg_p argument.  Adjust all callers.  Use it to
7654         decide whether to enable double-register indirect addressing.
7655         (frv_funcdesc_alias_set): Remove.
7656         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
7657         register.  Emit movdi_ldd.
7658         (ldd_address_operand): New.
7659         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
7660         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
7661         (PREDICATE_CODES): Add ldd_address_operand.
7662         * config/frv/frv.md (movdi_ldd): New.
7663         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
7664         intermediate computations if possible.
7665         (symGOTOFF2reg_i): Fix harmless typo.
7666         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
7667         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
7668         relocated p_vaddr to vaddr type.
7669         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
7670         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
7671         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
7672         MEM, or use a funcdesc alias set.  Use regular move instead of
7673         ldd.
7674         (dbl_memory_one_insn_operand): Recognize function descriptors by
7675         type or by alias set, and don't split them.
7676         * config/frv/frv.md (call, call_value): Never use call_internal
7677         for fdpic.
7678         (call_internal, call_value_internal): Never match for FDPIC.
7679         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
7680         call_value_fdpicsi): Require FDPIC.
7681         (ldd): Removed.
7682         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
7683         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
7684         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
7685         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
7686         FDPIC.  Compute data base address.
7687         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
7688         before the other self-specs are processed.
7689         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
7690         Build with -fPIC.
7691         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
7692         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
7693         inhibit_libc is defined.
7694         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
7695         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
7696         __FRV_FDPIC__.
7697         (__RELOC_POINTER): Define.
7698         (_Unwind_IteratePhdrCallback): Use it.
7699         * config/frv/frv.h (Twrite): Define.
7700         (TRANSFER_FROM_TRAMPOLINE): Use it.
7701         * config/frv/linux.h (INVOKE__main): Undefine.
7702         (Twrite): Override.
7703         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
7704         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
7705         (-mlibrary-pic): Emphasize that this option generates EABI code.
7706         (-mcpu): Add fr550.
7707         (-mpack): Remove.
7708         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
7709         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
7710         and CONSTs in FDPIC mode.
7711         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
7712         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
7713         * config/frv/frv.c (move_source_operand): Don't accept symbolic
7714         constants.
7715         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
7716         rather than 'i' constraint for the 2-instruction alternative.
7717         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
7718         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
7719         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
7720         EXTRA_CONSTRAINT_FOR_Y.
7721         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
7722         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
7723         (addsi3): Change 'Y' constraint to 'Q'.
7724         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
7725         * reload.c (CONST_POOL_OK_P): New macro.
7726         (find_reloads): Use it to decide whether a constant can be forced
7727         into memory.
7728         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
7729         constant satisfies got12_operand.
7730         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
7731         (frv_legitimate_address_p): Check for valid unspec offsets using
7732         got12_operand rather than frv_legitimate_fdpic_operand_p.
7733         (frv_legitimate_fdpic_operand_p): Delete.
7734         (frv_emit_movsi): Abort if we try to use the FDPIC register during
7735         or after reload.
7736         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
7737         TARGET_FDPIC.
7738         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
7739         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
7740         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
7741         (frv_fdpic_fptr_operand): Don't declare here.
7742         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
7743         rather than fdpic_got12_operand.
7744         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
7745         got12_operand and const_unspec_operand.
7746         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
7747         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
7748         (symbolic_operand): Remove.
7749         (const_unspec_operand): New predicate.
7750         * config/frv/frv.md (*movsi_got): Use got12_operand.
7751         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
7752         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
7753         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
7754         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
7755         * config/frv/frv.c (frv_unspec): New structure.
7756         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
7757         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
7758         validate CONST indices.  Use frv_output_const_unspec to print them.
7759         (frv_print_operand): Update call to unspec_got_name.  Use
7760         frv_output_const_unspec to print constant unspecs.
7761         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
7762         Reject UNSPECs otherwise.
7763         (unspec_got_name): Take the relocation number as argument, not an
7764         rtx containing it.
7765         (frv_output_addr_const_extra): Remove, replacing with...
7766         (frv_output_const_unspec): ...this new function.
7767         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
7768         (gpr_or_int12_operand): Use fdpic_got12_operand.
7769         (dbl_memory_one_insn_operand): Likewise.
7770         (fdpic_got12_operand): Use frv_const_unspec_p.
7771         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
7772         are already legitimate.  Use frv_small_data_reloc_p when deciding
7773         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
7774         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
7775         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
7776         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
7777         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
7778         label, for real this time.
7779         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
7780         representation of visibility.
7781         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
7782         such.
7783         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
7784         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
7785         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
7786         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
7787         it was explicitly disabled.
7788         (frv_stack_info): There is no need to save the link register in every
7789         frame unless TARGET_LINKED_FP is true.
7790         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
7791         frame pointer if the stack pointer might change value.
7792         (frv_return_addr_rtx): Check and process "count" argument.
7793         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
7794         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
7795         (frv_find_base_term): Declare.
7796         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
7797         (FIND_BASE_TERM): Define.
7798         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
7799         small_data_register_operand, small_data_symbolic_operand.  Add
7800         symbolic_operand.
7801         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
7802         (frv_print_operand_memory_reference, output_move_single): Remove
7803         special handling for unlegitimized sdata addresses.
7804         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
7805         and symbolic addresses.
7806         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
7807         (frv_find_base_term): New function.
7808         (int_2word_operand): Check specifically for symbolic address constants.
7809         (pic_register_operand, pic_symbolic_operand): Delete.
7810         (small_data_register_operand, small_data_symbolic_operand): Delete.
7811         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
7812         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
7813         (move_source_operand): Only accept CONSTs if they're a two-insn
7814         symbolic constant.
7815         (fdpic_got12_operand): Don't require TARGET_FDPIC.
7816         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
7817         using gen_symGOTOFF2reg*.
7818         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
7819         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
7820         themselves a cost of 3 insns.
7821         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
7822         Change predicate to symbolic_operand.
7823         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
7824         (*movsi_lda_sdata): Delete.
7825         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
7826         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
7827         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
7828         frv-*-*linux*.
7829         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
7830         label.
7831         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
7832         -multilib-library-pic.
7833         (LINK_SPEC): Add -z text for -mfdpic.
7834         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
7835         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
7836         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
7837         Override.
7838         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
7839         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
7840         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
7841         crtstuff-generated files.
7842         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
7843         * config.gcc: Add frv-*-*linux*.
7844         * config/frv/linux.h, config/frv/t-linux: New.
7845         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
7846         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
7847         when -mfdpic even if a linker script is explicitly listed.
7848         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
7849         * config/frv/frv.c (frv_override_options): Clear asm_out
7850         unaligned_op for SImode on FDPIC.
7851         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
7852         argument passed to decl_readonly_section.
7853         (frv_assemble_integer): Revert 2003-09-30's change, but make the
7854         whole block run with FDPIC even with -fno-PIC.
7855         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
7856         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
7857         symbol or label plus offset to memory.
7858         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
7859         GOTOFF and GPREL for LABEL_REF.
7860         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
7861         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
7862         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
7863         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
7864         * doc/invoke.texi: Document them.
7865         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
7866         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
7867         (frv_splittable_got_operand): Removed.
7868         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
7869         LO_SUM.  Add comments.
7870         (frv_override_options): Moved enabling of FDPIC to
7871         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
7872         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
7873         (frv_legitimize_fdpic_address): Don't duplicate logic in
7874         frv_emit_movsi.
7875         (frv_gen_GPsym2reg): New.
7876         (unspec_got_name): Added gprel.
7877         (frv_expand_fdpic_call): Add support for inlining PLTs.
7878         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
7879         (gpr_or_int12_operand): Added GPREL12.
7880         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
7881         (small_data_symbolic_operand): Fail if FDPIC.
7882         (fdpic_splittable_got_operand): Removed.
7883         (fdpic_got12_operand): Added GPREL12.
7884         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
7885         when appropriate.  Fix sdata GOTOFF.
7886         (frv_legitimate_constant_p): Require legitimate PIC operand for
7887         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
7888         (frv_assemble_integer): Move FDPIC funcdesc handling out of
7889         flag_pic case.
7890         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
7891         frv_assemble_integer fails.
7892         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
7893         (SUBTARGET_DRIVER_SELF_SPECS): New.
7894         (ASM_SPEC): Don't pass -mno-fdpic.
7895         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
7896         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
7897         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
7898         -multilib-library-pic.
7899         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
7900         condexec_si_media_operator, condexec_sf_add_operator and
7901         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
7902         and condexec_sf_unary_operator.
7903         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
7904         New.
7905         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
7906         movsi_internal.  Give them internal names.  movsi_got has type
7907         int.
7908         (fdpic got splitters): Remove.
7909         (symGPREL2reg, symGPREL2reg_hilo): New.
7910         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
7911         to -mlibrary-pic.  Map -multilib-library-pic to it.
7912         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
7913         Document.
7914         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
7915         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
7916         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
7917         (frv_cannot_force_const_mem): New function.
7918         (const_small_data_p, plus_small_data_p): Update comments on sdata
7919         on FDPIC.
7920         (frv_override_options): Set flag_pie for FDPIC too.
7921         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
7922         call-saved registers on FDPIC.
7923         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
7924         don't force LR to be preserved.
7925         (frv_expand_prologue): Likewise.
7926         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
7927         (frv_frame_pointer_required): Don't force it just because the
7928         FDPIC register is used.
7929         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
7930         operand only if !condexec_p.
7931         (frv_legitimize_address): Return the FDPIC-legitimized address.
7932         Don't match small data here on FDPIC.
7933         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
7934         symbols.  Use TRUE/FALSE instead of 1/0.
7935         (frv_local_funcdesc_p): New.
7936         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
7937         immediates when possible.
7938         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
7939         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
7940         an UNSPEC_GOT.
7941         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
7942         12-bit immediates when possible.
7943         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
7944         are not legitimate pic operands.
7945         (frv_in_small_data_p): Re-enable for FDPIC.
7946         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
7947         (FRV_GLOBAL_P): Removed.
7948         * config/frv/frv.md: Add modes to CONSTs.
7949         (movsi_got): New.
7950         (movsi_lo_sum_got): Use separate matches instead of match_dup.
7951         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
7952         (fdpic splittable operations): Match on flag_pic != 1.
7953         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
7954         * config/frv/frv.c (frv_asm_out_constructor,
7955         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
7956         bytes, not bits.
7957         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
7958         * config/frv/frv.c (frv_assemble_integer): Reject complex
7959         expressions referencing function SYMBOL_REFs.
7960         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
7961         (move_source_operand): Reject CONSTs that reference function
7962         SYMBOL_REFs on FDPIC.
7963         (frv_emit_movsi): If we get such a CONST, break it up.
7964         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
7965         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
7966         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
7967         MEM.
7968         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
7969         (frv_trampoline_size): Increase for FDPIC.
7970         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
7971         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
7972         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
7973         Disable use of GOTOFF for now.
7974         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
7975         Disable use of small data in FDPIC for now.
7976         (frv_asm_output_mi_thunk): Implement for FDPIC.
7977         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
7978         * config/frv/frv.c (frv_asm_out_constructor): Use
7979         frv_assemble_integer for FDPIC pointers.
7980         (frv_asm_out_destructor): Likewise.
7981         * config/frv/frv.md (ldd): Fix order of operands.  Use
7982         address_operand for input.
7983         2003-09-18  DJ Delorie  <dj@redhat.com>
7984         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
7985         (unspec_got_name): Correct typo.
7986         (frv_emit_movsi): Pre-expand splittable GOTs.
7987         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
7988         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
7989         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
7990         * config/frv/t-frv: Add -mfdpic multilibs.
7991         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
7992         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
7993         * config/frv/frv.c (frv_override_options): -mfdpic assumes
7994         flag_pic, default to 32-bit pics, require DWORD ops.
7995         (frv_override_options): Add W and Z constraints.
7996         (frv_expand_prologue): No pic prologue for -mfdpic.
7997         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
7998         (frv_print_operand_memory_reference): Handle GOT constants.
7999         (frv_legitimate_address_p): Allow GOT constants.
8000         (frv_legitimize_address): Handle GOT addresses too.
8001         (frv_legitimate_fdpic_operand_p): New.
8002         (frv_legitimize_fdpic_address): New.
8003         (unspec_got_name): New.
8004         (frv_output_addr_const_extra): New.
8005         (frv_expand_fdpic_call): New.
8006         (frv_fdpic_fptr_operand): New.
8007         (gpr_or_int12_operand): Handle GOT operands.
8008         (int_2word_operand): Handle GOT operands.
8009         (fdpic_operand): New.
8010         (fdpic_splittable_got_operand): New.
8011         (fdpic_got12_operand): New.
8012         (frv_emit_movsi): Handle GOT operands.
8013         (frv_assemble_integer): -mfdpic doesn't use rofixups.
8014         (frv_print_operand): Support 'g' code for GOT operands.
8015         * config/frv/frv-protos.h: Add prototypes as needed.
8016         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
8017         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
8018         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
8019         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
8020         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
8021         R_FRV_GOTOFFLO): New.
8022         (movsi_high_got, movsi_lo_sum_got): New.
8023         (*movsi_pic): Don't use this splitter for -mfdpic.
8024         (addsi3): Allow GOT references also.
8025         (call, call_value): Handle -mfdpic separately.
8026         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
8027         call_value_fdpicsi): New.
8028         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
8029         symGOTOFF2reg_i): New.
8030         * config/frv/frv.h (MASK_FDPIC): New.
8031         (TARGET_FDPIC): New.
8032         (TARGET_SWITCHES): Add -mfdpic.
8033         (FDPIC_FPTR_REGNO): New.
8034         (FDPIC_REGNO): New.
8035         (OUR_FDPIC_REG): New.
8036         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
8037         FDPIC_CALL_REGS.
8038         (REG_CLASS_NAMES): Likewise.
8039         (REG_CLASS_CONTENTS): Likewise.
8040         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
8041         (EXTRA_CONSTRAINT): Add it here.
8042         (FRV_GLOBAL_P): New.
8043         (OUTPUT_ADDR_CONST_EXTRA): New.
8044
8045 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8046
8047         * config/sparc/sparc.h: Remove commented-out definitions of
8048         TARGET_EDOM and GEN_ERRNO_RTX.
8049
8050 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
8051
8052         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
8053         df_analyse with df_analyze.
8054
8055 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
8056
8057         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
8058         beginning of block.
8059
8060 2004-02-23  James E Wilson  <wilson@specifixinc.com>
8061
8062         * calls.c (precompute_arguments): Update comment.
8063
8064 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8065
8066         * et-forest.c: Replace et_occurences with et_occurrences.
8067
8068 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8069
8070         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
8071         with iv_analyze.
8072
8073 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
8074
8075         * config/i386/i386.c: Rename pni to sse3.
8076         * config/i386/i386.h: Likewise.
8077         * config/i386/i386.md: Likewise.
8078         * config/i386/pmmintrin.h: Likewise.
8079         * doc/extend.texi: Likewise.
8080         * doc/invoke.texi: Likewise.
8081
8082 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
8083             Kazu Hirata  <kazu@cs.umass.edu>
8084
8085         Remove -fwritable-strings.
8086         * c-common.c (fix_string_type): Don't check
8087         flag_writable_strings.
8088         (fix_string_type): Likewise.
8089         * c-opts.c (set_std_c89): Don't initialize
8090         flag_writable_strings.
8091         (set_std_c99): Likewise.
8092         * common.opt (fwritable-strings): Remove.
8093         * flags.h: Remove the external declaration of
8094         flag_writable_strings.
8095         * opts.c (common_handle_option) <OPT_fwritable_strings>:
8096         Remove.
8097         * toplev.c (flag_writable_strings): Remove.
8098         (f_options): Remove an entry for writable-strings.
8099         * varasm.c (const_hash_1) <STRING_CST>: Don't check
8100         flag_writable_strings.
8101         (compare_constant) <STRING_CST>: Likewise.
8102         (build_constant_desc): Likewise.
8103         * config/darwin.c (machopic_select_section): Likewise.
8104         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
8105         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
8106         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
8107         * config/mips/mips.c (mips_select_section): Likewise.
8108         (mips_encode_section_info): Likewise.
8109         * config/pa/pa.c (pa_select_section): Likewise.
8110         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
8111         * config/v850/v850.c (v850_select_section): Likewise.
8112         * doc/invoke.texi (-fwritable-strings): Remove.
8113         (-fno-const-strings): Don't mention -fwritable-strings.
8114         * doc/trouble.texi: Don't mention -fwritable-strings.
8115
8116 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
8117
8118         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
8119
8120 2004-02-23  Dale Johannesen  <dalej@apple.com>
8121
8122         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
8123         (movdf_hardfloat64):  Ditto.
8124         (movdf_softfloat64):  Ditto.
8125
8126 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
8127         * config/rs6000/rs6000.c (function_arg): call to
8128         rs6000_mixed_function_arg for DFmode moved to allow
8129         normal DFmode incoming register assignment.
8130
8131 2004-02-23  Dale Johannesen  <dalej@apple.com>
8132
8133         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
8134         (movdf_hardfloat64):  Ditto.
8135
8136 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8137
8138         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
8139         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
8140         copyright.
8141
8142 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
8143
8144         PR c/14156
8145         * c-typeck.c (c_expand_return): Change check for VAR_DECL
8146         to use DECL_P instead.
8147
8148         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
8149         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
8150
8151 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8152
8153         * Makefile.in (opts.o): Depend on target.h.
8154         * opts.c (decode_options): Use targetm.default_short_enums
8155         instead of DEFAULT_SHORT_ENUMS.
8156         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8157         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
8158         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
8159         * target.h (gcc_target): Add default_short_enums.
8160         * config/cris/cris.h: Remove a comment about
8161         DEFAULT_SHORT_ENUMS.
8162         * config/ip2k/ip2k.h: Likewise.
8163         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
8164         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
8165
8166 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
8167             Falk Hueffner  <falk@debian.org>
8168
8169         PR c/14188
8170         * builtins.c (expand_builtin_va_arg): Emit an informative message
8171         if a trap is generated.
8172         * c-typeck.c (build_function_call): Likewise.
8173
8174 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8175
8176         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
8177         fopen.
8178         * libgcov.c: Include sys/stat.h.
8179         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
8180         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
8181         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
8182         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
8183
8184 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
8185
8186         * reorg.c: Remove comments about dead ports.
8187
8188 2004-02-22  Christopher Faylor  <cgf@redhat.com>
8189
8190         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
8191         extra host object file when targetting cygwin rather than generic
8192         object files.
8193
8194 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
8195
8196         Merge from tree-ssa:
8197         2003-11-20  Richard Henderson  <rth@redhat.com>
8198
8199                 * tree-inline.c (insert_decl_map): New.
8200                 (remap_decl, remap_type, remap_block, copy_body_r,
8201                 initialize_inlined_parameters, declare_return_variable,
8202                 remap_save_expr): Use it.
8203
8204         * function.c (copy_body_r): Add mapping from id->ret_label to
8205         id->ret_label.  Revert test for ret_label.
8206
8207 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
8208
8209         * genoutput.c (process_template): Strip trailing whitespace in @
8210         templates and issue a warning if there was any.
8211
8212 2004-02-21  Christopher Faylor  <cgf@redhat.com>
8213
8214         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
8215         object file when targetting cygwin.
8216         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
8217         overridden by top-level Makefile.
8218
8219 2004-02-21  Roger Sayle  <roger@eyesopen.com>
8220
8221         * config/i386/i386.c (standard_80387_constant_p): Also prefer
8222         the x87's load constant instructions when optimizing for size.
8223
8224 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
8225
8226         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
8227         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
8228         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
8229         * fold-const.c: Likewise.
8230         * simplify-rtx.c: Likewise.
8231
8232 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
8233
8234         * combine.c (can_combine_p): Don't ignore SETs marked with
8235         REG_EH_REGION notes.
8236         (try_combine): When attemting to fix unrecognized insns, don't
8237         split a PARALLEL that contains the original i2.
8238
8239 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
8240
8241         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
8242         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
8243         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
8244         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
8245         (vector, pixel, bool): #define to __vector, __pixel and __bool.
8246         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
8247         portion of header.
8248         (__altivec_link_error_invalid_argument): Remove prototype; will use
8249         __builtin_altivec_compiletime_error("vec_*") instead.
8250         (vec_*): Fix/complete set of available operation overloads given the
8251         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
8252         cv-correctness of pointer arguments; in C, always check for correct
8253         argument types before macro expansion.
8254         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
8255         defining Darwin/PowerPC-specific '-f[no-]altivec' and
8256         '-W[no-]altivec-long-deprecated' switches.
8257         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
8258         '__vector', '__pixel' and '__bool' macros using
8259         '__attribute__((altivec(...)))' types.
8260         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
8261         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
8262         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
8263         New type nodes.
8264         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
8265         handling '-W[no-]altivec-long-deprecated'.
8266         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
8267         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
8268         altivec_expand_dst_builtin): Remove casts from integer literals.
8269         (altivec_expand_builtin): Likewise; handle expansion of new
8270         '__builtin_altivec_compiletime_error' function.
8271         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
8272         types, and make them distinct from other vector types; register
8273         '__builtin_altivec_compiletime_error' function.
8274         (print_operand): For 'P', print a full target register name instead of
8275         merely its number.
8276         (rs6000_attribute_table): Add "altivec" attribute.
8277         (rs6000_handle_altivec_attribute): New function.
8278         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
8279         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
8280         maps to).
8281         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
8282         declare.
8283         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
8284
8285 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8286
8287         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
8288         check.
8289         (shift_mix4left+2): Delete redundant pattern.
8290
8291 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8292
8293         * alias.c (OUTGOING_REGNO): Don't define the default.
8294         * builtins.c (OUTGOING_REGNO): Likewise.
8295         (INCOMING_REGNO): Likewise.
8296         (apply_args_register_offset): Always use OUTGOING_REGNO.
8297         * combine.c (OUTGOING_REGNO): Likewise.
8298         * sibcall.c (OUTGOING_REGNO): Likewise.
8299         * defaults.h (INCOMING_REGNO): Provide the default.
8300         (OUTGOING_REGNO): Likewise.
8301
8302 2004-02-21  Jan Hubicka  <jh@suse.cz>
8303
8304         * params.def (max-peeled-insns, max-completely-peeled-insns,
8305         max-once-peeled-insns): Set to 400.
8306
8307 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8308
8309         PR c++/12007
8310         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
8311         are set for parameters before outputing debugging information.
8312
8313 2004-02-20  Falk Hueffner  <falk@debian.org>
8314
8315         PR target/14201
8316         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
8317         numbers.
8318
8319 2004-02-20  Per Bothner  <per@bothner.com>
8320
8321         * input.h:  Don't #include line-map.h.  It may cause link problems
8322         with undefined linemap_line_start when line-map.h is included but
8323         line-map.o is not linked, as currently happens with gengtype on
8324         compilers that don't support inline.
8325         * toplev.c:  So we do have to explicitly #include line-map.h here.
8326
8327 2004-02-20  Richard Henderson  <rth@redhat.com>
8328
8329         * doc/invoke.texi: Add -Wvariadic-macros.
8330
8331 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8332
8333         * haifa-sched.c (sched_emit_insn): Remove.
8334         * sched-int.h: Remove the corresponding prototype.
8335
8336 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8337
8338         Revert:
8339         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8340         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8341         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8342         * config/cris/cris.h: Remove a comment about
8343         DEFAULT_SHORT_ENUMS.
8344         * config/ip2k/ip2k.h: Likewise.
8345         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8346
8347 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
8348             Tom Tromey  <tromey@redhat.com>
8349
8350         * doc/install.texi: Moved --disable-libgcj and
8351         --with-system-zlib documentation to new section for
8352         Java-specific options.
8353         Added explicit Cross-Compiler-Specific Options subheading.
8354         Added section for Java-specific options.
8355
8356 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
8357
8358         * doc/install.texi (Building the Ada compiler): Remove
8359         example.
8360
8361 2004-02-20  James E Wilson  <wilson@specifixinc.com>
8362
8363         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
8364
8365 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8366
8367         * gcc.c (process_command): Allow translation of the copyright
8368         symbol but not the rest of the copyright message.
8369         * gcov.c (print_version): Likewise.  Allow translation of the
8370         message about warranty.
8371
8372 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
8373
8374         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
8375         predicate.
8376         ("*andsi_clear"): Tweak constraints to not match postincrement.
8377         Adjust the predicate to exclude a volatile memory reference.
8378         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
8379         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
8380
8381 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
8382
8383         * move-if-change: Remove.
8384         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
8385         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
8386         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
8387         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
8388         (s-gtyp-gen, s-iov): Use the top level move-if-change.
8389         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
8390
8391 2004-02-19  James E Wilson  <wilson@specifixinc.com>
8392
8393         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
8394         for operand2.  Add condition that requires register_operand operand2
8395         before reload.
8396
8397 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
8398             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8399
8400         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
8401         * config/mips/mips.md: Expand comment above unaligned loads and stores.
8402
8403 2004-02-19  Richard Henderson  <rth@redhat.com>
8404
8405         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
8406         * tree.c (build0, build1, build2, build3, build4): Split out from...
8407         (build): ... here.  Call them.
8408         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
8409
8410         * convert.c (convert_to_integer): Remove extra build argument.
8411         * tree-inline.c (expand_call_inline): Likewise.
8412
8413 2004-02-19  Richard Henderson  <rth@redhat.com>
8414
8415         * c-opts.c (warn_variadic_macros): New.
8416         (c_common_handle_option): Set it.
8417         (sanitize_cpp_opts): Copy it to cpp_opts.
8418         * c.opt (Wvariadic-macros): New.
8419         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
8420         * cppinit.c (cpp_create_reader): Initialize it.
8421         * cppmacro.c (parse_params): Check it.
8422
8423 2004-02-19  David Daney <ddaney@avtrex.com>
8424
8425         PR preprocessor/14198
8426         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
8427         builtin_assert ("machine=mips")
8428
8429 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8430
8431         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
8432         * system.h (DEFAULT_SHORT_ENUMS): Poison.
8433         * config/cris/cris.h: Remove a comment about
8434         DEFAULT_SHORT_ENUMS.
8435         * config/ip2k/ip2k.h: Likewise.
8436         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
8437
8438 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8439
8440         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
8441         when passing single SFmode quantities in general registers,
8442         put them in the high half.
8443
8444 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8445
8446         * doc/md.texi (Standard Names): Document additional dependency on
8447         fix pattern.
8448
8449         * optabs.c (ftruncify): Remove.
8450         (expand_fix): Manually inline ftruncify above.
8451         (can_fix_p): Add FIXME note.
8452
8453 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
8454
8455         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
8456         spe_fixuns_truncsfsi2.
8457
8458         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
8459         fixuns_truncsfsi2.
8460
8461 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
8462
8463         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
8464         * testsuite/gcc.dg/20040219-1.c: New test.
8465
8466 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
8467
8468         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
8469         "*subsf3_cconly"): Subtraction is not commutative.
8470
8471 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
8472
8473         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
8474         (sdbout_symbol): If called before sdbout_init, queue DECL for
8475         later and return.
8476         (sdbout_init): Set sdbout_initialized true, process decls
8477         queued earlier by sdbout_symbol.
8478         (sdbout_finish): Use size_t for index variable.
8479
8480 2004-02-19  Jeff Law  <law@redhat.com>
8481
8482         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
8483         for unordered comparison codes.
8484
8485 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
8486
8487         * reload1.c (reload): Correct comment.
8488         (scan_paradoxical_subregs): Remove #if 0 and old comment.
8489         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
8490         register variables are not used by reload.
8491
8492 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
8493
8494         PR target/14209
8495         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
8496         constraints to not match postincrement.  Adjust the predicate to
8497         exclude a volatile memory reference.
8498
8499 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8500
8501         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
8502
8503 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8504
8505         * hooks.c (hook_void_tree_int): Remove.
8506         (hook_void_constcharptr): Likewise.
8507         (hook_int_void_0): Likewise.
8508         * hooks.h: Remove the prototypes for the above three
8509         functions.
8510         * targhooks.c (hook_bool_machine_mode_true): Remove.
8511         * targhooks.h: Remove the prototype for
8512         hook_bool_machine_mode_true.
8513
8514 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8515
8516         * emit-rtl.c (subreg_realpart_p): Remove.
8517         (reorder_insns_with_line_notes): Likewise.
8518         (end_full_sequence): Likewise.
8519         * rtl.h: Remove the prototype for the above functions.
8520
8521 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8522
8523         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
8524         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
8525         config/iq2000/iq2000.h, config/m32r/m32r.h,
8526         config/pdp11/pdp11.h, config/sparc/sparc.h,
8527         config/xtensa/xtensa.h: Remove commented-out or useless
8528         definitions of CASE_VECTOR_PC_RELATIVE.
8529
8530 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8531
8532         * loop.c (all_sets_invariant_p): Remove.
8533
8534 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
8535
8536         PR target/12916
8537         * config/sparc/sparc.h (NPARM_REGS): Delete.
8538         (BASE_RETURN_VALUE_REG): Likewise.
8539         (BASE_OUTGOING_VALUE_REG): Likewise.
8540         (BASE_PASSING_ARG_REG): Likewise.
8541         (BASE_INCOMING_ARG_REG): Likewise.
8542         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
8543         TARGET_ARCH64, not TARGET_V9.
8544         (function_arg_slotno): Dispatch based on the mode class.
8545         Handle vector modes like floating-point modes.
8546         (function_arg_record_value_1): Handle vector types like
8547         floating-point types.
8548         (function_arg_record_value_2): Likewise.
8549         Calculate regno after mode transformation.
8550         (function_arg): Handle vector modes like floating-point modes.
8551         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
8552         If ARCH64, do not recheck alignment.
8553         (function_arg_pass_by_reference): Reorder the conditions.
8554         (sparc_return_in_memory): Move after function_arg_padding.
8555         Implement calling conventions for vector modes.
8556         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
8557         (function_value): Move scope of 'regbase'.
8558         Implement calling conventions for vector modes.
8559         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
8560         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
8561         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
8562         the argument is passed by reference.
8563         (sparc_type_code): Handle vector types.
8564
8565 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
8566
8567         * function.c (assign_parms): When building decl_rtl for
8568         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
8569
8570 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
8571
8572         * expr.c (is_aligning_offset): Check if we are aligning the
8573         expressions's address over BIGGEST_ALIGNMENT in bytes, not
8574         in bits.
8575
8576 2003-02-18  Matt Austern  <austern@apple.com>
8577
8578         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
8579         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
8580         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
8581         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
8582         spec string.
8583         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
8584
8585 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
8586
8587         * dwarf2out.c (loclabel_num): Move outside #ifdef
8588         DWARF2_DEBUGGING_INFO and mark with GTY(()).
8589         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
8590         Mark with GTY(()).
8591         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
8592         Allocate memory with ggc_alloc.  No need to copy anything.
8593         (ia64_hpux_file_end): Update to match.
8594
8595 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
8596
8597         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
8598         by default.
8599
8600 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8601
8602         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
8603         ("divmodtisi3"): Likewise.
8604         ("udivmoddi4", "udivmodtidi3"): Likewise.
8605         ("divmodsi4", "divmoddisi3"): Likewise.
8606         ("udivmodsi4", "udivmoddisi3"): Likewise.
8607         ("udivsi3", "umodsi3"): Likewise.
8608
8609 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
8610
8611         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
8612         placeholder insn when chunkifying the pool.
8613
8614 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8615
8616         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
8617         generating PIC code.
8618
8619 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8620
8621         * config/h8300/h8300-protos.h: Add a prototype for
8622         h8300_expand_branch.
8623         * config/h8300/h8300.c (h8300_expand_branch): New.
8624         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
8625         bgtu, beq, bne): Call h8300_expand_branch().
8626
8627 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8628
8629         * config/h8300/h8300-protos.h: Add prototypes for
8630         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
8631         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
8632         (h8300_hard_regno_mode_ok): Likewise.
8633         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
8634         h8300_hard_regno_nregs().
8635         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
8636
8637 2004-02-18  Per Bothner  <per@bothner.com>
8638
8639         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
8640         partly reverts my 2003-10-01 change, because we're back to logically
8641         including <command line> inside the main line.
8642         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
8643         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
8644         Fixes PR preprocessor/14103.
8645
8646         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
8647         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
8648         (cpp_push_include):  Don't need to increment pfile's line field.
8649         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
8650
8651         * c-ppoutput.c (print struct):  New first_time field.
8652         (init_pp_output):  Set print.first_time.
8653         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
8654         which is set also for (say) <command line>.  Clear print.first_time.
8655
8656         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
8657         does not match the code, so fix both.
8658         (should_stack_file):  Inline include_pch_p function.
8659         (include_pch_p):  Remove pointless function.
8660
8661         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
8662
8663 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8664
8665         * config/h8300/h8300.md (four define_peephole2's): Use
8666         h8300_regs_ok_for_stm().
8667
8668 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8669
8670         * config/h8300/h8300-protos.h: Update the prototype for
8671         expand_a_rotate().
8672         * config/h8300/h8300.c (expand_a_rotate): Remove the first
8673         argument.
8674         * config/h8300/h8300.md: Update all callers.
8675
8676 2004-02-18  Jan Hubicka  <jh@suse.cz>
8677
8678         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
8679         floats.
8680         (simplify_binary_operation): Deal with logicals on floats.
8681
8682         * i386.md (SSE fabs splitters): Emit new patterns.
8683         (SSE cmov splitters): Likewise.
8684         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
8685         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
8686         subregs.
8687         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
8688         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
8689
8690 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8691
8692         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
8693         by hand.
8694         (output_a_rotate): Tweak a comment.
8695         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
8696         (*rotlhi3_1): Change to rotlhi3_1.
8697         (*rotlsi3_1): Change to rotlsi3_1.
8698
8699 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
8700
8701         PR target/13866
8702         * arm.c (load_multiple_operation): Don't insist that the source reg
8703         of a post-increment component is the same as the destination.
8704         (store_multiple_operation): Likewise.
8705
8706 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8707
8708         * config/h8300/h8300.md: Move movsf patterns into one section
8709         of the file.
8710
8711 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8712
8713         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
8714         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
8715         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
8716         config/mips/linux64.h, config/pa/pa-64.h,
8717         config/rs6000/aix51.h, config/rs6000/aix52.h,
8718         config/rs6000/spe.md, config/sparc/linux.h,
8719         config/sparc/linux64.h: Update copyright.
8720
8721 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8722
8723         * config/h8300/h8300.md: Move push patterns into one
8724         section of the file.
8725
8726 2004-02-18  Mark Mitchell <mark@codesourcery.com>
8727
8728         PR c++/11326
8729         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
8730         fntype.
8731
8732 2004-02-18  Paul Brook  <paul@codesourcery.com>
8733
8734         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
8735
8736 2004-02-18  Paul Brook  <paul@codesourcery.com>
8737
8738         PR debug/12934
8739         * dwarf2out.c (loc_descriptor_from_tree): Handle
8740         EXPR_WITH_FILE_LOCATION.
8741
8742 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
8743
8744         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
8745         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
8746         trailing whitespace from instructions.
8747
8748 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
8749
8750         * configure.ac: When generating auto-build.h, pass
8751         --enable-languages to the sub-configure.
8752         Put quotes around ${program_transform_name} when generating
8753         name of as, ld, nm, objdump.
8754         * configure: Regenerate.
8755
8756 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
8757
8758         * Makefile.in (s-check, s-config, s-conditions, s-flags)
8759         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
8760         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
8761         (s-preds, s-iov): Do not depend on move-if-change.
8762
8763 2004-02-17  James E Wilson  <wilson@specifixinc.com>
8764
8765         * caller-save.c (insert_restore): Pass mem through copy_rtx.
8766         (insert_save): Likewise.
8767
8768 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8769
8770         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
8771         warning.
8772
8773 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8774
8775         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
8776         *one_cmplsi2_h8300.
8777         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
8778
8779 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8780
8781         * config/h8300/h8300-protos.h: Update the prototype of
8782         fix_bit_operand().
8783         * config/h8300/h8300.c (fix_bit_operand): Remove the second
8784         argument "what".
8785         * config/h8300/h8300.md: Update all callers.
8786
8787 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8788
8789         * config/h8300/h8300.c (fix_bit_operand): Change the name of
8790         the last argument to "code" from "type".
8791
8792 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8793
8794         * config/h8300/h8300.c: Remove an extern declaration of
8795         rtx_equal_function_value_matters.
8796
8797 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8798
8799         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
8800         by hand.
8801         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
8802         (*iorqi3_1): Change to iorqi3_1.
8803         (*xorqi3_1): Change to xorqi3_1.
8804
8805 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8806
8807         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
8808         typos.
8809
8810 2004-02-17  Jan Hubicka  <jh@suse.cz>
8811
8812         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
8813
8814 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
8815
8816         PR optimization/14119
8817         * combine.c (try_combine): When attemting to fix unrecognized insns,
8818         don't delete SETs marked with REG_EH_REGION notes.
8819
8820 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
8821
8822         * combine.c (simplify_if_then_else): Do not replace
8823         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
8824         modes differ.
8825
8826 2004-02017  Steven Bosscher  <stevenb@suse.de>
8827
8828         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
8829         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
8830         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
8831         * ada/utils.c: Likewise.
8832         * cp/decl.c: Likewise.
8833         * f/com.c: Likewise.
8834         * java/class.c: Likewise.
8835
8836 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8837
8838         * config/h8300/h8300.md: Fix comment typos.
8839
8840 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8841
8842         * config/mips/t-iris6gld: Renamed to ...
8843         * config/mips/t-irix-gld: ... this.
8844         * config.gcc (mips-sgi-irix6*): Reflect this
8845         (mips-sgi-irix5*): Use it with GNU ld.
8846
8847         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
8848         to ...
8849         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
8850         * config/mips/t-irix-gld: Reflect this.
8851         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
8852
8853         * config/mips/iris5gld.h: New file.
8854         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
8855         Only use collect2 without gas.
8856
8857         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
8858         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
8859         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
8860         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
8861
8862         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
8863         * config/mips/iris5.h: ... here.
8864
8865         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
8866         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
8867         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
8868
8869         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
8870         using irix_startfile_spec, irix_endfile_spec.
8871
8872 2004-02-16  Gunther Nikl  <gni@gecko.de>
8873
8874         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
8875
8876 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8877
8878         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
8879         insns by hand.
8880
8881 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8882
8883         * cfghooks.c (split_edge): Speed up updating of dominators.
8884
8885 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
8886
8887         PR c++/11326
8888         * c-common.c (flag_abi_version): Remove.
8889         * c-common.h (flag_abi_version): Likewise.
8890         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
8891         * c.opt (fabi-version): Remove.
8892         * calls.c (expand_call): Always pass a function type to
8893         struct_value_rtx.  Use convert_memory_address.
8894         * common.opt (fabi-version): Add it.
8895         * flags.h (flag_abi_version): Likewise.
8896         (abi_version_at_least): New macro.
8897         * opts.c (common_handle_option): Add OPT_fabi_version.
8898         * toplev.c (flag_abi_version): Define it.
8899         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
8900         New function.
8901         (ia64_output_mi_thunk): Use it.
8902         (ia64_struct_value_rtx): Likewise.
8903
8904 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8905
8906         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
8907         Don't generate insns by hand.
8908
8909 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
8910
8911         PR c++/14178
8912         * doc/invoke.texi (fabi-version): The default is 2 now.
8913
8914 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8915
8916         * loop-iv.c: New file.
8917         * Makefile.in (loop-iv.o): New.
8918         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
8919         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
8920         num_loop_branches): New functions.
8921         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
8922         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
8923         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
8924         get_simple_loop_desc, free_simple_loop_desc): Declare.
8925         (simple_loop_desc): New inline function.
8926         (struct rtx_iv, struct niter_desc): New.
8927         * cfgloopmanip.c (loopify): Specify semantics more precisely.
8928         * expr.c (force_operand): Handle subregs of expressions created by
8929         loop unroller.
8930         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
8931         parts of the initialization to toplev.c
8932         * loop-unroll.c (loop_exit_at_end_p): New.
8933         (unroll_and_peel_loops): Call iv_analysis_done.
8934         (decide_peel_once_rolling, decide_peel_completely,
8935         decide_unroll_stupid, decide_unroll_constant_iterations,
8936         decide_unroll_runtime_iterations, decide_peel_simple,
8937         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
8938         unroll_loop_runtime_iterations): Use new simple loop analysis.
8939         * loop-unswitch.c (compare_and_jump_seq): New.
8940         (may_unswitch_on_p): Renamed to ...
8941         (may_unswitch_on): Use new iv analysis.
8942         (reversed_condition): Export.
8943         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
8944         * predict.c (estimate_probability): Use new simple loop analysis.
8945         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
8946         canon_condition, simplify_using_condition): Declare.
8947         * stor-layout.c (get_mode_bounds): New.
8948         * toplev.c (rest_of_handle_loop2): Some parts of
8949         initialization/finalization moved here from loop-init.c.
8950
8951 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8952
8953         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
8954         pointer.
8955         (CALL_USED_REGISTERS): Likewise.
8956         (REG_ALLOC_ORDER): Likewise.
8957         (REG_CLASS) <GENERAL_REGS>: Likewise.
8958
8959 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
8960
8961         * doc/md.texi (Insn Canonicalizations): Document left-chaining
8962         in associative operators.
8963         * rtlanal.c (commutative_operand_precedence): Create some new
8964         variables.  Prefer a commutative operand on the left, then
8965         binary expressions, then NEG and NOT.
8966
8967 2004-02-16  Matthias Klose  <doko@debian.org>
8968
8969         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
8970         in terms of SHLIB_SOVERSION.
8971         * config/m68k/t-slibgcc-elf-ver: New file.
8972         * config/pa/t-slibgcc-elf-ver: New file.
8973         * config.gcc (m68k-linux, parisc-linux): Use them when not
8974         sjlj exceptions are not configured.
8975
8976 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
8977
8978         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
8979
8980 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
8981
8982         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
8983
8984 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
8985
8986         * doc/sourcebuild.texi: Mention backends.html.
8987
8988 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
8989
8990         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
8991         line-map.c, line-map.h, var-tracking.c: Fix comment
8992         formatting.
8993
8994 2004-02-16  Richard Henderson  <rth@redhat.com>
8995
8996         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
8997
8998         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
8999
9000 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
9001
9002         * config/h8300/h8300.md: Remove unnecessary parallels from
9003         all define_insn and define_split patterns.
9004
9005 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
9006
9007         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
9008         "clobber").
9009
9010 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
9011
9012         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
9013         '%#'.
9014
9015 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
9016
9017         * config/ia64/ia64.c, config/mips/mips.c,
9018         config/mmix/mmix-modes.def: Fix comment typos.
9019
9020 2004-02-15  Roger Sayle  <roger@eyesopen.com>
9021
9022         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
9023         (get_directive_line): Remove unused function prototype.
9024
9025 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
9026
9027         * tree-inline.c (copy_body_r): Do not replace ret_label.
9028
9029 2004-02-14  Jan Hubicka  <jh@suse.cz>
9030
9031         * i386.c (x86_four_jump_limit): New variable.
9032         (k8_avoid_jump_misspredicts): Rename to ...
9033         (ix86_avoid_jump_misspredicts): .. this one.
9034         (ix86_pad_returns): Break out from ...
9035         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
9036         to.
9037         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
9038
9039 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
9040
9041         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
9042         PARALLEL is NULL.
9043
9044 2004-02-14  Per Bothner  <per@bothner.com>
9045
9046         * fix-header.c (line_table):  Move local variable in main to global.
9047         * scan.h (line_table):  Use it.
9048         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
9049         line (recently renamed to src_loc) before calling recognized_function.
9050
9051 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
9052
9053         * Makefile.in: Fix comment typos.
9054
9055 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
9056
9057         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
9058         for start_value when it is directly moved into reg, and factorize
9059         the retrieval of GET_MODE (reg).
9060
9061 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
9062
9063         * config/mips/mips-protos.h (mips_load_got_page): Delete.
9064         (mips_load_got_global): Delete.
9065         (mips_gotoff_page): Declare.
9066         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
9067         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
9068         UNSPEC_LOAD_GOT pattern rather than a MEM.
9069         (*load_got[sd]i): New patterns.
9070         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
9071         (mips_load_got_page, mips_load_got_global): Delete.
9072         (mips_gotoff_page): New function.
9073         (override_options): Don't initialize mips_got_alias_set.
9074
9075 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
9076
9077         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
9078         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
9079         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
9080         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
9081         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
9082         * config/mips/mips.c: Fix some overly-long lines.
9083         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
9084         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
9085
9086 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9087
9088         * configure.ac: Search for as, ld below libexec/gcc.
9089         * configure: Regenerate.
9090
9091 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
9092
9093         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
9094         __builtin_arm_setwcx ().
9095         * config/arm/arm.c (arm_expand_builtin): Generate operands
9096         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
9097
9098 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
9099
9100         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
9101         and "wmuluh" to "wmulsm" and "wmulum", respectively.
9102         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
9103         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
9104         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
9105         (_mm_mulhi_pu16): Likewise.
9106
9107 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
9108
9109         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
9110         DECL_NAME != 0 before dereferencing.
9111
9112 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
9113
9114         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
9115         (s390_output_addr_const_extra): Declare.
9116         (s390_output_pool_entry): Remove FILE * argument.
9117         * config/s390/s390.c (s390_output_symbolic_const): Remove.
9118         (s390_output_addr_const_extra): New function.
9119         (print_operand_address): Call output_addr_const instead of
9120         s390_output_symbolic_const.
9121         (print_operand): Likewise.
9122         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
9123         Remove FILE * argument.
9124         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
9125         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
9126         call.
9127
9128 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9129
9130         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
9131         (struct edge, struct vertex, struct graph): New.
9132         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
9133         free_graph): New functions.
9134
9135 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
9136
9137         * config/mips/mips.md (casesi_internal, casesi_internal_di):
9138         Use ".set macro" to avoid warnings about multi-instruction
9139         macros, since they're intentional.
9140
9141 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
9142
9143         * config/darwin.h: Add include guards.  Remove old, now incorrect,
9144         comment about STANDARD_EXEC_PREFIX.
9145
9146         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
9147         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
9148         for installing .1 manpages.  Add rules for installing cpp
9149         and gcov manpages under their installed names.
9150
9151 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
9152
9153         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
9154         host, but try LD_FOR_TARGET first.
9155         * configure: Rebuilt.
9156
9157 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9158
9159         * dbxout.c: Move declaration of dbxout_type_decl outside
9160         #ifdef DBX_DEBUGGING_INFO.
9161         * c-parse.in: Don't give the asmdef production a type.
9162
9163 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9164
9165         * debug.h (struct gcc_debug_hooks): Add type_decl field.
9166         (debug_nothing_tree_int): Prototype.
9167         (dwarf_debug_hooks): Delete, unused.
9168         * debug.c (do_nothing_debug_hooks): Update.
9169         (debug_nothing_tree_int): New function.
9170         * langhooks.h (struct lang_hooks_for_decls):
9171         Remove builtin_type_decls field.
9172         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
9173         (LANG_HOOKS_DECLS): Update.
9174         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
9175         Use debug_hooks->type_decl.
9176         * dbxout.c (preinit_symbols): New static.
9177         (dbx_debug_hooks, xcoff_debug_hooks): Update.
9178         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
9179         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
9180         for symbols to output.
9181         (dbxout_type_decl): New function.
9182         (dbxout_symbol): If called before dbxout_init has run, queue
9183         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
9184         to TYPE_DECLs before emitting them.
9185         * xcoffout.c (assign_type_number): Delete.
9186         (xcoff_type_numbers): New static table.
9187         (xcoff_assign_fundamental_type_number): New function.
9188         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
9189         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
9190         * sdbout.c: Include varray.h.
9191         (deferred_global_decls): New static.
9192         (sdb_debug_hooks): Update.
9193         (sdbout_global_decl): If we can't emit something right now,
9194         remember it in deferred_global_decls.
9195         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
9196         (sdbout_init): Initialize deferred_global_decls.
9197         * Makefile.in: Update dependencies of sdbout.o.
9198         * dwarf2out.c (dwarf2out_type_decl): New function.
9199         (dwarf2_debug_hooks): Update.
9200         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
9201         * c-decl.c (getdecls): Just return 0.
9202         (check_for_loop_decls): Don't use getdecls.
9203         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
9204         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
9205
9206 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
9207
9208         * config/s390/s390.c (s390_sched_reorder2): Remove.
9209         (TARGET_SCHED_REORDER2): Do not redefine.
9210
9211 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
9212
9213         * c-parse.in (maybe_type_qual): Delete.
9214         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
9215         (asm_argument): New grammar rules.
9216         (extdef_1): Use asmdef.
9217         (maybeasm): Move down with other asm rules; use simple_asm_expr.
9218         (xexpr): Move up with other expression rules.
9219         (stmt): Use asm_stmt.
9220
9221         * c-typeck.c (build_asm_expr): New function - body mostly
9222         pulled from build_asm_stmt.
9223         (build_asm_stmt): Just handle tacking on the volatile qualifier.
9224         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
9225
9226 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
9227
9228         PR bootstrap/13617
9229         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
9230         (mips_declare_object): Make variadic.
9231         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
9232         mips_output_aligned_decl_common.
9233         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
9234         (mips_declare_object): Make variadic.
9235
9236 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9237
9238         * function.c (update_epilogue_consts): Teach about binary operations.
9239
9240         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
9241         previous MEM_VOLATILE in REF.
9242         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
9243         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
9244
9245 2004-02-12  Gunther Nikl  <gni@gecko.de>
9246
9247         * config.gcc: Restore support for m68k-openbsd.
9248
9249 2004-02-12  Jan Hubicka  <jh@suse.cz>
9250
9251         * tree-optimize.c (tree_rest_of_compilation): Do not release
9252         DECL_ARGUMENTS.
9253
9254 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
9255
9256         * doc/install.texi: Fix the spelling of "explicitly".
9257
9258 2004-02-11  Eric Christopher  <echristo@redhat.com>
9259
9260         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
9261         duplicate argument structure of cpp_interpret_string.
9262         * cpphash.h: Move prototype...
9263         * cpplib.h: Here.
9264         * cpplib.c: Fix calls to match new function signature.
9265
9266 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
9267
9268         PR c/456
9269         * cppexp.c (num_binary_op): Don't allow comma operators in #if
9270         constant expressions at all outside C99 mode if pedantic.
9271
9272 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
9273
9274         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
9275         (log10_optab, log2_optab): Define corresponding macros.
9276         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
9277         * genopinit.c (optabs): Implement log10_optab and log2_optab
9278         using log10?f2 and log2?f2 patterns.
9279         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
9280         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
9281         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
9282         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
9283
9284         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
9285         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
9286         log2, log2f and log2l built-ins as inline x87 intrinsics.
9287
9288 2004-02-11  Richard Henderson  <rth@redhat.com>
9289
9290         PR target/1532
9291         * flow.c (insn_dead_p): A clobber of a dead hard register is a
9292         dead insn after reload.
9293
9294 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
9295
9296         * tree.h (frame_base_decl): Add GTY marker.
9297         * var-tracking.c (frame_base_decl): Likewise.
9298
9299 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
9300
9301         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
9302         incorrect, hunk.
9303         (add_location_or_const_value_attribute): Use text_section_label,
9304         not TEXT_SECTION_NAME.
9305
9306 2004-02-11  Per Bothner  <per@bothner.com>
9307
9308         Represent column numbers using line-map's source_location.
9309         The "next available source_location" is now managed internally by
9310         line-maps.c rather than by clients.
9311         * line-map.h (struct line_map):  New field column_bits.
9312         <from_line>:  Rename field to start_location.
9313         (struct line_maps):  New fields highest_location and max_column_hint.
9314         (linemap_check_files_exited):  New declaration.
9315         (linemap_line_start):  New declaration.
9316         (linemap_add):  Remove from_line parameter; use highest_location field.
9317         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
9318         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
9319         (CURRENT_LINE_MAP):  Remove macro.
9320         (linemap_position_for_column):  New inline function.
9321         * line-map.c (linemap_init):  Clear new fields.
9322         (linemap_check_files_exited):  New function, extracted from ...
9323         (linemap_free):  Use linemap_check_files_exited.
9324         (linemap_add):  Remove from_line parameter.  Various updates.
9325         (linemap_line_start):  New function.
9326         (linemap_lookeup):  Update for new field names.
9327         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
9328         linemap_position_for_column may unpredictably change the current map,
9329         it is cleaner and simpler for us to not cache it in cpp_reader.
9330         (struct cpp_buffer):  New sysp field.
9331         Changed warned_cplusplus_comments and from_stage3 to bitfields.
9332         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
9333         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
9334         current map using linemap_lookup.
9335         (do_linemarker):  Also set buffer's sysp field.
9336         (destringize_and_run):  No longer need to decrement current line.
9337         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
9338         (search_path_head, open_file_failed):  Use buffer's sysp.
9339         (cpp_make_system_header):  Get current map using linemap_lookup.
9340         Also set buffer's sysp flag.
9341         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
9342         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
9343         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
9344         (struct cpp_reader):  ... and adding saved_line_base field.
9345         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
9346         Update accordingly.  Don't adjust line.
9347         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
9348         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
9349         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
9350         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
9351         * cpplex.c (_cpp_lex_direct):  Likewise.
9352         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
9353         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
9354         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
9355         Remove col field as it is now subsumed by src_loc.
9356         * cpperror.c:  Update various field, parameter, and macro names.
9357         (print_location):  If col==0, try SOURCE_COLUMN of line.
9358         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
9359         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
9360         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
9361         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
9362         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
9363         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
9364         (_cpp_lex_direct):  Use linemap_position_for_column.
9365         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
9366         parameter.  Instead get it from the line_table global.  Adjust callers.
9367         (print):  Remove map field.  Replace line field to src_line.
9368         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
9369         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
9370         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
9371         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
9372         * cpptrad.c (copy_comment):  Rename variable.
9373         * c-lex.c (map):  Remove static variable, for same reason we removed
9374         cpp_reader's map field.
9375         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
9376         to call linemap_lookup.
9377         (cb_line_change):  Token's line field replaced by src_loc.
9378         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
9379         Don't save new_map.
9380
9381         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
9382         source_location.
9383
9384 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9385
9386         * config/rs6000/altivec.md (*movv4si_internal): At least one
9387         operand must be register_operand.
9388         (*movv8hi_internal1): Likewise.
9389         (*movv16qi_internal1): Likewise.
9390         (*movv4sf_internal1): Likewise.
9391
9392 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
9393
9394         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
9395         operand.
9396         (movv4hi_internal): Same.
9397         (movv2sf_internal): Same.
9398         (movv1di_internal): Same.
9399
9400 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
9401
9402         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
9403         TARGET_OLDABI consistently.
9404         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
9405         mips_va_arg,override_options,compute_frame_size,
9406         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
9407         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
9408         and TARGET_OLDABI consistently.
9409         * config/mips/mips.md (exception_receiver): Likewise.
9410         * config/mips/linux64.h: Likewise.
9411
9412 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
9413
9414         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
9415         Set AltiVec ABI and vrsave as default for ppc64 linux.
9416         (init_cumulative_args): Post error, if try to return
9417         value in AltiVec register without enable AltiVec.
9418         (function_arg_advance): Ditto for passing arguments.
9419
9420 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
9421
9422         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
9423         a label before updating its usage count.
9424
9425 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
9426
9427         * doc/install.texi: Remove extra cd.
9428
9429 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
9430
9431         * c-common.c (vector_size_helper): Remove; call
9432         reconstruct_complex_type() instead.
9433         * tree.c (reconstruct_complex_type): New function
9434         (formerly vector_size_helper() in c-common.c).
9435         (make_vector): Make externally visible.
9436         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
9437
9438 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9439
9440         * config/h8300/h8300-protos.h: Add a prototype for
9441         h8300_regs_ok_for_stm.
9442         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
9443         * config/h8300/h8300.md (stm_h8300s_2_advanced,
9444         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
9445         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
9446         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
9447         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
9448         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
9449         ldm_h8300s_4_normal, ldm_h8300s_4): Use
9450         h8300_regs_ok_for_stm().
9451
9452 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9453
9454         PR c/14088
9455         * real.c (real_from_string): Look for 'X' as well as 'x' in
9456         hexfloat strings.
9457
9458 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9459
9460         * config/h8300/h8300.md: Remove an incorrect comment about
9461         peephole2.  Add comments.
9462
9463 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
9464
9465         PR/14058
9466         * emit-rtl.c (set_decl_incoming_rtl): New.
9467         * tree.h (set_decl_incoming_rtl): New.
9468         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
9469         DECL_INCOMING_RTL.
9470         * ada/misc.c (adjust_decl_rtl): Likewise.
9471
9472 2004-02-10  Per Bothner  <per@bothner.com>
9473
9474         * c-opts.c (c_common_post_options):   Don't emit working directory
9475         in cpp output if -P was specified.
9476
9477 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9478
9479         PR c/14092
9480         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
9481         negate_expr back to the original type.
9482
9483 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
9484
9485         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
9486         bump retaddr here.
9487
9488 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
9489
9490         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
9491         gen_lowpart_SUBREG): Move under the file in which they
9492         are actually declared.
9493
9494 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
9495
9496         * doc/sourcebuild.texi: Add libada documentation.
9497
9498         * doc/install.texi: Update documentation on Ada build, now
9499         that the GNAT lib and tools are built automatically.
9500
9501 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
9502
9503         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
9504         && TARGET_IRIX.
9505
9506 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
9507
9508         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
9509         boundaries outside build_component_ref() call (a macro in ObjC++).
9510
9511 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
9512
9513         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
9514         (init_cumulative_args): Likewise.
9515         (a7_overlap_mentioned_p): Delete prototype.
9516         * config/xtensa/xtensa.c (struct machine_function): Replace
9517         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
9518         Add set_frame_ptr_insn field.
9519         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
9520         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
9521         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
9522         at the function entry and replace the operand with the pseudo.
9523         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
9524         argument and record this flag in CUMULATIVE_ARGS.
9525         (function_arg): Remove result_mode and special-case code to handle
9526         arguments in a7.  Instead, set need_a7_copy flag when there is an
9527         incoming argument in a7.
9528         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
9529         and use the value recorded in cfun->machine->set_frame_ptr_insn.
9530         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
9531         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
9532         special-case code.
9533         (a7_overlap_mentioned_p): Delete.
9534         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
9535         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
9536         arguments to init_cumulative_args and pass "incoming" flag instead.
9537         (BLOCK_REG_PADDING): Delete.
9538         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
9539         checks for reload_in_progress and reload_completed.  Update calls to
9540         xtensa_copy_incoming_a7.
9541         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
9542         to call xtensa_copy_incoming_a7.
9543
9544 2004-02-09  DJ Delorie  <dj@redhat.com>
9545
9546         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
9547         longer modify standard_exec_prefix, standard_bindir_prefix, or
9548         standard_startfile_prefix.
9549
9550 2004-02-09  James E Wilson  <wilson@specifixinc.com>
9551
9552         PR c++/11295
9553         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
9554         to expand_expr_real call, and pass in alt_rtl as last argument.
9555
9556         PR libstdc++/5625
9557         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
9558         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
9559         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
9560         * except.c (expand_builtin_extend_pointer): New.
9561         * except.h (expand_builtin_extend_pointer): Declare.
9562
9563 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
9564
9565         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
9566         unaligned loads and stores.
9567
9568 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9569
9570         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
9571         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
9572
9573         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
9574         * config/mips/iris5.h: ... here.
9575         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
9576
9577         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
9578         * config/mips/iris5.h: ... here.
9579
9580 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9581
9582         * configure.ac: Remove default executable files before AC_PROG_CC.
9583         * configure: Regenerate.
9584
9585 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
9586
9587         PR target/13721
9588         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
9589         print a operand other than a register.
9590
9591 2004-02-09  Roger Sayle  <roger@eyesopen.com>
9592
9593         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
9594         tree code rather than call fold_convert, which doesn't specify a
9595         default floating point to integer conversion.
9596
9597 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
9598
9599         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
9600         code to support SGS assembler.  Reformat adjacent code where possible.
9601         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
9602         definition.
9603         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
9604         for '%#'.
9605         * config/m68k/linux.h, config/m68k/m68k.c,
9606         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
9607         macros and asm_printf() format strings.
9608         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
9609         * config/m68k/linux.h: Update copyright.
9610         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
9611
9612 2004-02-08  Andreas Schwab  <schwab@suse.de>
9613             Bernardo Innocenti  <bernie@develer.com>
9614
9615         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
9616         REGISTER_PREFIX.
9617         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
9618         frame pointer register, overridable by OS targets.
9619         * (M68K_REGNAME): Macro to obtain register name for asm output,
9620         eventually replacing %a6 with M68K_FP_REG_NAME.
9621         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
9622         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
9623         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
9624         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
9625         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
9626
9627 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9628
9629         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
9630         hook_rtx_tree_int_null.
9631         * targhooks.c (default_struct_value_rtx): Remove.
9632         * targhooks.h: Remove the prototype for
9633         default_struct_value_rtx.
9634         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
9635         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
9636         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
9637         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
9638         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
9639         config/rs6000/rs6000.c, config/s390/s390.c,
9640         config/stormy16/stormy16.c, config/v850/v850.c,
9641         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
9642         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
9643
9644 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
9645
9646         * README.Portability: Change "ISO C89" to "ISO C90".
9647         * c-parse.in (primary, initelt): Likewise.
9648
9649 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
9650
9651         * real.c (encode_ibm_extended): Normalize the input value before
9652         converting it to a double.  Handle the case where a normal value
9653         rounds to infinity.
9654
9655 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9656
9657         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
9658         warning.
9659         * cse.c (preferrable): Change to preferable. Update all of its
9660         callers.
9661         * genautomata.c (ainsn): Change
9662         first_ainsn_with_given_equialence_num to
9663         first_ainsn_with_given_equivalence_num.  Update all of its
9664         references.
9665
9666 2004-02-08  Jan Hubicka  <jh@suse.cz>
9667
9668         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
9669
9670 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
9671
9672         * function.c (assign_parms): Fix formatting.
9673
9674 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9675
9676         * default.h (PROMOTE_PROTOTYPES): Remove.
9677         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
9678         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
9679         EXPAND_BUILTIN_SAVEREGS): Poison.
9680         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
9681         hook_bool_tree_false.
9682         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9683         * target.h: Replace SETUP_INCOMING_VARARGS with
9684         targetm.calls.setup_incoming_varargs().
9685         * targhooks.c (default_promote_function_return): Remove.
9686         (default_promote_prototypes): Likewise.
9687         (default_struct_value_rtx): Always abort().
9688         (default_expand_builtin_saveregs): Always print an error
9689         message.
9690         (default_setup_incoming_varargs): Do nothing.
9691         (default_pretend_outgoing_varargs_named): Don't depend on
9692         SETUP_INCOMING_VARARGS.
9693         * targhooks.h: Remove the prototype for
9694         default_promote_function_return and
9695         default_promote_prototypes.
9696
9697 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9698
9699         * system.h (SHARED_SECTION_ASM_OP): Poison.
9700         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
9701         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
9702
9703 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
9704
9705         Bug 13856
9706         * c-decl.c (diagnose_mismatched_decls): Only give special
9707         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
9708         is also true.
9709         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
9710         DECL_FUNCTION_CODE when defining a built-in function.
9711         Don't update DECL_ESTIMATED_INSNS.
9712         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
9713         FUNCTION_DECLs.
9714         * tree.h: Delete DECL_ESTIMATED_INSNS.
9715         * tree-inline.c (struct inline_data): Delete inlined_insns field.
9716         (expand_call_inline, optimize_inline_calls): Don't update
9717         DECL_ESTIMATED_INSNS nor inlined_insns.
9718         * cgraphunit.c (cgraph_analyze_function): Don't update
9719         DECL_ESTIMATED_INSNS.
9720
9721 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
9722
9723         * c-common.c (shadow_warning): Delete.
9724         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
9725         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
9726         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
9727         * c-parse.in (free_parser_stacks): Delete.
9728
9729 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
9730
9731         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
9732         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
9733         Use the top level mkinstalldirs, not the one in the gcc subdir.
9734         * mkinstalldirs: Remove (from the gcc subdir).
9735
9736 2004-02-07  Roger Sayle  <roger@eyesopen.com>
9737
9738         PR middle-end/13696
9739         * fold-const.c (fold_convert): New function to provide type
9740         conversion to the middle-end without using convert.
9741         (negate_expr, associate_trees, size_diffop, omit_one_operand,
9742         operand_equal_for_comparison_p, pedantic_omit_one_operand,
9743         invert_truthvalue, optimize_bit_field_compare, range_binop,
9744         decode_field_reference, make_range, build_range_check, unextend,
9745         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
9746         fold_binary_op_with_conditional_arg, fold_inf_compare,
9747         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
9748         convert with calls to fold_convert.
9749
9750 2004-02-07  Jan Hubicka  <jh@suse.cz>
9751
9752         * genrecog.c (find_operand): add extra argument stop.
9753         (validate_pattern): Verify that mach_dup is duplicating operand
9754         defined lexically earlier.
9755
9756 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9757
9758         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
9759         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
9760         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
9761         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
9762         config/ia64/ia64.h, config/ip2k/ip2k.h,
9763         config/iq2000/iq2000.h, config/mips/iris5.h,
9764         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
9765         config/rs6000/aix51.h, config/rs6000/aix52.h,
9766         config/rs6000/darwin.h, config/rs6000/rs6000.h,
9767         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
9768         config/sparc/linux.h, config/sparc/linux64.h,
9769         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
9770         config/xtensa/xtensa.h: Remove the definitions of
9771         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
9772         MAX_WCHAR_TYPE_SIZE.
9773         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
9774         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
9775
9776 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
9777
9778         PR bootstrap/13990
9779         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
9780         gen_rtx_NE.
9781
9782 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
9783
9784         * var-tracking.c (vt_add_function_parameters): Surround checkings by
9785         #ifdef ENABLE_CHECKING and #endif.
9786
9787 2004-02-07  Roger Sayle  <roger@eyesopen.com>
9788
9789         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
9790         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
9791         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
9792         integer types and floating point with unsafe_math_optimizations.
9793         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
9794         Optimize A - B as A + (-B), if B is easily negated.
9795
9796 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9797
9798         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
9799         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
9800         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
9801         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
9802         Update copyright.
9803
9804 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
9805
9806         * c-ppoutput.c, var-tracking.c: Fix comment typos.
9807
9808 2004-02-06  James E Wilson  <wilson@specifixinc.com>
9809
9810         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
9811         glibc 2.3 or better.
9812
9813 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9814
9815         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
9816         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
9817
9818 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
9819
9820         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
9821         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
9822         (SHLIB_MKMAP_OPTS): Delete.
9823         (TARGET_LIBGCC2_CFLAGS): Add -specs.
9824         (bispecs): Add rule.
9825         * config/rs6000/libgcc-ppc64.ver: New file.
9826         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
9827         (__floatdidf, __floatdisf): Optimize multiply.
9828         (__fixunstfdi): New function.
9829         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
9830         real and imag parts larger than one register.
9831         (function_arg): Correct type of reg used when fp arg split partially
9832         to stack.
9833         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
9834         and __MACH__ or __powerpc64__.
9835
9836 2004-02-06  Roger Sayle  <roger@eyesopen.com>
9837             Ulrich Weigand  <uweigand@de.ibm.com>
9838
9839         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
9840         of gen_highpart or gen_lowpart when the floating point format is
9841         wider than the result mode.
9842
9843 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
9844
9845         * dwarf2out.c (loclabel_num): Move into #ifdef
9846         DWARF2_DEBUGGING_INFO.
9847
9848 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
9849
9850         * objc/objc-act.c (build_super_template) the 'class' field of
9851         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
9852         (get_super_receiver): Likewise.
9853
9854 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9855
9856         * reload1.c (check_eliminable_occurrences): Optimize the reset
9857         of can_eliminate.
9858         (eliminate_regs_in_insn): Likewise.
9859
9860 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
9861             Josef Zlomek  <zlomekj@suse.cz>
9862
9863         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
9864         at the beginning of function, call dwarf2out_var_location for
9865         NOTE_INSN_VAR_LOCATION note.
9866         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
9867         decl_loc_table): New.
9868         (lookup_decl_loc): New function.
9869         (add_var_loc_to_decl): New function.
9870         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
9871         only if can_use_fbreg.
9872         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
9873         functions.
9874         (loc_descriptor): Likewise. Process VAR_LOCATION.
9875         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
9876         (loc_descriptor_from_tree): Call mem_loc_descriptor with
9877         can_use_fbreg == true.
9878         (add_location_or_const_value_attribute): Added parameter enum
9879         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
9880         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
9881         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
9882         with attr == DW_AT_location.
9883         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
9884         if frame_base_decl is defined and has a location list.
9885         (gen_variable_die): Call add_location_or_const_value_attribute with
9886         attr == DW_AT_location.
9887         (dwarf2out_var_location): New function.
9888         (dwarf2out_begin_function): New function.
9889         (dwarf2out_init): Create decl_loc_table.
9890
9891 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9892
9893         * loop.c (force_movables): Transitively increase the priorities of
9894         all insns forces by an insn, not just the first one.
9895
9896 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
9897             Daniel Berlin <dberlin@dberlin.org>
9898
9899         Josef Zlomek  <zlomekj@suse.cz>
9900         * Makefile.in (var-tracking.o): New.
9901         * common.opt (fvar-tracking): New.
9902         * flags.h (flag_var_tracking): New.
9903         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
9904         * opts.c (common_handle_option): Add OPT_fvar_tracking.
9905         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
9906         * rtl.c (note_insn_name): Likewise.
9907         * rtl.def (VAR_LOCATION): New.
9908         * rtl.h (NOTE_VAR_LOCATION): New.
9909         (NOTE_VAR_LOCATION_DECL): New.
9910         (NOTE_VAR_LOCATION_LOC): New.
9911         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
9912         (variable_tracking_main): New exported function.
9913         * timevar.def (TV_VAR_TRACKING): New.
9914         * toplev.c (enum dump_file_index): Added DFI_vartrack.
9915         (dump_file): "vartrack" was added (-dV).
9916         (flag_var_tracking): New.
9917         (f_options): "var-tracking" was added.
9918         (rest_of_handle_variable_tracking): New function.
9919         (rest_of_compilation): Run variable tracking.
9920         (process_options): If user has not specified flag_var_tracking set it
9921         according to optimize, debug_info_level and debug_hooks.
9922         * tree.h (frame_base_decl): New.
9923         * var-tracking.c: New file.
9924         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
9925         (ia64_override_options): Set flags to run variable tracking in machine
9926         dependent reorg instead of toplev.c.
9927         (ia64_reorg): Run variable tracking if wanted.
9928         * doc/invoke.texi: Mention variable tracking in -dV,
9929         add and -fvar-tracking.
9930         * doc/passes.texi: Added variable tracking pass.
9931
9932         Daniel Berlin <dberlin@dberlin.org>
9933         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
9934         * dbxout.c (dbx_debug_hooks): Likewise.
9935         (xcoff_debug): Likewise.
9936         * debug.c (do_nothing_debug_hooks): Likewise.
9937         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
9938         * dwarfout.c (dwarf_debug_hooks): Likewise.
9939         * sdbout.c (sdb_debug_hooks): Likewise.
9940         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9941         * final.c (final_scan_insn): Call var_location debug hook for each
9942         NOTE_INSN_VAR_LOCATION.
9943
9944 2004-02-06  Jan Hubicka  <jh@suse.cz>
9945
9946         * flow.c (update_life_info): Allocate reg_deaths when called from
9947         scheudler.
9948         (attempt_auto_inc):  Update life ranges accordingly.
9949
9950 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9951
9952         PR debug/11816
9953         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
9954
9955 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
9956
9957         * cfganal.c (flow_call_edges_add): Never split a libcall block.
9958
9959 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
9960
9961         * dwarf2out.c (output_loc_list): Don't use deltas if we have
9962         a separate line info table in use.
9963         Use the correct size for terminators.
9964         (output_die): Use offset, not delta.
9965
9966 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
9967
9968         * doc/invoke.texi: Remove the pni option from -mfpmath=.
9969
9970 2004-02-06  Jan Hubicka  <jh@suse.cz>
9971
9972         * recog.c (split_all_insns): Do not update reg info.
9973         * regrename.c (regrename_optimize): Likewise.
9974         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
9975         * flow.c (struct propagate_block_info): Add insn_num field.
9976         (reg_deaths): New array.
9977         (life_analysis): Free reg_deaths info.
9978         (allocate_reg_life_data): Allocate reg_deaths array.
9979         (propagate_one_insn): Use new array.
9980         (init_propagate_block): Initialize it.
9981         (free_propagate_block_info): Finish compuation of
9982         REG_LIVE_LENGTH
9983         (attempt_auto_inc): Sanity check that REG_INFO is not
9984         computed at same time.
9985         (mark_used_regs): Update new array.
9986
9987         * reg-stack.c (subst_stack_regs): Unshare clobbers before
9988         substitution.
9989
9990 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
9991
9992         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
9993         *extendqisi2_short_displ.
9994
9995 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
9996
9997         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
9998         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
9999         (emit_library_call_value_1): Likewise pass nargs.
10000         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
10001         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
10002         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
10003         parameter instead of scanning TYPE_ARGS_TYPES to count args.
10004         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
10005         prototype.
10006         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
10007         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
10008         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
10009         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
10010         INIT_CUMULATIVE_ARGS.
10011         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
10012         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
10013         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
10014         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
10015         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10016         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
10017         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
10018         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
10019         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
10020         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
10021         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
10022         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
10023
10024 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10025
10026         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
10027         possible.
10028
10029 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10030
10031         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
10032         note containing (plus (reg) (const_int)), where reg is an
10033         eliminable reg, then perform the register elimination without
10034         depending on eliminate_regs().
10035
10036 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10037
10038         * config/arc/arc.c (arc_return_in_memory): Check the return
10039         value of int_size_in_bytes against -1.  Don't check
10040         TREE_ADDRESSABLE.
10041         * config/avr/avr.c (avr_return_in_memory): Check the return
10042         value of int_size_in_bytes against -1.
10043         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
10044         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
10045         Likewise.
10046         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
10047         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
10048         Likewise.
10049
10050 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10051
10052         * config/frv/frv-protos.h: Remove the prototype for
10053         frv_setup_incoming_varargs.
10054         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
10055         (frv_setup_incoming_varargs): Make it static.
10056         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
10057
10058 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10059
10060         * config/fr30/fr30-protos.h: Remove the prototype for
10061         fr30_setup_incoming_varargs.
10062         Update the prototypes for fr30_num_arg_regs and
10063         fr30_function_arg_partial_nregs.
10064         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
10065         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10066         (fr30_setup_incoming_varargs): Make it static.
10067         Add argument second_time.  Don't do anything when second_time
10068         is nonzero.
10069         (fr30_num_arg_regs): Change the type of the first argument to
10070         enum machine_mode.
10071         (fr30_function_arg_partial_nregs): Change the type of the
10072         second argument to enum machine_mode.
10073         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
10074         (SETUP_INCOMING_VARARGS): Remove.
10075
10076 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
10077
10078         * config/arc/arc-protos.h: Remove the prototype for
10079         arc_setup_incoming_varargs.
10080         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
10081         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10082         (arc_setup_incoming_varargs): Make it static.
10083         (arc_external_libcall): Likewise.
10084         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
10085         Remove the commented-out definition of
10086         ASM_OUTPUT_EXTERNAL_LIBCALL.
10087
10088 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
10089
10090         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
10091         to $$(slibdir) in the installation commands.
10092
10093 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
10094
10095         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
10096         with inner_regno, not regno.
10097         * rtlanal.c (refers_to_regno_p): Same.
10098
10099 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10100
10101         * config.gcc: Remove i370 support.
10102
10103 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10104
10105         * doc/install.texi:  Update automake and autoconf version
10106         requirements.  Note where to find gcj automake version.
10107
10108 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10109
10110         * Makefile.in (generate-manpages): Move dependencies to ...
10111         (man): here.
10112         * doc/makefile.texi: Document new targets.
10113         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
10114
10115 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
10116
10117         PR/13485
10118         Makefile.in (srcextra):  Add a level of indirection to ...
10119         (gcc.srcextra): ... here.
10120         (po-generated): Delete.
10121         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
10122         options.c.
10123         (start.encap): Remove superfluous lang.srcextra dependency.
10124         objc/Make-lang.in (po-generated):  Delete.
10125
10126 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10127
10128         * config/ia64/ia64.c (REG_GP): Remove.
10129
10130 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10131
10132         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
10133
10134 2004-02-05  Devang Patel  <dpatel@apple.com>
10135
10136         * dwarf2out.c (force_type_die): Look up input type itself
10137         instead of root_type() of type.
10138
10139 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
10140
10141         * config/s390/s390.md ("*tmqidi_ext"): New insn.
10142         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
10143         pre-reload splitters are transformed to post-reload
10144         define_insn_and_split patterns.
10145         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
10146
10147 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10148
10149         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
10150         TARGET_PROMOTE_PROTOTYPES.
10151
10152 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10153
10154         PR middle-end/13750
10155         Revert:
10156         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10157         PR pch/13361
10158         * c-typeck.c (constructor_asmspec): Delete.
10159         (struct initializer_stack): Delete field 'asmspec'.
10160         (start_init): Delete saving of asmspec.
10161         (finish_init): Don't update constructor_asmspec.
10162         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10163         * stmt.c (expand_asm): Duplicate strings from tree.
10164         (expand_asm_operands): Likewise.
10165         * tree.c (tree_size): Update computation of size of STRING_CST.
10166         (make_node): Don't make STRING_CST nodes.
10167         (build_string): Allocate string with tree node.
10168         * tree.def (STRING_CST): Update comment.
10169         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10170         (tree_string): Place contents of string in tree node.
10171         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10172         from tree.
10173
10174 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10175
10176         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
10177         msgid.
10178
10179 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
10180
10181         * config/rs6000/altivec.md (*movv4si_internal): At least one
10182         operand must be altivec_register_operand.
10183         (*movv8hi_internal1): Likewise.
10184         (*movv16qi_internal1): Likewise.
10185         (*movv4sf_internal1): Likewise.
10186
10187 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
10188
10189         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
10190         * configure: Regenerate.
10191
10192 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
10193
10194         * doc/install.texi: Update description of --gxx-include-dir to
10195         give correct default value.
10196
10197 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10198
10199         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
10200         8 with MAC_REG.
10201
10202 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10203
10204         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
10205         gen_rtx_PARALLEL.
10206
10207 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
10208
10209         * emit-rtl.c: Update the comment about the file.
10210
10211 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10212
10213         * sourcebuild.texi (Test Idioms): Update testcase naming
10214         conventions.
10215
10216 2004-02-04  Per Bothner  <per@bothner.com>
10217
10218         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
10219         * c-ppoutput.c (pp_dir_change):  New function.
10220         * c-common.h (pp_dir_change):  New declaration.
10221         * cpplib.h (struct cpp_options):  Remove working_directory field.
10222         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
10223         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
10224         Don't handle -fworking_directory here, but in c_common_post_options.
10225         (read_original_directory): Don't back up when done.
10226         Don't clear no-longer used working_directory flag.
10227         * cpplib.h:  Update declarations to match.
10228         * c-lex.c (cb_dir_change):  Move to c-opts.c.
10229         (init_c_lex):  Don't set dir_change callback here, since we want
10230         to set it even if flag_preprocess_only.
10231         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
10232         (c_common_post_options):  Set dir_change callback.
10233         Call pp_dir_change if approporiate.
10234         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
10235         unneeded parameter and result. Do LC_RENAME for <built-in>.
10236         (c_common_post_options):  Call cpp_read_main_file here instead.
10237         (c_common_init):  Update accordingly.
10238         (push_command_line_include):  Don't cpp_push_main_file.
10239         Do LC_RENAME rather than LC_LEASE to get back to main file.
10240         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
10241         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
10242         files, but call finish_options for all files.
10243         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
10244         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
10245         cpp_find_main_file + cpp_push_main_file.
10246         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
10247         * opts.c (handle_options):  Only set main_input_filename first time.
10248
10249 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
10250
10251         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
10252
10253 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
10254
10255         * reload.c (find_equiv_reg): When checking for register overlap,
10256         don't index hard_regno_nregs with a pseudo-reg.
10257
10258 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10259
10260         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
10261
10262 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
10263
10264         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
10265         against FIRST_PSEUDO_REGISTER.
10266
10267 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10268
10269         * Makefile.in: Move target, host overrides after per-language
10270         fragments.
10271
10272         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
10273         (GNATLIBCFLAGS): Remove -g.
10274
10275 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10276
10277         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
10278         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10279         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10280         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
10281         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
10282         config/sparc/sparc.c, config/vax/vax.c: Revert the
10283         replacements of "FALLTHRU" with "Fall through" done in the
10284         previous patch.
10285
10286 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10287
10288         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
10289         config/arm/arm.c, config/arm/arm.md,
10290         config/cris/cris-protos.h, config/fr30/fr30.c,
10291         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
10292         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
10293         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
10294         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
10295         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
10296         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
10297         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
10298         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
10299         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
10300         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
10301         config/s390/s390.md, config/sparc/netbsd-elf.h,
10302         config/sparc/openbsd.h, config/sparc/sparc.c,
10303         config/xtensa/lib2funcs.S: Fix comment formatting.
10304
10305 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10306
10307         * config/alpha/alpha.c, config/arc/arc.c,
10308         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
10309         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
10310         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
10311         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
10312         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
10313         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
10314         config/iq2000/iq2000.c, config/m32r/m32r.c,
10315         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
10316         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
10317         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
10318         config/rs6000/rs6000.h, config/sparc/sparc.c,
10319         config/vax/vax.c: Fix comment typos.  Follow spelling
10320         conventions.
10321
10322 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10323
10324         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
10325         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
10326         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
10327         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
10328         config/arm/fpa.md, config/arm/iwmmxt.md,
10329         config/arm/netbsd-elf.h, config/arm/netbsd.h,
10330         config/m68hc11/m68hc11.md, config/mips/iris5.h,
10331         config/mn10300/mn10300.md, config/rs6000/altivec.md,
10332         config/sparc/netbsd-elf.h: Update copyright.
10333
10334 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10335
10336         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
10337         for all modes whose size is greater than 8 bytes if ARCH32.
10338         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
10339         by reference if ARCH32.
10340
10341 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
10342
10343         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
10344
10345 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10346
10347         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
10348         to before adddi3 insn patterns.
10349         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
10350         "reload_insi"): Move to before addsi3 insn patterns.
10351
10352 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
10353
10354         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
10355         parameter.  Use it instead of current_function_is_thunk.
10356         * function.h (struct function): Update documentation for is_thunk.
10357         * tree.h (CALL_FROM_THUNK_P): New macro.
10358         * config/alpha/alpha.c (alpha_sa_mask): Do not check
10359         no_new_pseudos when testing current_function_is_thunk.
10360         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
10361
10362 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10363
10364         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
10365         TARGET_SETUP_INCOMING_VARARGS.
10366
10367 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10368
10369         * emit-rtl.c (gen_rtx): Remove.
10370         * genattrtab.c: Don't mention gen_rtx in a comment.
10371         * rtl.h: Remove the prototype for gen_rtx.
10372         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
10373
10374 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10375
10376         * config/arc/arc.h, config/fr30/fr30.h
10377         (SETUP_INCOMING_VARARGS): Remove the target-independent
10378         comments.
10379         * doc/tm.texi: Don't mention deprecated target macros.
10380
10381 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10382
10383         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
10384         target-independent comment.
10385
10386 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10387
10388         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
10389         mention deprecated target macros.
10390
10391 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10392
10393         * config.gcc: Remove obsolete ports and configurations.
10394         * config/linux-aout.h, config/netware.h,
10395         config/t-linux-gnulibc1, config/d30v/abi,
10396         config/d30v/d30v-protos.h, config/d30v/d30v.c,
10397         config/d30v/d30v.h, config/d30v/d30v.md,
10398         config/d30v/libgcc1.asm, config/d30v/t-d30v,
10399         config/dsp16xx/dsp16xx-modes.def,
10400         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10401         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
10402         config/i370/README, config/i370/i370-c.c,
10403         config/i370/i370-protos.h, config/i370/i370.c,
10404         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
10405         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
10406         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
10407         config/i386/moss.h, config/i386/netware.h,
10408         config/i386/svr3.ifile, config/i386/svr3dbx.h,
10409         config/i386/svr3gas.h, config/i386/svr3z.ifile,
10410         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
10411         config/i960/i960-c.c, config/i960/i960-coff.h,
10412         config/i960/i960-modes.def, config/i960/i960-protos.h,
10413         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
10414         config/i960/rtems.h, config/i960/t-960bare,
10415         config/m68k/hp310.h, config/m68k/hp320.h,
10416         config/m68k/hp320base.h, config/m68k/m68kv4.h,
10417         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
10418         Remove.
10419         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
10420         doc/md.texi: Remove mentions of obsolete ports.
10421
10422 2004-02-04  Jan Hubicka  <jh@suse.cz>
10423
10424         * alias.c (find_base_term, get_addr):  Do not dereference NULL
10425         pointer when all VALUE's locations has been invalidated.
10426         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
10427
10428 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
10429
10430         * doc/invoke.texi (x86 options): Fix spelling/wording.
10431
10432 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
10433
10434         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
10435         put the original string in a comment.
10436         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
10437         * config/mips/mips.c (mips_output_ascii): Likewise.
10438         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
10439
10440 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10441
10442         * system.h (GIV_SORT_CRITERION): Poison.
10443         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
10444         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
10445
10446 2004-02-03  Roger Sayle  <roger@eyesopen.com>
10447
10448         PR target/9348
10449         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
10450         multiplies with a multiplication of the wrong signedness, its the
10451         signedness of the multiplication that we've performed that needs to
10452         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
10453         if expand_mult_highpart_adjust places the result in target.
10454
10455 2004-02-03  Richard Henderson  <rth@redhat.com>
10456
10457         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
10458
10459 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
10460
10461         * config.gcc (sh[234]l): Use little endian fragments.
10462
10463 2004-02-03  Paul Koning  <pkoning@equallogic.com>
10464
10465         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
10466         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
10467         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
10468         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
10469         floating point format.
10470         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
10471         the above functions.
10472         (output_move_quad): Output float values in correct target format.
10473         (legitimate_const_double_p): New function.
10474         * config/pdp11/pdp11.h: Fix typos.
10475         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
10476         (TARGET_FLOAT_FORMAT): Ditto.
10477         (pdp11_f_format, pdp11_d_format): Add external declarations.
10478         (MAX_REGS_PER_ADDRESS): Corrected.
10479         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
10480         (PRINT_OPERAND): Output float literals in target format.
10481
10482 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
10483
10484         PR c++/13975
10485         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
10486         TI_PRIVATE.
10487         (access_public_node): Redefine.
10488         (access_protected_node): Likewise.
10489         (access_private_node): Likewise.
10490         * tree.c (build_common_tree_nodes): Create access_public_node,
10491         access_protected_node, and access_private_node.
10492
10493 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
10494
10495         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
10496         (MASK_INLINE_INT_DIV_THR): Ditto.
10497         (MASK_INLINE_SQRT_LAT): Ditto.
10498         (MASK_INLINE_SQRT_THR): Ditto.
10499         (MASK_DWARF2_ASM): Ditto.
10500         (MASK_EARLY_STOP_BITS): Ditto.
10501
10502 2004-02-02  Paul Brook  <paul@codesourcery.com>
10503
10504         Merge from csl-arm-branch.
10505
10506         2004-01-30  Paul Brook  <paul@codesourcery.com>
10507
10508         * aof.h (REGISTER_NAMES): Add vfp reg names
10509         (ADDITIONAL_REGISTER_NAMES): Ditto.
10510         * aout.h (REGISTER_NAMES): Ditto.
10511         (ADDITIONAL_REGISTER_NAMES): Ditto.
10512         * arm-protos.h: Update/Add Prototypes.
10513         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
10514         Only allow 0.0 for VFP.
10515         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
10516         (values_fp): Rename from values_fpa.  Update Users.
10517         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
10518         Update users.  Only check valid constants for this hardware.
10519         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
10520         Only allow consts for FPA.
10521         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
10522         Only allow consts for FPA.
10523         (use_return_insn): Check for saved VFP regs.
10524         (arm_legitimate_address_p): Handle VFP DFmode addressing.
10525         (arm_legitimize_address): Ditto.
10526         (arm_general_register_operand): New function.
10527         (vfp_mem_operand): New function.
10528         (vfp_compare_operand): New function.
10529         (vfp_secondary_reload_class): New function.
10530         (arm_float_compare_operand): New function.
10531         (vfp_print_multi): New function.
10532         (vfp_output_fstmx): New function.
10533         (vfp_emit_fstm): New function.
10534         (arm_output_epilogue): Output VPF reg restore code.
10535         (arm_expand_prologue): Output VFP reg save code.
10536         (arm_print_operand): Add 'P'.
10537         (arm_hard_regno_mode_ok): Return modes for VFP regs.
10538         (arm_regno_class): Return classes for VFP regs.
10539         (arm_compute_initial_elimination_offset): Include space for VFP regs.
10540         (arm_get_frame_size): Ditto.
10541         * arm.h (FIXED_REGISTERS): Add VFP regs.
10542         (CALL_USED_REGISTERS): Ditto.
10543         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
10544         (FIRST_VFP_REGNUM): Define.
10545         (LAST_VFP_REGNUM): Define.
10546         (IS_VFP_REGNUM): Define.
10547         (FIRST_PSEUDO_REGISTER): Include VFP regs.
10548         (HARD_REGNO_NREGS): Handle VFP regs.
10549         (REG_ALLOC_ORDER): Add VFP regs.
10550         (enum reg_class): Add VFP_REGS.
10551         (REG_CLASS_NAMES): Ditto.
10552         (REG_CLASS_CONTENTS): Ditto.
10553         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
10554         (REG_CLASS_FROM_LETTER): Add 'w'.
10555         (EXTRA_CONSTRAINT_ARM): Add 'U'.
10556         (EXTRA_MEMORY_CONSTRAINT): Define.
10557         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
10558         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
10559         (REGISTER_MOVE_COST): Ditto.
10560         (PREDICATE_CODES): Add arm_general_register_operand,
10561         arm_float_compare_operand and vfp_compare_operand.
10562         * arm.md (various): Rename as above.
10563         (divsf3): Enable when TARGET_VFP.
10564         (divdf3): Ditto.
10565         (movdfcc): Ditto.
10566         (sqrtsf2): Ditto.
10567         (sqrtdf2): Ditto.
10568         (arm_movdi): Disable when TARGET_VFP.
10569         (arm_movsi_insn): Ditto.
10570         (movsi): Only split with general regs.
10571         (cmpsf): Use arm_float_compare_operand.
10572         (push_fp_multi): Restrict to TARGET_FPA.
10573         (vfp.md): Include.
10574         * vfp.md: New file.
10575         * fpa.md (various): Rename as above.
10576         * doc/md.texi: Document ARM w and U constraints.
10577
10578         2004-01-15  Paul Brook  <paul@codesourcery.com>
10579
10580         * config.gcc: Add with_fpu.  Allow with-float=softfp.
10581         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
10582         Break out of loop when we find a float-abi.  Fix typo.
10583         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
10584         Set -mfloat-abi=.
10585         * doc/install.texi: Document --with-fpu.
10586
10587         2003-01-14  Paul Brook  <paul@codesourcery.com>
10588
10589         * config.gcc (with_arch): Add armv6.
10590         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
10591         * config/arm/arm.c (arm_overrride_options): Ditto.
10592
10593         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
10594
10595         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
10596         (FL_ARCH6): Renamed from FL_ARCH6J.
10597         (arm_arch3m): Renamed from arm_fast_multiply.
10598         (arm_arch6): Renamed from arm_arch6j.
10599         * arm.h: Update all uses of above.
10600         * arm-cores.def: Likewise.
10601         * arm.md: Likewise.
10602
10603         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
10604         not arm6j.  Add entry for arch armv6.
10605
10606         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
10607
10608         * arm.c (arm_emit_extendsi): Delete.
10609         * arm-protos.h (arm_emit_extendsi): Delete.
10610         * arm.md (zero_extendhisi2): Also handle zero-extension of
10611         non-subregs.
10612         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
10613         (thumb_zero_extendhisi2): Only match if not v6.
10614         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
10615         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
10616         (thumb_extendqisi2): Likewise.
10617         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
10618         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
10619         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
10620         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
10621         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
10622         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
10623         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
10624         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
10625         (arm_extendqisi2addsi): Likewise.
10626
10627         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
10628
10629         Revert this change:
10630         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
10631         + REG addressing modes.
10632
10633         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
10634         + REG addressing modes.
10635
10636         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
10637
10638         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
10639         CONSTANT_P_RTX.
10640
10641         2003-30-12  Paul Brook  <paul@codesourcery.com>
10642
10643         * longlong.h: protect arm inlines with !defined (__thumb__)
10644
10645         2003-30-12  Paul Brook  <paul@codesourcery.com>
10646
10647         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
10648
10649         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
10650
10651         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
10652         change.
10653
10654         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10655
10656         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
10657         to the virtual incoming args pointer for downward stacks.
10658
10659         2003-12-29  Paul Brook  <paul@codesourcery.com>
10660
10661         * config/arm/arm-cores.def: Add cost function.
10662         * config/arm/arm.c (arm_*_rtx_costs): New functions.
10663         (arm_rtx_costs): Remove
10664         (struct processors): Add rtx_costs field.
10665         (all_cores, all_architectures): Ditto.
10666         (arm_override_options): Set targetm.rtx_costs.
10667         (thumb_rtx_costs): New function.
10668         (arm_rtx_costs_1): Remove cases handled elsewhere.
10669         * config/arm/arm.h (processor_type): Add COSTS parameter.
10670
10671         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
10672
10673         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
10674         (arm926ejs.md): Include it.
10675         * config/arm/arm926ejs.md: New pipeline description.
10676
10677         2003-12-24  Paul Brook  <paul@codesourcery.com>
10678
10679         * config/arm/arm.c (arm_arch6j): New variable.
10680         (arm_override_options): Set it.
10681         (arm_emit_extendsi): New function.
10682         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
10683         * config/arm/arm.h (arm_arch6j): Declare.
10684         * config/arm/arm.md: Add sign/zero extend insns.
10685
10686         2003-12-23  Paul Brook  <paul@codesourcery.com>
10687
10688         * config/arm/arm.c (all_architectures): Add armv6.
10689         * doc/invoke.texi: Document it.
10690
10691         2003-12-19  Paul Brook  <paul@codesourcery.com>
10692
10693         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
10694         insn patterns to match.
10695         * config/arm/arm-generic.md: Ditto.
10696         * config/arm/cirrus.md: Ditto.
10697         * config/arm/fpa.md: Ditto.
10698         * config/amm/iwmmxt.md: Ditto.
10699         * config/arm/arm1026ejs.md: Ditto.
10700         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
10701         for 11_loadb.
10702
10703         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
10704
10705         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
10706         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
10707         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
10708         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
10709         arm_no_early_mul_dep): Correctly deal with conditional execution,
10710         parallels and single shift operations.
10711         (arm_no_early_alu_shift_value_dep): Define.
10712         * arm.md (attr type): Replace 'normal' with 'alu',
10713         'alu_shift' and 'alu_shift_reg'.
10714         (attr core_cycles): Adjust.
10715         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
10716         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
10717         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
10718         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
10719         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
10720         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
10721         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
10722         attribute appropriately.
10723         * config/arm/arm1026ejs.md (alu_op): Adjust.
10724         (alu_shift_op, alu_shift_reg_op): New.
10725         * config/arm/arm1136.md: Add better bypasses for early
10726         registers. Remove load[234] and store[234] bypasses.
10727         (11_alu_op): Adjust.
10728         (11_alu_shift_op, 11_alu_shift_reg_op): New.
10729
10730         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
10731
10732         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
10733         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
10734         * config/arm/arm.c (arm_no_early_store_addr_dep,
10735         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
10736         * config/arm/arm1026ejs.md: Add load-store bypass.
10737         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
10738         Add bypasses between instructions.
10739
10740         2003-12-10  Paul Brook  <paul@codesourcery.com>
10741
10742         * config/arm/arm.c (arm_fpu_model): New variable.
10743         (arm_fload_abi): New variable.
10744         (target_fpe_name): Rename from target_fp_name.
10745         (target_fpu_name): New variable.
10746         (arm_is_cirrus): Remove.
10747         (fpu_desc): New struct.
10748         (all_fpus): Define.
10749         (pf_model_for_fpu): Define.
10750         (all_loat_abis): Define.
10751         (arm_override_options): Set fp arch flags based on -mfpu=
10752         and -float-abi=.
10753         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
10754         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
10755         (*): Use new TARGET_* flags.
10756         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
10757         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
10758         (TARGET_SOFT_FLOAT): Ditto.
10759         (TARGET_SOFT_FLOAT_ABI): New.
10760         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
10761         TARGET_HARD_FLOAT.
10762         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
10763         (TARGET_OPTIONS): Add -mfpu=.
10764         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
10765         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
10766         (arm_pf_model): Define.
10767         (arm_float_abi_type): Define.
10768         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
10769         * config/arm/arm.md: Use new TARGET_* flags.
10770         * config/arm/cirrus.md: Ditto.
10771         * config/arm/fpa.md: Ditto.
10772         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
10773         * config/arm/semi.h (ASM_SPEC): Ditto.
10774         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
10775         (FPUTYPE_DEFAULT): Set to VFP.
10776         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
10777
10778         2003-11-22  Phil Edwards  <phil@codesourcery.com>
10779
10780         PR target/12476
10781         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
10782         'bx' instead of 'b' to avoid branch range restrictions.  Output
10783         the thunk immediately before the thunked-to function.
10784         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
10785         .thumb_func if a thunk is being generated.  Emit .code 16 along
10786         with .thumb_func if a thunk is not being generated.
10787
10788         2003-11-15  Nicolas Pitre <nico@cam.org>
10789
10790         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
10791         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
10792         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
10793         (lshrdi3_iwmmxt): Renamed from lshrdi3.
10794         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
10795
10796         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
10797             Ian Lance Taylor  <ian@wasabisystems.com>
10798
10799         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
10800         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
10801
10802         2003-11-05  Phil Edwards  <phil@codesourcery.com>
10803
10804         * config/arm/arm.md (insn):  Add new V6 instruction names.
10805         (generic_sched):  New attr.
10806         * config/arm/arm-generic.md:  Use generic_sched here.
10807         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
10808         stages of pipeline.  Adjust latency counts accordingly.
10809         * config/arm/arm1136jfs.md:  New file.
10810
10811         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
10812
10813         * config/arm/arm.h (processor_type): New enumeration type.
10814         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
10815         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
10816         (CPP_CPU_ARCH_SPEC): Likewise.
10817         * config/arm/arm.c (arm_tune): New variable.
10818         (all_cores): Use cores.def.
10819         (all_architectures): Add representative processor.
10820         (arm_override_options): Restructure way in which tuning
10821         information is deduced.
10822         * arm.md: Update "insn" and "type" attributes throughout.
10823         (insn): New attribute.
10824         (type): Compute "mult" from "insn" attribute.  Add load2,
10825         load3, load4 alternatives.
10826         (arm automaton): Move to arm-generic.md.
10827         * config/arm/arm-cores.def: New file.
10828         * config/arm/arm-generic.md: Likewise.
10829         * config/arm/arm1026ejs.md: Likewise.
10830
10831 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
10832
10833         * doc/invoke.texi (SPARC options): Remove -mflat and
10834         all -mxxx (xxx:chip) options.
10835         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
10836         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
10837         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
10838         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
10839         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
10840         * config/sparc/sparc.c: Likewise.
10841         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
10842         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
10843         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
10844         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
10845         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
10846         (sparc_flat_must_save_register_p): Likewise.
10847         (sparc_flat_compute_frame_size): Likewise.
10848         (sparc_flat_save_restore): Likewise.
10849         (sparc_flat_function_prologue): Likewise.
10850         (sparc_flat_function_epilogue): Likewise.
10851         (sparc_flat_epilogue_delay_slots): Likewise.
10852         (sparc_flat_eligible_for_epilogue_delay): Likewise.
10853         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
10854         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
10855         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
10856         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
10857         (CONDITIONAL_REGISTER_USAGE): Likewise.
10858         (FRAME_POINTER_REQUIRED): Likewise.
10859         (INITIAL_ELIMINATION_OFFSET): Likewise.
10860         (BASE_RETURN_VALUE_REG): Likewise.
10861         (BASE_OUTGOING_VALUE_REG): Likewise.
10862         (BASE_PASSING_ARG_REG): Likewise.
10863         (BASE_INCOMING_ARG_REG): Likewise.
10864         (INCOMING_REGNO): Likewise.
10865         (OUTGOING_REGNO): Likewise.
10866         (LOCAL_REGNO): Likewise.
10867         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
10868         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
10869         (EPILOGUE_USES): Likewise.
10870         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
10871         ("flat" attribute): Delete.
10872         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
10873         handling.
10874         (call followed by jump define_peephole's): Delete.
10875         (exception_receiver): Likewise.
10876         (builtin_setjmp_receiver): Likewise.
10877         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
10878
10879 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
10880
10881         PR c/11658
10882         PR c/13994
10883         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
10884         on langhooks.h.
10885         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
10886         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
10887         Include langhooks.h.  Replace c_common_truthvalue_conversion
10888         with the truthvalue_conversion language hook throughout.
10889         (expr_no_commas): Call default_conversion before save_expr
10890         for the first term of the production 'x ? : y'.
10891         * c-common.c (c_common_truthvalue_conversion): Remove
10892         obsolete block.  Invoke recursively the hook instead
10893         of this function.
10894         * c-convert.c (convert): handle ERROR_MARK_NODE.
10895         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
10896         returned by the truthvalue_conversion language hook.
10897         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
10898         c_objc_common_truthvalue_conversion.
10899         * c-objc-common.c (c_objc_common_truthvalue_conversion):
10900         New function.
10901         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
10902         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
10903         c_objc_common_truthvalue_conversion.
10904
10905 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10906
10907         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
10908         of gen_rtx.
10909         (LIBCALL_VALUE): Likewise.
10910         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
10911         gen_rtx_CC0 instead of gen_rtx.
10912         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
10913         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
10914         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
10915         gen_rtx.
10916         (m68hc11_emit_logical): Likewise.
10917
10918 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10919
10920         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
10921         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
10922         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
10923         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
10924         config/mips/mips.md, config/mmix/mmix.c,
10925         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
10926         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
10927         config/rs6000/altivec.md, config/s390/s390.c,
10928         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
10929         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
10930         Use const0_rtx instead of GEN_INT (0).  Do the same for other
10931         constants that are readily available.
10932
10933 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10934
10935         * doloop.c, optabs.c, regmove.c, sched-deps.c,
10936         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
10937         instead of GEN_INT (0).  Do the same for other constants that
10938         are readily available.
10939
10940 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
10941
10942         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
10943         gen_rtx.
10944         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
10945         instead of gen_rtx.
10946         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
10947         gen_rtx.
10948         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
10949         gen_rtx_ASHIFT instead of gen_rtx.
10950         (udivmodqi4): Likewise.
10951
10952 2004-02-02  Richard Henderson  <rth@redhat.com>
10953
10954         PR target/13789
10955         * expr.c (store_expr): Use force_operand before emit_move_insn.
10956
10957 2004-02-02  Jeff Law  <law@redhat.com>
10958             Roger Sayle  <roger@eyesopen.com>
10959
10960         * tree.c (commutative_tree_code, associative_tree_code): New
10961         functions.
10962         (iterative_hash_expr): Use commutative_tree_code.
10963         * tree.h (commutative_tree_code, associative_tree_code): Declare.
10964         * fold-const.c (operand_equal_p): Use commutative_tree_code
10965         rather than inlining the commutativity check.
10966         (fold): Likewise.
10967
10968 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10969
10970         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
10971         * config/frv/frv-protos.h: Remove the prototype for
10972         frv_function_arg_keep_as_reference.
10973         * config/frv/frv.c (frv_function_arg_keep_as_reference):
10974         Remove.
10975         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
10976         * config/stormy16/stormy16.h: Remove the commented-out
10977         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
10978
10979 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
10980
10981         PR target/13914
10982         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
10983         for retaddr_column.
10984
10985 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
10986
10987         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
10988         gen_rtx.
10989
10990 2004-02-02  Eric Christopher  <echristo@redhat.com>
10991             Zack Weinberg  <zack@codesourcery.com>
10992
10993         * c-opts.c (c_common_handle_option): Add -finput-charset.
10994         * c.opt: Ditto.
10995         * cppcharset.c (one_iso88591_to_utf8): Remove.
10996         (convert_iso88591_utf8): Ditto.
10997         (conversion_tab): Remove 8859-1 converter.
10998         (_cpp_input_to_utf8): Remove.
10999         (_cpp_init_iconv_buffer): Ditto.
11000         (_cpp_close_iconv_buffer): Ditto.
11001         (_cpp_convert_input): New function.
11002         (_cpp_default_encoding): Ditto.
11003         * cpphash.h: Add/remove prototypes for above.
11004         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
11005         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
11006         for narrow execution and input character sets.
11007         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
11008         * doc/cppopts.texi: Document -finput-charset.
11009
11010 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
11011
11012         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
11013         against FIRST_PSEUDO_REGISTER.
11014
11015 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
11016
11017         * doc/invoke.texi (SPARC options): Further improve.
11018
11019 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
11020
11021         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
11022         config/h8300/h8300.c, config/ip2k/ip2k.md,
11023         config/iq2000/iq2000.c, config/mips/mips.c,
11024         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
11025         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
11026         config/v850/v850.md: Fix indentation.
11027
11028 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
11029
11030         * config/sparc/sparc.c (function_arg_slotno): Align TImode
11031         arguments on a 16-byte boundary in the parameter array if ARCH64.
11032         Split handling of TFmode.
11033
11034 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
11035
11036         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
11037         Don't test CONSTANT_P (x).
11038         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
11039         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
11040         Fix misindentation.
11041
11042 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
11043
11044         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
11045
11046 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
11047
11048         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
11049         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
11050         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
11051         config/iq2000/iq2000.c, config/m32r/m32r.c,
11052         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
11053         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
11054         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
11055         config/stormy16/stormy16.c, config/v850/v850.md,
11056         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
11057
11058 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11059
11060         * config/mcore/mcore.c (block_move_sequence): Replace
11061         gen_rtx_CONST_INT with GEN_INT.
11062
11063 2004-02-02  Jan Hubicka  <jh@suse.cz>
11064
11065         * alias.c (record_set): Use hard_regno_nregs.
11066         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
11067         * builtins.c (apply_args_size): Likewise.
11068         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
11069         mark_set_regs, add_stored_regs, mark_referenced_regs,
11070         insert_restore, insert_save, insert_one_insn): Likewise.
11071         * cfgcleanup.c: Include regs.h
11072         (mark_effect, mentions_nonequal_regs): Likewise.
11073         * cfgrtl.c (mark_killed_regs): Likewise
11074         * combine.c (update_table_tick, record_value_for_reg,
11075         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
11076         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
11077         reg_bitfield_target_p, distribute_notes): Likewise.
11078         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
11079         exp_equiv_p, cse_insn): Likewise.
11080         * cselib.c (cselib_lookup): Likewise.
11081         (cselib_invalidate_regno, cselib_record_set): Likewise.
11082         * df.c (df_ref_record): Likewise.
11083         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
11084         Likewise.
11085         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
11086         count_or_remove_death_notes_bb): Likewise.
11087         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
11088         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
11089         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
11090         * integrate.c (mark_stores): Likewise.
11091         * jump.c (delete_prior_computation): Likewise.
11092         * lcm.c (reg_dies, reg_becomes_live): Likewise.
11093         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
11094         * loop.c (LOOP_REGNO_NREGS): Likewise.
11095         * postreload.c (reload_combine, reload_combine_note_store,
11096         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
11097         * ra-colorize.c (combine, color_usable_p, get_free_reg,
11098         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
11099         try_recolor_web, insert_coalesced_conflicts, check_colors,
11100         break_precolored_alias): Likewise.
11101         * ra-debug.c: Include regs.h
11102         (ra_print_rtx_object): Likewise.
11103         * ra-rewrite (choose_spill_colors): Likewise.
11104         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
11105         * ra.c (init_ra): Likewise.
11106         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
11107         peep2_find_free_register): Likewise.
11108         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
11109         * regclass.c (hard_regno_nregs): New array.
11110         (init_reg_modes_once): Initialize it.
11111         (choose_hard_reg_mode): Use it.
11112         (record_reg_classes): Likewise.
11113         * regmove.c (mark_flags_life_zones): Likewise.
11114         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
11115         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
11116         copy_value, maybe_mode_change, find_oldest_value_reg,
11117         copyprop_hardreg_forward_1):
11118         * regs.h (hard_regno_nregs): Declare.
11119         * realod.c (reload_inner_reg_of_subreg): Use it.
11120         (push_reload, combine_reloads, find_dummy_reload,
11121         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
11122         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
11123         reload_adjust_reg_for_mode): Likewise.
11124         * reload1.c (compute_use_by_pseudos, count_pseudo,
11125         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
11126         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
11127         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
11128         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
11129         delete_output_reload): Likewise.
11130         * resource.c (update_live_status, mark_referenced_resources,
11131         mark_set_resources, mark_target_live_regs): Likewise.
11132         * rtlanal.c:  Include regs.h
11133         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
11134         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
11135         subreg_regno_offset, subreg_offset_representable_p,
11136         hoist_test_store): Likewise.
11137         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
11138         * sched-rgn.c (check_live_1, update_live_1): Likewise.
11139         * stmt.c: Include regs.h
11140         (decl_conflicts_with_clobbers_p): Likewise.
11141         * varasm.c (make_decl_rtl): Likewise.
11142         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
11143
11144 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11145
11146         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
11147         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
11148         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
11149         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
11150         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
11151         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11152         config/iq2000/iq2000.h, config/m32r/m32r.c,
11153         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
11154         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
11155         config/mcore/mcore.c, config/mcore/mcore.h,
11156         config/mcore/mcore.md, config/mips/mips.c,
11157         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
11158         config/rs6000/rs6000.c, config/s390/s390.c,
11159         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
11160         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
11161         "gen_rtx (FOO, " with "gen_rtx_FOO (".
11162
11163 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
11164
11165         * config/h8300/h8300.md (two peephole2's): New.
11166
11167 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
11168
11169         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
11170         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
11171         (ASM_CPU_SPEC): Likewise
11172         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
11173         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
11174
11175 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11176
11177         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
11178         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
11179         (expand_builtin): Always call expand_builtin_pow.
11180
11181 2004-02-01  Roger Sayle  <roger@eyesopen.com>
11182
11183         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
11184         BUILT_IN_SIGNBITL): New GCC builtins.
11185         * builtins.c (expand_builtin_signbit): New function to RTL expand
11186         calls to signbit, signbitf and signbitl as inline intrinsics.
11187         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
11188         (fold_builtin_signbit): New function to perform constant folding
11189         of signbit, signbitf and signbitl.
11190         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
11191
11192         * doc/extend.texi: Document new signbit{,f,l} builtins.
11193
11194 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
11195
11196         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
11197
11198 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
11199
11200         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
11201         "mips_const_double_ok" and "simple_memory_operand", which were
11202         removed from the MIPS port with the mips-3_4-rewrite branch merge.
11203         * config/mips/mips.c (mips16_lay_out_constants): Update comment
11204         for removal of simple_memory_operand.
11205
11206 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11207
11208         * config/c4x/c4x.md: Use GEN_INT instead of
11209         gen_rtx (CONST_INT, ...).
11210
11211 2004-01-31  Richard Henderson  <rth@redhat.com>
11212
11213         * varasm.c (output_constant_pool): Don't zap the pool.
11214
11215 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11216
11217         * genrecog.c (decision_type): Add DT_const_int.
11218         (write_cond) [DT_const_int]: Print a comparison against small
11219         constant.
11220         (write_node): Simplify comparisons against small constants
11221         before printing tests.
11222
11223 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11224
11225         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
11226         instead of gen_rtx_CONST_INT.
11227
11228 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11229
11230         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
11231         instead of gen_rtx_CONST_INT.
11232
11233 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11234
11235         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
11236         hook_bool_CUMULATIVE_ARGS_false.
11237         * targhooks.c (default_strict_argument_naming): Rename to
11238         hook_bool_CUMULATIVE_ARGS_false.
11239         * targhooks.h: Update the prototype for
11240         default_strict_argument_naming.
11241
11242 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11243
11244         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11245         * config/sh/sh.h: Likewise.
11246         * config/sh/sh.md: Likewise.
11247
11248 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
11249
11250         * doc/invoke.texi (SPARC options): Restructure and update.
11251
11252 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11253
11254         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
11255         STRICT_ARGUMENT_NAMING): Poison.
11256         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
11257         hook_bool_tree_false.
11258         * targhooks.c (default_promote_function_args): Remove.
11259         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
11260         Don't check incoming.
11261         (default_strict_argument_naming): Don't use
11262         STRICT_ARGUMENT_NAMING.
11263         * targhooks.h: Remove the prototype for
11264         default_promote_function_args.
11265
11266 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11267
11268         * config/i386/i386-protos.h: Remove the prototype for
11269         ix86_setup_incoming_varargs.
11270         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
11271         (ix86_setup_incoming_varargs): Make it static.
11272         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
11273
11274 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11275
11276         * alloc-pool.c: Fix comment typos.
11277         * builtin-types.def: Likewise.
11278         * builtins.def: Likewise.
11279         * c-pretty-print.c: Likewise.
11280         * df.h: Likewise.
11281         * reload1.c: Likewise.
11282
11283 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11284
11285         * doc/invoke.texi: Follow spelling conventions.
11286         * doc/tm.texi: Likewise.
11287
11288 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11289
11290         * doc/install.texi: Fix typos.
11291         * doc/invoke.texi: Likewise.
11292
11293 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
11294
11295         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
11296         registers as pointers.
11297         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
11298
11299 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
11300
11301         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
11302         and restore it to gen_lowpart_general on exit.
11303         (gen_lowpart_for_combine): Adjust all callers to go through
11304         gen_lowpart.
11305         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
11306         and restore it to gen_lowpart_general on exit.
11307         (gen_lowpart_if_possible): Adjust all callers to go through
11308         gen_lowpart.
11309         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
11310         (gen_lowpart): Declare as pointer to function, initialized to
11311         gen_lowpart_general.
11312         * rtl.h (gen_lowpart): Declare as pointer to function.
11313
11314 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
11315
11316         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
11317         * calls.c: Likewise.
11318         * emit-rtl.c: Likewise.
11319         * function.c: Likewise.
11320         * reload1.c: Likewise.
11321         * config/i386/cygming.h: Likewise.
11322         * config/i386/i386.c: Likewise.
11323         * config/i386/winnt.c: Likewise.
11324
11325 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
11326
11327         PR bootstrap/9249
11328         * doc/install.texi: document --enable-__cxa_atexit option.
11329         * configure.ac: Disable __cxa_atexit if not supported.
11330         * configure: Regenerate.
11331
11332 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
11333
11334         * ggc-zone.c (ggc_free): New function.
11335
11336 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11337
11338         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
11339         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
11340         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
11341         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
11342         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
11343         config/alpha/alpha.c, config/alpha/alpha.h,
11344         config/alpha/alpha.md, config/alpha/unicosmk.h,
11345         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
11346         config/c4x/c4x-protos.h, config/c4x/c4x.md,
11347         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
11348         config/frv/frvend.c, config/i386/cygming.h,
11349         config/i386/djgpp.h, config/i386/emmintrin.h,
11350         config/i386/gthr-win32.c, config/i386/i386-interix.h,
11351         config/i386/i386-protos.h, config/i386/openbsd.h,
11352         config/i386/winnt.c, config/i386/xm-mingw32.h,
11353         config/i386/xmmintrin.h, config/ia64/ia64.md,
11354         config/iq2000/iq2000.md, config/m32r/m32r.md,
11355         config/m68k/m68k.md, config/mcore/mcore-elf.h,
11356         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
11357         config/mips/iris5gas.h, config/mips/iris6.h,
11358         config/mips/iris6gas.h, config/mips/linux.h,
11359         config/mips/mips.md, config/mips/netbsd.h,
11360         config/mips/openbsd.h, config/mips/windiss.h,
11361         config/pa/fptr.c, config/rs6000/aix.h,
11362         config/rs6000/altivec.h, config/rs6000/darwin.h,
11363         config/rs6000/xcoff.h, config/s390/s390-protos.h,
11364         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
11365         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
11366         config/sparc/sol2.h: Update copyright.
11367
11368 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
11369
11370         * Makefile.in (abs_docdir, abs_srcdir): Define.
11371         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
11372
11373 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11374
11375         * genconfig.c (main): Have CC0_P check its operand even on a
11376         target without cc0.
11377
11378 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11379
11380         * config/alpha/alpha.c: Remove mentions of deprecates macros
11381         in comments, remove some target-independent comments about target
11382         macros, and/or add minimal function comments for target hook
11383         implementations.
11384         * config/avr/avr.c: Likewise.
11385         * config/ia64/ia64.h: Likewise.
11386         * config/ip2k/ip2k.c: Likewise.
11387         * config/iq2000/iq2000.c: Likewise.
11388         * config/m32r/m32r.h: Likewise.
11389         * config/m68hc11/m68hc11.c: Likewise.
11390         * config/mcore/mcore.c: Likewise.
11391         * config/mmix/mmix.c: Likewise.
11392         * config/mn10300/mn10300.c: Likewise.
11393         * config/pa/pa.c: Likewise.
11394         * config/pdp11/pdp11.c: Likewise.
11395         * config/rs6000/rs6000.h: Likewise.
11396         * config/sh/sh.c: Likewise.
11397         * config/sh/sh.h: Likewise.
11398         * config/sparc/sparc.c: Likewise.
11399         * config/sparc/sparc.h: Likewise.
11400         * config/stormy16/stormy16.c: Likewise.
11401         * config/xtensa/xtensa.c: Likewise.
11402
11403 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11404
11405         PR optimization/12147
11406         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
11407         RELOAD_FOR_OPADDR_ADDR.
11408         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
11409         might be reused as RELOAD_FOR_OPADDR_ADDR register.
11410
11411 2004-01-30  Jan Hubicka  <jh@suse.cz>
11412
11413         * reload.c (get_secondary_mem): Fix updating of
11414         secondary_memlocs_elim_used.
11415
11416 2004-01-30  Richard Henderson  <rth@redhat.com>
11417
11418         * varasm.c (struct rtx_const, struct pool_constant): Remove.
11419         (MAX_RTX_HASH_TABLE): Remove.
11420         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
11421         (first_pool, last_pool, pool_offset): Remove.
11422         (struct rtx_constant_pool): Split out from ...
11423         (struct varasm_status): ... here.  Reference one via pointer.
11424         (struct constant_descriptor_rtx): Merge struct pool_constant.
11425         (SYMHASH): Remove.
11426         (decode_rtx_const): Remove.
11427         (const_hash_rtx, compare_constant_rtx): Remove.
11428         (record_constant_rtx): Remove.
11429         (const_desc_rtx_hash, const_desc_rtx_eq): New.
11430         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
11431         (const_rtx_hash_1, const_rtx_hash): New.
11432         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
11433         (simplify_subtraction): Use simplify_rtx.
11434         (force_const_mem): Rewrite to use new data structures.
11435         (find_pool_constant): Likewise.
11436         (get_pool_constant, get_pool_constant_mark,
11437         get_pool_constant_for_function, get_pool_mode,
11438         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
11439         (output_constant_pool_2): Split out from output_constant_pool.
11440         (output_constant_pool_1): Likewise.  Use new pool datastructures.
11441         (output_constant_pool): Zap entire pool datastructure.
11442         (mark_constant): Use new pool datastructures.
11443         (mark_constants): Use for_each_rtx.
11444         (mark_constant_pool): Use new pool datastructures.
11445
11446 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
11447
11448         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
11449         Copy operands[1] to pseudo for simplify_gen_subreg.
11450
11451 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11452
11453         * gcse.c (bypass_block): Fix a typo in the previous check-in
11454         to the file.
11455
11456 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
11457
11458         * toplev.c: Include alloc-pool.h.
11459         * Makefile.in (toplev.c): Update dependencies.
11460
11461 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11462
11463         * combine.c (simplify_shift_const, case XOR): Be careful when
11464         commuting XOR with ASHIFTRT.
11465
11466 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
11467             Eric Botcazou  <ebotcazou@libertysurf.fr>
11468
11469         * config/sparc/sparc-protos.h: Remove the prototype for
11470         sparc_builtin_saveregs.
11471         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
11472         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11473         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11474         (TARGET_STRUCT_VALUE_RTX): Likewise.
11475         (TARGET_RETURN_IN_MEMORY): Likewise.
11476         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11477         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
11478         (sparc_builtin_saveregs): Make it static.
11479         (sparc_promote_prototypes): New.
11480         (sparc_struct_value_rtx): Likewise.
11481         (sparc_return_in_memory): Likewise.
11482         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
11483         (PROMOTE_FUNCTION_RETURN): Likewise.
11484         (RETURN_IN_MEMORY): Likewise.
11485         (STRUCT_VALUE): Likewise.
11486         (STRUCT_VALUE_INCOMING): Likewise.
11487         (EXPAND_BUILTIN_SAVEREGS): Likewise.
11488         (STRICT_ARGUMENT_NAMING): Likewise.
11489         (PROMOTE_PROTOTYPES): Likewise.
11490
11491         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
11492
11493 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11494
11495         PR c/12818
11496         * varasm.c (const_hash_1) <STRING_CST>: Use the
11497         address to compute the hash value if flag_writable_strings.
11498         (compare_constant) <STRING_CST>: Compare the addresses
11499         if flag_writable_strings.
11500         (build_constant_desc): Do not copy the expression for a
11501         STRING_CST if flag_writable_strings.
11502
11503 2004-01-30  Jan Hubicka  <jh@suse.cz>
11504
11505         * alloc-pool.c: Include hashtab.h
11506         (alloc_pool_descriptor): New structure
11507         (alloc_pool_hash): New global variable.
11508         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
11509         (create_alloc_pool): Update statistics.
11510         (free_alloc_pool): Likewise.
11511         (pool_alloc): Likewise.
11512         (output_info): New structure
11513         (print_statistics, dump_alloc_pool_statistics): New function.
11514         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
11515         (dump_alloc_pool_statistics): Declare.
11516         * toplev.c (finalize):  Dump statistics.
11517
11518         * reload.c (secondary_memlocs_elim_used): New static variable.
11519         (get_secondary_mem): Update it.
11520         (find_reloads): Use it.
11521
11522 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
11523
11524         * toplev.c: Fix broken checkin of 2003-12-30, again.
11525
11526 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11527
11528         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
11529         s390*-*-* targets by specifying a 'nop' insn.
11530         * configure: Regenerate.
11531
11532 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
11533
11534         PR target/11475
11535         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
11536
11537 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11538
11539         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
11540         of addr when creating MEM copy.
11541
11542 2004-01-29  Devang Patel  <dpatel@apple.com>
11543
11544         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
11545
11546 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
11547
11548         PR inline-asm/6162
11549         * reload.c (find_reloads): Only support one pair of commutative
11550         operands.
11551
11552 2004-01-29  Roger Sayle  <roger@eyesopen.com>
11553
11554         PR java/13824
11555         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
11556         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
11557         recursion.
11558
11559 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
11560
11561         * config/frv/frv.c: Don't mention deprecated macros in
11562         comments.  Remove some target-independent comments about
11563         target macros.
11564         * config/frv/frv.h: Likewise.
11565
11566 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11567
11568         * cfghooks.c (split_block): Set probability and count of the
11569         new edge.
11570
11571 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
11572
11573         * dwarf2out.c (struct die_struct): Added field decl_id.
11574         (decl_die_table): Changed to hash table.
11575         (decl_die_table_allocated): Deleted.
11576         (decl_die_table_in_use): Deleted.
11577         (DECL_DIE_TABLE_INCREMENT): Deleted.
11578         (decl_die_table_hash): New function.
11579         (decl_die_table_eq): New function.
11580         (lookup_decl_die): Lookup in a hash table.
11581         (equate_decl_number_to_die): Insert into a hash table.
11582         (dwarf2out_init): Init hash table decl_die_table.
11583
11584 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
11585
11586         PR optimization/13424
11587         * expr.c (store_constructor): Revert 2003-12-03 change.
11588
11589         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
11590         expected before returning early.  Avoid sharing RTL if they
11591         need to be changed.
11592
11593         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
11594         handling so that memory attributes are preserved.  Don't call
11595         ix86_set_move_mem_attrs.
11596         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
11597         (ix86_expand_clrstr): Rename src argument to
11598         dst.  Rework rep_stos and strset handling so that memory attributes
11599         are preserved.
11600         (ix86_expand_strlen): Pass src argument to
11601         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
11602         memory attributes are preserved.
11603         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
11604         change_address instead of gen_rtx_MEM.
11605         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
11606         expanders.
11607         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
11608         strmovqi, strmovqi_rex64): Remove.
11609         (rep_mov*, strmov*): Prefix insn names with *.
11610         (strset, strset_singleop, rep_stos): New expanders.
11611         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
11612         strsetqi, strsetqi_rex64): Remove.
11613         (rep_stos*, strset*): Prefix insn names with *.
11614         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
11615         to SImode.
11616         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
11617         are preserved.
11618         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
11619         Prefix insn names with *.
11620         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
11621         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
11622         (strlenqi_1): New expander.
11623         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
11624
11625 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11626
11627         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
11628         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
11629         verify_flow_info): Declaration removed.
11630         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
11631         (debug_bb, debug_bb_n): Add argument to dump_bb call.
11632         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
11633         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
11634         instead of delete_block.
11635         * cfghooks.c: Include timevar.h and toplev.h.
11636         (cfg_hooks): Define here.
11637         (verify_flow_info, dump_bb): Moved from cfg.c.
11638         (redirect_edge_and_branch, redirect_edge_and_branch_force,
11639         split_block, split_block_after_labels, move_block_after,
11640         delete_basic_block, split_edge, create_basic_block,
11641         create_empty_bb, can_merge_blocks_p, merge_blocks,
11642         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
11643         New functions.
11644         * cfghooks.h (struct cfg_hooks): Added fields name,
11645         make_forwarder_block, tidy_fallthru_edge and
11646         move_block_after. Changed type of verify_flow_info, dump_bb,
11647         split_block fields. Renamed cfgh_split_edge and delete_block
11648         fields.
11649         (redirect_edge_and_branch, redirect_edge_and_branch_force,
11650         split_block, delete_block, split_edge, create_basic_block,
11651         can_merge_blocks_p, merge_blocks): Macros removed.
11652         (cfg_hooks): Do not export.
11653         (verify_flow_info, dump_bb, redirect_edge_and_branch,
11654         redirect_edge_and_branch_force, split_block, split_block_after_labels,
11655         move_block_after, delete_basic_block, split_edge, create_basic_block,
11656         create_empty_bb, can_merge_blocks_p, merge_blocks,
11657         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
11658         Declare.
11659         (cfg_layout_rtl_cfg_hooks): Declare.
11660         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
11661         New functions.
11662         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
11663         (redirect_edge_with_latch_update): Removed.
11664         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
11665         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
11666         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
11667         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
11668         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
11669         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
11670         cfghooks.c.
11671         (rtl_create_basic_block): Coding style fix.
11672         (rtl_tidy_fallthru_edge, rtl_move_block_after,
11673         rtl_make_forwarder_block): New functions.
11674         (update_cfg_after_block_merging): Removed.
11675         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
11676         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
11677         to dump_bb.
11678         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
11679         find_if_case_2): Don't update dominators.
11680         * timevar.def (TV_CFG_VERIFY): New.
11681         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
11682         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
11683         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
11684         (remove_bbs): Don't call remove_bbs.
11685         (create_preheader): Use make_forwarder_block.
11686         (mfb_keep_just, mfb_update_loops): New static functions.
11687
11688 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
11689
11690         * config/avr/avr.h: Remove target-independent comments about
11691         target macros.
11692
11693 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
11694
11695         * timevar.c (timevar_print): Mention when checking is enabled.
11696
11697 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
11698
11699         * c-lex.c (c_lex): Rename to...
11700         (c_lex_with_flags): Add new parameter to get CPP flags.
11701         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
11702         * c-pragma.h (c_lex_with_flags): Declare.
11703
11704 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11705
11706         * config/mcore/mcore.c (mcore_external_libcall): Add a
11707         comment.
11708         (mcore_return_in_memory): Likewise.
11709
11710 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11711
11712         * config/mcore/mcore-protos.h: Remove the prototype for
11713         mcore_setup_incoming_varargs.
11714         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11715         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
11716         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
11717         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11718         (TARGET_STRUCT_VALUE_RTX): Likewise.
11719         (TARGET_RETURN_IN_MEMORY): Likewise.
11720         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11721         (mcore_setup_incoming_varargs): Make it static.  Receive the
11722         first argument by reference.  Add argument second_time.
11723         (mcore_external_libcall): New.
11724         (mcore_return_in_memory): Likewise.
11725         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
11726         (PROMOTE_FUNCTION_RETURN): Likewise.
11727         (STRUCT_VALUE): Likewise.
11728         (RETURN_IN_MEMORY): Likewise.
11729         (SETUP_INCOMING_VARARGS): Likewise.
11730         (PROMOTE_PROTOTYPES): Likewise.
11731         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11732
11733 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11734
11735         * config/m32r/m32r-protos.h: Remove the prototype for
11736         m32r_setup_incoming_varargs.
11737         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
11738         (TARGET_STRUCT_VALUE_RTX): Likewise.
11739         (TARGET_RETURN_IN_MEMORY): Likewise.
11740         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11741         (m32r_return_in_memory): New.
11742         (m32r_setup_incoming_varargs): Make it static.
11743         * config/m32r/m32r.h: Remove #undef of
11744         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
11745         definitions of PROMOTE_FUNCTION_ARGS and
11746         PROMOTE_FUNCTION_RETURN.
11747         (PROMOTE_PROTOTYPES): Remove.
11748         (RETURN_IN_MEMORY): Likewise.
11749         (STRUCT_VALUE): Likewise.
11750
11751 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11752
11753         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
11754         (TARGET_STRUCT_VALUE_RTX): Likewise.
11755         (m68k_struct_value_rtx): Likewise.
11756         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
11757         STRUCT_VALUE_REGNUM.
11758         (PROMOTE_PROTOTYPES): Remove.
11759         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
11760         STRUCT_VALUE_REGNUM.
11761         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
11762         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
11763
11764 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11765
11766         * config/stormy16/stormy16.c
11767         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
11768         TARGET_BUILD_BUILTIN_VA_LIST.
11769
11770 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11771
11772         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
11773         (TARGET_STRUCT_VALUE_RTX): Likewise.
11774         (TARGET_RETURN_IN_MEMORY): Likewise.
11775         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11776         (v850_return_in_memory): Likewise.
11777         (v850_setup_incoming_varargs): Likewise.
11778         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
11779         (SETUP_INCOMING_VARARGS): Likewise.
11780         (RETURN_IN_MEMORY): Likewise.
11781         (STRUCT_VALUE): Likewise.
11782
11783 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11784
11785         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
11786         (fr30_setup_incoming_varargs): Don't use
11787         STRICT_ARGUMENT_NAMING.
11788         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
11789         (STRICT_ARGUMENT_NAMING): Likewise.
11790
11791 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11792
11793         * config/frv/frv-protos.h: Remove the prototype for
11794         frv_expand_builtin_saveregs.
11795         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
11796         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
11797         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
11798         STRUCT_VALUE_REGNUM.
11799         (frv_expand_builtin_saveregs): Make it static.
11800         (frv_struct_value_rtx): New.
11801         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
11802
11803 2004-01-29  Jan Hubicka  <jh@suse.cz>
11804
11805         PR c++/12850
11806         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
11807         initial pointers.
11808         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
11809         for functions that will be only inlined.
11810         (cgraph_mark_function_to_output): Likewise.
11811         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
11812         do not clear function body.
11813         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
11814         (tree_rest_of_compilation): Reorganize the logic releasing function
11815         body to use callgraph datastructure.
11816
11817 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11818
11819         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
11820         to register_operand.
11821
11822 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
11823
11824         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
11825         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
11826         match_operand expressions so that all match_dups appear
11827         lexically after their corresponding match_operands.
11828
11829 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11830
11831         * config/h8300/h8300.c (WORD_REG_USED): Use
11832         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
11833         (compute_saved_regs): Likewise.
11834         (h8300_expand_prologue): Likewise.  Allocate locals after
11835         saving registers.
11836         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
11837         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
11838         registers.
11839         (h8300_initial_elimination_offset): Adjust for the new frame
11840         layout, which swaps flips the order of locals and saved
11841         registers.
11842         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
11843         (HARD_FRAME_POINTER_REGNUM): New.
11844         (ELIMINABLE_REGS): Add an elimination rule from
11845         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
11846         (REGISTER_NAMES): Add fp.
11847         * config/h8300/h8300.md (FP_REG): Change to 11.
11848         (HFP_REG): New.
11849
11850 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11851
11852         * genrecog.c (write_node): Remove a useless local variable.
11853
11854 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
11855
11856         * Makefile.in (options.c options.h): Use stamp file s-options to
11857         avoid unnecessary rebuilds.
11858         (options.o): New target listing dependencies.
11859         (gtyp-gen.h): Use stamp file s-gtyp-gen.
11860         (STAGESTUFF): Add s-gtyp-gen.
11861
11862 2004-01-28  Richard Henderson  <rth@redhat.com>
11863
11864         * ggc.h (ggc_free): Declare.
11865         * ggc-common.c (ggc_realloc): Use it.
11866         * ggc-page.c: Remove lots of inline markers.
11867         (globals): Add free_object_list.
11868         (ggc_alloc): Tidy.
11869         (ggc_free, validate_free_objects): New.
11870         (poison_pages): Provide default.
11871         (ggc_collect): Call validate_free_objects; emit markers to
11872         the debug file.
11873
11874 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
11875             Jim Wilson  <wilson@specifixinc.com>
11876
11877         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
11878         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
11879         scratch pointer.
11880         (ia64_secondary_reload_class): Delete case GR_REGS.
11881         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
11882         Do not allocate a scratch register.
11883         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
11884
11885 2004-01-28  Jan Hubicka  <jh@suse.cz>
11886
11887         * gcse.c (bypass_block): Prevent edges to be unified when we are
11888         about to emit compenstation code.
11889
11890 2004-01-28  Nick Clifton  <nickc@redhat.com>
11891
11892         * config/arm/arm.c (arm_expand_builtin): Force second argument of
11893         the setcwx insn into a register.
11894
11895 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
11896
11897         * config/fp-bit.c (pack_d): When using paired doubles to implement
11898         a long double, round the high part separately.
11899         (unpack_d): Fix the case in which the high part is a power of two
11900         and the low part is a nonzero value of the opposite sign.
11901
11902 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11903
11904         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11905         (TARGET_STRUCT_VALUE_RTX): Likewise.
11906         (c4x_external_libcall): Likewise.
11907         (c4x_struct_value_rtx): Likewise.
11908         * config/c4x/c4x.h: Remove.
11909         (STRUCT_VALUE_REGNUM): Likewise.
11910         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
11911
11912 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
11913
11914         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
11915         (TARGET_STRUCT_VALUE_RTX): Likewise.
11916         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
11917         (STRUCT_VALUE): Likewise.
11918         (PROMOTE_PROTOTYPES): Likewise.
11919
11920 2004-01-27  Roger Sayle  <roger@eyesopen.com>
11921
11922         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
11923         CONST_INT before using INTVAL.
11924
11925 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
11926
11927         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
11928         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
11929         frame if !TARGET_BACKCHAIN.
11930         * config/s390/s390.md ("allocate_stack"): Use pattern only if
11931         TARGET_BACKCHAIN.
11932         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
11933
11934 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
11935
11936         * ia64.c (ia64_function_arg): When placing HFAs in integer
11937         registers, do not special case the mode used for complex
11938         types.  Do not advance int_regs until the current register
11939         is full.
11940
11941 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
11942
11943         PR target/7297
11944         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
11945
11946 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
11947
11948         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
11949         slow, unaligned loads and stores while debugging.  Fix formatting.
11950
11951 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
11952
11953         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
11954         of computing wmode.
11955         (restore_stack_nonlocal): Same.
11956
11957 2004-01-27  Devang Patel <dpatel@apple.com>
11958
11959         * Makefile.in (dwarf2out.o): Depend on input.h
11960         * dbxout.c (dbx_debug_hooks): Add new empty hook for
11961         imported_module_or_decl.
11962         (xcoff_debug_hooks): Same.
11963         * sdbout.c (sdb_debug_hooks): Same.
11964         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
11965         * debug.c (do_nothing_debug_hooks): Same.
11966         (debug_nothing_tree_tree): New function.
11967         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
11968         * dwarf2out.c: Include input.h.
11969         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
11970         (remove_child_TAG): New function.
11971         (dwarf_tag_name): Handle DW_TAG_imported_module.
11972         (gen_subprogram_die): Equate decl number to declaration die. Do not
11973         remove all children dies while reusing declaration die for definition.
11974         Instead, selectively remove only formal parameters.
11975         (gen_variable_die): Equate variable decl to declaration die.
11976         (gen_field_die): Equate field decl to line number.
11977         (force_namespace_die): Replace it with ...
11978         (force_decl_die): ... this.
11979         (force_type_die): New function.
11980         (setup_namespace_context): Replace use of force_namespace_die() with
11981         force_decl_die().
11982         (gen_namespace_die): Same.
11983         (dwarf2out_imported_module_or_decl): New function.
11984
11985 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
11986
11987         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
11988         on CQImode and CHImode incoming arguments in register a7.
11989         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
11990         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
11991         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
11992         xtensa_copy_incoming_a7 before reload.
11993
11994 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
11995
11996         * coverage.c (get_coverage_counts): Give a different message
11997         if flag_guess_branch_prob is set.
11998         * predict.c (counts_to_freqs): Return an int.
11999         (estimate_bb_frequencies): If counts_to_freqs returns zero,
12000         calculate estimates.
12001
12002 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
12003
12004         * config/iq2000/iq2000-protos.h: Remove the prototype for
12005         iq2000_setup_incoming_varargs.
12006         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12007         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12008         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12009         (TARGET_STRUCT_VALUE_RTX): Likewise.
12010         (TARGET_RETURN_IN_MEMORY): Likewise.
12011         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12012         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12013         (iq2000_return_in_memory): Likewise.
12014         (iq2000_setup_incoming_varargs): Make it static.  Receive the
12015         first argument by reference.
12016         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
12017         (PROMOTE_FUNCTION_RETURN): Likewise.
12018         (PROMOTE_PROTOTYPES): Likewise.
12019         (RETURN_IN_MEMORY): Likewise.
12020         (STRUCT_VALUE): Likewise.
12021         (SETUP_INCOMING_VARARGS): Likewise.
12022         (STRICT_ARGUMENT_NAMING): Likewise.
12023
12024 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
12025
12026         * fixinc/fixinc.c (test_test): Initialize res.
12027         (start_flexer): Initialize pz_cmd_save.
12028
12029 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
12030
12031         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
12032         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
12033
12034 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
12035
12036         PR 7198
12037         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
12038         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
12039         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
12040         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
12041         Possibly rename pattern for consistency.
12042         Remove ??? comments suggesting that this be done.
12043         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
12044         New patterns.
12045         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
12046         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
12047         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
12048         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
12049         Update to match.
12050
12051 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
12052
12053         * config/arm/arm.c (output_return_instruction): Only restore IP
12054         into SP if frame_pointer_needed.
12055
12056 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12057
12058         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12059         for SCmode and DCmode if ARCH32.
12060         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
12061         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
12062         if ARCH32.
12063         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
12064         if ARCH32.
12065         (BASE_OUTGOING_VALUE_REG): Likewise.
12066
12067 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
12068
12069         PR target/10904
12070         PR target/13058
12071         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
12072         Forbid mode changes from SImode for lower FP regs if ARCH64.
12073
12074 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
12075
12076         * Makefile.in (bt-load.o): Depend on except.h.
12077         * bt-load.c (except.h): #include.
12078         (compute_defs_uses_and_gen): If insn at end of BB can throw
12079         within this function, consider registers used by it unavailable for
12080         btr migration.
12081         (move_btr_def): If insn at end of BB can throw, insert before rather
12082         than after.
12083
12084         * flags.h (flag_btr_bb_exclusive): Declare.
12085         * toplev.c (flag_btr_bb_exclusive): New variable.
12086         (f_options): Add btr-bb-exclusive.
12087         * bt-load.c (augment_live_range): Restore old behaviour if
12088         flag_btr_bb_exclusive is set.
12089         * common.opt: Add entry for -fbtr-bb-exclusive.
12090         * opts.c (common_handle_options): Same.
12091         * doc/invoke.texi: Document -fbtr-bb-exclusive.
12092
12093         * bt-load.c (btrs_live_at_end): New variable.
12094         (compute_defs_uses_and_gen): Compute its pointed-to array.
12095         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
12096         (augment_live_range): When augmenting with a new dominator,
12097         use only its btrs_live_at_end set, but also add in the full set
12098         of the old dominator.
12099         (btr_def_live_range): Use btrs_live_at_end.
12100         (move_btr_def): Set other_btr_uses_before_def, and move new set
12101         to the end of the basic block, if appropriate.
12102         (migrate_btr_defs): Allocate and free btrs_live_at_end.
12103
12104         * bt-load.c (basic_block_freq): Remove outdated comment.
12105
12106 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
12107
12108         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
12109         (PREDICATE_CODES): Remove duplicate.
12110         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
12111         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
12112         (MASK_PROFILE_KERNEL): Adjust define.
12113
12114 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
12115
12116         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
12117         of long string literals from 32 bytes to sizeof (void *) when !-Os
12118         and to 1 with -Os.
12119
12120 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12121
12122         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
12123         constant addresses in the normal mode.
12124
12125 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12126
12127         * system.h (CHAR_BITFIELD): Delete.
12128         (BOOL_BITFIELD): New.
12129         * c-decl.c (c_scope): Use BOOL_BITFIELD.
12130         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
12131
12132 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12133
12134         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12135         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12136         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12137         (TARGET_STRUCT_VALUE_RTX): Likewise.
12138         (TARGET_RETURN_IN_MEMORY): Likewise.
12139         (arc_return_in_memory): Likewise.
12140         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
12141         (PROMOTE_FUNCTION_RETURN): Likewise.
12142         (RETURN_IN_MEMORY): Likewise.
12143         (STRUCT_VALUE): Likewise.
12144
12145 2004-01-26  Richard Henderson  <rth@redhat.com>
12146
12147         * c-parse.in (extension): Use itype.
12148         (SAVE_EXT_FLAGS): Don't allocate a tree.
12149         (RESTORE_EXT_FLAGS): Don't read a tree.
12150
12151 2004-01-26  Jan Hubicka  <jh@suse.cz>
12152
12153         * cselib.c (discard_useless_values):  Clear out value pointer pointing
12154         to datastructure to be recycled.
12155
12156 2004-01-25  Jan Hubicka  <jh@suse.cz>
12157
12158         * genextract.c (main): Do not output the memset when not checking.
12159
12160 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12161
12162         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
12163         switch statement instead of a chain of if statements.
12164
12165 2004-01-26  Jeff Law  <law@redhat.com>
12166
12167         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
12168         acute accents for Petur Runolfsson's entry.
12169
12170 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12171
12172         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
12173         (TARGET_RETURN_IN_MEMORY): Likewise.
12174         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
12175         (RETURN_IN_MEMORY): Likewise.
12176
12177 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12178
12179          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
12180          unaligned load/store into smaller loads and stores.
12181
12182 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12183
12184         * function.c (assign_parms): Do not assign
12185         long long argument to memory in prologue if
12186         is it loaded into register.
12187
12188 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12189
12190          PR middle-end/13779
12191          * expr.c (emit_group_load): split constant
12192          correctly into register components of PARALLEL insn.
12193
12194 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
12195
12196         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
12197         Use adjust_address_nv directly with appropriate mode.
12198         (restore_stack_nonlocal): Ditto.
12199
12200 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12201
12202         * config/xtensa/xtensa-protos.h: Remove the prototype for
12203         xtensa_builtin_saveregs.
12204         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12205         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12206         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12207         (TARGET_STRUCT_VALUE_RTX): Likewise.
12208         (TARGET_RETURN_IN_MEMORY): Likewise.
12209         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12210         (xtensa_builtin_saveregs): Make it static.
12211         (xtensa_return_in_memory): New.
12212         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
12213         (PROMOTE_FUNCTION_RETURN): Likewise.
12214         (PROMOTE_PROTOTYPES): Likewise.
12215         (STRUCT_VALUE): Likewise.
12216         (RETURN_IN_MEMORY): Likewise.
12217         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12218
12219 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12220
12221         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
12222         (arm_setup_incoming_varargs): Likewise.
12223         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
12224
12225 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12226
12227         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
12228         (cris_setup_incoming_varargs): Likewise.
12229         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
12230
12231 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12232
12233         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
12234         (ns32k_struct_value_rtx): Likewise.
12235         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
12236         NS32K_STRUCT_VALUE_REGNUM.
12237
12238 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12239
12240         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12241         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12242         (TARGET_STRUCT_VALUE_RTX): Likewise.
12243         (arm_struct_value_rtx): Likewise.
12244         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
12245         (STRUCT_VALUE): Likewise.
12246         (STRUCT_VALUE_REGNUM): Likewise.
12247         (PROMOTE_PROTOTYPES): Likewise.
12248
12249 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
12250
12251         * config/ia64/ia64-protos.h: Remove the prototype for
12252         ia64_setup_incoming_varargs and ia64_return_in_memory.
12253         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
12254         (TARGET_RETURN_IN_MEMORY): Likewise.
12255         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12256         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12257         (ia64_setup_incoming_varargs): Adjust the arguments to meet
12258         the requirement of TARGET_SETUP_INCOMING_VARARGS.
12259         (ia64_return_in_memory): Make it static.  Change the return
12260         type to bool from int.  Add an argument.
12261         (ia64_struct_value_rtx): New.
12262         * config/ia64/ia64.h: Remove commented-out definitions of
12263         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
12264         PROMOTE_PROTOTYPES.
12265         (RETURN_IN_MEMORY): Remove.
12266         (STRUCT_VALUE_REGNUM): Likewise.
12267         (STRICT_ARGUMENT_NAMING): Likewise.
12268
12269 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
12270
12271         PR target/13666
12272         * config/sparc/sparc.c (function_arg_union_value): New function.
12273         (function_arg): Use it to deal with unions.
12274         (function_value): Likewise.  Define 'regbase' only for ARCH64.
12275         Replace a conditional statement by a simpler one.
12276
12277 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
12278
12279         * config/mips/mips.c (mips16_optimize_gp): Delete.
12280         (mips_reorg): Don't call it.
12281
12282 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12283
12284         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
12285         (floatunsqihf2): Remove operand 6.
12286         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
12287         fix patterns.
12288         (ldi_conditional, ldf_conditional): Validate operands.
12289
12290 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12291
12292         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
12293         (HAVE_GAS_HIDDEN): Undefine as interim measure.
12294
12295 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12296
12297         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
12298         memory references if TARGET_EXPOSE_LDP nonzero.
12299
12300 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12301
12302         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
12303
12304 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12305
12306         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
12307         invalid operand combinations.
12308
12309 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12310
12311         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
12312         c4x_legitimate_address_p.  Fix post_modify check.
12313
12314         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
12315         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
12316
12317 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12318
12319         * config/pa/pa-protos.h: Remove the prototype for
12320         hppa_builtin_saveregs.  Add a prototype for
12321         pa_return_in_memory.
12322         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
12323         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12324         (TARGET_STRUCT_VALUE_RTX): Likewise.
12325         (TARGET_RETURN_IN_MEMORY): Likewise.
12326         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12327         (pa_struct_value_rtx): Likewise.
12328         (pa_return_in_memory): Likewise.
12329         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
12330         PA_STRUCT_VALUE_REGNUM.
12331         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
12332         (EXPAND_BUILTIN_SAVEREGS): Remove.
12333         (PROMOTE_PROTOTYPES): Likewise.
12334         (PROMOTE_FUNCTION_RETURN): Likewise.
12335
12336 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12337
12338         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
12339         (TARGET_STRUCT_VALUE_RTX): Likewise.
12340         (vax_struct_value_rtx): Likewise.
12341         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
12342         VAX_STRUCT_VALUE_REGNUM.
12343         (PROMOTE_PROTOTYPES): Remove.
12344
12345 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12346
12347         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
12348
12349 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
12350
12351         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
12352         and MIPS64 have HI/LO interlocks.  Update comment.
12353
12354 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12355
12356         * config/stormy16/stormy16-protos.h: Remove the prototype for
12357         xstormy16_setup_incoming_varargs.
12358         * config/stormy16/stormy16.c
12359         (xstormy16_setup_incoming_varargs): Remove.
12360         (xstormy16_return_in_memory): New.
12361         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
12362         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12363         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12364         (TARGET_STRUCT_VALUE_RTX): Likewise.
12365         (TARGET_RETURN_IN_MEMORY): Likewise.
12366         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
12367         (PROMOTE_FUNCTION_RETURN): Likewise
12368         (PROMOTE_PROTOTYPES): Likewise
12369         (RETURN_IN_MEMORY): Likewise
12370         (STRUCT_VALUE): Likewise
12371         (SETUP_INCOMING_VARARGS): Likewise
12372
12373 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12374
12375         * config/mips/mips.c (mips_offset_within_object_p): New function.
12376         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
12377         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
12378         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
12379
12380 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12381
12382         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
12383         (PROMOTE_FUNCTION_RETURN): Likewise.
12384
12385 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12386
12387         * config/mn10300/mn10300-protos.h: Remove the prototype for
12388         mn10300_builtin_saveregs.
12389         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
12390         (TARGET_STRUCT_VALUE_RTX): Likewise.
12391         (TARGET_RETURN_IN_MEMORY): Likewise.
12392         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12393         (mn10300_return_in_memory): Likewise.
12394         (mn10300_builtin_saveregs): Make it static.
12395         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
12396         (RETURN_IN_MEMORY): Likewise.
12397         (STRUCT_VALUE): Likewise.
12398         (EXPAND_BUILTIN_SAVEREGS): Likewise.
12399
12400 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
12401
12402         PR bootstrap/13853
12403         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
12404
12405 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12406
12407         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
12408         using ccr.
12409
12410 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12411
12412         * config/i860/i860-protos.h: Remove the prototype for
12413         i860_saveregs.
12414         * config/i860/i860.c (i860_saveregs): Make it static.
12415         (i860_struct_value_rtx): New.
12416         (TARGET_STRUCT_VALUE_RTX): Likewise.
12417         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
12418         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
12419         I860_STRUCT_VALUE_REGNUM.
12420         (EXPAND_BUILTIN_SAVEREGS): Remove.
12421
12422 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12423
12424         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
12425         (TARGET_RETURN_IN_MEMORY): Likewise.
12426         (m68hc11_struct_value_rtx): Likewise.
12427         (m68hc11_return_in_memory): Likewise.
12428         * config/m68hc11/m68hc11.h: Remove a commented-out definition
12429         of PROMOTE_PROTOTYPES.
12430         (RETURN_IN_MEMORY): Remove.
12431         (STRUCT_VALUE_REGNUM): Likewise.
12432
12433 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12434
12435         * config/mmix/mmix-protos.h: Remove the prototype for
12436         mmix_setup_incoming_varargs.
12437         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12438         (TARGET_STRUCT_VALUE_RTX): Likewise.
12439         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12440         (mmix_setup_incoming_varargs): Make it static.
12441         (mmix_struct_value_rtx): New.
12442         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
12443         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
12444         (STRUCT_VALUE_REGNUM): Remove.
12445         (SETUP_INCOMING_VARARGS): Likewise.
12446
12447 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12448
12449         * config/mips/mips-protos.h: Remove the prototypes for
12450         mips_setup_incoming_varargs and mips_return_in_memory.
12451         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12452         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
12453         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12454         (TARGET_STRUCT_VALUE_RTX): Likewise.
12455         (TARGET_RETURN_IN_MEMORY): Likewise.
12456         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12457         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12458         (mips_setup_incoming_varargs): Match the prototype for
12459         TARGET_SETUP_INCOMING_VARARGS.
12460         (mips_return_in_memory): Make it static.  Add argument fntype.
12461         (mips_strict_argument_naming): New.
12462         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
12463         (PROMOTE_FUNCTION_ARGS): Likewise.
12464         (PROMOTE_FUNCTION_RETURN): Likewise.
12465         (STRUCT_VALUE): Likewise.
12466         (RETURN_IN_MEMORY): Likewise.
12467         (SETUP_INCOMING_VARARGS): Likewise.
12468         (STRICT_ARGUMENT_NAMING): Likewise.
12469
12470 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12471
12472         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
12473         (TARGET_RETURN_IN_MEMORY): Likewise.
12474         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12475         (ip2k_return_in_memory): Likewise.
12476         (ip2k_setup_incoming_varargs): Likewise.
12477         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
12478         (STRUCT_VALUE): Likewise.
12479         (STRUCT_VALUE_INCOMING): Likewise.
12480         (SETUP_INCOMING_VARARGS): Likewise.
12481
12482 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
12483
12484         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
12485         (TARGET_RETURN_IN_MEMORY): Likewise.
12486         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
12487         (avr_return_in_memory): Remove.
12488         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
12489         (STRUCT_VALUE): Likewise.
12490         (STRUCT_VALUE_INCOMING): Likewise.
12491         (STRICT_ARGUMENT_NAMING): Likewise.
12492
12493 2004-01-25  Jan Hubicka  <jh@suse.cz>
12494
12495         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
12496
12497 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
12498
12499         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
12500         (mips_regno_mode_ok_for_base_p): Declare.
12501         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
12502         (FRAME_POINTER_REGNUM): Renumber to 78.
12503         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
12504         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
12505         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
12506         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
12507         (REG_MODE_OK_FOR_BASE_P): Likewise.
12508         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
12509         entry for 77 to "$arg" and entry for 78 to "$frame".
12510         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
12511         (mips_reg_mode_ok_for_base_p): Remove.
12512         (mips_regno_mode_ok_for_base_p): New function, derived from old
12513         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
12514         restrictions unless we're being strict.
12515         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
12516
12517 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12518
12519         * c-common.h: Fix comment typos.
12520         * c-decl.c: Likewise.
12521         * cgraphunit.c: Likewise.
12522         * combine.c: Likewise.
12523         * et-forest.c: Likewise.
12524         * flow.c: Likewise.
12525         * function.c: Likewise.
12526         * ifcvt.c: Likewise.
12527         * integrate.c: Likewise.
12528         * jump.c: Likewise.
12529         * postreload.c: Likewise.
12530         * varray.c: Likewise.
12531
12532 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12533
12534         * doc/frontends.texi: Update copyright.
12535         * doc/gcov.texi: Likewise.
12536         * doc/gty.texi: Likewise.
12537         * doc/sourcebuild.texi: Likewise.
12538         * doc/standards.texi: Likewise.
12539
12540 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
12541
12542         PR target/12978
12543         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
12544         Remove movstrqi_small because it conflicts with movstrqi_large.
12545
12546 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12547
12548         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
12549         (TARGET_STRUCT_VALUE_RTX): Likewise.
12550         (cris_struct_value_rtx): Likewise.
12551         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
12552         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
12553         STRUCT_VALUE_REGNUM.
12554         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
12555
12556 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
12557
12558         PR bootstrap/13848
12559         * cse.c (cse_cc_succs): Change the mode of the source expression
12560         as soon as decide we need a new mode.  Don't permit changing modes
12561         if we found a match in a successor block.
12562         (cse_condition_code_reg): Save original mode of source expression
12563         so that we know whether we have to change the mode in other
12564         insns.
12565
12566 2004-01-24  Jan Hubicka  <jh@suse.cz>
12567
12568         * emit-rtl.c (change_address, adjust_address_1, offset_address,
12569         widen_memory_access):  Return early when there is nothing to change.
12570
12571 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
12572
12573         * simplify-rtx.c (simplify_relational_operation): Don't
12574         simplify address == constant into address + -constant == 0.
12575
12576 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12577
12578         * gcc.c (process_command): Don't internationalize the
12579         Copyright message.
12580         * mips-tfile.c (main): Likewise.
12581
12582 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
12583
12584         * cse.c: (cse_cc_succs) Fix comparison warning.
12585
12586 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12587
12588         * config/h8300/h8300.md: Remove extraneous USE in expanders.
12589
12590 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12591
12592         * config/h8300/h8300-protos.h: Provide prototypes for
12593         h8300_legitimate_constant_p and h8300_legitimate_address_p.
12594         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
12595         (h8300_rtx_ok_for_base_p): Likewise.
12596         (h8300_legitimate_address_p): Likewise.
12597         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
12598         h8300_legitimate_constant_p.
12599         (RTX_OK_FOR_BASE_P): Remove.
12600         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
12601
12602 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
12603
12604         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
12605         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
12606         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
12607         (REG_OK_FOR_BASE_STRICT_P): Likewise.
12608         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
12609         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
12610         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
12611         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
12612
12613 2004-01-24  Jan Hubicka  <jh@suse.cz>
12614
12615         * cselib.c (remove_useless_values):  Do not access discarded values.
12616
12617 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
12618
12619         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
12620         arrays.
12621
12622 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
12623
12624         * recog.c: Fix a typo in copyright.
12625
12626 2004-01-23  Andrew Pinski  <apinski@apple.com>
12627
12628         * config/rs6000/rs6000.md (call): Fix misappiled patch.
12629         (call_value): Likewise.
12630
12631 2004-01-23  Richard Henderson  <rth@redhat.com>
12632
12633         PR opt/12941
12634         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
12635         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
12636         if SHIFT_COUNT_TRUNCATED is set.
12637
12638 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
12639
12640         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
12641         separate real and imaginary parts.
12642         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
12643
12644 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
12645
12646         PR target/13674
12647         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
12648         loading into GPR.
12649
12650 2004-01-23  Jan Hubicka  <jh@suse.cz>
12651
12652         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
12653         change.
12654
12655         * alloc-pool.c (align_four): Kill.
12656         (create_alloc_pool): Align size to eight.
12657         (free_alloc_pool, free_pool): Invalidate deallocated data.
12658
12659 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
12660
12661         PR gcc/1532
12662         * cse.c (cse_change_cc_mode): New static function.
12663         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
12664         (cse_condition_code_reg): New function.
12665         * rtl.h (cse_condition_code_reg): Declare.
12666         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
12667         * target.h (struct gcc_target): Add fixed_condition_code_regs and
12668         cc_modes_compatible.
12669         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12670         (TARGET_CC_MODES_COMPATIBLE): Define.
12671         (TARGET_INITIALIZER): Add new initializers.
12672         * targhooks.c (default_cc_modes_compatible): New function.
12673         * targhooks.c (default_cc_modes_compatible): Declare.
12674         * hooks.c (hook_bool_intp_intp_false): New function.
12675         * hooks.h (hook_bool_intp_intp_false): Declare.
12676         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
12677         (TARGET_CC_MODES_COMPATIBLE): Define.
12678         (ix86_fixed_condition_code_regs): New static function.
12679         (ix86_cc_modes_compatible): Likewise.
12680         * doc/tm.texi (Condition Code): Document new hooks.
12681
12682 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12683
12684         * fixinc/inclhack.def (bad_lval): Renamed to ...
12685         (alpha_bad_lval): ... this.
12686         Removed file list.
12687         Restrict to alpha*-dec-osf*.
12688         * fixinc/fixincl.x: Regenerate.
12689         * fixinc/tests/base/dirent.h: Remove, moving test ...
12690         * fixinc/tests/base/testing.h: ... here, reflecting new name.
12691
12692 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
12693
12694         PR c/13814
12695         * c-decl.c (diagnose_mismatched_decls): Also discard a
12696         built-in if we encounter an old-style definition with the
12697         same name.
12698
12699 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
12700
12701         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
12702         set to default{32,64}.
12703
12704 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
12705
12706         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
12707         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
12708
12709 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
12710             Olivier Hainque  <hainque@act-europe.fr>
12711
12712         * fold-const.c (fold_binary_op_with_conditional_arg): Only
12713         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
12714
12715 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
12716
12717         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
12718         size for minipool references.
12719
12720 2004-01-23  Roger Sayle  <roger@eyesopen.com>
12721
12722         * real.c (real_floor, real_ceil): Tweak to allow input and output
12723         arguments to overlap.
12724         (real_round): New function to implement round(3m) semantics.
12725         * real.h (real_round): Prototype here.
12726         * builtins.c (fold_builtin_round): New function to constant fold
12727         round, roundf and roundl.
12728         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
12729
12730 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
12731
12732         PR optimization/13819
12733         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
12734         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
12735         (sh_handle_sp_switch_attribute): Remove warning.
12736
12737 2003-11-30  Jan Hubicka  <jh@suse.cz>
12738
12739         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
12740
12741 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
12742
12743         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
12744         may or may not return non-NIL.
12745         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
12746         check CANNOT_CHANGE_MODE_CLASS
12747
12748 2004-01-23  Jan Hubicka  <jh@suse.cz>
12749
12750         * basic-block.h (PROP_POSTRELOAD): New macro.
12751         (CLEANUP_LOG_LINKS): New.
12752         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
12753         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
12754
12755         * cselib.c (value_pool): New.
12756         (new_cselib_val): Use pool.
12757         (cselib_init): Initialize value_pool
12758         (cselib_finish): Free pool.
12759
12760 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12761
12762         * config/sparc/sparc.c (scan_record_type): New function.
12763         (function_arg_slotno): Use it to determine which kinds of
12764         registers the record can be passed in.
12765
12766 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
12767
12768         * config/pa/fptr.c: Fix old-style definition.
12769
12770 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
12771
12772         PR optimization/13724
12773         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
12774         represents the zero bits produced by a ZERO_EXTEND operation.
12775
12776 2004-01-22  Roger Sayle  <roger@eyesopen.com>
12777
12778         PR optimization/13821
12779         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
12780         correctly calculate the lowpart offset of the contracted subreg.
12781
12782 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
12783
12784         * doc/invoke.texi (Optimize Options): Note that --param arguments
12785         are subject to change without notice.
12786
12787 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12788
12789         * config.gcc (mips-sgi-irix6*o32): Removed.
12790         * config/mips/iris6-o32-as.h: Likewise.
12791         * config/mips/iris6-o32-gas.h: Likewise.
12792         * config/mips/iris6-o32.h: Likewise.
12793
12794 2004-01-22  Jan Hubicka  <jh@suse.cz>
12795
12796         * cfgcleanup.c (first_pass): New static variable.
12797         (try_forward_edges):  Add work limiting check for threading.
12798         (try_crossjump_bb):  Add work limiting check for crossjumping.
12799         (try_optimize_cfg):  Maintain first pass variable.
12800
12801 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
12802
12803         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
12804         handles complex and vector modes.
12805
12806 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
12807
12808         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
12809         (REG_OK_FOR_BASE_P_STRICT): Likewise.
12810         (STRICT): Likewise.
12811
12812 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
12813
12814         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
12815         (genrtl_for_stmt): Remove emit_nop calls.
12816
12817 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12818
12819         PR target/13713
12820         PR target/13324
12821         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
12822         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
12823         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
12824
12825 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
12826
12827         * config/arm/arm.c: Include "debug.h".
12828         (thumb_pushpop): Take two new arguments.  Add some commentary.
12829         Output frame information when pushing.
12830         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
12831         thumb_pushpop.
12832         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
12833         offset, and pass it to thumb_pushpop.  Output CFI information.
12834         (thumb_expand_prologue): Add some frame-related markers and notes.
12835
12836 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
12837
12838         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
12839         for TARGET_64BIT.
12840         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
12841         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
12842
12843 2004-01-22  Roger Sayle  <roger@eyesopen.com>
12844             Paolo Bonzini  <bonzini@gnu.org>
12845
12846         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
12847         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
12848         * rtl.h (subreg_lsb_1): Prototype here.
12849         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
12850         sign extensions.
12851
12852 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
12853
12854         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
12855         macro need not be defined if jump-tables should contain
12856         relative addresses only when -fPIC or -fPIC is in effect.
12857
12858 2004-01-22  Jan Hubicka  <jh@suse.cz>
12859
12860         * alias.c (reg_base_value): Turn into varray.
12861         (reg_base_value_size): Kill.
12862         (old_reg_base_value): New deletable varray.
12863         (alias_invariant_size): New variable.
12864         (REG_BASE_VALUE): Update to use varray.
12865         (find_base_value): Likewise.
12866         (record_set): Likewise.
12867         (record_base_value): Likewise.
12868         (memrefs_conflict_p): Likewise.
12869         (record_set): Likewise
12870         (record_base_value): Likewise.
12871         (memrefs_conflict_p): Use alias_invariant_size.
12872         (init_alias_analysis): Use varray; set alias_invariant_size;
12873         rescale other arrays to be sized by maxreg.
12874         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
12875
12876 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
12877
12878         * config/sparc/sparc.c (function_arg_slotno): Use
12879         FLOAT_TYPE_P to detect FP fields in structures.
12880         (function_arg_record_value_1): Likewise.
12881         (function_arg_record_value_2): Likewise.
12882
12883 2004-01-22  Jan Hubicka  <jh@suse.cz>
12884
12885         * function.c (allocate_struct_function): Do not initialize expr, emit
12886         and varasm.
12887         (prepare_function_start): Do it here.
12888         * c-parse.in (maybe_type_qual): Do not produce line number notes.
12889
12890 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
12891
12892         PR target/13559
12893         * config/sparc/sparc.c (function_arg_record_value_3): Revert
12894         to 'word_mode' once the first slot has been filled.
12895
12896 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
12897
12898         * config/sparc/sparc.c (function_arg_record_value_1): Fix
12899         computation of the number of integer registers required.
12900
12901 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12902
12903         * config/i386/i386.md: Simplify certain comparisons of
12904         const_int.
12905
12906 2004-01-21  Andrew Pinski  <apinski@apple.com>
12907
12908         PR target/13785
12909         * config/rs6000/rs6000.md (call_value): Force operand
12910         1 not operand 0 into a register.
12911
12912 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12913
12914         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
12915         unwind-dw2-fde.h: Update copyright.
12916
12917 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12918
12919         * pa-protos.h: Update copyright.
12920         * pa.h: Likewise.
12921         * pa.md: Likewise.
12922
12923 2004-01-21  Caroline Tice  <ctice@apple.com>
12924
12925         PR target/12308
12926         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
12927         flags register.
12928         (fix_truncdfdi2): Likewise.
12929         (fix_truncsfdi2): Likewise.
12930         (*fix_truncdi_1): Likewise.
12931         (fix_truncxfsi2): Likewise.
12932         (fix_truncdfsi2): Likewise.
12933         (fix_truncsfsi2): Likewise.
12934         (*fix_truncsi_1): Likewise.
12935         (fix_truncxfhi2): Likewise.
12936         (fix_truncdfhi2): Likewise.
12937         (fix_truncsfhi2): Likewise.
12938         (*fix_trunchi_1): Likewise.
12939
12940 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12941
12942         * alias.c, basic-block.h, c-common.c, c-common.h,
12943         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
12944         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
12945         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
12946         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
12947         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
12948         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
12949         genautomata.c, genconditions.c, genemit.c, genflags.c,
12950         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
12951         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
12952         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
12953         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
12954         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
12955         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
12956         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
12957         unwind.h, varray.c, varray.h: Update copyright.
12958
12959 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
12960
12961         * config/h8300/coff.h: Update copyright.
12962         * config/h8300/elf.h: Likewise.
12963         * config/h8300/h8300-protos.h: Likewise.
12964         * config/h8300/h8300.c: Likewise.
12965         * config/h8300/h8300.h: Likewise.
12966         * config/h8300/h8300.md: Likewise.
12967
12968 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12969
12970         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
12971         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
12972         ultrix_unistd): New hacks.
12973         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
12974         ULTRIX_CONST2_CHECK): Add checks.
12975         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
12976         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
12977         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
12978         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
12979         * fixinc/tests/base/locale.h: New file.
12980         * fixinc/fixincl.x: Rebuilt.
12981
12982 2004-01-21  Andreas Jaeger  <aj@suse.de>
12983             Michael Matz  <matz@suse.de>
12984
12985         * doc/extend.texi (Extended Asm): Clarify memory clobber.
12986
12987 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
12988
12989         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
12990         _Jv_RegisterClasses through a function pointer.
12991
12992 2004-01-21  Falk Hueffner  <falk@debian.org>
12993
12994         PR target/12898
12995         * config/alpha/alpha.c (alpha_emit_set_const_1): If
12996         no_new_pseudos, use gen_rtx_SET directly for SImode constants
12997         which need multiple instructions to emit.
12998
12999 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
13000
13001         * config/m32r/m32r.h (CPP_SPEC): Define.
13002
13003 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
13004
13005         * c-decl.c (merge_decls): Kill different_binding_level and
13006         different_tu arguments; simplify throughout.
13007         (duplicate_decls): Likewise.
13008         (pushdecl, merge_translation_unit_decls): Update calls to
13009         duplicate_decls.
13010
13011 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13012
13013         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
13014         $(SYSTEM_H).
13015         (print-rtl1.o): Depend on $(SYSTEM_H).
13016
13017 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
13018
13019         PR bootstrap/12730
13020         * configure.ac: Delete definition and subsitution of docdir.
13021         Add info, man, srcman and srcinfo to target hooks. Create doc/
13022         directory.
13023         * configure: Regenerate.
13024         * Makefile.in: Don't substitute docdir and delete all references
13025         throughout.
13026         (MAKEINFOFLAGS): Define.
13027         (stmp-docobjdir): Delete.
13028         (INFOFILES, MANFILES): Define.
13029         (info): Call lang.info, srcinfo and lang.srcinfo.
13030         (generated-manpages): Call lang.man, srcman and lang.srcman.
13031         (srcinfo, srcman): New rules to copy back files to source directory.
13032         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
13033         (install-man): Revamp rule.
13034         (clean): Update dvi directory.
13035         (distclean): Delete TAGS from front end directorys.
13036         (maintainer-clean): Delete all document files in source directory.
13037
13038         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
13039         (objc.srcman, objc.srcinfo): Likewise.
13040
13041 2004-01-20  Bruce Korb  <bkorb@gnu.org>
13042
13043         * fixinc/inclhack.def(math_exception): bypass only for glibc.
13044         (matherr_decl): rename & relocate as exception_structure.
13045         This fix must precede the math_exception fix.
13046
13047 2004-01-20  Roger Sayle  <roger@eyesopen.com>
13048
13049         * fold-const.c (fold_convert): Rename to fold_convert_const.
13050         (fold_convert_const): Change arguments to take a tree_code,
13051         a type and the operand/expression to be converted.  Return
13052         NULL_TREE if no simplification is possible.  Add support for
13053         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
13054         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
13055         Adjust call to fold_convert to match new fold_convert_const.
13056         Avoid modifying the tree passed to fold in-place.
13057
13058 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
13059
13060         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
13061         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
13062         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
13063
13064 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13065
13066         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
13067         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
13068         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
13069         (emit_move_sequence): Check scratch_reg first in various if statements.
13070         Extend source simplification to handle all 64-bit CONST_INTs.
13071         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
13072         frame size.
13073         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
13074         frame offset calculations.
13075         * pa.h (NEW_HP_ASSEMBLER): Add comment.
13076         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
13077         LEGITIMATE_64BIT_CONST_INT_P): Define.
13078         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
13079         any CONST_INT as legitimate during and after reload.
13080         (VAL_32_BITS_P, INT_32_BITS): Define.
13081         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
13082
13083 2004-01-20  Jan Hubicka  <jh@suse.cz>
13084
13085         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
13086         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
13087         containing hard regs are shared.
13088         (gen_hard_reg_clobber): New function.
13089         (hard_reg_clobbers): New array.
13090         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
13091         (copy_rtx): Do not copy clobbers containing hard regs.
13092         * rtl.h (gen_hard_reg_clobber): Declare.
13093
13094 2004-01-20  Jan Hubicka  <jh@suse.cz>
13095
13096         * varray.c:  Include hashtab.h
13097         (varray_descriptor): New structure.
13098         (hash_descriptor, eq_descriptor, varray_descriptor,
13099         print_statistics): New static functions
13100         (varray_init, varray_grow): Update statistics
13101         (dump_varray_statistics): New function.
13102         * varray.h (dump_varray_statistics): Declare.
13103         * toplev.c (finalize): Call it.
13104         * Makefile.in (varray.o): Add dependency.
13105
13106 2004-01-20  Jan Hubicka  <jh@suse.cz>
13107
13108         * cselib.c: Include alloc-pool.h
13109         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
13110         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
13111         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
13112         unchain_one_elt_loc_list_pool, unchain_one_value,
13113         new_cselib_val): Simplify using allocpool.
13114         (cselib_init): Initialize allocpools.
13115         (cselib_finish): Finish allocpools.
13116         * Makefile.in (cselib.o): Depend on alloc-pool.h
13117
13118 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
13119
13120         * config/mips/mips.c (mips_load_call_address): Make the call insn
13121         use $gp if it could be calling a lazy binding stub.
13122
13123 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
13124
13125         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
13126         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13127         (TARGET_STRUCT_VALUE_RTX): Likewise.
13128         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
13129         (PROMOTE_FUNCTION_RETURN): Remove.
13130         (STRUCT_VALUE): Remove.
13131
13132 2004-01-20  Denis Chertykov  <denisc@overta.ru>
13133
13134         PR bootstrap/13735
13135         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
13136         register as pointer after reload.
13137
13138 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13139
13140         PR optimization/12440
13141         * loop.c: Include ggc.h.
13142         (loop_optimize): Run garbage collector between optimization of loops.
13143         * Makefile.in (loop.o): Add GGC_H dependency.
13144
13145 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
13146
13147         * gcc/config/rs6000/rs6000.c (function_arg) Handle
13148         vector register special in function without prototype.
13149         (function_arg_advance): Vector parameters get always
13150         GPRs allocated for the linux64 target.
13151
13152 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
13153
13154         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
13155         not TARGET_M32RX_MASK.
13156
13157 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
13158
13159         PR target/13557
13160         * config/sparc/sparc.c (function_arg): Reorder the cases.
13161
13162 2004-01-19  Per Bothner  <per@bothner.com>
13163
13164         Move cpp_reader's line_maps field to a shared global.
13165         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
13166         and change the type to a pointer rather than a struct.
13167         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
13168         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
13169         Likewise.
13170         * cppfiles.c (validate_pch):  Likewise.
13171         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
13172         Likewise.
13173         * cpperror.c (print_location):  Likewise.
13174         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
13175         * cppinit.c (cpp_create_reader):  Handle new parameter.
13176         (cpp_destroy):  Don't free line_maps - that's no longer our job.
13177         * input.h (line_table):  New variable.
13178         * toplev.c (line_table):  Declare variable.
13179         (general_init):  Initialize line_table.
13180         * c-opts.c (c_common_init_options):  Pass line_table to
13181         cpp_create_reader.
13182         * fix-header.c (read_scan_file):  New local variable line_table.
13183         Initialize, and pass it to cpp_create_reader.
13184         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
13185         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
13186
13187 2004-01-19  Per Bothner  <per@bothner.com>
13188
13189         Implement a cache for linemap_lookup.
13190         * line-map.h (struct_line_maps):  Add cache field.
13191         * line-map.c (linemap_init):  Zero cache field.
13192         (linemap_add):  Set cache field to offset of newly allocated map.
13193         (linemap_lookup):  Use and set cache field.
13194
13195 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13196
13197         PR optimization/13567
13198         * cse.c (cse_basic_block): Call cse_insn with a non-null
13199         libcall_insn for the last SET insn of a no-confilict block.
13200
13201 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
13202
13203         * Makefile.in (target_noncanonical, program_transform_name): Use
13204         immediate define instead of deferred.
13205         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
13206         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
13207         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
13208         deferred backquote.
13209
13210 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
13211
13212         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
13213         true unconditionally.
13214         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
13215         Remove.
13216         (build_unary_op, build_modify_expr): Don't handle extended
13217         lvalues.
13218         (build_component_ref, build_conditional_expr): Call non_lvalue
13219         instead of pedantic_non_lvalue.
13220         (build_c_cast): Don't condition use of non_lvalue on pedantic.
13221         * fold-const.c (fold): Don't check pedantic directly for
13222         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
13223         passed to pedantic_non_lvalue.
13224         * doc/extend.texi: Remove documentation of extended lvalues.
13225
13226 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13227
13228         PR optimization/5263
13229         * simplify-rtx.c (associative_constant_p): Delete.
13230         (simplify_associative_operation): Rewrite to linearize terms, and
13231         attempt to simplify new term against both left and right subterms.
13232         (simplify_binary_operation): Call swap_commutative_operands_p on
13233         op0 and op1, not trueop0 and trueop1.  Move the initialization of
13234         trueop0 and trueop1 down to where first needed.
13235         (simplify_relational_operation): Likewise.
13236         * rtlanal.c (commutative_operand_precedence): Also order constant
13237         operands using avoid_constant_pool_reference.
13238
13239 2004-01-19  Richard Henderson  <rth@redhat.com>
13240
13241         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
13242         don't check memory mode.
13243         (unaligned_memory_operand): Likewise.
13244         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
13245         abort for op0 not MEM.
13246
13247         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
13248         is not a reg, copy to a scratch first.
13249         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
13250         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
13251         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
13252         (reload_inqi, reload_inhi): Fix mode of op0.
13253         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
13254         reload_outhi_help): Likewise.  Use define_insn_and_split.
13255
13256         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
13257         as well as $29 dead.
13258
13259 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
13260
13261         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
13262         "tls_object" for thread-local objects.
13263         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
13264         "#tls" for thread-local sections.
13265         * configure.ac (thread-local checks): Specify --fatal-warnings in
13266         every binutils-specific checks.  For sparc*-*-*, test whether the
13267         OS is Solaris and the tools are native and act accordingly.
13268         * configure: Rebuild.
13269
13270 2004-01-19  Jeff Law  <law@redhat.com>
13271
13272         * contrib.texi: Update Paolo Carlini's entry.  New entries for
13273         Jerry Quinn and Petur Runolfsson.
13274
13275 2004-01-19  Roger Sayle  <roger@eyesopen.com>
13276
13277         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
13278         size, don't use the larger zero-extending loads.
13279
13280 2004-01-19  Richard Henderson  <rth@redhat.com>
13281
13282         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
13283         * alpha.md (UNSPEC_NT_LDA): Remove.
13284         (UNSPEC_CVTLQ, cvtlq): New.
13285         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
13286         (extendsidi2_fix): Remove.
13287         (extendsidi2 splitter): Use cvtlq.
13288         (extendsidi2 fp peepholes): Remove.
13289         (cvtql): Use SFmode instead of SImode.
13290         (fix_trunc?fsi): Update to match.
13291         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
13292         (movsi): Rename from movsi_nofix, remove f alternatives.
13293         (movsi_nt_vms): Similarly.
13294         (movsi_fix, movsi_nt_vms_fix): Remove.
13295         (nt_lda): Remove.
13296         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
13297
13298 2004-01-19  Jan Hubicka  <jh@suse.cz>
13299
13300         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
13301         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
13302         list.
13303         (cgraph_remove_unreachable_nodes): New function
13304         (cgraph_decide_inlining_of_small_function): Fix pasto.
13305         (cgraph_decide_inlining_incrementally): Fix pasto.
13306         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
13307
13308 2004-01-19  Steven Bosscher  <stevenb@suse.de>
13309
13310         * gengtype.c (header_file): Make it static.
13311         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
13312         * gengtype.h (header_file): No longer extern.
13313
13314 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13315
13316         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
13317         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
13318         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
13319
13320 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13321
13322         * stmt.c (HAVE_casesi): Define it not already defined.
13323         (HAVE_tablejump): Likewise.
13324         (expand_end_case_type): Resort to the binary tree method if
13325         neither casesi or tablejump is available.
13326
13327 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
13328
13329         * final.c (final_scan_insn): Make non-static again.
13330         * output.h (final_scan_insn): Re-add prototype.
13331         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
13332         to final_scan_insn call.
13333         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
13334         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
13335         * config/pa/pa.c (output_lbranch, output_call): Likewise.
13336         * config/sh/sh.c (print_slot): Likewise.
13337         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
13338         (output_sibcall, sparc_flat_function_epilogue): Likewise.
13339
13340 2004-01-18  Jan Hubicka  <jh@suse.cz>
13341
13342         * basic-block.h (try_redirect_by_replacing_jump): Declare.
13343         * cfgcleanup.c (try_optimize_cfg): Use it.
13344         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
13345         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
13346         Kill hack.
13347         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
13348
13349         Revert:
13350         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13351
13352                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13353                 even after reload, just don't remove the actual jump tables.
13354
13355 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13356
13357         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
13358
13359 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
13360
13361         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
13362         the size of a pointer in bytes.
13363
13364 2004-01-18  Roger Sayle  <roger@eyesopen.com>
13365
13366         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
13367         live "next" variable, which could lead to an infinite loop.
13368
13369 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
13370
13371         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
13372         block.
13373
13374         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13375         Check for NULL in the chain and remove repeated code.
13376
13377 2004-01-18  Jan Hubicka  <jh@suse.cz>
13378
13379         * coverage.c (checksum_string): Rename to ...
13380         (coverage_checksum_string): ... this one, Use crc32_string; recognize
13381         names containing random number and zero the number out in order to get
13382         match.
13383
13384 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13385
13386         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
13387
13388 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13389
13390         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
13391         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
13392         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
13393         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
13394         doc/trouble.texi: Remove trailing whitespace.
13395
13396 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
13397
13398         PR target/7618
13399         * config/mips/mips.c: Include cfglayout.h.
13400         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
13401         (mips_unspec_offset_high): Add temporary register argument.
13402         (mips_load_call_address): New function, split out from...
13403         (mips_expand_call): ...here.
13404         (mips_output_cplocal): New function.
13405         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
13406         (mips_emit_loadgp): New function, split out from...
13407         (mips_expand_prologue): ...here.
13408         (mips_output_mi_thunk): New function.
13409
13410 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
13411
13412         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
13413         mcpu32): Remove redundant checks for implied target predefines.
13414
13415 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
13416
13417         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13418         Return type is unsigned int not int.
13419         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13420         Likewise.
13421
13422 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13423
13424         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
13425         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
13426         "GNU/Linux" and "Microsoft Windows" terminology.
13427
13428 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
13429
13430         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
13431         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
13432         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
13433         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
13434         @smallexample instead of @example.
13435
13436 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
13437
13438         * objc/objc-act.c (build_objc_method_call): Use target
13439         hooks instead of macros to determine if ..._stret
13440         dispatchers should be used (NeXT runtime only).
13441
13442 2004-01-17  Roger Sayle  <roger@eyesopen.com>
13443
13444         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
13445         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
13446
13447 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13448
13449         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
13450         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
13451         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
13452         macros.
13453         * reload1.c (emit_reload_insns): Use them.
13454         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
13455         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
13456         for NULL PATTERN.
13457
13458 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
13459
13460         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
13461         (final_scan_insn): Update to take an additional SEEN argument.  Emit
13462         a line note after the prologue.  Make static.
13463         (line_note_exists): Remove.
13464         (final): Don't initialize line_note_exists.  Update call to
13465         final_scan_insn.
13466         * output.h (final_scan_insn): Remove prologue.
13467         * function.c (set_insn_locators): Update comment.
13468         (thread_prologue_and_epilogue_insns): Add a comment.
13469
13470 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
13471
13472         PR target/10781
13473         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
13474         Prototype.
13475         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
13476         New function.
13477         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
13478         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
13479         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
13480
13481 2004-01-17  Jan Hubicka  <jh@suse.cz>
13482
13483         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
13484         commit.
13485
13486         * toplev.c (HAVE_conditional_execution): Provide default.
13487         (rest_of_handle_reorder_blocks): For conditional_execution target
13488         update liveness once after all transformations
13489         (rest_of_compilation): Do crossjumping before ce3.
13490
13491 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
13492
13493         * alias.c (new_alias_set): Mark last_alias_set for PCH.
13494         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
13495         for PCH.
13496         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
13497         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
13498         (get_TOC_alias_set): Mark 'set' for PCH.
13499
13500 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13501
13502         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
13503         even after reload, just don't remove the actual jump tables.
13504
13505 2004-01-17  J. Brobecker  <brobecker@gnat.com>
13506
13507         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
13508         Remove checks for is_ada() and TREE_UNSIGNED.
13509         (subrange_type_die): Emit a byte_size attribute if the subrange
13510         type size is different from the base type size.
13511         (modified_type_die): Replace call to is_ada_subrange_type() by
13512         call to is_subrange_type().
13513
13514 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
13515
13516         * config/sh/sh.c: Include ggc.h.
13517
13518 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
13519
13520         * Makefile.in (MD5_H): New.
13521         (fold-const.o): Depend on md5.h.
13522         (dwarf2out.o): Likewise.
13523         (cppfiles.o): Likewise.
13524         * cppfiles.c: Include md5.h.
13525         (should_stack_file): Check against list read from PCH file.
13526         (struct pchf_data): New.
13527         (pchf): New variable.
13528         (struct pchf_adder_info): New.
13529         (pchf_adder): New.
13530         (pchf_save_compare): New.
13531         (_cpp_save_file_entries): New.
13532         (_cpp_read_file_entries): New.
13533         (struct pchf_compare_data): New.
13534         (pchf_compare): New.
13535         (check_file_against_entries): New.
13536         * cpphash.h (_cpp_save_file_entries): Prototype.
13537         (_cpp_read_file_entries): Prototype.
13538         * cpppch.c (cpp_write_pch_state): Write the list of headers.
13539         (cpp_read_state): Read the list of headers.
13540
13541 2004-01-17  Jan Hubicka  <jh@suse.cz>
13542
13543         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
13544         builtin_expect specially.
13545         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
13546         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
13547         * invoke.texi (max-inline-insns-single): Set to 100.
13548         (large-function-insns): Set to 3000.
13549
13550 2004-01-16  Eric Christopher  <echristo@redhat.com>
13551             Chandrakala Chavva <cchavva@redhat.com>
13552
13553         * cppcharset.c (one_iso88591_to_utf8): New function.
13554         (convert_iso88591_utf8): Ditto. Use.
13555         (conversion_tab): Use.
13556         (_cpp_input_to_utf8): New function.
13557         (_cpp_init_iconv_buffer): Ditto.
13558         (_cpp_close_iconv_buffer): Ditto.
13559         * cpphash.h: Prototype new functions.
13560         (cpp_buffer): Add input_cset_desc.
13561         * cppinit.c: Add input_charset default.
13562         * cpplib.c (cpp_push_buffer): Support init and
13563         close of iconv.
13564         * cpplib.h (cpp_options): Add input_charset.
13565
13566 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13567
13568         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
13569         * config/alpha/unicosmk.h: Remove a commented-out definition
13570         of ASM_OUTPUT_SECTION_NAME.
13571         * config/stormy16/stormy16.h: Likewise.
13572
13573 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13574
13575         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
13576         (alpha___extern_prefix_sys_stat): ... this.
13577         Apply to <sys/mount.h>, too.
13578         Tweak to match more variations.
13579         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
13580
13581         * fixinc/inclhack.def (alpha___extern_prefix,
13582         alpha___extern_prefix_standards): New hacks to obey
13583         __PRAGMA_EXTERN_PREFIX.
13584         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
13585         test.
13586         * fixinc/tests/base/standards.h: Likewise.
13587
13588         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
13589         variations.
13590         New testcase.
13591         * fixinc/tests/base/pthread.h: Handle it.
13592
13593         * fixincl/inclhack.def (bad_lval): Sort file list.
13594         Add many missing files up to Tru64 UNIX V5.1B.
13595         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
13596         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
13597         order.
13598
13599         * fixinc/fixincl.x: Regenerate.
13600
13601 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
13602
13603         * version.c (version_string): Change to 3.5.0.
13604         * doc/include/gcc-common.texi (version-GCC): Likewise.
13605
13606 2004-01-16  Jan Hubicka  <jh@suse.cz>
13607
13608         * i386.md (load_tp_di): Fix pasto.
13609
13610         PR opt/13608
13611         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
13612
13613         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
13614         pp_c_character_constant, pp_c_floating_constant,
13615         pp_c_additive_expression, pp_c_shift_expression,
13616         pp_c_equality_expression, pp_c_and_expression,
13617         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
13618         pp_c_logical_and_expression): Remove inline modifier.
13619         * dwarf2out.c (get_AT): Likewise.
13620         * et-forest.c (et_splay): Likewise.
13621         * ra.h (ra_alloc, ra_calloc): Likewise
13622
13623 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13624
13625         * config/frv/frv-protos.h: Fix comment formatting.
13626         * config/frv/frv.c: Likewise.
13627         * config/frv/frv.h: Likewise.
13628         * config/frv/frv.md: Likewise.
13629         * config/frv/frvbegin.c: Likewise.
13630         * config/frv/frvend.c: Likewise.
13631
13632 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
13633
13634         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
13635         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
13636         LINKER_DOES_NOT_WORK_WITH_DWARF2.
13637         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
13638
13639 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
13640
13641         PR 11864
13642         * postreload.c (reload_cse_simplify_operands): Don't remove
13643         implicit extension from LOAD_EXTEND_OP.
13644
13645 2004-01-16  Jan Hubicka  <jh@suse.cz>
13646
13647         PR opt/11350
13648         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
13649         after reload.
13650         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
13651         rtl_try_redirect_by_replacing_branch): Likewise.
13652
13653 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13654
13655         PR pch/13689
13656         * alias.c (struct alias_set_entry): Mark for GC.
13657         (alias_sets): Make static, mark for GC.
13658         (record_alias_subset): Use GC to allocate alias structures.
13659         * varray.c (element): Make generic varrays GCed.
13660
13661         PR pch/13361
13662         * c-typeck.c (constructor_asmspec): Delete.
13663         (struct initializer_stack): Delete field 'asmspec'.
13664         (start_init): Delete saving of asmspec.
13665         (finish_init): Don't update constructor_asmspec.
13666         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13667         * stmt.c (expand_asm): Duplicate strings from tree.
13668         (expand_asm_operands): Likewise.
13669         * tree.c (tree_size): Update computation of size of STRING_CST.
13670         (make_node): Don't make STRING_CST nodes.
13671         (build_string): Allocate string with tree node.
13672         * tree.def (STRING_CST): Update comment.
13673         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13674         (tree_string): Place contents of string in tree node.
13675         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13676         from tree.
13677
13678         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
13679         altivec operands.
13680
13681 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13682
13683         * c-common.h: Fix comment formatting.
13684         * c-cppbuiltin.c: Likewise.
13685         * c-pragma.c: Likewise.
13686         * calls.c: Likewise.
13687         * collect2.c: Likewise.
13688         * cppcharset.c: Likewise.
13689         * cpptrad.c: Likewise.
13690         * dbxout.c: Likewise.
13691         * defaults.h: Likewise.
13692         * dwarf2out.c: Likewise.
13693         * fold-const.c: Likewise.
13694         * genautomata.c: Likewise.
13695         * genconditions.c: Likewise.
13696         * genflags.c: Likewise.
13697         * gengtype.c: Likewise.
13698         * integrate.c: Likewise.
13699         * loop.c: Likewise.
13700         * predict.c: Likewise.
13701         * sdbout.c: Likewise.
13702
13703 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
13704
13705         * config/ia64/ia64.md (*movti_internal): C output template
13706         extracted to ia64.c.
13707         (*movti_internal_reg): Delete.
13708         (reload_inti, reload_outti): Use the correct mode on operand 2
13709         in the first place, don't fix it up in the output template.
13710         (movtf, reload_ointf, reload_outtf): New expanders.
13711         (*movtf_internal): New define_insn_and_split.
13712         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
13713         make static; do not hand TFmode CONST_DOUBLEs to split_double.
13714         (ia64_split_tmode_move): New function, body mostly pulled
13715         from ia64.md:*movti_internal.
13716         (ia64_function_arg_words): New function, extracted common
13717         logic from ia64_function_arg et seq.
13718         (ia64_function_arg_offset): Likewise.  Handle correctly the
13719         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
13720         (ia64_function_arg, ia64_function_arg_partial_nregs)
13721         (ia64_function_arg_advance): Use ia64_function_arg_words and
13722         ia64_function_arg_offset.
13723         (ia64_function_value): TCmode does not go in float regs.
13724         (ia64_secondary_reload_class): Also handle TFmode.
13725         * config/ia64/ia64-protos.h: Remove prototype for
13726         ia64_split_timode; add prototype for ia64_split_tmode_move.
13727
13728 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
13729
13730         * Makefile.in (MAINT): Make it an immediate assignment.
13731
13732 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13733
13734         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
13735
13736 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13737
13738         * config/h8300/coff.h: Replace Hitachi with Renesas.
13739         * config/h8300/elf.h: Likewise.
13740         * config/h8300/h8300-protos.h: Likewise.
13741         * config/h8300/h8300.c: Likewise.
13742         * config/h8300/h8300.h: Likewise.
13743         * config/h8300/h8300.md: Likewise.
13744         * config/h8300/lib1funcs.asm: Likewise.
13745
13746 2004-01-15  Andrew Pinski  <apinski@apple.com>
13747
13748         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
13749         around it.
13750
13751 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13752
13753         * config/h8300/h8300.c (h8300_return_in_memory): New.
13754         (TARGET_STRUCT_VALUE_RTX): Likewise.
13755         (TARGET_RETURN_IN_MEMORY): Likewise.
13756         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
13757         (RETURN_IN_MEMORY): Likewise.
13758
13759 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
13760
13761         PR optimization/13375
13762         * gcse.c (handle_avail_expr): Just return if the source is not a
13763         single set.
13764
13765 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
13766             Daniel Jacobowitz  <drow@mvista.com>
13767
13768         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
13769         (EQUIV): Define.
13770         (ARM_FUNC_ALIAS): New macro.
13771         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
13772         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
13773
13774 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13775
13776         PR optimization/12372
13777         * calls.c (expand_call): Add call_fusage data for stack arguments in
13778         constant calls.
13779
13780 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
13781
13782         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
13783         (rs6000_elf_declare_function_name): Formatting.
13784         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
13785
13786 2004-01-15  Jan Hubicka  <jh@suse.cz>
13787
13788         PR bootstrap/13692
13789         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
13790         previous patch.
13791
13792 2004-01-15  Richard Henderson  <rth@redhat.com>
13793
13794         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
13795         integer regs of the same call-savedness.
13796
13797 2004-01-15  Andreas Schwab  <schwab@suse.de>
13798
13799         PR bootstrap/13562
13800         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
13801         status for NOTB/NOTW/NEGW methods.
13802
13803 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13804
13805         * doc/invoke.texi: Update dump file names.  Fix a typo.
13806
13807 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13808
13809         * builtins.c (expand_builtin_va_end): Don't use
13810         EXPAND_BUILTIN_VA_END.
13811         * system.h (EXPAND_BUILTIN_VA_END): Poison.
13812         * config/d30v/d30v.h: Remove a commented-out definition of
13813         EXPAND_BUILTIN_VA_END.
13814         * config/stormy16/stormy16.h: Likewise.
13815
13816 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
13817
13818         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
13819         * targhooks.c (default_struct_value_rtx): Don't use
13820         STRUCT_VALUE_INCOMING_REGNUM.
13821
13822 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
13823
13824         PR bootstrap/12744
13825         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
13826         GENINSRC and not parsedir.  Define srcextra as a langhook.
13827         * configure: Regenerate.
13828         * Makefile.in: Suppress default .l.c rule.  Don't substitute
13829         parsedir and delete all references throughout.  Conditionally define
13830         rule for srcextra dependent on GENINSRC.
13831         (stmp-docobjdir): Delete.
13832         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
13833         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
13834         and gengtype-yacc.h back to source directory.
13835         (maintainer-clean): Delete all parse files in source directory.
13836         (distclean): Delete generated files.
13837
13838         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
13839         (objc-parse.c, objc-parse.y): Don't use parsedir.
13840         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
13841         directory if requested.
13842         (po-generated): Don't use parsedir.
13843         (objc.maintainer-clean): Delete above files from source directory.
13844
13845 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13846
13847         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
13848
13849 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13850
13851         * doc/tm.texi: Replace RETURN_IN_MEMORY with
13852         TARGET_RETURN_IN_MEMORY.
13853
13854 2004-01-15  Jan Hubicka  <jh@suse.cz>
13855
13856         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
13857         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
13858         functions accepting SSE arguments
13859         (function_arg): Warn only when asked to warn.
13860         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
13861
13862 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
13863
13864         * c-parse.in (stmts_and_decls): Make label at end of compound
13865         statement a hard error.
13866
13867 2004-01-14  Jan Hubicka  <jh@suse.cz>
13868
13869         * cgraph.c (create_edge): Use local.redefined_extern_inline.
13870         * cgraph.h (cgraph_local_info): Sort fields by size; add
13871         redefined_extern_inline
13872         (cgraph_global_info): Sort fields by size.
13873         (cgraph_node): Likewise.
13874         * cgraphunit.c (cgraph_finalize_function): Se
13875         local.redefined_extern_inline on redefinition.
13876         (cgraph_analyze_function): Use it; fix formating.
13877
13878 2004-01-14  Jan Hubicka  <jh@suse.cz>
13879
13880         PR c++/10776
13881         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
13882         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
13883         bitmaps
13884         (cache_size): New variable
13885         (add_dependence): Update use; canonize early memory locations
13886         (sched_analyze_1): Likewise.
13887         (sched_analyze_2): Likewise.
13888         (init_dependency_caches): Initialize bitmaps.
13889         (free_dependency_caches): Free bitmaps
13890
13891 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13892
13893         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
13894         targetm.calls.strict_argument_naming().
13895         * target.h: Likewise.
13896
13897 2004-01-14  Richard Henderson  <rth@redhat.com>
13898
13899         PR debug/13231
13900         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
13901         instructions.
13902
13903 2004-01-14  Richard Henderson  <rth@redhat.com>
13904
13905         PR c++/12491
13906         * except.c (struct eh_region): Add u.fixup.resolved.
13907         (resolve_one_fixup_region): Split out from ...
13908         (resolve_fixup_regions): ... here.
13909
13910 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13911
13912         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
13913
13914 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13915
13916         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
13917         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
13918         (STRUCT_VALUE): Remove.
13919
13920 2004-01-14  Steven Bosscher  <stevenb@suse.de>
13921
13922         * system.h: Poison PROMOTED_MODE
13923         * integrate.c (expand_inline_function): Don't mention the
13924         PROMOTED_MODE.
13925         * loop.c (update_giv_derive): Same.
13926         * tree.h (DECL_RTL): Same.
13927
13928 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
13929
13930         PR target/9365
13931         * sh.c (gen_block_redirect): Add special handling of RETURN.
13932         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
13933         far branch target (i.e. it's a return).
13934
13935 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13936
13937         * regrename.c (find_oldest_value_reg): Fix a warning.
13938
13939 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
13940
13941         PR bootstrap/12527
13942         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
13943         Move linux-gas.h and linux-elf.h before aout.h.
13944         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
13945         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
13946
13947 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
13948
13949         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
13950         (CONST_INT, VOIDmode, ...).
13951
13952 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
13953
13954         * regrename.c (find_oldest_value_reg): If the replacement uses
13955         multiple hard registers, check that all of them are in CLASS.
13956
13957 2004-01-14  Jan Hubicka  <jh@suse.cz>
13958
13959         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
13960         impossible.
13961
13962 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
13963
13964         * Makefile.in: Define MAINT from --enable-maintainer-mode.
13965
13966 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
13967
13968         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
13969         Calculate always vrsave_mask if TARGET_ALTIVEC.
13970         (rs6000_emit_prologue): Emit code for vrsave
13971         only if TARGET_ALTIVEC_VRSAVE.
13972         (rs6000_emit_epilogue): Likewise.
13973
13974 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
13975
13976         * config/sparc/sparc.md (tie_add32): Fix pasto.
13977         (tie_add64): Likewise.
13978
13979 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13980
13981         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
13982
13983 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13984
13985         * config/iq2000/iq2000-protos.h: Fix comment formatting.
13986         * config/iq2000/iq2000.c: Likewise.
13987         * config/iq2000/iq2000.md: Likewise.
13988
13989 2004-01-14  J. Brobecker  <brobecker@gnat.com>
13990
13991         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
13992         (subrange_type_die): Add handle for nameless subrange types.
13993
13994 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
13995
13996         * config/h8300/h8300-protos.h: Replace do_movsi with
13997         h8300_expand_movsi.
13998         * config/h8300/h8300.c (do_movsi): Change to
13999         h8300_expand_movsi.
14000         * config/h8300/h8300.md (movsi): Replace do_movsi with
14001         h8300_expand_movsi.
14002         (movsf): Likewise.
14003
14004 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14005
14006         * config/h8300/h8300.c (dosize): Change to
14007         h8300_emit_stack_adjustment.  Update callers.
14008
14009 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14010
14011         * config/h8300/h8300.md (movstrictqi): Add an alternative with
14012         the source being post_inc.  Tighten the predicate for the
14013         destination to register_operand.
14014         (movstricthi): Likewise.
14015
14016 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14017
14018         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
14019         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
14020         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
14021
14022 2004-01-14  Jan Hubicka  <jh@suse.cz>
14023
14024         Partial fix PR c++/12850
14025         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
14026         at zero nest level.
14027
14028 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
14029
14030         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
14031         pseudo-register.
14032
14033 2004-01-13  Devang Patel <dpatel@apple.com
14034
14035         PR debug/7078
14036         * dbxout.c (dbxout_symbol_name): Emit mangled names for
14037         NAMESPACE_DECL memebers.
14038
14039 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
14040
14041         PR c++/12709
14042         * c-common.c (finish_fname_decls): Use the chain only if the
14043         tree is an expr_stmt.
14044
14045 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
14046
14047         * rtl.def: Add comment about new option in automata_option.
14048
14049         * genautomata.c (PROGRESS_OPTION): New macro.
14050         (progress_flag): New global variable.
14051         (gen_automata_option): Process `progress'.
14052         (transform_insn_regexps, check_unit_distributions_to_automata,
14053         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
14054         expand_automata, write_automata): Print about the progress only if
14055         progress_flag.  Remove fflush.
14056         (initiate_automaton_gen): Process command line flag `-progress'.
14057
14058         * doc/md.texi: Describe the new option.
14059
14060 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14061
14062         * cfg.c (dump_bb): Dump entry edges.
14063
14064 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
14065
14066         * arm.c (thumb_legitimate_address_p): Only allow constant pool
14067         references from SImode.
14068         * arm.md (thumb_movhi_insn): Don't allow minipool references.
14069
14070 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
14071
14072         * system.h (TEXT_SECTION): Poison.
14073         * varasm.c (text_section): Don't use TEXT_SECTION.
14074         * config/sh/sh.c (sh_file_start): Fix a comment typo.
14075         * doc/tm.texi (TEXT_SECTION): Remove.
14076
14077 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
14078
14079         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
14080
14081 2004-01-12  James E Wilson  <wilson@specifixinc.com>
14082
14083         * unwind-libunwind.c: Delete.
14084
14085 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
14086
14087         PR 13656
14088         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
14089         oldtype is set, set *newtypep or *oldtypep too.  Do not set
14090         them at the very end.
14091         (validate_proto_after_old_defn): Restructure for comprehensibility;
14092         make error messages clearer.
14093
14094 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
14095
14096         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
14097         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
14098         * varray.c: No need to prototype error.
14099         (varray_check_failed): Wrap long string onto two lines.
14100         (varray_underflow): New function.
14101
14102 2004-01-13  Steven Bosscher  <stevenb@suse.de>
14103
14104         PR c++/13376
14105         * function.h (struct function): Kill `name' field.
14106         (current_function_name): Make it an extern function.
14107         * function.c (current_function_name): New function.
14108         * graph.c: Update all uses of current_function_name.
14109         * gcse.c: Likewise.
14110         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
14111         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
14112         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
14113         instead of a strcmp with "main".
14114
14115 2004-01-13  Jan Hubicka  <jh@suse.cz>
14116
14117         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
14118
14119         * cgraphunit.c (cgraph_optimize_function):  Always do
14120         optimize_inline_calls when there is always_inline callee.
14121         (cgraph_decide_inlining): Fix formating.
14122         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
14123         functions.
14124         (expand_call_inline): Likewise.
14125         * toplev.h (sorry): Fix prototype.
14126
14127 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14128
14129         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
14130         conditional jumps that drop through to unconditional jumps or the
14131         end of the sequence.
14132
14133 2004-01-13  Jan Hubicka  <jh@suse.cz>
14134
14135         * alias.c (new_alias_set): Construct the alias_set varray.
14136         (init_alias_once): Don't do it here.
14137
14138 2004-01-12  Marc Espie <espie@openbsd.org>
14139
14140         * system.h: handle YYBYACC like YYBISON.
14141
14142 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
14143
14144         PR target/10847
14145         * config.gcc: No longer includes conflicting header sparc/sol2.h when
14146         building on sparc64-*-openbsd*.
14147
14148 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
14149
14150         PR debug/13539
14151         * dbxout.c (dbxout_type): Protected inheritance is not
14152         private but protected.
14153
14154 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14155
14156         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
14157
14158 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
14159
14160         PR optimization/12508.
14161         * combine.c (try_combine): Remove a dead set in a parallel
14162         even if its destination is a subreg.
14163
14164         Revert:
14165         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
14166         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
14167         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
14168
14169 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
14170
14171         * real.c: Update copyright date.
14172         * emit-rtl.c: Likewise.
14173         * rtl.h: Likewise.
14174         * dwarf2out.c: Likewise.
14175         * config/rs6000/darwin-ldouble.c: Likewise.
14176         * config/rs6000/rs6000.md: Likewise.
14177
14178 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14179
14180         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
14181         TFmode to SImode libfuncs.
14182
14183 2004-01-12  Roger Sayle  <roger@eyesopen.com>
14184
14185         PR middle-end/11397
14186         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
14187
14188 2004-01-12  Jan Hubicka  <jh@suse.cz>
14189
14190         PR opt/12826
14191         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
14192         stored.
14193
14194         PR opt/12863
14195         * cfgcleanup.c (label_is_jump_target_p): Move to...
14196         * rtlanal.c (label_is_jump_target_p): ... here.
14197         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
14198         edges unified with branch edges.
14199
14200 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
14201
14202         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
14203         high word of an integral CONST_DOUBLE.
14204
14205 2004-01-12  Paul Brook  <paul@codesourcery.com>
14206
14207         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
14208
14209 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
14210
14211         PR target/13585
14212         * sh-protos.h (check_use_sfunc_addr): Declare.
14213         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
14214         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
14215
14216 2004-01-12  Jan Hubicka  <jh@suse.cz>
14217
14218         * alias.c:  Invlude varray.h
14219         (alias_sets): Turn into varray.
14220         (get_alias_set_entry): Use VARRAY; mark inline.
14221         (mems_in_disjoint_alias_sets_p): Mark inline.
14222         (record_alias_subset): Use varray.
14223         (init_alias_once): Initialize varray.
14224         (new_alias_set): Grow array.
14225         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
14226
14227 2004-01-12  Jan Hubicka  <jh@suse.cz>
14228
14229         Partial fix for PR opt/10776 II
14230         * cselib.c: Include params.h
14231         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
14232         locations.
14233         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
14234         * Makefile.in (cselib.o): Depend on params.h
14235
14236 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
14237
14238         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
14239         simplify_unary_operation if the operand has a known mode.
14240
14241 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
14242
14243         PR target/13534
14244         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
14245         predicate to handle 'ld' conform addresses.
14246         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
14247         contraint.
14248         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
14249         are memory contraints.
14250         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
14251         New prototype.
14252         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
14253         Change 'o' to 'Y' constraint.
14254         (*movdf_softfloat64): Ditto.
14255
14256 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
14257
14258         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
14259         brace-enclosed syntax in all C output statements.
14260
14261 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
14262
14263         PR target/13401
14264         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
14265         Objective-C language type value is 14.
14266
14267 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
14268
14269         PR c/12148
14270         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
14271         `int' in a number of places to make sure we always have a SImode
14272         and not a HImode.  Add a 'L' suffix to a number of constants.
14273
14274 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14275
14276         * pa.c: Don't include obstack.h.
14277
14278         * pa.md: Correct constraint in pattern for loading PIC label address.
14279
14280 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
14281
14282         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
14283          before defining.
14284
14285 2004-01-11  Steven Bosscher  <stevenb@suse.de>
14286
14287         PR fortran/9972
14288         * toplev.c (rest_of_handle_inline): Also consider functions
14289         for deferral if the language is GNU F77.
14290
14291 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
14292
14293         * c-decl.c (diagnose_arglist_conflict): Add missing space to
14294         diagnostic messages.
14295
14296 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
14297
14298         PR middle-end/13392
14299         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
14300         to drop through label.  Don't fall back to SCC even when conditional
14301         jump has not been found.
14302
14303 2004-01-11  Jan Hubicka  <jh@suse.cz>
14304
14305         * invoke.texi: Fix syntax error in previous patch.
14306
14307         Partial fix for PR opt/10776
14308         * Makefile.in (reload.o): Include param.h
14309         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
14310         * reload.c: Include params.h.
14311         (find_equiv_reg): Work limiting check.
14312         * invoke.texi: Document.
14313
14314 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14315
14316         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
14317         out-of-bounds accesses to string constants.  Simplify mips16
14318         case accordingly.
14319
14320 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
14321
14322         PR optimization/13469
14323         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
14324         reload_cse_regs (-fnon-call-exceptions only).
14325
14326 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
14327
14328         * config/mcore/lib1.asm: Fix comment formatting.
14329         * config/mcore/mcore-elf.h: Likewise.
14330         * config/mcore/mcore.c: Likewise.
14331         * config/mcore/mcore.h: Likewise.
14332         * config/mcore/mcore.md: Likewise.
14333
14334 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14335
14336         * c-decl.c (duplicate_decls): Break apart into...
14337         (diagnose_arglist_conflict, validate_proto_after_old_defn)
14338         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
14339         ... these new functions.  Restructure for comprehensibility.
14340         Remove various archaic special cases.  Always report the
14341         location of the previous declaration when a diagnostic is issued.
14342         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
14343         (match_builtin_function_types): Delete unnecessary forward declaration.
14344
14345 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
14346
14347         * genautomata.c (make_automaton, NDFA_to_DFA):
14348         Print progress bars with '.' characters instead of '*'.
14349         (build_automaton): Change notes to match.
14350
14351 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14352
14353         * config/m32r/m32r.md: Use define_constants for unspec and
14354         unspec_volatile.
14355
14356 2004-01-10  Jan Hubicka  <jh@suse.cz>
14357
14358         PR opt/11635
14359         * expr.c (expand_expr_real):  More curefully expand union casts.
14360
14361 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
14362
14363         * config/m32r/m32r.md (flush_icache): Use 1 for
14364         unspec_volatile.
14365
14366 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
14367             James E Wilson  <wilson@specifixinc.com>
14368
14369         PR debug/12860
14370         * dbxout.c (dbxout_symbol): Remove initialization of
14371         current_sym_code, current_sym_value, and current_sym_addr.
14372         (dbxout_symbol_location): Same.
14373         (dbxout_prepare_symbol): Zero current_sym_code,
14374         current_sym_value, and current_sym_addr.
14375
14376 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
14377
14378         * tree.c (get_unwidened): Reorder conditions so that the null pointer
14379         check is done first.
14380
14381 2004-01-09  Eric Christopher  <echristo@redhat.com>
14382
14383         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
14384         if we're running mark_constant_function.
14385
14386 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
14387
14388         PR target/12561
14389         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
14390
14391 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
14392
14393         PR debug/11231
14394         * dbxout.c (dbxout_type_fields): Return if any item is
14395         error_mark_node or the type is error_mark_node.
14396
14397 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
14398
14399         * config/rs6000/darwin-ldouble.c: Add big comment explaining
14400         exactly what is expected as a 'long double'.
14401         (_xlqadd): When a value to be returned is representable as a
14402         'double', just return it directly, do not construct it using a union.
14403         Also, correct final fixup.
14404         (_xlqmul): Likewise.
14405         (_xlqdiv): Likewise.
14406         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
14407
14408         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
14409
14410 2004-01-09  Richard Henderson  <rth@redhat.com>
14411
14412         * recog.c (constrain_operands): Validate mem operands.
14413
14414 2004-01-09   James E Wilson  <wilson@specifixinc.com>
14415
14416         * gcc.c (init_spec): Remove -lunwind from shared case.
14417         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
14418
14419 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
14420
14421         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
14422         * configure: Regenerate
14423
14424 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
14425
14426         PR c/11234
14427         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
14428         between function and object pointers.
14429         (digest_init): When comparing a pointer to function type to the
14430         target type, only apply TREE_TYPE once to the pointer to function
14431         type.
14432         * except.c (for_each_eh_label_1): Treat data as a pointer to a
14433         function pointer rather than casting it to a function pointer.
14434         (for_each_eh_label): Update caller.
14435         * recog.h (struct insn_data): Use a struct or union for output.
14436         * genoutput.c (output_insn_data): Update.
14437         * final.c (get_insn_template): Update.
14438
14439 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
14440
14441         * expr.h (expand_expr): Make it a macro, not a function.
14442         (expand_expr_real): New function.
14443         * expr.c (store_expr): Adjust logic for deciding whether or not to
14444         copy the value returned by expand_expr.
14445         (expand_expr): Rename to ...
14446         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
14447         calls to language hooks.
14448         * c-common.h (c_expand_expr): Adjust prototype.
14449         * c-common.c (c_expand_expr): Add alt_rtl parameter.
14450         * langhooks-def.h (lhd_expand_expr): Change prototype.
14451         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
14452         * langhooks.h (lang_hooks): Change type of expand_expr.
14453         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
14454         (last_expr_alt_rtl): Likewise.
14455         (expand_expr_stmt_value): Set last_expr_alt_rtl.
14456         (clear_last_expr): Clear it.
14457         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
14458         (expand_end_bindings): Save and restor last_expr_alt_rtl.
14459         * tree.def (RTL_EXPR): Give it an additional operand.
14460         * tree.h (RTL_EXPR_ALT_RTL): New macro.
14461
14462 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14463
14464         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
14465         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
14466
14467 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14468
14469         PR target/13380.
14470         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
14471         or (ne:SI (reg:CC 17) (const_int 0)).
14472         Be specific about modes wherever possible.
14473
14474 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14475
14476         * config/m32r/m32r.c (m32r_expand_block_move): Call
14477         gen_movestrsi_internal with two more arguments.
14478         (m32r_output_block_move): Adjust operand numbers.
14479         Properly update the source and destination pointers.
14480         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
14481         'r+'.  Change the set detinations to match_operand.
14482
14483 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
14484
14485         * final.c (FIRST_INSN_ADDRESS): Remove.
14486         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
14487         * system.h (FIRST_INSN_ADDRESS): Poison.
14488         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
14489         * config/m32r/m32r-protos.h: Remove the prototype for
14490         m32r_first_insn_address.
14491         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
14492         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
14493         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
14494
14495 2004-01-09  J. Brobecker  <brobecker@gnat.com>
14496
14497         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
14498         we just created.
14499         (is_ada_subrange_type): DIEs for enumeration subtypes should be
14500         emitted as subrange types too.
14501         (subrange_type_die): Add handling of enumeration subtypes.
14502
14503 2004-01-08  Richard Henderson  <rth@redhat.com>
14504
14505         PR opt/12441
14506         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
14507         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
14508         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
14509         (ix86_address_cost): Be prepared for SUBREGed registers.
14510         (legitimate_address_p): Accept SUBREGed registers.
14511
14512 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
14513
14514         * Makefile.in: Rename configure.in to configure.ac
14515         * doc/sourcebuild.texi: Likewise.
14516         * configure: Regenerate.
14517         * config.in: Regenerate.
14518
14519 2004-01-08  Stuart Hastings  <stuart@apple.com>
14520
14521         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
14522
14523 2004-01-08  Jan Hubicka  <jh@suse.cz>
14524
14525         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
14526
14527 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
14528
14529         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
14530         (UNSPEC_FIX_TRUNC_TF): New constant.
14531         (movtf_internal): Make splitter active only when insn is active.
14532         (extenddftf2): Rewrite to properly load zero into low part.
14533         (extenddftf2_internal): New.
14534         (extendsftf2): Rewrite.
14535         (truncdftf2): Correct length.
14536         (floatditf2): Delete.
14537         (fix_trunc_helper): New.
14538         (fix_trunctfdi2): Use fix_trunc_helper.
14539         (fix_trunctfsi2): Likewise.fix_trunc
14540         (fix_trunctfsi2_internal): New.
14541
14542         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
14543         addresses are legitimate on Darwin even when flag_pic.
14544         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
14545         non-offsettable addresses for loads of TFmode constants.
14546
14547 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14548
14549         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
14550         variables in the appropriate bss section.
14551
14552 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
14553
14554         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
14555         target_flags has MASK_POWERPC64 when -m64.
14556         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
14557         to 620, 630, power3, power4 and rs64a entries.
14558         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
14559
14560 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
14561
14562         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
14563         floating-point constants.
14564
14565 2004-01-08  J. Brobecker  <brobecker@gnat.com>
14566
14567         * dwarf2out.c (subrange_type_die): Add context_die parameter.
14568         Create the subrange_type DIE using the given context DIE.
14569         (modified_type_die): Update call to subrange_type_die.
14570
14571 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
14572
14573         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
14574         Add multiple-include guard.
14575
14576 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
14577
14578         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
14579         all vector constant loadable by vsplt*.
14580         (output_vec_const_move): Likewise.
14581
14582 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14583
14584         PR c/6024
14585         * c-typeck.c (comptypes): Only treat enumerated types in the same
14586         translation unit as compatible with each other when they are the
14587         same type.
14588         * doc/extend.texi: Update.
14589
14590 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
14591
14592         PR c/12165
14593         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
14594         array type from the array element type.
14595
14596 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
14597
14598         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
14599         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
14600         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
14601         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
14602         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
14603
14604 2004-01-06  Eric Christopher  <echristo@redhat.com>
14605
14606         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
14607         (DWARF2_DEBUGGING_INFO): Define.
14608         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
14609         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
14610         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
14611         for irix as.
14612         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
14613         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
14614         * config/mips/iris5gas.h: Ditto.
14615         (DBX_DEBUGGING_INFO): Remove.
14616         (DWARF2_DEBUGGING_INFO): Ditto.
14617         (MIPS_DEBUGGING_INFO): Ditto.
14618         (PREFERRED_DEBUGGING_TYPE): Ditto.
14619         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
14620         (PREFERRED_DEBUGGING_TYPE): Ditto.
14621         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
14622         * config/mips/elf64.h: Ditto.
14623
14624 2004-01-06  Jan Hubicka  <jh@suse.cz>
14625
14626         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
14627         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
14628
14629 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
14630
14631         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
14632         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
14633         * config/rs6000/darwin-ldouble.c: New.
14634
14635         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
14636         for constants.
14637         (constant_subword): Delete.
14638         * rtl.h (constant_subword): Delete prototype.
14639         (immed_double_const): Is not in varasm.c.
14640         * simplify-rtx.c (simplify_immed_subreg): New.
14641         (simplify_subreg): Use simplify_immed_subreg.
14642
14643         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
14644         than trying to generate RTL directly.
14645         (fix_trunctfsi2): Use expand_fix rather than trying to generate
14646         RTL directly.
14647
14648         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
14649
14650 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
14651
14652         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
14653         function into a separate macro.
14654         (read_only_data_section): Add void argument.
14655         (private_data_section): Same.
14656         (read_only_private_data_section): Same.
14657         (toc_section): Same.
14658
14659 2004-01-06  Jan Hubicka  <jh@suse.cz>
14660
14661         * invoke.texi:  Remove typo in last change.
14662
14663         PR target/10301
14664         * config.gcc: Accept opteron and athlon-64 as variants
14665         of k8.
14666         * i386.c (override_options): Likewise.
14667         * invoke.texi (i386 -mtune): Expand documentation.
14668
14669 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
14670
14671         * alias.c: Fix comment typos.
14672         * builtins.c: Likewise.
14673         * cfg.c: Likewise.
14674         * df.c: Likewise.
14675         * dominance.c: Likewise.
14676         * dwarf2out.c: Likewise.
14677         * emit-rtl.c: Likewise.
14678         * expr.c: Likewise.
14679         * final.c: Likewise.
14680         * fold-const.c: Likewise.
14681         * gcse.c: Likewise.
14682         * genattrtab.c: Likewise.
14683         * genrecog.c: Likewise.
14684         * gensupport.c: Likewise.
14685         * ggc-zone.c: Likewise.
14686         * integrate.c: Likewise.
14687         * local-alloc.c: Likewise.
14688         * loop.c: Likewise.
14689         * recog.c: Likewise.
14690         * regmove.c: Likewise.
14691         * reg-stack.c: Likewise.
14692         * reorg.c: Likewise.
14693         * rtlanal.c: Likewise.
14694         * rtl.h: Likewise.
14695         * sched-ebb.c: Likewise.
14696         * simplify-rtx.c: Likewise.
14697         * toplev.c: Likewise.
14698         * varasm.c: Likewise.
14699
14700 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
14701
14702         * doc/install.texi: Fix typos.
14703         * doc/invoke.texi: Likewise.
14704         * doc/md.texi: Likewise.
14705
14706 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14707
14708         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
14709
14710 2004-01-06  Jan Hubicka  <jh@suse.cz>
14711
14712         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
14713         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
14714         of MMX_REGPARM.
14715         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
14716         add MMX_REGPARM.
14717         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
14718         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
14719         (MMX_REGPARM_MAX): Similarly for -mmmx.
14720
14721 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14722
14723         * config/sh/linux.h: Fix comment formatting.
14724         * config/sh/netbsd-elf.h: Likewise.
14725         * config/sh/sh.c: Likewise.
14726         * config/sh/sh.h: Likewise.
14727         * config/sh/vxworks.h: Likewise.
14728
14729 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14730
14731         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
14732         * toplev.c (output_file_directive): Don't use
14733         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
14734
14735 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
14736
14737         * toplev.c: Fix broken checkin of 2003-12-30.
14738
14739 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
14740
14741         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
14742         (USING_MMAP): We don't support non-mmap.
14743         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
14744         large objects.
14745         (struct page_entry): Remove bytes_free.
14746         (struct page_table_chain): Remove.
14747         (struct globals): Remove page_table member.
14748         (loookup_page_table_entry): Function deleted.
14749         (set_page_table_entry): Ditto.
14750         (ggc_allocated_p): No longer need page table lookups.
14751         (ggc_marked_p): Ditto.
14752         (alloc_small_page): Don't care about bytes_free anymore.
14753         (alloc_large_page): Round up size.
14754         (ggc_alloc_zone_1): Mark large objects as such, and calculate
14755         their size the new way.
14756         Remove page table lookups and setting.
14757         (ggc_get_size): Calculate large object size the new way.
14758         (sweep_pages): Redo to account for fact that we no longer have
14759         bytes_free.
14760         (ggc_collect): No longer need to reincrement bytes_free.
14761         (ggc_pch_alloc_object): Handle new large objects properly.
14762         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
14763
14764 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14765
14766         * doc/invoke.texi: Remove a page break.
14767
14768 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14769
14770         * config/avr/avr.c (avr_output_function_prologue): Remove an
14771         extra pair of curly braces.
14772
14773 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14774
14775         * config/mn10300/mn10300.c: Fix comment formatting.
14776         * config/mn10300/mn10300.h: Likewise.
14777
14778 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14779
14780         * tree.h: Update documentation on nothrow_flag.
14781         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
14782         types.
14783
14784 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14785
14786         * doc/invoke.texi: Remove traces of dead ports.
14787
14788 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14789
14790         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
14791         option.
14792
14793 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14794
14795         PR target/12945
14796         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
14797         counter labels.
14798         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
14799         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
14800         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
14801         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
14802         (mips_symbol_insns): Don't trust the local/global classification.
14803         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
14804         (override_options): Make -mabicalls -fno-unit-at-a-time imply
14805         -mno-explicit-relocs.
14806         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
14807         between local and global symbols.
14808
14809 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
14810
14811         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
14812         (mips_preferred_reload_class): Declare.
14813         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
14814         (EXTRA_CONSTRAINT): Update accordingly.
14815         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
14816         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
14817         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
14818         mips_dangerous_for_la25_p.
14819         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
14820         if mips_dangerous_for_la25_p.
14821
14822 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
14823
14824         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
14825         warning.
14826
14827 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
14828
14829         * configure.ac: Use AC_PROG_CPP_WERROR.
14830         * configure: Regenerate.
14831
14832 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
14833
14834         * .cvsignore: Add autom4te.cache.
14835
14836 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
14837
14838         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
14839         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
14840         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
14841         then architecture options, then ABI options.  General rewording.
14842
14843 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
14844
14845         PR c/3414
14846         * doc/extend.texi: Clarify definition of malloc attribute.
14847
14848 2004-01-04  Jan Hubicka  <jh@suse.cz>
14849
14850         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
14851         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
14852         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
14853         (cgraph_inline_p): Add extra argument reason.
14854         * cgraphunit.c: Minor formating fixes.
14855         cgraph_first_inlined_callee): New functions.
14856         (record_call_1): Record builtins too.
14857         (cgraph_analyze_function): Update inline_failed messages.
14858         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
14859         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
14860         (cgraph_check_inline_limits): Likewise; Add argument reason.
14861         (cgraph_set_inline_failed): New static function.
14862         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
14863         reasons.
14864         (cgraph_inline_p): Add new argument reason.
14865         * tree-inline.c (expand_call_inline):  Update warning.
14866
14867 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
14868
14869         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
14870         with modern equivalents.
14871         * configure: Regenerate.
14872
14873         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
14874         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
14875         * configure: Regenerate.
14876
14877         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
14878
14879         * configure.in: Rename to configure.ac.
14880         * configure.ac: Renamed from configure.in; make minimum necessary
14881         changes for autoconf 2.5x.
14882         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
14883         * configure: Regenerate with autoconf 2.57.
14884
14885 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
14886
14887         * config/mips/linux.h: Fix comment formatting.
14888         * config/mips/mips.c: Likewise.
14889         * config/mips/mips.h: Likewise.
14890         * config/mips/mips.md: Likewise.
14891         * config/mips/netbsd.h: Likewise.
14892         * config/mips/windiss.h: Likewise.
14893
14894 2004-01-02  Richard Henderson  <rth@redhat.com>
14895
14896         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
14897         for sse and 387; add suppression for mmx.
14898
14899 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
14900
14901         * loop.c (loop_optimize): Free all loops_info's mems.
14902
14903         * c-typeck.c (finish_init): Free spelling_base before
14904         setting it again.
14905
14906         * cfgloop.c (flow_loops_find): Always free the sbitmap
14907         headers.
14908
14909         * predict.c (estimate_probability): Free bbs after being
14910         done with it.
14911
14912 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14913
14914         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
14915         const_8bit_operand and call_address_operand.
14916
14917 2004-01-02  Jan Hubicka  <jh@suse.cz>
14918
14919         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
14920         when there is nothing to inline but warnings are requested.
14921         (cgraph_decide_inlining):  Fix memory leak.
14922
14923 2004-01-02  Jan Hubicka  <jh@suse.cz>
14924
14925         * expr.c (store_constructor):  Fix pasto in previous patch.
14926
14927 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14928
14929         * config/i386/cygming.h: Fix comment formatting.
14930         * config/i386/djgpp.h: Likewise.
14931         * config/i386/gthr-win32.c: Likewise.
14932         * config/i386/i386-interix.h: Likewise.
14933         * config/i386/i386.c: Likewise.
14934         * config/i386/i386.h: Likewise.
14935         * config/i386/openbsd.h: Likewise.
14936         * config/i386/winnt.c: Likewise.
14937         * config/i386/xm-mingw32.h: Likewise.
14938
14939 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
14940
14941         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
14942         copyright and last modification dates.
14943
14944 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
14945
14946         * doc/install.texi (Specific): Mention x86_64.
14947
14948 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
14949
14950         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
14951         Call force_operand on plus_constant result.
14952
14953 2004-01-01  Jan Hubicka  <jh@suse.cz>
14954
14955         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
14956         * expr.c (store_constructor): Use vec_init pattern.
14957         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
14958         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
14959         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
14960         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
14961         New patterns.
14962         (sse2_unpc?pd): Fix pattern.
14963         (sse2_movlpd): Kill.
14964         (sse2_movsd): Deal with movlpd too.
14965         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
14966         (ix86_expand_vector_init): New.
14967         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
14968         * md.texi (vec_set, vec_extract): Document
14969
14970 2003-12-31  Jan Hubicka  <jh@suse.cz>
14971
14972         PR opt/13473
14973         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
14974         ASM input operands
14975
14976         PR opt/12617
14977         * toplev.c (dump_file_index): Reorder ce3 and bbro.
14978         (dump_file): Likewise.
14979         (rest_of_compilation): Likewise.
14980
14981         PR debug/13367
14982         * cgraph.c (cgraph_function_possibly_inlined):  Even with
14983         flag_really_no_inline we inline always_inline functions.
14984         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
14985         for non-always_inline functions when there is flag_really_no_inline.
14986         (cgraph_decide_inlining): Limit work done when not inlining.
14987         (cgraph_decide_inlining_incrementally): Likewise.
14988         (cgraph_optimize_function): Check whether something got inlined.
14989         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
14990         extern inline functions when not inlining.
14991
14992         * opts.c (decode_options):  Disable crossjumping at -O1
14993         * invoke.texi (-O1): Document change.
14994
14995 See ChangeLog.10 for earlier changes.